Преглед изворни кода

客户管理添加 多选客户来源

xgb пре 1 дан
родитељ
комит
8b84c21a05

+ 1 - 1
src/views/crm/components/CustomerSelect.vue

@@ -107,7 +107,7 @@
         <el-table-column label="标签" align="center" prop="tags" width="100" show-overflow-tooltip="true"/>
         <el-table-column  label="客户来源" align="center" prop="source">
           <template slot-scope="scope">
-            <el-tag prop="source" v-for="(item, index) in sourceOptions"  :key="'source'+index"    v-if="scope.row.source==item.dictValue">{{item.dictLabel}}</el-tag>
+            <el-tag prop="source" v-for="(item, index) in sourceOptions"  :key="'source'+index"    v-if="scope.row.crmSource && (','+scope.row.crmSource+',').indexOf(','+item.dictValue+',') !== -1">{{item.dictLabel}}</el-tag>
           </template>
         </el-table-column>
 

+ 1 - 1
src/views/crm/components/customerDetails.vue

@@ -37,7 +37,7 @@
             </el-descriptions-item>
             <el-descriptions-item label="客户来源" >
                 <span v-if="item!=null">
-                    <el-tag  v-for="(dict, index) in sourceOptions"    v-if="item.source==dict.dictValue">{{dict.dictLabel}}</el-tag>
+                    <el-tag  v-for="(dict, index) in sourceOptions"    v-if="item.crmSource && (','+item.crmSource+',').indexOf(','+dict.dictValue+',') !== -1">{{dict.dictLabel}}</el-tag>
                 </span>
             </el-descriptions-item>
             <el-descriptions-item label="客户类型" >

+ 12 - 7
src/views/crm/components/editCustomerSource.vue

@@ -4,8 +4,8 @@
             <el-form-item label="客户数量" >
                 {{ids.length}}个
             </el-form-item>
-            <el-form-item label="客户来源" prop="source">
-                <el-select v-model="form.source" placeholder="请选择客户来源" clearable size="small">
+            <el-form-item label="客户来源" prop="sourceArr">
+                <el-select multiple v-model="form.sourceArr" placeholder="请选择客户来源" clearable size="small">
                     <el-option
                         v-for="item in sourceOptions"
                         :key="item.dictValue"
