Pārlūkot izejas kodu

联系人跟进动态调整,销售线索跟进调整

qymljy 3 nedēļas atpakaļ
vecāks
revīzija
46b2a7c8e0

+ 14 - 11
src/SManagement/orderclue_detail/components/contactPerson.vue

@@ -6,17 +6,20 @@
     <tableNewLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 426px)" :width="true" :custom="true" fixedName="operation" style="margin-top: 10px">
       <template v-slot:customcol="scope">
         <div v-if="scope.column.columnname === 'tag'">
-          <el-tag
-              v-for="item in scope.column.data.tag1"
-              :key="item.index"
-              color="#FA8C16"
-              size="mini"
-              type="warning"
-              effect="dark"
-              style="margin-right: 5px"
-          >
-            <span>{{ $t(item) }}</span>
-          </el-tag>
+          <div v-if="scope.column.data.tag1 && scope.column.data.tag1.length > 0">
+            <el-tag
+                v-for="item in scope.column.data.tag1"
+                :key="item.index"
+                color="#FA8C16"
+                size="mini"
+                type="warning"
+                effect="dark"
+                style="margin-right: 5px"
+            >
+              <span>{{ $t(item) }}</span>
+            </el-tag>
+          </div>
+          <div v-else>--</div>
         </div>
         <div v-else>
           {{$t(scope.column.data[[scope.column.columnname]]) || scope.column.columnname === 'operation'?$t(scope.column.data[[scope.column.columnname]]):'--'}}

+ 145 - 4
src/components/normal-basic-layout-new/details/modules/followUp/addLog.vue

@@ -4,6 +4,45 @@
     <el-drawer :title="$t(`新建跟进动态`)" size="600px" append-to-body :visible.sync="dialogFormVisible" @close="onClose">
       <div class="drawer__panel">
         <el-form :model="form" ref="form" label-position="top" :label-width="tool.onlyZh('80px')">
+          <el-form-item :label="$t(`关联线索`)" prop="sat_orderclueids">
+            <el-tag
+                style="float: left;margin-right: 5px;margin-bottom: 5px"
+                v-for="tag in clueTag"
+                :key="tag.rowindex + 1"
+                closable
+                @close="closeAssociationTag(tag,'线索')"
+                :type="tag.type">
+              {{$t(tag.enterprisename_customer)}}
+            </el-tag>
+            <tableDataAdd :tablecols="tool.tabelCol($route.name).selectClue.tablecols" btnTitle="添加" :param="paramClue" @onSelect="selectAssociation"
+                          :selectData="clueTag" type="线索"></tableDataAdd>
+          </el-form-item>
+          <el-form-item :label="$t(`关联客户`)" prop="sa_customersids">
+            <el-tag
+                style="float: left;margin-right: 5px;margin-bottom: 5px"
+                v-for="tag in customersTag"
+                :key="tag.rowindex + 2"
+                closable
+                @close="closeAssociationTag(tag,'客户')"
+                :type="tag.type">
+              {{$t(tag.enterprisename)}}
+            </el-tag>
+            <tableDataAdd :tablecols="tool.tabelCol($route.name).selectCustomers.tablecols" btnTitle="添加" :param="paramCustomers" @onSelect="selectAssociation"
+                          :selectData="customersTag" type="客户"></tableDataAdd>
+          </el-form-item>
+          <el-form-item :label="$t(`关联项目`)" prop="sa_projectids">
+            <el-tag
+                style="float: left;margin-right: 5px;margin-bottom: 5px"
+                v-for="tag in projectTag"
+                :key="tag.rowindex + 3"
+                closable
+                @close="closeAssociationTag(tag,'项目')"
+                :type="tag.type">
+              {{$t(tag.projectname)}}
+            </el-tag>
+            <tableDataAdd :tablecols="tool.tabelCol($route.name).selectProject.tablecols" btnTitle="添加" :param="paramProject" @onSelect="selectAssociation"
+                          :selectData="projectTag" type="项目"></tableDataAdd>
+          </el-form-item>
           <el-form-item v-if="$route.path === '/projectChangeDetail' || $route.path === '/customerDetail' || $route.path === '/PublicCustomerDetail' || $route.path === '/phonebookDetail'" :label="$t(`跟进类型`)" prop="type" :rules="{ required: true, message: $t('请选择跟进类型'), trigger: 'change'}">
             <el-select v-model="form.type" :placeholder="$t(`请选择`)" style="width: 100%">
               <el-option
