|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<el-dialog
|
|
|
v-loading="loading"
|
|
|
- :title="title"
|
|
|
+ :title="'添加咨询订单'"
|
|
|
:center="true"
|
|
|
align="left"
|
|
|
top="10vh"
|
|
@@ -19,82 +19,105 @@
|
|
|
<el-form
|
|
|
ref="ruleForm"
|
|
|
:model="ruleForm"
|
|
|
- status-icon
|
|
|
- :rules="rulesThis"
|
|
|
label-width="110px"
|
|
|
id="demo-ruleForm"
|
|
|
>
|
|
|
<el-row v-if="ruleForm !== null">
|
|
|
- <el-col v-for="item in columns" :key="item.prop" :span="item.col">
|
|
|
- <el-form-item :label="item.label + ':'">
|
|
|
- <div>{{ ruleForm[item.prop] }}{{ item.unit }}</div>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
+ <template v-for="item in columns">
|
|
|
+ <el-col
|
|
|
+ :key="item.prop"
|
|
|
+ :span="item.col"
|
|
|
+ v-if="ruleForm[item.prop]"
|
|
|
+ >
|
|
|
+ <el-form-item :label="item.label + ':'">
|
|
|
+ <div>{{ ruleForm[item.prop] }}{{ item.unit }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </template>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <!-- <el-form
|
|
|
- ref="ruleForm"
|
|
|
- :model="ruleForm"
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" style="padding: 20px 0 0 0">
|
|
|
+ <el-form
|
|
|
+ ref="addForm"
|
|
|
+ :model="addForm"
|
|
|
status-icon
|
|
|
:rules="rulesThis"
|
|
|
label-width="110px"
|
|
|
- class="demo-ruleForm"
|
|
|
+ class="demo-addForm"
|
|
|
>
|
|
|
- <el-form-item
|
|
|
- v-if="id === 'add' || isDetail"
|
|
|
- label="账号"
|
|
|
- prop="username"
|
|
|
- >
|
|
|
- <el-input v-model="ruleForm.username" :disabled="isDetail" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="真实姓名" prop="name">
|
|
|
- <el-input v-model="ruleForm.name" :disabled="isDetail" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="手机号" prop="mobile">
|
|
|
- <el-input v-model="ruleForm.mobile" :disabled="isDetail" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="所在部门" prop="itemid">
|
|
|
- <all-organize
|
|
|
- :value="ruleForm.itemid"
|
|
|
- :is-detail="isDetail"
|
|
|
- :disabled="isDetail"
|
|
|
- :multiple="true"
|
|
|
- :checkStrictly="true"
|
|
|
- :placeholder="'请选择所在部门'"
|
|
|
- @searchChange="itemidChange"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="邮箱" prop="email">
|
|
|
- <el-input v-model="ruleForm.email" :disabled="isDetail" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="角色" prop="role_id">
|
|
|
- <el-radio-group v-model="ruleForm.role_id" :disabled="isDetail">
|
|
|
- <el-radio
|
|
|
- v-for="item in roleList"
|
|
|
- :key="item.id"
|
|
|
- :label="item.id"
|
|
|
- :disabled="item.status !== '1'"
|
|
|
- >{{ item.role_name }}</el-radio
|
|
|
- >
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="状态" prop="status">
|
|
|
- <el-switch
|
|
|
- v-model="ruleForm.status"
|
|
|
- active-value="1"
|
|
|
- inactive-value="0"
|
|
|
- :disabled="isDetail"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-form> -->
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="销售方公司" prop="username">
|
|
|
+ <search-supplier
|
|
|
+ :value="addForm.username"
|
|
|
+ :placeholder="'入库公司名称'"
|
|
|
+ :disabled="false"
|
|
|
+ :isDetail="false"
|
|
|
+ @searchChange="supplierChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="发货类型" prop="name">
|
|
|
+ <el-select
|
|
|
+ v-model="addForm.name"
|
|
|
+ style="width: 100%"
|
|
|
+ placeholder="请选择发货类型"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="下单数量" prop="mobile">
|
|
|
+ <el-input v-model="addForm.mobile" placeholder="下单数量" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="是否特殊商品" prop="status">
|
|
|
+ <el-select
|
|
|
+ v-model="addForm.status"
|
|
|
+ style="width: 100%"
|
|
|
+ placeholder="请选择是否特殊商品"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in statusOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="下单备注" prop="itemid">
|
|
|
+ <el-input
|
|
|
+ v-model="addForm.itemid"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入备注"
|
|
|
+ :rows="3"
|
|
|
+ maxlength="300"
|
|
|
+ show-word-limit
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
</el-col>
|
|
|
+
|
|
|
<el-col :span="24" style="text-align: right">
|
|
|
- <el-button v-if="!isDetail" type="primary" @click="submitForm"
|
|
|
+ <el-button type="primary" :size="'mini'" @click="submitForm"
|
|
|
>保 存
|
|
|
</el-button>
|
|
|
- <el-button @click="showModelThis = false">{{
|
|
|
+ <el-button :size="'mini'" @click="showModelThis = false">{{
|
|
|
isDetail ? "关 闭" : "取 消"
|
|
|
}}</el-button>
|
|
|
</el-col>
|
|
@@ -107,12 +130,6 @@ import asyncRequest from "@/apis/service/sellOut/consultSheet";
|
|
|
import resToken from "@/mixins/resToken";
|
|
|
import {
|
|
|
isnumber,
|
|
|
- isMobile,
|
|
|
- validEmail,
|
|
|
- isAlphanumeric,
|
|
|
- isChinese,
|
|
|
- isEmoticon,
|
|
|
- validAlphabets,
|
|
|
} from "@/utils/validate";
|
|
|
import columns from "./columnsForm";
|
|
|
export default {
|
|
@@ -120,62 +137,12 @@ export default {
|
|
|
props: ["showModel", "id", "isDetail", "sitem"],
|
|
|
mixins: [resToken],
|
|
|
data() {
|
|
|
- const validateusername = (rule, value, callback) => {
|
|
|
- if (value === "") {
|
|
|
- callback(new Error("账号不能为空!"));
|
|
|
- } else {
|
|
|
- if (value.length < 6 || value.length > 18) {
|
|
|
- callback(new Error("账号规则为6~18位数字与字母组合!"));
|
|
|
- } else {
|
|
|
- if (isnumber(value)) {
|
|
|
- callback(new Error("账号规则为6~18位数字与字母组合!"));
|
|
|
- } else if (validAlphabets(value)) {
|
|
|
- callback(new Error("账号规则为6~18位数字与字母组合!"));
|
|
|
- } else if (!isAlphanumeric(value)) {
|
|
|
- callback(new Error("账号规则为6~18位数字与字母组合!"));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
- const validatename = (rule, value, callback) => {
|
|
|
+ const validateWeight = (rule, value, callback) => {
|
|
|
if (value === "") {
|
|
|
- callback(new Error("真实姓名不能为空!"));
|
|
|
+ callback(new Error("不能为空!"));
|
|
|
} else {
|
|
|
- if (value.length < 2 || value.length > 12) {
|
|
|
- callback(new Error("真实姓名规则为2~12位汉字!"));
|
|
|
- } else {
|
|
|
- if (!isChinese(value)) {
|
|
|
- console.log(9999);
|
|
|
- callback(new Error("真实姓名规则为2~12位汉字!"));
|
|
|
- } else if (isEmoticon(value)) {
|
|
|
- console.log(2345);
|
|
|
- callback(new Error("真实姓名规则为2~12位汉字!"));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
- const validatemobile = (rule, value, callback) => {
|
|
|
- if (value === "") {
|
|
|
- callback(new Error("手机号不能为空!"));
|
|
|
- } else {
|
|
|
- if (!isMobile(value)) {
|
|
|
- callback(new Error("手机号格式不正确!"));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- const validateEmail = (rule, value, callback) => {
|
|
|
- if (value === "") {
|
|
|
- callback();
|
|
|
- } else {
|
|
|
- if (!validEmail(value)) {
|
|
|
- callback(new Error("邮箱格式不正确!"));
|
|
|
+ if (!isnumber(value)) {
|
|
|
+ callback(new Error("仅支持整数!"));
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
@@ -188,65 +155,77 @@ export default {
|
|
|
organizeList: [],
|
|
|
columns: columns.addColumns,
|
|
|
showModelThis: this.showModel,
|
|
|
- ruleForm: {
|
|
|
- username: "", // 账号
|
|
|
+ ruleForm: null,
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ value: "1",
|
|
|
+ label: "直接发货",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "2",
|
|
|
+ label: "延迟发货",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ statusOptions: [
|
|
|
+ {
|
|
|
+ value: "1",
|
|
|
+ label: "否",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "2",
|
|
|
+ label: "赠品",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "3",
|
|
|
+ label: "样品",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ addForm: {
|
|
|
+ username: [], // 账号
|
|
|
name: "", // 真实姓名
|
|
|
mobile: "",
|
|
|
email: "",
|
|
|
role_id: "",
|
|
|
status: "1",
|
|
|
- itemid: [],
|
|
|
+ itemid: "",
|
|
|
},
|
|
|
rulesThis: this.rules,
|
|
|
rules: {
|
|
|
- name: [
|
|
|
+ username: [
|
|
|
{
|
|
|
+ type: "array",
|
|
|
required: true,
|
|
|
- validator: validatename,
|
|
|
- trigger: "blur",
|
|
|
+ message: "请选择销售方公司",
|
|
|
+ trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
- username: [
|
|
|
+ name: [
|
|
|
{
|
|
|
required: true,
|
|
|
- validator: validateusername,
|
|
|
- trigger: "blur",
|
|
|
+ message: "请选择发货类型",
|
|
|
+ trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
+
|
|
|
mobile: [
|
|
|
{
|
|
|
required: true,
|
|
|
- validator: validatemobile,
|
|
|
+ validator: validateWeight,
|
|
|
trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
- email: [
|
|
|
- {
|
|
|
- required: false,
|
|
|
- validator: validateEmail,
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- role_id: [
|
|
|
+ status: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "请选择角色",
|
|
|
+ message: "请选择是否特殊商品",
|
|
|
trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
itemid: [
|
|
|
{
|
|
|
- type: "array",
|
|
|
required: true,
|
|
|
- message: "请选择所在部门",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- status: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择状态",
|
|
|
- trigger: "change",
|
|
|
+ message: "请输入备注",
|
|
|
+ trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
@@ -269,13 +248,16 @@ export default {
|
|
|
closeModel() {
|
|
|
console.log("closeModel!!");
|
|
|
},
|
|
|
- itemidChange(e) {
|
|
|
- console.log(e);
|
|
|
- this.ruleForm.itemid = e;
|
|
|
- this.$refs.ruleForm.validateField("itemid");
|
|
|
+ async supplierChange(e) {
|
|
|
+ if (e && e.id) {
|
|
|
+ this.addForm.username = [e.code];
|
|
|
+ } else {
|
|
|
+ this.addForm.username = [];
|
|
|
+ }
|
|
|
+ this.$refs.addForm.validateField("username");
|
|
|
},
|
|
|
+
|
|
|
async initForm() {
|
|
|
- this.title = "添加咨询订单";
|
|
|
this.loading = true;
|
|
|
this.rulesThis = this.rules;
|
|
|
await this.resetForm();
|
|
@@ -286,6 +268,13 @@ export default {
|
|
|
const res = await asyncRequest.detail({ id: this.id });
|
|
|
if (res && res.code === 0 && res.data) {
|
|
|
this.ruleForm = res.data;
|
|
|
+ const { can } = res.data;
|
|
|
+ this.ruleForm.class_cat = "";
|
|
|
+ if (can && can.length > 0) {
|
|
|
+ can.forEach((x, i) => {
|
|
|
+ this.ruleForm.class_cat += i === 0 ? x.name : "/" + x.name;
|
|
|
+ });
|
|
|
+ }
|
|
|
this.ruleForm.mark_fee = this.setNum(this.ruleForm.mark_fee);
|
|
|
this.ruleForm.cert_fee = this.setNum(this.ruleForm.cert_fee);
|
|
|
this.ruleForm.package_fee = this.setNum(this.ruleForm.package_fee);
|
|
@@ -309,7 +298,20 @@ export default {
|
|
|
if (this.$refs.ruleForm) {
|
|
|
this.$refs.ruleForm.resetFields();
|
|
|
this.$refs.ruleForm.clearValidate();
|
|
|
- this.ruleForm =null
|
|
|
+ this.ruleForm = null;
|
|
|
+ }
|
|
|
+ if (this.$refs.addForm) {
|
|
|
+ this.$refs.addForm.resetFields();
|
|
|
+ this.$refs.addForm.clearValidate();
|
|
|
+ this.addForm = {
|
|
|
+ username: [],
|
|
|
+ name: "", // 真实姓名
|
|
|
+ mobile: "",
|
|
|
+ email: "",
|
|
|
+ role_id: "",
|
|
|
+ status: "1",
|
|
|
+ itemid: [],
|
|
|
+ };
|
|
|
}
|
|
|
});
|
|
|
},
|