Browse Source

2023-7-19

codeMan 2 years ago
parent
commit
932242c0e8

+ 77 - 13
src/HDrpManagement/customerPortrait/index.vue

@@ -13,19 +13,21 @@
       <div slot="custom" style="display:flex;flex-wrap:wrap">
         <div class="mt-10">
           <label  class="search__label">部门:</label>
-          <el-select class="inline-24" v-model="form.dep" size="small" placeholder="请选择部门" clearable @change="depChange">
-            <el-option
-                v-for="item in selectList.dep"
-                :key="item.departmentid"
-                :label="item.depname"
-                :value="item.departmentid"
-            ></el-option>
-          </el-select>
+          <el-cascader 
+            class="inline-24"
+            ref="selectdep" 
+            size="small" 
+            v-model="form.dep" 
+            :options="selectList.dep" 
+            :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  
+            @change="depChange"  
+            clearable
+          ></el-cascader>
         </div>
 
         <div class="mt-10">
           <label  class="search__label" >人员:</label>
-          <el-select class="inline-24" v-model="form.people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
+          <el-select class="inline-24" filterable v-model="form.people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
             <el-option
                 v-for="item in selectList.hr"
                 :key="item.userid"
@@ -111,11 +113,21 @@
         <div v-else-if="scope.data.column.columnname === 'industry'">
           <el-tag v-for="(item,index) in scope.data.column.data.industry" size="mini" style="margin-right:10px" :key="index">{{ item }}</el-tag>
         </div>
+        <div v-else-if="scope.data.column.columnname === 'tradingstatus'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '未成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '多次成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'status'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '潜在'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '合作中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已终止'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
         <div v-else-if="scope.data.column.columnname === 'grade'">
           {{ grade(scope.data.column.data.grade) }}
         </div>
         <div v-else-if="scope.data.column.columnname === 'leader'">
-          {{ scope.data.column.data.leader[0] && scope.data.column.data.leader[0].name }}
+          {{ scope.data.column.data.name }}
         </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
@@ -246,6 +258,57 @@ export default {
     }
   },
   methods:{
+    createMenu (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        // 新节点
+        if (node.subdep.length === 0){
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+          }
+        }else {
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+            children: []
+          }
+        }
+        if (node.subdep && node.subdep.length > 0) {
+          // 如果存在子节点
+          for (var index = 0; index < node.subdep.length; index++) {
+            // 遍历子节点, 把每个子节点看做一颗独立的树, 传入递归构造子树, 并把结果放回到新node的children中
+            elNode.children.push(convertToElementTree(node.subdep[index]));
+          }
+        }
+        return elNode;
+      }
+      array.forEach((element) => {
+        arr.push(convertToElementTree(element))
+      });
+      return arr
+    },
     listCreate (param) {
       console.log(param);
       param.content.type = ''
@@ -272,7 +335,8 @@ export default {
         "content": {
         }
       })