@@ -68,12 +107,14 @@
 import upload from '@/components/upload/preview_upload.vue'
 import previewImage from '@/components/previewImage/index.vue'
 import contactsList from '@/template/projectChange/contactsList.vue'
+import tableDataAdd from '@/components/tableDataAdd/index'
 export default {
   props:['ownertable','status','ownerid'],
   components:{
     upload,
     previewImage,
-    contactsList
+    contactsList,
+    tableDataAdd
   },
   data () {
     return {
@@ -88,6 +129,9 @@ export default {
         target:'',//目的
         results:'',//结果
         nextplan:'',//下次跟进计划
+        sat_orderclueids: [],
+        sa_customersids: [],
+        sa_projectids: []
       },
       selectTag:[],
       bindData:{},
@@ -106,7 +150,45 @@ export default {
             condition:''
           }
         }
-      }
+      },
+      clueTag:[],
+      customersTag:[],
+      projectTag:[],
+      /*关联线索列表*/
+      paramClue:{
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          }
+        },
+        "id": 2025042409073602,
+      },
+      /*关联客户列表*/
+      paramCustomers:{
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          },
+          "nocache": true
+        },
+        "id": 2025042409074102,
+      },
+      /*关联项目*/
+      paramProject:{
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          },
+          "nocache": true
+        },
+        "id": 2025042409074702,
+      },
     }
   },
 
