瀏覽代碼

联系人数据

qymljy 4 月之前
父節點
當前提交
7ac1f12bda

+ 29 - 16
src/HDrpManagement/contactData/components/allRank.vue

@@ -10,9 +10,24 @@
         :show-close="false"
         @close="onCLose"
     >
-      <div class="drawer__panel">
-        <depStatus class="inline-16" ref="depStatusCusRef" @depData="listData" @personData="listData" @leaveData="listData"></depStatus>
-        <tableDetail :layout="tablecols" :data="list" :opwidth="200" :custom="true" height="calc(100vh - 290px)">
+      <div class="drawer__panel" style="margin-bottom: 0!important;">
+        <depStatus class="inline-16 mt-10" ref="depStatusRef" @depData="queryList" @personData="queryList" @leaveData="queryList" :is-leave-show="false"></depStatus>
+        <el-date-picker
+            style="margin-right: 10px"
+            disabled
+            v-model="dateData"
+            size="small"
+            type="daterange"
+            :range-separator="$t('至')"
+            :start-placeholder="$t(`开始月份`)"
+            :end-placeholder="$t(`结束月份`)">
+        </el-date-picker>
+        <el-input style="width:200px;" :placeholder="$t('搜索')" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="clearSearchValue" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
+        </el-input>
+        <div class="mt-10 inline-15">
+          <exportFile :param="param" :columns="tablecols" :fileName="allTitle" :dataid="param.content.dataid"></exportFile>
+        </div>
+        <tableDetail :layout="tablecols" :data="list" :opwidth="200" :custom="true" height="calc(100vh - 210px)">
           <template v-slot:customcol="scope">
             <div v-if="scope.column.columnname === 'amount'">
               {{tool.formatAmount(scope.column.data[scope.column.columnname],2,'¥')}}
@@ -39,10 +54,11 @@
 
 <script>
 import depStatus from './depStatus'