-      this.selectList = res.data
+      this.selectList = res.data 
+      this.selectList.dep = this.createMenu(res.data.dep)
       console.log(this.selectList,'范围选择数据');
     },
     selectChange () {
@@ -284,10 +348,10 @@ export default {
       this.$refs.list.param.content.where.enddate = this.dateSelect[1]
       this.$refs.list.listData()
     },
-    depChange(){
+    depChange(val){
       this.form.people = ''
       this.$refs.list.param.content.type = 1
-      this.$refs.list.param.content.dataid = this.form.dep
+      this.$refs.list.param.content.dataid = val[val.length - 1]
       this.$refs.list.listData()
     },
     peopleChange(){

+ 18 - 5
src/HDrpManagement/customerPortrait/modules/detail.vue

@@ -156,7 +156,17 @@
               ref="baojiadan"
               :tablecols="tool.tabelCol($route.name).quotedPriceTable.tablecols"
               :param="param3"
-            ></pageTable>
+              :custom="true"
+            >
+            <template v-slot:custom="scope">
+              <div v-if="scope.data.columnname == 'specialoffer'">
+                {{ scope.data.data.specialoffer ? '是' : '否' }}
+              </div>
+              <div v-else>
+                {{ scope.data.data[scope.data.columnname] }}
+              </div>
+            </template>
+            </pageTable>
             </showIsNone>
           </el-card>
         </div>
@@ -182,6 +192,8 @@
                 {title:'进行中项目金额',value:tool.formatAmount($refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].inProgressAmount || '0'),bg:'#F9F2E5',color:'#FF7603'},
                 {title:'到期项目合同数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].expireQty,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'到期项目合同金额',value:tool.formatAmount($refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].expireAmount || '0'),bg:'#E8F7EC',color:'#78B32B'},
+                {title:'转订单合同数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].convertOrderContractQty,bg:'#F9F2E5',color:'#FF7603'},
+                {title:'转订单金额',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].convertOrderContractAmount,bg:'#F3F9FC',color:'#3874F6'},
               ]"
             ></myCard>
             <showIsNone title="合同明细">
@@ -211,10 +223,10 @@
               [
                 {title:'订单数量',value:$refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allOrderQty,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'订单总金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allAmount || '0'),bg:'#E8F7EC',color:'#78B32B'},
-                {title:'回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].cashbillAmount || '0'),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'未出货金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allunAmount || '0'),bg:'#FDF3F3',color:'#E85B5B'},
-                {title:'未开票金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].uninvoicamount || '0'),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'未回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].unwriteoffamount || '0'),bg:'#FDF3F3',color:'#E85B5B'},
+                {title:'订单回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].cashbillAmount || '0'),bg:'#F9F2E5',color:'#FF7603'},
+                {title:'订单未出货金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allunAmount || '0'),bg:'#FDF3F3',color:'#E85B5B'},
+                {title:'已出货未开票金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].uninvoicamount || '0'),bg:'#F9F2E5',color:'#FF7603'},
+                {title:'已开票未回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].unwriteoffamount || '0'),bg:'#FDF3F3',color:'#E85B5B'},
                 {title:'参与项目订单金额',descript:'参与项目订单金额:客户参与的项目的订单金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].joinOrderAmount || '0'),bg:'#F3F9FC',color:'#3874F6'},
               ]"
             ></myCard>
@@ -549,6 +561,7 @@ export default {
 .Mcontainer .Mcontainer-header .Mcontainer-header__left {
   display: flex;
   max-width: 350px;
+  min-width: 350px;
   align-items: center;
   padding-right: 20px;
 }

+ 73 - 13
src/HDrpManagement/projectPortrait/index.vue

@@ -13,19 +13,21 @@
       <div slot="custom" style="display:flex;flex-wrap:wrap">
         <div class="mt-10">
           <label  class="search__label">部门:</label>
-          <el-select class="inline-24" v-model="form.dep" size="small" placeholder="请选择部门" clearable @change="depChange">
-            <el-option
-                v-for="item in selectList.dep"
-                :key="item.departmentid"
-                :label="item.depname"
-                :value="item.departmentid"
-            ></el-option>
-          </el-select>
+          <el-cascader 
+            class="inline-24"
+            ref="selectdep" 
+            size="small" 
+            v-model="form.dep" 
+            :options="selectList.dep" 
+            :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  
+            @change="depChange"  
+            clearable
+          ></el-cascader>
         </div>
 
         <div class="mt-10">
           <label  class="search__label" >人员:</label>
-          <el-select class="inline-24" v-model="form.people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
+          <el-select class="inline-24" filterable v-model="form.people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
             <el-option
                 v-for="item in selectList.hr"
                 :key="item.userid"
@@ -126,6 +128,12 @@
         <div v-if="scope.data.column.columnname === 'sys_tag'">
           <el-tag v-for="(item,index) in scope.data.column.data.sys_tag" size="mini" style="margin-right:10px" :key="index">{{ item }}</el-tag>
         </div>
+        <div v-else-if="scope.data.column.columnname === 'status'">
+          <span style="color:#52c41a" v-if="scope.data.column.data[[scope.data.column.columnname]] == '跟进中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已失败'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已结束'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
         <div v-else-if="scope.data.column.columnname === 'industry'">
           <el-tag v-for="(item,index) in scope.data.column.data.industry" size="mini" style="margin-right:10px" :key="index">{{ item }}</el-tag>
         </div>
@@ -133,7 +141,7 @@
           {{ grade(scope.data.column.data.grade) }}
         </div>
         <div v-else-if="scope.data.column.columnname === 'leader'">
-          {{ scope.data.column.data.leader[0] && scope.data.column.data.leader[0].name }}
+          {{ scope.data.column.data.name }}
         </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
@@ -259,6 +267,57 @@ export default {
     }
   },
   methods:{
+    createMenu (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        // 新节点
+        if (node.subdep.length === 0){
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+          }
+        }else {
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+            children: []
+          }
+        }
+        if (node.subdep && node.subdep.length > 0) {
+          // 如果存在子节点
+          for (var index = 0; index < node.subdep.length; index++) {
+            // 遍历子节点, 把每个子节点看做一颗独立的树, 传入递归构造子树, 并把结果放回到新node的children中
+            elNode.children.push(convertToElementTree(node.subdep[index]));
+          }
+        }
+        return elNode;
+      }
+      array.forEach((element) => {
+        arr.push(convertToElementTree(element))
+      });
+      return arr
+    },
     listCreate (param) {
       console.log(param);
       param.content.type = ''
@@ -286,7 +345,8 @@ export default {
         "content": {
         }
       })
-      this.selectList = res.data
+      this.selectList = res.data 
+      this.selectList.dep = this.createMenu(res.data.dep)
       console.log(this.selectList,'范围选择数据');
     },
     timeChange () {
@@ -298,10 +358,10 @@ export default {
       this.$refs.list.param.content.where = this.form
       this.$refs.list.listData()
     },
-    depChange(){
+    depChange(val){
       this.form.people = ''
       this.$refs.list.param.content.type = 1
-      this.$refs.list.param.content.dataid = this.form.dep
+      this.$refs.list.param.content.dataid = val[val.length - 1]
       this.$refs.list.listData()
     },
     peopleChange(){

+ 25 - 13
src/HDrpManagement/projectPortrait/modules/detail.vue

@@ -10,7 +10,7 @@
             <div class="account">
               <p class="normal-title" style="font-size:18px">
                 <el-tooltip class="item" effect="dark" :content="baseInfo.projectname" placement="top">
-                  <p class="nowrap">{{ baseInfo.projectname }}</p>
+                  <p>{{ baseInfo.projectname }}</p>
                 </el-tooltip>
               </p>
               <div class="Mtag">
@@ -32,7 +32,7 @@
               <el-descriptions-item label="预计签约时间"> {{ baseInfo.signdate_due }}</el-descriptions-item>
               <el-descriptions-item label="负责人"> {{ baseInfo.team.length && baseInfo.team.filter(item =>item.isleader == 1)[0].name }}</el-descriptions-item>
               <el-descriptions-item label="项目阶段"><span style="color:#E85B5B;font-size:16px;font-weight:bold">{{ baseInfo.stagecount }}</span></el-descriptions-item>
-              <el-descriptions-item label="项目评估总分"><span style="color:#E85B5B;font-size:16px;font-weight:bold">{{ baseInfo.costofconstruction }}</span> </el-descriptions-item>
+              <el-descriptions-item label="项目评估总分"><span style="color:#E85B5B;font-size:16px;font-weight:bold">{{ baseInfo.allsumscore }}</span> </el-descriptions-item>
               <el-descriptions-item label="项目地址">
                 <div style="max-width:500px">
                   {{ `${baseInfo.province}${baseInfo.city}${baseInfo.county}${baseInfo.address}` }}
@@ -54,7 +54,7 @@
             <myCard 
               :list="
               [
-                {title:'评估总分值',value:$refs.pinggu && $refs.pinggu.list && $refs.pinggu.list[0] && $refs.pinggu.list[0].allsumscore,bg:'#F3F9FC',color:'#3874F6'},
+                {title:'评估总分值',value:baseInfo.allsumscore,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'评估次数',value:$refs.pinggu && $refs.pinggu.total,bg:'#E8F7EC',color:'#78B32B'},
                 {title:'最近评估时间',value:$refs.pinggu && $refs.pinggu.list && $refs.pinggu.list[0] && $refs.pinggu.list[0].createdate,bg:'#F9F2E5',color:'#FF7603'},
               ]"
@@ -168,7 +168,7 @@
                 {title:'项目竞争对手数',value:$refs.duishou && $refs.duishou.total,bg:'#F3F9FC',color:'#3874F6'},
               ]"
             ></myCard>
-            <showIsNone title="对手明细">
+            <showIsNone title="竞争对手明细">
             <pageTable 
               ref="duishou"
               :tablecols="tool.tabelCol($route.name).duishouTable.tablecols"
@@ -191,7 +191,7 @@
                 {title:'产品总金额',value:tool.formatAmount($refs.productset && $refs.productset.list && $refs.productset.list[0] && $refs.productset.list[0].itemSumAmount || 0),bg:'#E8F7EC',color:'#78B32B'},
               ]"
             ></myCard>
-            <showIsNone title="产品类别金额">
+            <showIsNone title="产品类别金额">
               <el-table
                 :cell-style="{height:'40px',color:'#666666',fontWeight:'400'}"
                 size="mini"
@@ -201,10 +201,14 @@
                 <el-table-column
                   prop="itemclassfullname"
                   label="产品类别">
+                  
                 </el-table-column>
                 <el-table-column
                   prop="itemclassAmount"
                   label="金额">
+                  <template slot-scope="scope">
+                    {{ tool.formatAmount(scope.row.itemclassAmount || 0,2) }}
+                  </template>
                 </el-table-column>
               </el-table>
             </showIsNone>
@@ -240,7 +244,17 @@
               ref="baojiadan"
               :tablecols="tool.tabelCol($route.name).quotedPriceTable.tablecols"
               :param="param6"
-            ></pageTable>
+              :custom="true"
+            >
+            <template v-slot:custom="scope">
+              <div v-if="scope.data.columnname == 'specialoffer'">
+                {{ scope.data.data.specialoffer ? '是' : '否' }}
+              </div>
+              <div v-else>
+                {{ scope.data.data[scope.data.columnname] }}
+              </div>
+            </template>
+            </pageTable>
             </showIsNone>
           </el-card>
         </div>
@@ -287,19 +301,15 @@
               <span class="myTitle">订单</span>
               <myRadio :value1="param8.content" key1="isAll" @clickBtn="refreshTable('param8','dingdan')" :btnOptions="[{label:'全部',value:1},{label:'本年',value:0}]">
               </myRadio>
-              // <el-select style="margin-left:24px" v-model="param8.content.type" clearable size="mini" placeholder="请选择订单类型" @change="typeChange('param8','dingdan')">
-              //   <el-option label="全部" value=""></el-option>
-              //   <el-option :label="item.value" :value="item.value" v-for="(item,index) in orderTypeList" :key="index"></el-option>
-              // </el-select>
             </div>
             <myCard 
               :list="
               [
                 {title:'订单数量',value:$refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allOrderQty,bg:'#F3F9FC',color:'#3874F6'},
-                {title:'订单金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allAmount || 0),bg:'#E8F7EC',color:'#78B32B'},
+                {title:'订单金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allAmount || 0),bg:'#E8F7EC',color:'#78B32B'},
                 {title:'订单回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].cashbillAmount || 0),bg:'#F9F2E5',color:'#FF7603'},
                 {title:'订单未出货金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allunAmount || 0),bg:'#FDF3F3',color:'#E85B5B'},
-                {title:'订单未开票金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].uninvoicamount || 0),bg:'#F9F2E5',color:'#FF7603'},
+                {title:'已出货未开票金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].uninvoicamount || 0),bg:'#F9F2E5',color:'#FF7603'},
                 {title:'已开票未回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].unwriteoffamount || 0),bg:'#FDF3F3',color:'#E85B5B'},
               ]"
             ></myCard>
@@ -554,7 +564,8 @@ export default {
     },
     async getSelectList () {
       const res = await this.$store.dispatch('optiontypeselect','contracttype')
-      this.contractTypeList = res.data
+      this.contractTypeList = res.data.filter(item => item.remarks != '经销商合作协议')
+
       console.log(this.contractTypeList,'合同类型');
 
       const res2 = await this.$store.dispatch('optiontypeselect','ordertype')
@@ -628,6 +639,7 @@ export default {
 .Mcontainer .Mcontainer-header .Mcontainer-header__left {
   display: flex;
   max-width: 350px;
+  min-width: 350px;
   align-items: center;
   padding-right: 20px;
 }

+ 72 - 15
src/HDrpManagement/salerPortrait/index.vue

@@ -12,19 +12,21 @@
       <div slot="custom" style="display:flex">
         <div class="mt-10">
           <label  class="search__label" >部门:</label>
-          <el-select class="inline-16" v-model="dep" size="small" placeholder="请选择部门" clearable @change="depChange">
-            <el-option
-                v-for="item in selectList.dep"
-                :key="item.departmentid"
-                :label="item.depname"
-                :value="item.departmentid"
-            ></el-option>
-          </el-select>
+          <el-cascader 
+            class="inline-24"
+            ref="selectdep" 
+            size="small" 
+            v-model="dep" 
+            :options="selectList.dep" 
+            :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  
+            @change="depChange"  
+            clearable
+          ></el-cascader>
         </div>
 
         <div class="mt-10">
           <label  class="search__label" >人员:</label>
-          <el-select class="inline-16" v-model="people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
+          <el-select class="inline-16" filterable v-model="people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
             <el-option
                 v-for="item in selectList.hr"
                 :key="item.userid"
@@ -62,10 +64,13 @@
           {{ grade(scope.data.column.data.grade) }}
         </div>
         <div v-else-if="scope.data.column.columnname === 'status'">
-          {{ scope.data.column.data.status ? '离职': '在职' }}
+          {{ +scope.data.column.data.status ? '离职': '在职' }}
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'discountrate'">
+          {{ scope.data.column.data.discountrate * 100 +'%' }}
         </div>
         <div v-else-if="scope.data.column.columnname === 'leader'">
-          {{ scope.data.column.data.leader[0] && scope.data.column.data.leader[0].name }}
+          {{ scope.data.column.data.name }}
         </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
@@ -163,6 +168,57 @@ export default {
     }
   },
   methods:{
+    createMenu (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        // 新节点
+        if (node.subdep.length === 0){
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+          }
+        }else {
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+            children: []
+          }
+        }
+        if (node.subdep && node.subdep.length > 0) {
+          // 如果存在子节点
+          for (var index = 0; index < node.subdep.length; index++) {
+            // 遍历子节点, 把每个子节点看做一颗独立的树, 传入递归构造子树, 并把结果放回到新node的children中
+            elNode.children.push(convertToElementTree(node.subdep[index]));
+          }
+        }
+        return elNode;
+      }
+      array.forEach((element) => {
+        arr.push(convertToElementTree(element))
+      });
+      return arr
+    },
     listCreate (param) {
       console.log(param);
       param.content.type = ''
@@ -189,7 +245,8 @@ export default {
         "content": {
         }
       })
-      this.selectList = res.data
+      this.selectList = res.data 
+      this.selectList.dep = this.createMenu(res.data.dep)
       console.log(this.selectList,'范围选择数据');
     },
     timeChange () {
@@ -197,10 +254,10 @@ export default {
       this.$refs.list.param.content.where.enddate = this.dateSelect[1]
       this.$refs.list.listData()
     },
-    depChange(){
-      this.people = ''
+    depChange(val){
+      this.form.people = ''
       this.$refs.list.param.content.type = 1
-      this.$refs.list.param.content.dataid = this.dep
+      this.$refs.list.param.content.dataid = val[val.length - 1]
       this.$refs.list.listData()
     },
     peopleChange(){

+ 49 - 24
src/HDrpManagement/salerPortrait/modules/detail.vue

@@ -10,7 +10,7 @@
             <div class="account">
               <p class="normal-title" style="font-size:18px">
                 <el-tooltip class="item" effect="dark" :content="baseInfo.projectname" placement="top">
-                  <p class="nowrap">{{ baseInfo.name }}</p>
+                  <p>{{ baseInfo.name }}</p>
                 </el-tooltip>
               </p>
               <div class="Mtag">
@@ -28,7 +28,7 @@
               <el-descriptions-item label="职位">{{ baseInfo.position }}</el-descriptions-item>
               <el-descriptions-item label="邮箱"> {{ baseInfo.email }}</el-descriptions-item>
               <el-descriptions-item label="最低授权折扣"><span style="color:#E85B5B;font-size:16px;font-weight:bold">{{ baseInfo.discountrate * 100 + '%' }}</span></el-descriptions-item>
-              <el-descriptions-item label="状态"> {{ baseInfo.status ? '离职' : '在职' }}</el-descriptions-item>
+              <el-descriptions-item label="状态"> {{ +baseInfo.status ? '离职' : '在职' }}</el-descriptions-item>
             </el-descriptions>
           </div>
         </div>
@@ -38,7 +38,7 @@
         <div class="Mproject" style="margin-top:10px">
           <el-card class="box-card">
             <div slot="header">
-              <span class="myTitle">项目评估</span>
+              <span class="myTitle">业绩</span>
               <myRadio :value1="param1.content" key1="type" @clickBtn="getPerformance" :btnOptions="[{label:'本年',value:3},{label:'本季',value:2},{label:'本月',value:1}]">
               </myRadio>
             </div>
@@ -48,25 +48,25 @@
                 {custom:'dingdan',data:performance,title:'订单目标',value:performance.orderCR,value2:tool.formatAmount(performance.amount - performance.target_l,2),bg:'#F3F9FC',color:'#3874F6'},
                 {custom:'chuhuo',data:performance,title:'出货目标',value:performance.outOrderCR,value2:tool.formatAmount(performance.outamount - performance.target_l,2),bg:'#E8F7EC',color:'#00B32B'},
                 {custom:'kaipiao',data:performance,title:'开票目标',value:performance.invCR,value2:tool.formatAmount(performance.invoiceamount - performance.target_l,2),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'回款金额',value:performance.writeoffamount,bg:'#FDF3F3',color:'#E85B5B'},
+                {title:'回款金额',value:tool.formatAmount(performance.writeoffamount || 0,2),bg:'#FDF3F3',color:'#E85B5B'},
               ]"
             >
               <template v-slot:dingdan="scope">
                   <div>
                     <p style="font-size:14px">实际/目标</p>
-                    <p :style="[{'font-size':'18px'},{color:scope.data.color},{'font-weight':'bold'}]">{{ tool.formatAmount(scope.data.data.amount || 0,2) }}/{{ tool.formatAmount(scope.data.data.target_l || 0,2) }}</p>
+                    <p :style="[{'font-size':'18px'},{color:scope.data.color},{'font-weight':'bold'}]">{{ tool.formatAmount(scope.data.data.amount || 0,2) }}/{{ tool.formatAmount(scope.data.data.target_l || 0,2) }}</p>
                   </div>
               </template>
               <template v-slot:chuhuo="scope">
                   <div>
                     <p style="font-size:14px">实际/目标</p>
-                    <p :style="[{'font-size':'18px'},{color:scope.data.color},{'font-weight':'bold'}]">{{ tool.formatAmount(scope.data.data.outamount || 0,2) }}/{{ tool.formatAmount(scope.data.data.target_l || 0,2) }}</p>
+                    <p :style="[{'font-size':'18px'},{color:scope.data.color},{'font-weight':'bold'}]">{{ tool.formatAmount(scope.data.data.outamount || 0,2) }}/{{ tool.formatAmount(scope.data.data.target_l || 0,2) }}</p>
                   </div>
               </template>
               <template v-slot:kaipiao="scope">
                   <div>
                     <p style="font-size:14px">实际/目标</p>
-                    <p :style="[{'font-size':'18px'},{color:scope.data.color},{'font-weight':'bold'}]">{{ tool.formatAmount(scope.data.data.invoiceamount || 0,2) }}/{{ tool.formatAmount(scope.data.data.target_l || 0,2) }}</p>
+                    <p :style="[{'font-size':'18px'},{color:scope.data.color},{'font-weight':'bold'}]">{{ tool.formatAmount(scope.data.data.invoiceamount || 0,2) }}/{{ tool.formatAmount(scope.data.data.target_l || 0,2) }}</p>
                   </div>
               </template>
             </myCard>
@@ -88,12 +88,12 @@
             <myCard 
               :list="
               [
-                {title:'订单数量',value:$refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allOrderQty,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'订单数量',value:$refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allOrderQty,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'订单总金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allAmount || 0),bg:'#E8F7EC',color:'#78B32B'},
                 {title:'订单回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].cashbillAmount || 0),bg:'#F9F2E5',color:'#FF7603'},
                 {title:'订单未出货金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].allunAmount || 0),bg:'#FDF3F3',color:'#E85B5B'},
-                {title:'订单未开票金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].uninvoicamount || 0),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'已开票未回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].unwriteoffamount || 0),bg:'#FDF3F3',color:'#E85B5B'},
+                {title:'已出货未开票金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].uninvoicamount || '0'),bg:'#F9F2E5',color:'#FF7603'},
+                {title:'已开票未回款金额',value:tool.formatAmount($refs.dingdan && $refs.dingdan.list && $refs.dingdan.list[0] && $refs.dingdan.list[0].unwriteoffamount || '0'),bg:'#FDF3F3',color:'#E85B5B'},
               ]"
             ></myCard>
             <showIsNone title="订单明细">
@@ -117,10 +117,10 @@
             <myCard 
               :list="
               [
-                {title:'线索数',value:$refs.xiansuo && $refs.xiansuo.list[0] && $refs.xiansuo.list[0].orderclueSize,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'线索数',value:$refs.xiansuo && $refs.xiansuo.list[0] && $refs.xiansuo.list[0].orderclueSize,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'新增线索数',value:$refs.xiansuo && $refs.xiansuo.list[0] && $refs.xiansuo.list[0].insertOrderclue,bg:'#E8F7EC',color:'#78B32B'},
                 {title:'线索转化率',value:$refs.fllow && $refs.fllow.list[0] && $refs.fllow.list[0].orderclueConver,bg:'#F9F2E5',color:'#FF7603'},
-                {title:'跟进次数',value:$refs.fllow && $refs.fllow.list[0] && $refs.fllow.list[0].createdate,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'跟进次数',value:$refs.fllow && $refs.fllow.list[0] && $refs.fllow.list[0].createdate,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'跟进频率',value:$refs.fllow && $refs.fllow.list[0] && $refs.fllow.list[0].followfrequency,descript:'平均一次跟进天数,跟进频率=(总跟进天数-节假日)÷总跟进次数',bg:'#FDF3F3',color:'#E85B5B'},
               ]"
             >
@@ -161,7 +161,7 @@
             <myCard 
               :list="
               [
-                {title:'客户数',value:$refs.kehu && $refs.kehu.list.length,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'客户数',value:$refs.kehu && $refs.kehu.list.length,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'新增客户数',value:$refs.kehu && $refs.kehu.list[0] && $refs.kehu.list[0].customersSize,bg:'#E8F7EC',color:'#78B32B'},
                 {title:'跟进次数',value:$refs.fllowkehu && $refs.fllowkehu.list[0] && $refs.fllowkehu.list[0].followSize,bg:'#F9F2E5',color:'#FF7603'},
                 {title:'跟进频率',value:$refs.fllowkehu && $refs.fllowkehu.list[0] && $refs.fllowkehu.list[0].followfrequency,descript:'平均一次跟进天数,跟进频率=(总跟进天数-节假日)÷总跟进次数',bg:'#FDF3F3',color:'#E85B5B'},
@@ -173,7 +173,20 @@
               ref="kehu"
               :tablecols="tool.tabelCol($route.name).publicCustomerTable.tablecols"
               :param="param4"
-            ></pageTable>
+              :custom="true"
+            >
+            <template v-slot:custom="scope">
+              <div v-if="scope.data.columnname == 'sys_tag'">
+                <el-tag size="mini" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>  
+              </div>
+              <div v-else-if="scope.data.columnname == 'industry'">
+                <el-tag size="mini" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>  
+              </div>
+              <div v-else>
+                {{ scope.data.data[scope.data.columnname] }}
+              </div>
+            </template>
+            </pageTable>
             </showIsNone>
 
             <showIsNone title="客户跟进记录明细">
@@ -204,10 +217,10 @@
             <myCard 
               :list="
               [
-                {title:'项目数',value:$refs.project && $refs.project.list && $refs.project.list[0] && $refs.project.list[0].projectSize,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'项目数',value:$refs.project && $refs.project.list && $refs.project.list[0] && $refs.project.list[0].projectSize,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'新增项目数',value:$refs.project && $refs.project.list && $refs.project.list[0] && $refs.project.list[0].insertProject,bg:'#E8F7EC',color:'#78B32B'},
-                {title:'项目成交率',value:tool.formatAmount($refs.project && $refs.project.list && $refs.project.list[0] && $refs.project.list[0].projectcjl || '0'),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'跟进次数',value:tool.formatAmount($refs.projectfllow && $refs.projectfllow.list && $refs.projectfllow.list[0] && $refs.projectfllow.list[0].followSize || '0'),bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'项目成交率',value:$refs.project && $refs.project.list && $refs.project.list[0] && $refs.project.list[0].projectcjl,bg:'#F9F2E5',color:'#FF7603'},
+                {title:'跟进次数',value:tool.formatAmount($refs.projectfllow && $refs.projectfllow.list && $refs.projectfllow.list[0] && $refs.projectfllow.list[0].followSize || '0'),bg:'#F3F9FC',color:'#3874F6'},
                 {title:'跟进频率',value:$refs.projectfllow && $refs.projectfllow.list[0] && $refs.projectfllow.list[0].followfrequency,descript:'平均一次跟进天数,跟进频率=(总跟进天数-节假日)÷总跟进次数',bg:'#FDF3F3',color:'#E85B5B'},
               ]"
             ></myCard>
@@ -223,8 +236,8 @@
             <showIsNone title="项目跟进记录明细">
             <pageTable 
               ref="projectfllow"
-              :tablecols="tool.tabelCol($route.name).customerFollow.tablecols"
-              :param="param5"
+              :tablecols="tool.tabelCol($route.name).projectFollow.tablecols"
+              :param="param10"
               :custom="true"
             >
               <template v-slot:custom="scope">
@@ -249,7 +262,7 @@
             <myCard 
               :list="
               [
-                {title:'报价次数',value:$refs.baojiadan && $refs.baojiadan.total,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'报价次数',value:$refs.baojiadan && $refs.baojiadan.total,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'最近报价金额',value:tool.formatAmount($refs.baojiadan && $refs.baojiadan.list && $refs.baojiadan.list[0] && $refs.baojiadan.list[0].sumamount || '0'),bg:'#E8F7EC',color:'#78B32B'},
                 {title:'最近报价时间',value:$refs.baojiadan && $refs.baojiadan.list && $refs.baojiadan.list[0] && $refs.baojiadan.list[0].submitdate,bg:'#F9F2E5',color:'#FF7603'},
               ]"
@@ -259,7 +272,18 @@
               ref="baojiadan"
               :tablecols="tool.tabelCol($route.name).quotedPriceTable.tablecols"
               :param="param6"
-            ></pageTable>
+              :custom="true"
+            >
+            <template v-slot:custom="scope">
+              <div v-if="scope.data.columnname == 'specialoffer'">
+                {{ scope.data.data.specialoffer ? '是' : '否' }}
+              </div>
+              <div v-else>
+                {{ scope.data.data[scope.data.columnname] }}
+              </div>
+            </template>
+            
+            </pageTable>
             </showIsNone>
           </el-card>
         </div>
@@ -280,13 +304,13 @@
             <myCard 
               :list="
               [
-                {title:'项目合同总数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].allQty,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'项目合同总数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].allQty,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'项目合同总金额',value:tool.formatAmount($refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].sumSignAmount || 0),bg:'#E8F7EC',color:'#78B32B'},
                 {title:'进行中项目总数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].inProgressQty,bg:'#FDF3F3',color:'#E85B5B'},
                 {title:'进行中项目金额',value:tool.formatAmount($refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].inProgressAmount || 0),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'到期项目合同数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].expireQty,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'到期项目合同数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].expireQty,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'到期项目合同金额',value:tool.formatAmount($refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].expireAmount || 0),bg:'#F9F2E5',color:'#FF7603'},
-                {title:'转订单合同数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].convertOrderContractQty,bg:'#F3F9FC',color:'#8DCFFC'},
+                {title:'转订单合同数',value:$refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].convertOrderContractQty,bg:'#F3F9FC',color:'#3874F6'},
                 {title:'转订单金额',value:tool.formatAmount($refs.hetong && $refs.hetong.list && $refs.hetong.list[0] && $refs.hetong.list[0].convertOrderContractAmount || 0),bg:'#E8F7EC',color:'#78B32B'},
               ]"
             ></myCard>
@@ -527,6 +551,7 @@ export default {
 .Mcontainer .Mcontainer-header .Mcontainer-header__left {
   display: flex;
   max-width: 350px;
+  min-width: 350px;
   align-items: center;
   padding-right: 20px;
 }