@@ -128,6 +210,17 @@ export default {
     },
     submitLog () {
       this.$refs.form.validate(async (valid)=>{
+        if (this.form.sa_customersids.length == 0 && this.form.sat_orderclueids.length == 0 && this.form.sa_projectids.length == 0){
+          this.$confirm('关联线索、关联客户、关联项目不可全部为空!', '提示', {
+            confirmButtonText: '确定',
+            showCancelButton:false,
+            showClose:false,
+            type: 'warning'
+          }).then(() => {
+
+          }).catch(() => {
+          });
+        }
         if (!valid) return false
         let resource = ''
         if (this.$route.path == '/phonebookDetail'){
@@ -146,9 +239,12 @@ export default {
             "results":this.form.results,//结果
             "nextplan":this.form.nextplan,//下次跟进计划
             "dataextend": {
-              "contactsid": this.form.dataextend.contactsid // 跟进对象
+              "contactsid": this.form.dataextend.contactsid, // 跟进对象
+              "sat_orderclueids":this.form.sat_orderclueids,
+              "sa_customersids":this.form.sa_customersids,
+              "sa_projectids":this.form.sa_projectids
             },
-            "resource":resource
+            "resource":resource,
           }
         })
         this.tool.showMessage(res,()=>{
@@ -192,7 +288,52 @@ export default {
       this.dialogFormVisible = false
       this.selectTag = []
       this.form.dataextend.contactsid = []
+      this.form.sa_projectids = []
+      this.form.sa_customersids = []
+      this.form.sat_orderclueids = []
+      this.clueTag = []
+      this.projectTag = []
+      this.customersTag = []
       this.$refs.form.resetFields()
+    },
+    closeAssociationTag(row,val){
+      if (val == '线索'){
+        for (var i=0;i<this.clueTag.length;i++){
+          if (row.sat_orderclueid === this.clueTag[i].sat_orderclueid){
+            this.clueTag.splice(i,1)
+            this.form.sat_orderclueids.splice(i,1)
+            break
+          }
+        }
+      }else if (val == '客户'){
+        for (var i=0;i<this.customersTag.length;i++){
+          if (row.sa_customersid === this.customersTag[i].sa_customersid){
+            this.customersTag.splice(i,1)
+            this.form.sa_customersids.splice(i,1)
+            break
+          }
+        }
+      }else if (val == '项目'){
+        for (var i=0;i<this.projectTag.length;i++){
+          if (row.sa_projectid === this.projectTag[i].sa_projectid){
+            this.projectTag.splice(i,1)
+            this.form.sa_projectids.splice(i,1)
+            break
+          }
+        }
+      }
+    },
+    selectAssociation(val,type){
+      if (type == '线索'){
+        this.clueTag = val
+        this.form.sat_orderclueids = val.map(item=>item.sat_orderclueid)
+      }else if (type == '客户'){
+        this.customersTag = val
+        this.form.sa_customersids = val.map(item=>item.sa_customersid)
+      }else if (type == '项目'){
+        this.projectTag = val
+        this.form.sa_projectids = val.map(item=>item.sa_projectid)
+      }
     }
   }
 }

+ 141 - 4
src/components/normal-basic-layout-new/details/modules/followUp/editLog.vue

@@ -7,6 +7,45 @@
     <el-drawer :title="$t(`编辑跟进动态`)" size="600px" append-to-body :visible.sync="dialogFormVisible" @close="onClose">
       <div class="drawer__panel">
         <el-form ref="form" :model="form" label-position="top" :label-width="tool.onlyZh('80px')">
+          <el-form-item :label="$t(`关联线索`)" prop="sat_orderclueids">
+            <el-tag
+                style="float: left;margin-right: 5px;margin-bottom: 5px"
+                v-for="tag in clueTag"
+                :key="tag.rowindex + 1"
+                closable
+                @close="closeAssociationTag(tag,'线索')"
+                :type="tag.type">
+              {{$t(tag.enterprisename)}}
+            </el-tag>
+            <tableDataAdd :tablecols="tool.tabelCol($route.name).selectClue.tablecols" btnTitle="添加" :param="paramClue" @onSelect="selectAssociation"
+                          :selectData="clueTag" type="线索" :isEdit="true"></tableDataAdd>
+          </el-form-item>
+          <el-form-item :label="$t(`关联客户`)" prop="sa_customersids">
+            <el-tag
+                style="float: left;margin-right: 5px;margin-bottom: 5px"
+                v-for="tag in customersTag"
+                :key="tag.rowindex + 2"
+                closable
+                @close="closeAssociationTag(tag,'客户')"
+                :type="tag.type">
+              {{$t(tag.name)}}
+            </el-tag>
+            <tableDataAdd :tablecols="tool.tabelCol($route.name).selectCustomers.tablecols" btnTitle="添加" :param="paramCustomers" @onSelect="selectAssociation"
+                          :selectData="customersTag" type="客户" :isEdit="true"></tableDataAdd>
+          </el-form-item>
+          <el-form-item :label="$t(`关联项目`)" prop="sa_projectids">
+            <el-tag
+                style="float: left;margin-right: 5px;margin-bottom: 5px"
+                v-for="tag in projectTag"
+                :key="tag.rowindex + 3"
+                closable
+                @close="closeAssociationTag(tag,'项目')"
+                :type="tag.type">
+              {{$t(tag.projectname)}}
+            </el-tag>
+            <tableDataAdd :tablecols="tool.tabelCol($route.name).selectProject.tablecols" btnTitle="添加" :param="paramProject" @onSelect="selectAssociation"
+                          :selectData="projectTag" type="项目" :isEdit="true"></tableDataAdd>
+          </el-form-item>
           <el-form-item v-if="$route.path === '/projectChangeDetail' || $route.path === '/customerDetail' || $route.path === '/PublicCustomerDetail' || $route.path === '/phonebookDetail'" :label="$t(`跟进类型`)" prop="type" :rules="{ required: true, message: $t('请选择跟进类型'), trigger: 'change'}">
             <el-select v-model="form.type" :placeholder="$t(`请选择`)" style="width: 100%">
               <el-option
@@ -76,12 +115,14 @@
 import upload from '@/components/upload/hw_obs_upload.vue'
 import previewImage from '@/components/previewImage/index.vue'
 import contactsList from '@/template/projectChange/contactsList.vue'
+import tableDataAdd from '@/components/tableDataAdd/index'
 export default {
   props:['data','ownertable','status','ownerid','disabled','isOperation'],
   components:{
     upload,
     previewImage,
-    contactsList
+    contactsList,
+    tableDataAdd
   },
   data () {
     return {
@@ -92,13 +133,54 @@ export default {
         content:'',
         type:'',
         dataextend: {
-          contactsid: [] // 跟进对象
+          contactsid: [], // 跟进对象
+          sat_orderclueids: [],
+          sa_customersids: [],
+          sa_projectids: []
         }//扩展参数
       },
       followUpType:[],
       selectTag:[],
       folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
-      attachmentids:[]
+      attachmentids:[],
+      clueTag:[],
+      customersTag:[],
+      projectTag:[],
+      /*关联线索列表*/
+      paramClue:{
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          }
+        },
+        "id": 2025042409073602,
+      },
+      /*关联客户列表*/
+      paramCustomers:{
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          },
+          "nocache": true
+        },
+        "id": 2025042409074102,
+      },
+      /*关联项目*/
+      paramProject:{
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          },
+          "nocache": true
+        },
+        "id": 2025042409074702,
+      },
     }
   },
 