@@ -28,13 +28,15 @@ export default {
         name: "customerVisit",
         data() {
             return {
-                sourceOptions:[],
-                ids:[],
-                // 表单参数
-                form: {},
+                    sourceOptions:[],
+                    ids:[],
+                    // 表单参数
+                    form: {
+                        sourceArr: [],
+                    },
                 // 表单校验
                 rules: {
-                    source: [
+                    sourceArr: [
                     { required: true, message: "客户来源不能为空", trigger: "blur" }
                     ],
                 }
@@ -60,6 +62,9 @@ export default {
                 this.$refs["form"].validate(valid => {
                     if (valid) {
                         this.form.ids=this.ids.toString();
+                        if(this.form.sourceArr && this.form.sourceArr.length>0){
+                            this.form.crmSource=this.form.sourceArr.join(",");
+                        }
                         updateCustomerSource(this.form).then(response => {
                             if (response.code === 200) {
                                 this.msgSuccess("修改成功");

+ 12 - 6
src/views/crm/customer/index.vue

@@ -159,7 +159,7 @@
       <el-table-column label="标签" align="center" prop="tags" />
       <el-table-column  label="客户来源" align="center" prop="source">
         <template slot-scope="scope">
-            <el-tag prop="source" v-for="(item, index) in sourceOptions"  :key="'source'+index"    v-if="scope.row.source==item.dictValue">{{item.dictLabel}}</el-tag>
+            <el-tag prop="source" v-for="(item, index) in sourceOptions"  :key="'source'+index"    v-if="scope.row.crmSource && (','+scope.row.crmSource+',').indexOf(','+item.dictValue+',') !== -1">{{item.dictLabel}}</el-tag>
         </template>
       </el-table-column>
 
@@ -247,8 +247,8 @@
         <el-form-item label="详细地址" prop="detailAddress">
           <el-input v-model="form.detailAddress" placeholder="请输入详细地址" />
         </el-form-item>
-        <el-form-item label="客户来源" prop="source">
-          <el-select v-model="form.source" placeholder="请选择客户来源" clearable size="small">
+        <el-form-item label="客户来源" prop="sourceArr">
+          <el-select multiple v-model="form.sourceArr" placeholder="请选择客户来源" clearable size="small">
             <el-option
                   v-for="item in sourceOptions"
                   :key="item.dictValue"
@@ -422,7 +422,7 @@ export default {
         // sex: [
         //   { required: true, message: "性别不能为空", trigger: "blur" }
         // ],
-        source: [
+        sourceArr: [
           { required: true, message: "客户来源不能为空", trigger: "blur" }
         ],
       }
@@ -581,6 +581,7 @@ export default {
         companyId: null,
         isLine: null,
         source: null,
+        sourceArr: [],
         tags: null
       };
       this.tags=[];
@@ -629,8 +630,10 @@ export default {
         if(this.form.sex!=null){
           this.form.sex = this.form.sex.toString();
         }
-        if(this.form.source!=null){
-          this.form.source = this.form.source.toString();
+        if(this.form.crmSource!=null){
+          this.$set(this.form, 'sourceArr', this.form.crmSource.split(","));
+        } else {
+          this.$set(this.form, 'sourceArr', []);
         }
         if(this.form.tags!=null){
           this.tags = this.form.tags.split(",")
@@ -651,6 +654,9 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if(this.form.sourceArr && this.form.sourceArr.length>0){
+            this.form.crmSource=this.form.sourceArr.join(",");
+          }
           if (this.form.customerId != null) {
             updateCustomer(this.form).then(response => {
               if (response.code === 200) {

+ 14 - 6
src/views/crm/customer/line.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="客户编号" prop="customerCode">
+      <el-form-item label="客户编号1111" prop="customerCode">
         <el-input
           v-model="queryParams.customerCode"
           placeholder="请输入客户编号"
@@ -143,7 +143,7 @@
       <el-table-column width="105" label="创建时间" align="center" prop="createTime" />
       <el-table-column  label="客户来源" align="center" prop="source">
         <template slot-scope="scope">
-            <el-tag prop="source" v-for="(item, index) in sourceOptions"   v-if="scope.row.source==item.dictValue">{{item.dictLabel}}</el-tag>
+            <el-tag prop="source" v-for="(item, index) in sourceOptions"   v-if="scope.row.crmSource && (','+scope.row.crmSource+',').indexOf(','+item.dictValue+',') !== -1">{{item.dictLabel}}</el-tag>
         </template>
       </el-table-column>
       <el-table-column label="流量来源" align="center" prop="trafficSource" />
@@ -211,8 +211,8 @@
         <el-form-item label="详细地址" prop="detailAddress">
           <el-input v-model="form.detailAddress" placeholder="请输入详细地址" />
         </el-form-item>
-        <el-form-item label="客户来源" prop="source">
-          <el-select v-model="form.source" placeholder="请选择客户来源" clearable size="small">
+        <el-form-item label="客户来源" prop="sourceArr">
+          <el-select multiple v-model="form.sourceArr" placeholder="请选择客户来源" clearable size="small">
             <el-option
                   v-for="item in sourceOptions"
                   :key="item.dictValue"
@@ -441,7 +441,7 @@ export default {
         mobile: [
           { required: true, message: "手机号不能为空", trigger: "blur" }
         ],
-        source: [
+        sourceArr: [
           { required: true, message: "客户来源不能为空", trigger: "blur" }
         ],
       }
@@ -581,6 +581,7 @@ export default {
         companyId: null,
         isLine: null,
         source: null,
+        sourceArr: [],
         tags: null
       };
       this.tags=[];
@@ -667,7 +668,11 @@ export default {
       getLineCustomer(customerId).then(response => {
         this.form = response.data;
         this.form.sex = response.data.sex.toString();
-        this.form.source = response.data.source.toString();
+        if(response.data.crmSource!=null){
+          this.$set(this.form, 'sourceArr', response.data.crmSource.split(","));
+        } else {
+          this.$set(this.form, 'sourceArr', []);
+        }
         if(this.form.tags!=null){
           this.tags = this.form.tags.split(",")
         }
@@ -687,6 +692,9 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if(this.form.sourceArr && this.form.sourceArr.length>0){
+            this.form.crmSource=this.form.sourceArr.join(",");
+          }
           if (this.form.customerId != null) {
             updateLineCustomer(this.form).then(response => {
               if (response.code === 200) {