+import exportFile from '@/components/export_file/index'
 export default {
   name: "allRank",
-  props:['btnTitle','allTitle','paramOld','tablecols'],
-  components:{depStatus},
+  props:['btnTitle','allTitle','tablecols'],
+  components:{depStatus,exportFile},
   data(){
     return {
       drawerShow:false,
@@ -65,22 +81,18 @@ export default {
           "pageNumber": 1
         },
       },
+      dateData:[]
     }
   },
   methods:{
     allClick(){
-      console.log(this.paramOld,'old')
       this.$emit('allClick')
-      // this.drawerShow = true
-      // this.param.content.pageNumber = 1
-      // this.param.id = this.paramOld.id
-      // this.param.content.type = this.paramOld.content.type
-      // this.param.content.dataid = this.paramOld.content.dataid
-      // this.param.content.dateType = this.paramOld.content.dateType
-      // this.param.content.where.isleave = this.paramOld.content.where.isleave
-      // this.param.content.where.begindate = this.paramOld.content.where.begindate
-      // this.param.content.where.enddate = this.paramOld.content.where.enddate
-      // this.listData()
+    },
+    queryList(id,type,isleave,state){
+      this.param.content.dataid = id
+      this.param.content.type = type
+      this.param.content.where.isleave = isleave
+      this.listData()
     },
     async listData(){
       const res = await this.$api.requested(this.param)
@@ -99,6 +111,7 @@ export default {
       this.listData()
     },
     onCLose(){
+      this.param.content.where.condtion = ''
       this.drawerShow = false
     }
   }

+ 11 - 2
src/HDrpManagement/contactData/components/btnSelectInfo.vue

@@ -6,8 +6,11 @@
     <el-date-picker
         style="margin-left: 10px"
         v-model="dateData"
+        @change="onChange"
         size="small"
-        type="daterange"
+        format="yyyy-MM"
+        value-format="yyyy-MM"
+        type="monthrange"
         :range-separator="$t('至')"
         :start-placeholder="$t(`开始月份`)"
         :end-placeholder="$t(`结束月份`)">
@@ -42,12 +45,18 @@ export default {
         const quarterStartDate = new Date(now.getFullYear(), quarterStartMonth);
         const quarterEndDate = new Date(now.getFullYear(), quarterStartMonth + 3);
         this.dateData = [quarterStartDate,quarterEndDate]
-      }else if (this.value == '本月'){
+      }else if (data == '本月'){
         const now = new Date();
         const monthStartDate = new Date(now.getFullYear(), now.getMonth());
         this.dateData = [monthStartDate,monthStartDate]
       }
       this.$emit('btnClick',data)
+    },
+    onChange(){
+      if (this.dateData){
+        this.dataTypeNow = ''
+      }
+      this.$emit('btnClick',this.dataTypeNow,this.dateData)
     }
   },
   mounted() {

+ 2 - 1
src/HDrpManagement/contactData/components/depStatus.vue

@@ -15,7 +15,7 @@
         </el-option>
       </el-select>
     </div>
-    <div class="mt-10 inline-16">
+    <div class="mt-10 inline-16" v-if="isLeaveShow != false">
       <p class="search__label">{{$t('状态')}}:</p>
       <el-select v-model="isleave" clearable style="margin-right:10px" size="small" :placeholder="$t('请选择状态')" @change="leaveChange" >
         <el-option :label="$t('在职')" value="1"></el-option>
@@ -28,6 +28,7 @@
 <script>
 export default {
   name: "depStatus",
+  props:['isLeaveShow'],
   data(){
     return {
       depment:'',

+ 45 - 12
src/HDrpManagement/contactData/components/salesContribution.vue

@@ -5,8 +5,8 @@
         <el-tabs v-model="activeName" @tab-click="handleClick">
           <el-tab-pane :label="$t(`联系人关联客户销售TOP10`)" name="关联客户">
             <depStatus class="inline-16" ref="depStatusCusRef" @depData="listData" @personData="listData" @leaveData="listData"></depStatus>
-            <btnSelect @btnClick="btnClick" class="inline-16"  :btnTitle="['本年','本季','本月']" dateType="本年"></btnSelect>
-            <allRank @allClick="allClick" ref="allRankCusRef" class="inline-16" btnTitle="全部排名" allTitle="联系人关联客户销售贡献度排行" :paramOld="paramCus" :tablecols="tool.tabelCol(this.$route.name).associatedCustomers.tablecols"></allRank>
+            <btnSelect ref="btnSelectCusRef" @btnClick="btnClick" class="inline-16"  :btnTitle="['本年','本季','本月']" dateType="本年"></btnSelect>
+            <allRank @allClick="allClick" ref="allRankCusRef" class="inline-16" btnTitle="全部排名" allTitle="联系人关联客户销售贡献度排行" :tablecols="tool.tabelCol(this.$route.name).associatedCustomers.tablecols"></allRank>
             <tableDetail :layout="tablecols" :data="list" :opwidth="200" :custom="true" >
               <template v-slot:customcol="scope">
                 <div v-if="scope.column.columnname === 'amount'">
@@ -18,8 +18,8 @@
           </el-tab-pane>
           <el-tab-pane :label="$t(`联系人关联项目销售TOP10`)" name="关联项目">
             <depStatus @btnClick="handleClick" class="inline-16"  ref="depStatusProRef" @depData="listData" @personData="listData" @leaveData="listData"></depStatus>
-            <btnSelect @btnClick="btnClick" class="inline-16" :btnTitle="['本年','本季','本月']" dateType="本年"></btnSelect>
-            <allRank @allClick="allClick" ref="allRankProRef"  class="inline-16" btnTitle="全部排名" allTitle="联系人关联项目销售贡献度排行" :paramOld="paramPro" :tablecols="tool.tabelCol(this.$route.name).associatedProject.tablecols"></allRank>
+            <btnSelect ref="btnSelectProRef" @btnClick="btnClick" class="inline-16" :btnTitle="['本年','本季','本月']" dateType="本年"></btnSelect>
+            <allRank @allClick="allClick" ref="allRankProRef"  class="inline-16" btnTitle="全部排名" allTitle="联系人关联项目销售贡献度排行" :tablecols="tool.tabelCol(this.$route.name).associatedProject.tablecols"></allRank>
             <tableDetail :layout="tablecols" :data="list" :opwidth="200" :custom="true">
               <template v-slot:customcol="scope">
                 <div v-if="scope.column.columnname === 'amount'">
@@ -100,10 +100,14 @@ export default {
     async listData(id,type,isleave,state){
       console.log(this.paramCus,'paramCus')
       if (this.activeName == '关联客户') {
+        this.paramCus.content.pageNumber = 1
+        this.paramCus.content.pageSize = 10
         this.paramCus.content.dataid = id
         this.paramCus.content.type = type
         this.paramCus.content.where.isleave = isleave
       }else if (this.activeName == '关联项目'){
+        this.paramPro.content.pageNumber = 1
+        this.paramPro.content.pageSize = 10
         this.paramPro.content.dataid = id
         this.paramPro.content.type = type
         this.paramPro.content.where.isleave = isleave
@@ -122,26 +126,55 @@ export default {
         this.listData(this.paramPro.content.dataid,this.paramPro.content.type,this.paramPro.content.where.isleave)
       }
     },
-    btnClick(dateType){
+    btnClick(dateType,dateData){
       if (this.activeName == '关联客户'){
-        this.paramCus.content.dateType = dateType
+        if (dateType){
+          this.paramCus.content.dateType = dateType
+        }else {
+          this.paramCus.content.dateType = ''
+          this.paramCus.content.where.begdate = dateData[0]
+          this.paramCus.content.where.enddate = dateData[1]
+        }
         this.listData(this.paramCus.content.dataid,this.paramCus.content.type,this.paramCus.content.where.isleave)
       }else {
-        this.paramPro.content.dateType = dateType
+        if (dateType){
+          this.paramPro.content.dateType = dateType
+        }else {
+          this.paramPro.content.dateType = ''
+          this.paramPro.content.where.begdate = dateData[0]
+          this.paramPro.content.where.enddate = dateData[1]
+        }
         this.listData(this.paramPro.content.dataid,this.paramPro.content.type,this.paramPro.content.where.isleave)
       }
     },
     allClick(){
       if (this.activeName == '关联客户'){
         this.$refs.allRankCusRef.drawerShow = true
-        this.$refs.allRankCusRef.$refs.depStatusCusRef.deplist = this.$refs.depStatusCusRef.deplist
-        this.$refs.allRankCusRef.$refs.depStatusCusRef.personnelList = this.$refs.depStatusCusRef.personnelList
-        this.$refs.allRankCusRef.$refs.depStatusCusRef.depment = this.$refs.depStatusCusRef.depment
-        this.$refs.allRankCusRef.$refs.depStatusCusRef.person = this.$refs.depStatusCusRef.person
+        this.$nextTick(()=>{
+          this.$refs.allRankCusRef.$refs.depStatusRef.deplist = this.$refs.depStatusCusRef.deplist
+          this.$refs.allRankCusRef.$refs.depStatusRef.personnelList = this.$refs.depStatusCusRef.personnelList
+          this.$refs.allRankCusRef.$refs.depStatusRef.depment = this.$refs.depStatusCusRef.depment
+          this.$refs.allRankCusRef.$refs.depStatusRef.person = this.$refs.depStatusCusRef.person
+          this.$refs.allRankCusRef.param = this.paramCus
+          this.$refs.allRankCusRef.param.content.pageSize = 100
+          this.$refs.allRankCusRef.dateData = this.$refs.btnSelectCusRef.dateData
+          this.$refs.allRankCusRef.listData()
+        })
+      }else {
+        this.$refs.allRankProRef.drawerShow = true
+        this.$nextTick(()=>{
+          this.$refs.allRankProRef.$refs.depStatusRef.deplist = this.$refs.depStatusProRef.deplist
+          this.$refs.allRankProRef.$refs.depStatusRef.personnelList = this.$refs.depStatusProRef.personnelList
+          this.$refs.allRankProRef.$refs.depStatusRef.depment = this.$refs.depStatusProRef.depment
+          this.$refs.allRankProRef.$refs.depStatusRef.person = this.$refs.depStatusProRef.person
+          this.$refs.allRankProRef.param = this.paramPro
+          this.$refs.allRankProRef.param.content.pageSize = 100
+          this.$refs.allRankProRef.dateData = this.$refs.btnSelectProRef.dateData
+          this.$refs.allRankProRef.listData()
+        })
       }
     },
     onCLose(){
-      console.log('关闭弹窗')
       this.drawerShow = false
     }
   },