@@ -107,6 +189,9 @@ export default {
       this.form = Object.assign({},this.form,this.data)
       console.log(this.form,'表单数据')
       this.selectTag = this.form.contacts
+      this.clueTag = this.data.sat_orderclue
+      this.customersTag = this.data.sa_customers
+      this.projectTag = this.data.sa_project
       this.queryFollowUpType()
     },
     /*获取跟进类型*/
@@ -142,7 +227,10 @@ export default {
             "results":this.form.results,//结果
             "nextplan":this.form.nextplan,//下次跟进计划
             "dataextend": {
-              "contactsid": this.form.dataextend.contactsid // 跟进对象
+              "contactsid": this.form.dataextend.contactsid, // 跟进对象
+              "sat_orderclueids":this.form.dataextend.sat_orderclueids,
+              "sa_customersids":this.form.dataextend.sa_customersids,
+              "sa_projectids":this.form.dataextend.sa_projectids
             },
             "resource":resource
           }
@@ -210,6 +298,55 @@ export default {
       this.selectTag = []
       this.form.dataextend.contactsid = []
       this.$refs.form.resetFields()
+    },
+    closeAssociationTag(row,val){
+      if (val == '线索'){
+        this.form.dataextend.sat_orderclueids = []
+        for (var i=0;i<this.clueTag.length;i++){
+          if (row.sat_orderclueid == this.clueTag[i].sat_orderclueid){
+            this.clueTag.splice(i,1)
+            // this.form.dataextend.sat_orderclueids.splice(i,1)
+            console.log(this.clueTag)
+            console.log(this.form.dataextend.sat_orderclueids)
+            break
+          }
+        }
+        this.form.dataextend.sat_orderclueids = this.clueTag.map(item=>item.sat_orderclueid)
+      }else if (val == '客户'){
+        this.form.dataextend.sa_customersids = []
+        for (var i=0;i<this.customersTag.length;i++){
+          if (row.sa_customersid == this.customersTag[i].sa_customersid){
+            this.customersTag.splice(i,1)
+            // this.form.dataextend.sa_customersids.splice(i,1)
+            break
+          }
+        }
+        this.form.dataextend.sa_customersids = val.map(item=>item.sa_customersid)
+      }else if (val == '项目'){
+        this.form.dataextend.sa_projectids = []
+        for (var i=0;i<this.projectTag.length;i++){
+          if (row.sa_projectid == this.projectTag[i].sa_projectid){
+            this.projectTag.splice(i,1)
+            // this.form.dataextend.sa_projectids.splice(i,1)
+            break
+          }
+        }
+        this.form.dataextend.sa_projectids = val.map(item=>item.sa_projectid)
+      }
+    },
+    selectAssociation(val,type){
+      console.log(val)
+      if (type == '线索'){
+        this.clueTag = val
+        this.form.dataextend.sat_orderclueids = val.map(item=>item.sat_orderclueid)
+      }else if (type == '客户'){
+        this.customersTag = val
+        this.form.dataextend.sa_customersids = val.map(item=>item.sa_customersid)
+      }else if (type == '项目'){
+        this.projectTag = val
+        this.form.dataextend.sa_projectids = val.map(item=>item.sa_projectid)
+      }
+      console.log(this.clueTag,'clueTag')
     }
   }
 }

+ 114 - 13
src/components/tableDataAdd/index.vue

@@ -48,6 +48,44 @@
             </span>
             <div v-else>--</div>
           </div>
+          <div v-else-if="scope.column.columnname === 'leader'">
+            <div v-if="scope.column.data[scope.column.columnname] && scope.column.data[scope.column.columnname].length > 0">
+              {{scope.column.data[scope.column.columnname][0].name}}
+            </div>
+            <div v-else>--</div>
+          </div>
+          <div v-else-if="scope.column.columnname == 'status'">
+            <div v-if="type == '项目'" :style="scope.column.data[[scope.column.columnname]] == '跟进中'?'color:#3874f6':tool.getStatusColor(scope.column.data[[scope.column.columnname]])">
+              {{$t(scope.column.data[[scope.column.columnname]])}}</div>
+            <div v-else :style="tool.getStatusColor(scope.column.data[[scope.column.columnname]])">{{
+                 $t(scope.column.data[[scope.column.columnname]])
+               }}</div>
+          </div>
+          <div v-else-if="scope.column.columnname == 'province'">
+            <span v-if="scope.column.data.province.length > 0"
+            >{{ scope.column.data.province }}-{{
+                scope.column.data.city
+              }}-{{ scope.column.data.county }}</span
+            >
+              <span v-else>--</span>
+          </div>
+          <div v-else-if="scope.column.columnname === 'tradingstatus'">
+          <span
+              :style="tool.getStatusColor(scope.column.data[[scope.column.columnname]])"
+          >{{
+              $t(scope.column.data[[scope.column.columnname]])
+            }}</span
+          >
+          </div>
+          <div v-else-if="scope.column.columnname === 'projecttype'">
+            {{$t(scope.column.data.projecttype) + '-' + $t(scope.column.data.projecttype_remarks)}}
+          </div>
+          <div v-else-if="scope.column.columnname == 'signamount_due'">
+            <span>{{scope.column.data[[scope.column.columnname]] ?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):'--'}}</span>
+          </div>
+          <div v-else-if="scope.column.columnname == 'address'">
+            <div>{{scope.column.data.address || scope.column.data.province?scope.column.data.province+scope.column.data.city+scope.column.data.county+scope.column.data.address:'--'}}</div>
+          </div>
           <p v-else>{{scope.column.data[scope.column.columnname]?$t(scope.column.data[scope.column.columnname]):'--'}}</p>
         </template>
       </tableList>
@@ -69,10 +107,10 @@
 </template>
 
 <script>
-import tableList from '@/components/table/index5';
+import tableList from './table1';
 export default {
   name: "index",
-  props:["tablecols","btnTitle","param",'selectData'],
+  props:["tablecols","btnTitle","param",'selectData','type','isEdit'],
   components:{tableList},
   data(){
     return {
@@ -86,6 +124,9 @@ export default {
   methods:{
     onShow(){
       // this.popoverShow = true
+      this.param.content.where.condition = ''
+      this.param.content.pageNumber = 1
+      this.select = []
       this.listData()
     },
     async listData(){
@@ -93,22 +134,82 @@ export default {
       this.list = res.data
       this.total = res.total
       this.currentPage = res.pageNumber
-      console.log(this.selectData,'selectData')
-      this.selectData.forEach(item=>{
-        this.list.forEach((k,index)=>{
-          if (item.sys_enterpriseid == k.sys_enterpriseid){
-            this.list.splice(index,1)
-          }
-        })
-      })
-      console.log(this.list,'列表数据')
+      if (this.selectData && this.selectData.length > 0){
+        if (this.type == '线索'){
+          this.selectData.forEach(item=>{
+            this.list.forEach((k,index)=>{
+              if (item.sat_orderclueid == k.sat_orderclueid){
+                this.list.splice(index,1)
+              }
+            })
+          })
+        }else if (this.type == '客户'){
+          this.selectData.forEach(item=>{
+            this.list.forEach((k,index)=>{
+              if (item.sa_customersid == k.sa_customersid){
+                this.list.splice(index,1)
+              }
+            })
+          })
+        }else if (this.type == '项目'){
+          this.selectData.forEach(item=>{
+            this.list.forEach((k,index)=>{
+              if (item.sa_projectid == k.sa_projectid){
+                this.list.splice(index,1)
+              }
+            })
+          })
+        }else {
+          this.selectData.forEach(item=>{
+            this.list.forEach((k,index)=>{
+              if (item.sys_enterpriseid == k.sys_enterpriseid){
+                this.list.splice(index,1)
+              }
+            })
+          })
+        }
+
+      }
     },
     selectionChange(row){
-      this.select = [...row,...this.selectData]
+      this.select = row
     },
     onSelect(){
+      if (this.isEdit){
+        if (this.type == '线索'){
+          let rowNew = []
+          rowNew = this.select.map(item=>{
+            return {
+              enterprisename:item.enterprisename_customer,
+              sat_orderclueid:item.sat_orderclueid
+            }
+          })
+          this.select = [...rowNew,...this.selectData]
+        }else if (this.type == '客户'){
+          let rowNew = []
+          rowNew = this.select.map(item=>{
+            return {
+              name:item.enterprisename,
+              sa_customersid:item.sa_customersid,
+              sys_enterpriseid:item.sys_enterpriseid
+            }
+          })
+          this.select = [...rowNew,...this.selectData]
+        }else if (this.type == '项目'){
+          let rowNew = []
+          rowNew = this.select.map(item=>{
+            return {
+              projectname:item.projectname,
+              sa_projectid:item.sa_projectid
+            }
+          })
+          this.select = [...rowNew,...this.selectData]
+        }
+      }else {
+        this.select = [...this.select,...this.selectData]
+      }
       this.popoverShow = false
-      this.$emit('onSelect',this.select)
+      this.$emit('onSelect',this.select,this.type)
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);

+ 72 - 0
src/components/tableDataAdd/table1.vue

@@ -0,0 +1,72 @@
+<template>
+  <div>
+    <!-- :header-cell-style="{background:'#EEEEEE',color:'#333'}" -->
+    <el-table ref="table" :fit="tool.calculatedColumnWidth($refs.table,layout)" :row-class-name="tableClassName" highlight-current-row :data="data"  size="mini"  :height="height ==''?data.length <= 4?'260px':data.length <= 20?'441px':'441px':height"  @row-click="rowClick"
+              style="width:100%;" :header-cell-style="{height:'40px',color:'#606266',fontWeight:'400',fontSize:'14px'}" tooltip-effect="dark"
+              :cell-style="{height:'40px',color:'#666666',fontWeight:'400'}" border @selection-change="selectionChange" v-loading="loading">
+      <el-table-column
+          type="selection"
+          width="35" fixed v-if="checkbox">
+      </el-table-column>
+      <el-table-column  v-for="(col,index) in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :min-width="col.width || 150" :fixed="fixedName ? fixedName.indexOf(col.columnname)!= -1?'right':false : false">
+        <template :slot="headerOptions ? headerOptions.includes(col.columnname) ? 'header' : '' : ''" slot-scope="scope">
+          <slot name="header" :column="{data:scope.row,columnname:col.columnname}"></slot>
+        </template>
+        <template slot-scope="scope">
+          <div class="table-panel">
+            <!-- 自定义表格显示内容 -->
+            <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>
+            <!-- 否则就是默认 -->
+            <span v-else>{{scope.row[col.columnname]}}</span>
+            <!-- 操作结构内容 -->
+            <slot v-if="col.columnname === 'operation'" name="opreation" :data="scope.row"></slot>
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex"
+export default {
+  /*
+    layout:表结构数据;
+    data:表渲染数据;
+    custom:是否启用自定义结构;
+    opwidth:操作列宽度
+  */
+  props:['layout','data','custom','height','fixedName','width','checkbox','headerOptions'],
+  data () {
+    return {
+      list:[],
+      allArr:[],
+    }
+  },
+  computed:{
+    ...mapGetters({
+      loading:'loading'
+    })
+  },
+  methods:{
+    rowClick (row) {
+      this.$emit('rowClick',row)
+    },
+    tableClassName ({row,rowIndex}) {
+      row.index = rowIndex
+    },
+    selectionChange(row){
+      this.allArr = row
+      this.$emit('selectionChange',row)
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+.el-tooltip__popper {
+  max-width: 90%;
+}
+</style>

+ 41 - 14
src/template/projectChange/contactsList.vue

@@ -22,19 +22,38 @@
       >
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname === 'tag'">
-            <div v-if="scope.column.data.tag_sys.length > 0 || scope.column.data.tag.length > 0">
-              <div v-for="item in scope.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
-                <el-tag  color="#3874F6" size="mini" type="primary" effect="dark">
-                  <span>{{$t(item)}}</span>
+            <div v-if="$route.path === '/orderclue_detail'">
+              <div v-if="scope.column.data.tag1 && scope.column.data.tag1.length > 0">
+                <el-tag
+                    v-for="item in scope.column.data.tag1"
+                    :key="item.index"
+                    color="#FA8C16"
+                    size="mini"
+                    type="warning"
+                    effect="dark"
+                    style="margin-right: 5px"
+                >
+                  <span>{{ $t(item) }}</span>
                 </el-tag>
               </div>
-              <div v-for="item in scope.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
-                <el-tag color="#FA8C16" size="mini" type="warning" effect="dark">
-                  <span>{{$t(item)}}</span>
-                </el-tag>
+              <div v-else>--</div>
+            </div>
+            <div v-else>
+              <div v-if="scope.column.data.tag_sys.length > 0 || scope.column.data.tag.length > 0">
+                <div v-for="item in scope.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+                  <el-tag  color="#3874F6" size="mini" type="primary" effect="dark">
+                    <span>{{$t(item)}}</span>
+                  </el-tag>
+                </div>
+                <div v-for="item in scope.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+                  <el-tag color="#FA8C16" size="mini" type="warning" effect="dark">
+                    <span>{{$t(item)}}</span>
+                  </el-tag>
+                </div>
               </div>
+              <p v-else>--</p>
             </div>
-            <p v-else>--</p>
+
           </div>
           <p v-else>{{scope.column.data[scope.column.columnname]?$t(scope.column.data[scope.column.columnname]):'--'}}</p>
         </template>
@@ -79,6 +98,7 @@ export default {
           "pageSize": 999,
           "sa_customersid":'',
           "sa_projectid":'',
+          "sat_orderclueid":'',
           "nocache":true,
           "where": {
             "condition": "",
@@ -96,6 +116,7 @@ export default {
       this.listData()
     },
     async listData(){
+      console.log(this.$route.path,'path数据')
       if (this.$route.path === '/projectChangeDetail'){
         this.param.id = 20221111131004
         this.param.content.sa_projectid = this.$route.query.id
@@ -106,16 +127,22 @@ export default {
         this.param.content.sa_customersid = this.$route.query.id
         this.tagParam.content.sys_systemtagid = '16'
         this.queryTags()
+      }else if (this.$route.path === '/orderclue_detail'){
+        this.param.id = 2025042110014402
+        this.param.content.sat_orderclueid = this.$route.query.id
+        this.queryTags()
       }
       const res = await this.$api.requested(this.param)
       this.list = res.data
       this.total = res.total
       this.$nextTick(()=>{
-        for (var i=0;i<this.selects.length;i++){
-          for (var k=0;k<this.list.length;k++){
-            if (this.selects[i] === this.list[k].contactsid){
-              this.$refs.table.$refs.table.toggleRowSelection(this.list[k])
-              break
+        if (this.selects && this.selects.length > 0){
+          for (var i=0;i<this.selects.length;i++){
+            for (var k=0;k<this.list.length;k++){
+              if (this.selects[i] === this.list[k].contactsid){
+                this.$refs.table.$refs.table.toggleRowSelection(this.list[k])
+                break
+              }
             }
           }
         }