Procházet zdrojové kódy

业务数据大屏,任务,项目商机,线索,客户bug修复

qymljy před 3 měsíci
rodič
revize
1fe09088a3

+ 1 - 0
src/HDrpManagement/logistics/modules/edit.vue

@@ -185,6 +185,7 @@ export default {
       this.$refs['dislist'].tableData = unique([...this.$refs['dislist'].tableData,...data],'billno')
       this.isCorrelate = this.$refs.dislist.tableData.length
       this.form.remarks = this.$refs['dislist'].tableData[0].remarks
+      this.form.remarks_in = this.$refs['dislist'].tableData[0].remarks_in
       this.selectList = this.$refs['dislist'].tableData
     },
     async onSubmit () {

+ 16 - 1
src/HDrpManagement/projectChange/index.vue

@@ -150,6 +150,16 @@
               clearable>
           </el-date-picker>
         </div>
+        <div class="mt-10">
+          <label class="search__label" >{{$t(`产品型号`)}}:</label>
+          <el-input style="width:200px;" :placeholder="$t('产品型号')" :suffix-icon="selectParam.model?selectParam.model.length > 0?'':'':'el-icon-search'" v-model="selectParam.model" @keyup.native.enter="selectChange" @clear="selectChange" size="small" class="input-with-select inline-24 layout_search__panel" clearable>
+          </el-input>
+        </div>
+        <div class="mt-10">
+          <label class="search__label" >{{$t(`公称通径`)}}:</label>
+          <el-input style="width:200px;" :placeholder="$t('公称通径')" :suffix-icon="selectParam.caliber?selectParam.caliber.length > 0?'':'':'el-icon-search'" v-model="selectParam.caliber" @keyup.native.enter="selectChange" @clear="selectChange" size="small" class="input-with-select inline-24 layout_search__panel" clearable>
+          </el-input>
+        </div>
       </template>
       <template v-slot:tbList="scope">
         <div v-if="scope.data.column.columnname === 'status'">
@@ -203,6 +213,9 @@
         <div v-else-if="scope.data.column.columnname == 'address'">
           <span>{{scope.data.column.data.address || scope.data.column.data.province?scope.data.column.data.province+scope.data.column.data.city+scope.data.column.data.county+scope.data.column.data.address:'--'}}</span>
         </div>
+        <div v-else-if="scope.data.column.columnname == 'followcounts'">
+          {{tool.qtyShow(scope.data.column.data[[scope.data.column.columnname]])}}
+        </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]?$t(scope.data.column.data[[scope.data.column.columnname]]):'--'}}
         </div>
@@ -308,7 +321,9 @@ export default {
         tradefield:"",
         tag:[],
         reportstatus:'',
-        departmentid:''
+        departmentid:'',
+        model:'',
+        caliber:''
       },
       depmentParam:{
         "id": 20230620102004,

+ 4 - 0
src/HDrpManagement/projectChange/modules/detail.vue

@@ -493,6 +493,8 @@ export default {
               {label:'负责人',value:this.mainData.name ? this.mainData.name : '--'},
               {label:'结案/失败原因',value:this.mainData.status == '已结案'?this.mainData.endreason:this.mainData.status == '已失败'?this.mainData.defeattype + ','+ this.mainData.defeatreason:'--'},
               {label:'项目来源',value:this.mainData.source ? this.mainData.source : '--'},
+              { label: this.$t("最近跟进时间"), value: this.mainData.followdate },
+              { label: this.$t("近一个月跟进次数"), value: this.tool.qtyShow(this.mainData.followcounts)}
               /*  {label:'失败原因',value:this.mainData.defeatreason?this.mainData.defeattype + ','+ this.mainData.defeatreason:'--'},*/
               /*   {label:'修正比例',value:this.mainData.reward_rate ? Math.round((this.mainData.reward_rate * 100)*100)/100 + '%': '0%'},
                  {label:'提成计算节点',value:this.mainData.reward_point ? this.mainData.reward_point : '--'},*/
@@ -566,6 +568,8 @@ export default {
                {label:'失败原因',value:this.mainData.defeatreason?this.mainData.defeattype + ','+ this.mainData.defeatreason:'--'},*/
               {label:'结案/失败原因',value:this.mainData.status == '已结案'?this.mainData.endreason:this.mainData.status == '已失败'?this.mainData.defeattype + ','+ this.mainData.defeatreason:'--'},
               {label:'项目来源',value:this.mainData.source ? this.mainData.source : '--'},
+              { label: this.$t("最近跟进时间"), value: this.mainData.followdate },
+              { label: this.$t("近一个月跟进次数"), value: this.tool.qtyShow(this.mainData.followcounts) }
             ],
 
             systemInfo: [

+ 3 - 0
src/HManagement/clueManage/clue_private/index.vue

@@ -247,6 +247,9 @@
               : "--"
           }}
         </div>
+        <div v-else-if="scope.data.column.columnname == 'followcounts'">
+          {{tool.qtyShow(scope.data.column.data[[scope.data.column.columnname]])}}
+        </div>
         <div v-else>
           {{
             scope.data.column.data[[scope.data.column.columnname]]

+ 4 - 0
src/HManagement/clueManage/clue_private/modules/detail.vue

@@ -352,6 +352,8 @@ export default {
                   return style;
                 },
               },
+              { label: this.$t("最近跟进时间"), value: this.mainData.followdate },
+              { label: this.$t("近一个月跟进次数"), value: this.tool.qtyShow(this.mainData.followcounts) }
             ],
             systemInfo: [
               { label: this.$t("创建人"), value: this.mainData.createBy },
@@ -515,6 +517,8 @@ export default {
                   return style;
                 },
               },
+              { label: this.$t("最近跟进时间"), value: this.mainData.followdate },
+              { label: this.$t("近一个月跟进次数"), value: this.tool.qtyShow(this.mainData.followcounts) }
             ],
             systemInfo: [
               { label: this.$t("创建人"), value: this.mainData.createBy },

+ 5 - 5
src/HManagement/serviceDataScreen/components/profileTemplate.vue

@@ -93,7 +93,7 @@ export default {
 <style scoped>
 .box-border-box{
   width: 29.167vw;
-  height: 11.146vw;
+  height: 25.146vw;
   background: #001E41;
   box-shadow: 0.000vw 0.156vw 0.313vw 0.052vw rgba(0,0,0,0.16);
   border-radius: 0.313vw 0.313vw 0.313vw 0.313vw;
@@ -102,9 +102,9 @@ export default {
 }
 .box-border{
   margin: 0.705vw 0 1.042vw 1.042vw;
-  max-width: 28.167vw;
-  max-height: 9.646vw;
-  overflow: auto;
+  /*max-width: 28.167vw;*/
+  /*max-height: 9.646vw;*/
+  /*overflow: auto;*/
 }
 .box-border::-webkit-scrollbar {
   width: 0.313vw;
@@ -123,7 +123,7 @@ export default {
   box-sizing: border-box;
 }
 .box-margin .box-content{
-  width: 8.609vw;
+  width: 6.609vw;
   height: 2.675vw;
   margin-right: 0.245vw;
   margin-bottom: 0.705vw;

+ 33 - 33
src/HManagement/serviceDataScreen/index.vue

@@ -36,7 +36,7 @@
         <div>
           <div class="justify-style">
             <!-- 业务员账户 -->
-            <salesmanAccount ref="accountRef" @dialog="detailClick"></salesmanAccount>
+<!--            <salesmanAccount ref="accountRef" @dialog="detailClick"></salesmanAccount>-->
             <!-- 作业数据 -->
             <jobData ref="jobRef" @dialog="detailClick"></jobData>
           </div>
@@ -48,12 +48,12 @@
         <div>
           <!-- 销售漏斗 -->
           <salesFunnel ref="funnelRef" style="position: relative;z-index: 700"></salesFunnel>
-          <div class="justify-style inline-top-20">
-            <!-- 营销费用 -->
-            <marketingExpenses ref="expensesRef"></marketingExpenses>
-            <!-- 营销费用统计 -->
-            <marketingExpenseStatistics ref="exStatisticsRef"></marketingExpenseStatistics>
-          </div>
+<!--          <div class="justify-style inline-top-20">-->
+<!--            &lt;!&ndash; 营销费用 &ndash;&gt;-->
+<!--            <marketingExpenses ref="expensesRef"></marketingExpenses>-->
+<!--            &lt;!&ndash; 营销费用统计 &ndash;&gt;-->
+<!--            <marketingExpenseStatistics ref="exStatisticsRef"></marketingExpenseStatistics>-->
+<!--          </div>-->
         </div>
         <div>
           <!-- 应收账款 -->
@@ -340,10 +340,10 @@ export default {
     queryAllData(id){
       console.log(id,'3333')
       /*业务员账户*/
-      this.$refs.accountRef.param.content.dataid = id
-      this.$refs.accountRef.param.content.type = this.departmentid !== ''?1:0
-      this.$refs.accountRef.param.content.where.isleave = this.isleave
-      this.$refs.accountRef.listData()
+      // this.$refs.accountRef.param.content.dataid = id
+      // this.$refs.accountRef.param.content.type = this.departmentid !== ''?1:0
+      // this.$refs.accountRef.param.content.where.isleave = this.isleave
+      // this.$refs.accountRef.listData()
 
       /*作业数据*/
       this.$refs.jobRef.param.content.dataid = id
@@ -381,17 +381,17 @@ export default {
       this.$refs.funnelRef.listData()
 
       /*营销费用*/
-      this.$refs.expensesRef.param.content.dataid = id
-      this.$refs.expensesRef.param.content.type = this.departmentid !== ''?1:0
-      this.$refs.expensesRef.param.content.where.isleave = this.isleave
-      this.$refs.expensesRef.listData()
+      // this.$refs.expensesRef.param.content.dataid = id
+      // this.$refs.expensesRef.param.content.type = this.departmentid !== ''?1:0
+      // this.$refs.expensesRef.param.content.where.isleave = this.isleave
+      // this.$refs.expensesRef.listData()
 
       /*营销费用统计*/
-      this.$refs.exStatisticsRef.param.content.dataid = id
-      this.$refs.exStatisticsRef.param.content.type = this.departmentid !== ''?1:0
-      this.$refs.exStatisticsRef.param.content.where.isleave = this.isleave
-      this.$refs.exStatisticsRef.cusInit(true)
-      this.$refs.exStatisticsRef.proInit(true)
+      // this.$refs.exStatisticsRef.param.content.dataid = id
+      // this.$refs.exStatisticsRef.param.content.type = this.departmentid !== ''?1:0
+      // this.$refs.exStatisticsRef.param.content.where.isleave = this.isleave
+      // this.$refs.exStatisticsRef.cusInit(true)
+      // this.$refs.exStatisticsRef.proInit(true)
 
       /*应收账款*/
       this.$refs.receivableRef.param.content.dataid = id
@@ -430,10 +430,10 @@ export default {
     },
     queryAllAgainData(id){
       /*业务员账户*/
-      this.$refs.accountRef.param.content.dataid = id
-      this.$refs.accountRef.param.content.type = this.departmentid !== ''?1:0
-      this.$refs.accountRef.param.content.where.isleave = this.isleave
-      this.$refs.accountRef.listData()
+      // this.$refs.accountRef.param.content.dataid = id
+      // this.$refs.accountRef.param.content.type = this.departmentid !== ''?1:0
+      // this.$refs.accountRef.param.content.where.isleave = this.isleave
+      // this.$refs.accountRef.listData()
 
       /*作业数据*/
       this.$refs.jobRef.param.content.dataid = id
@@ -471,17 +471,17 @@ export default {
       this.$refs.funnelRef.listData()
 
       /*营销费用*/
-      this.$refs.expensesRef.param.content.dataid = id
-      this.$refs.expensesRef.param.content.type = this.departmentid !== ''?1:0
-      this.$refs.expensesRef.param.content.where.isleave = this.isleave
-      this.$refs.expensesRef.listData()
+      // this.$refs.expensesRef.param.content.dataid = id
+      // this.$refs.expensesRef.param.content.type = this.departmentid !== ''?1:0
+      // this.$refs.expensesRef.param.content.where.isleave = this.isleave
+      // this.$refs.expensesRef.listData()
 
       /*营销费用统计*/
-      this.$refs.exStatisticsRef.param.content.dataid = id
-      this.$refs.exStatisticsRef.param.content.type = this.departmentid !== ''?1:0
-      this.$refs.exStatisticsRef.param.content.where.isleave = this.isleave
-      this.$refs.exStatisticsRef.cusInit(false)
-      this.$refs.exStatisticsRef.proInit(false)
+      // this.$refs.exStatisticsRef.param.content.dataid = id
+      // this.$refs.exStatisticsRef.param.content.type = this.departmentid !== ''?1:0
+      // this.$refs.exStatisticsRef.param.content.where.isleave = this.isleave
+      // this.$refs.exStatisticsRef.cusInit(false)
+      // this.$refs.exStatisticsRef.proInit(false)
 
       /*应收账款*/
       this.$refs.receivableRef.param.content.dataid = id

+ 640 - 0
src/HManagement/serviceDataScreen/indexCopy.vue

@@ -0,0 +1,640 @@
+<template>
+  <div class="bg-img" id="fullScreen" style="box-sizing: border-box">
+    <div>
+      <div class="justify-style">
+        <div class="select-style">
+          <el-cascader :placeholder="$t('部门')"  class="inline-16" ref="selectdep" size="small" v-model="depment" :options="deplist" :append-to-body="false"  placement="bottom"
+                       :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep" ></el-cascader>
+          <el-select v-model="person" filterable :placeholder="$t('请选择')" size="small"  @change="selectPerson" :popper-append-to-body="false" class="inline-16">
+            <el-option
+                v-for="item in personnelList"
+                :key="item.index"
+                :label="$t(item.name)"
+                :value="item.userid">
+            </el-option>
+          </el-select>
+          <el-select v-model="isleave" clearable class="inline-16" size="small" :placeholder="$t('请选择状态')" @change="leaveChange" :popper-append-to-body="false">
+            <el-option :label="$t('在职')" value="1"></el-option>
+            <el-option :label="$t('离职')" value="2"></el-option>
+          </el-select>
+        </div>
+        <div class="title-style">{{$t(`营销管理平台`)}}</div>
+        <div class="time-style">
+          <div>
+            <span class="span">{{ymd}}</span>
+            <span class="span">{{week}}</span>
+            <span>{{nowTime}}</span>
+          </div>
+          <div>
+            <el-button size="small" class="button" type="primary" icon="el-icon-s-home" style="background-color: #144894"  @click="homeBack">{{$t(`返回首页`)}}</el-button>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div>
+      <div class="content-style justify-style">
+        <div>
+          <div class="justify-style">
+            <!-- 业务员账户 -->
+            <salesmanAccount ref="accountRef" @dialog="detailClick"></salesmanAccount>
+            <!-- 作业数据 -->
+            <jobData ref="jobRef" @dialog="detailClick"></jobData>
+          </div>
+          <div class="inline-top-20">
+            <!-- 销售面板 -->
+            <salesPanel  ref="panelRef" style="position: relative;z-index: 800"></salesPanel>
+          </div>
+        </div>
+        <div>
+          <!-- 销售漏斗 -->
+          <salesFunnel ref="funnelRef" style="position: relative;z-index: 700"></salesFunnel>
+          <div class="justify-style inline-top-20">
+            <!-- 营销费用 -->
+            <marketingExpenses ref="expensesRef"></marketingExpenses>
+            <!-- 营销费用统计 -->
+            <marketingExpenseStatistics ref="exStatisticsRef"></marketingExpenseStatistics>
+          </div>
+        </div>
+        <div>
+          <!-- 应收账款 -->
+          <accountsReceivable ref="receivableRef"></accountsReceivable>
+          <!-- 数据概况 -->
+          <dataProfile ref="profileRef" class="inline-top-20"></dataProfile>
+        </div>
+      </div>
+    </div>
+    <fullScreen ref="fullRef" class="inline-16" domId="fullScreen" style="visibility: hidden" @backFull="backFull"></fullScreen>
+    <el-dialog
+        :title="$t(`提示`)"
+        :visible.sync="dialogVisible"
+        :showClose="false"
+        width="500px"
+    >
+      <span>{{$t(`暂无权限,请开通权限`)}}</span>
+      <span slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="dialogVisible = false">{{$t(`确 定`)}}</el-button>
+        </span>
+    </el-dialog>
+    <el-dialog
+        :title="$t('提示')"
+        style="margin-top: calc(28vh)"
+        :visible.sync="dialogVisible"
+        width="500px"
+        :before-close="handleClose"
+    >
+      <span>{{$t('当前密码为初始密码,请前往修改密码')}}</span>
+      <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="onClose">{{$t('取 消')}}</el-button>
+    <el-button size="small" type="primary" @click="goPassword">{{$t('确 定')}}</el-button>
+  </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import fullScreen from "@/views/salesData/components/fullScreen";
+import salesmanAccount from './modules/salesmanAccount';
+import jobData from './modules/jobData'
+import salesPanel from './modules/salesPanel'
+import salesFunnel from './modules/salesFunnel'
+import marketingExpenses from './modules/marketingExpenses'
+import marketingExpenseStatistics from './modules/marketingExpenseStatistics'
+import accountsReceivable from './modules/accountsReceivable'
+import dataProfile from './modules/dataProfile'
+export default {
+  name: "index",
+  components:{fullScreen,salesmanAccount,jobData,salesPanel,salesFunnel,marketingExpenses,marketingExpenseStatistics,accountsReceivable,dataProfile},
+  data(){
+    return {
+      timer: "", // 定义一个定时器
+      nowTime: "",
+      ymd:"",
+      week:"",
+      isleave:'1',
+      depment:'',
+      person:'',
+      departmentid:'',
+      deplist:[],
+      personnelList:[],
+      depmentParam:{
+        "id": 20230620102004,
+        "content": {
+          "isleave":'1'
+        }
+      },
+      windowWidth: document.documentElement.clientWidth,  //实时屏幕宽度
+      windowHeight: document.documentElement.clientHeight,
+      dialogVisible:false,
+      dialogPaw:false,
+      activePath:JSON.parse(sessionStorage.getItem('activeApp')).path
+    }
+  },
+  mounted() {
+    this.$refs.fullRef.enterFullscreen()
+    this.departmentrtment()
+    console.log(this.windowWidth,'获取宽度')
+    console.log(this.windowHeight,'获取高度')
+    var that = this;
+    // <!--把window.onresize事件挂在到mounted函数上-->
+    window.onresize = () => {
+      return (() => {
+        window.fullWidth = document.documentElement.clientWidth;
+        that.windowWidth = window.fullWidth; // 宽
+        window.fullHeight = document.documentElement.clientHeight;
+        that.windowWidth = window.fullHeight
+      })()
+    };
+  },
+  watch: {
+    windowWidth (val) {
+      console.log("实时屏幕宽度:",val );
+      this.$refs.panelRef.progressWidth = (9.65 * document.documentElement.clientWidth) / 100
+    },
+    windowHeight (val) {
+      console.log("实时屏幕高度:",val );
+    }
+
+  },
+  methods:{
+    getTime() {
+      this.timer = setInterval(() => {
+        // 获取当前时间的各个部分
+        let timeDate = new Date();
+        let year = timeDate.getFullYear();
+        let mounth = timeDate.getMonth() + 1;
+        let day = timeDate.getDate();
+        let hours = timeDate.getHours();
+        // 格式化小时
+        hours = hours >= 10 ? hours : "0" + hours;
+        let minutes = timeDate.getMinutes();
+        // 格式化分钟
+        minutes = minutes >= 10 ? minutes : "0" + minutes;
+        let seconds = timeDate.getSeconds();
+        // 格式化秒钟
+        seconds = seconds >= 10 ? seconds : "0" + seconds;
+        let week = timeDate.getDay();
+        let weekArr = [
+          "星期日",
+          "星期一",
+          "星期二",
+          "星期三",
+          "星期四",
+          "星期五",
+          "星期六"
+        ];
+
+        // 将获取的时间信息赋值给nowTime
+        // this.nowTime = `${year}-${mounth}-${day} ${weekArr[week]} ${hours}:${minutes}:${seconds}`;
+        this.ymd = `${year}年${mounth}月${day}日`
+        this.week = `${weekArr[week]}`
+        this.nowTime = `${hours}:${minutes}:${seconds}`
+      }, 1000); // 每隔一秒更新时间
+    },
+    backFull(){
+      this.homeBack()
+      if (JSON.parse(sessionStorage.getItem('active_password')) == '1' && JSON.parse(sessionStorage.getItem('password')) != '1' && JSON.parse(sessionStorage.getItem('active_account')).usertype != 0 && JSON.parse(sessionStorage.getItem('active_account')).usertype != 1){
+        this.dialogPaw = true
+      }
+    },
+    onClose() {
+      this.dialogVisible = false;
+      sessionStorage.setItem("password", "1");
+      sessionStorage.setItem("isPassword", "0");
+    },
+    handleClose() {
+      this.dialogVisible = false;
+      sessionStorage.setItem("password", "1");
+      sessionStorage.setItem("isPassword", "0");
+    },
+    goPassword(){
+      this.dialogPaw = false
+      this.$router.push('/user_center')
+      sessionStorage.setItem('password','1')
+      sessionStorage.setItem('isPassword','1')
+    },
+    leaveChange(){
+      const type = this.depment?'1':'0'
+      this.person = ''
+      const dataid = type == '0'?-1:this.departmentid
+      this.personData()
+      this.queryAllAgainData(dataid)
+    },
+    /*获取新的业务员列表*/
+    async personData(){
+      let param = {
+        id: 20230620102004,
+        content: {
+          isleave:this.isleave
+        },
+      }
+      const res = await this.$api.requested(param)
+      this.personnelList = res.data.hr
+    },
+    async departmentrtment() {
+      const res = await this.$api.requested(this.depmentParam)
+      this.deplist = this.createMenu(res.data.dep)
+      this.personnelList = res.data.hr
+      // this.person = JSON.parse(window.sessionStorage.getItem('active_account')).name
+      this.depment = ''
+      this.departmentid = ''
+      const userid = JSON.parse(sessionStorage.getItem('active_account')).userid
+      const hrid = JSON.parse(sessionStorage.getItem('active_account')).hrid
+      this.queryIsLeader(hrid,userid)
+      // this.queryAllData(hrid)
+    },
+    /*获取当前账号是否部门负责人*/
+    async queryIsLeader(hrid,userid){
+      if (hrid != 0){
+        let param = {
+          classname: "webmanage.hr.hr",
+          method: "query_hrMain",
+          content:{
+            hrid:hrid
+          }
+        }
+        const res = await this.$api.requested(param)
+        if (res.data.isleader == 1){
+          this.departmentid = this.deplist[0].departmentid
+          this.depment = this.deplist[0].departmentid
+          this.queryAllData(this.departmentid)
+        }else {
+          this.person = JSON.parse(window.sessionStorage.getItem('active_account')).name
+          this.queryAllData(userid)
+        }
+      }else {
+        this.departmentid = this.deplist[0].departmentid
+        this.depment = this.deplist[0].departmentid
+        this.queryAllData(this.departmentid)
+      }
+    },
+    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'],
+            disabled:that.pageOnlyRead,
+          }
+        }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'],
+            disabled:that.pageOnlyRead,
+            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
+    },
+    selectDep(val) {
+      if (val.length === 0){
+        const userid = JSON.parse(sessionStorage.getItem('active_account')).userid
+        this.queryAllAgainData(userid)
+      }else {
+        this.person = ''
+        this.dataid = ''
+        this.departmentid = val[val.length -1]
+        this.queryAllAgainData(this.departmentid)
+      }
+    },
+    selectPerson(val){
+      this.depment = ''
+      this.departmentid = ''
+      this.dataid = val
+      this.queryAllAgainData(val)
+    },
+    queryAllData(id){
+      console.log(id,'3333')
+      /*业务员账户*/
+      this.$refs.accountRef.param.content.dataid = id
+      this.$refs.accountRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.accountRef.param.content.where.isleave = this.isleave
+      this.$refs.accountRef.listData()
+
+      /*作业数据*/
+      this.$refs.jobRef.param.content.dataid = id
+      this.$refs.jobRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.jobRef.param.content.where.isleave = this.isleave
+      this.$refs.jobRef.listData()
+
+      /*销售面板*/
+      this.$refs.panelRef.param.content.dataid = id
+      this.$refs.panelRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.param.content.where.isleave = this.isleave
+      let year = new Date().getFullYear()
+      this.$refs.panelRef.paramChart.content.dataid = id
+      this.$refs.panelRef.paramChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.paramChart.content.year = year
+      this.$refs.panelRef.paramShipmentChart.content.dataid = id
+      this.$refs.panelRef.paramShipmentChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramShipmentChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.paramShipmentChart.content.year = year
+      this.$refs.panelRef.paramInvoiceChart.content.dataid = id
+      this.$refs.panelRef.paramInvoiceChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramInvoiceChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.paramInvoiceChart.content.year = year
+      this.$refs.panelRef.paramRefundChart.content.dataid = id
+      this.$refs.panelRef.paramRefundChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramRefundChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.$refs.pickerRef.value = String(year)
+      this.$refs.panelRef.listData(true)
+
+      /*销售漏斗*/
+      this.$refs.funnelRef.param.content.dataid = id
+      this.$refs.funnelRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.funnelRef.param.content.where.isleave = this.isleave
+      this.$refs.funnelRef.listData()
+
+      /*营销费用*/
+      this.$refs.expensesRef.param.content.dataid = id
+      this.$refs.expensesRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.expensesRef.param.content.where.isleave = this.isleave
+      this.$refs.expensesRef.listData()
+
+      /*营销费用统计*/
+      this.$refs.exStatisticsRef.param.content.dataid = id
+      this.$refs.exStatisticsRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.exStatisticsRef.param.content.where.isleave = this.isleave
+      this.$refs.exStatisticsRef.cusInit(true)
+      this.$refs.exStatisticsRef.proInit(true)
+
+      /*应收账款*/
+      this.$refs.receivableRef.param.content.dataid = id
+      this.$refs.receivableRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.receivableRef.param.content.where.isleave = this.isleave
+      this.$refs.receivableRef.listData()
+
+      /*数据概况*/
+      this.$refs.profileRef.param.content.dataid = id
+      this.$refs.profileRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.listData()
+      this.$refs.profileRef.$refs.proTypRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.proTypRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.proTypRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.$refs.proFowRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.proFowRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.proFowRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.$refs.cusFowRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.cusFowRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.cusFowRef.param.content.where.isleave = this.isleave
+      let currentDate = new Date(); // 获取当前日期
+      // let startDate = new Date(currentDate.getFullYear(), currentDate.getMonth() ) // 计算起始日期
+      let startDate = currentDate.getFullYear() +'-' + 1
+      let endDate = currentDate.getFullYear() +'-' + 12 // 计算起始日期
+      this.$refs.profileRef.$refs.startRef.value = startDate
+      this.$refs.profileRef.$refs.endRef.value = endDate
+      this.$refs.profileRef.$refs.proTypRef.typeInit(true,'项目类型分析')
+      this.$refs.profileRef.$refs.proFowRef.typeInit(true,'项目跟进情况')
+      this.$refs.profileRef.$refs.cusFowRef.typeInit(true,'客户跟进情况')
+      this.$refs.profileRef.$refs.analyzeRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.analyzeRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.analyzeRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.$refs.analyzeDateRef.value = new Date().getFullYear() + '-' +  (new Date().getMonth() + 1) + '-' + new Date().getDate()
+      this.$refs.profileRef.$refs.analyzeRef.lineInit(true)
+    },
+    queryAllAgainData(id){
+      /*业务员账户*/
+      this.$refs.accountRef.param.content.dataid = id
+      this.$refs.accountRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.accountRef.param.content.where.isleave = this.isleave
+      this.$refs.accountRef.listData()
+
+      /*作业数据*/
+      this.$refs.jobRef.param.content.dataid = id
+      this.$refs.jobRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.jobRef.param.content.where.isleave = this.isleave
+      this.$refs.jobRef.listData()
+
+      /*销售面板*/
+      this.$refs.panelRef.param.content.dataid = id
+      this.$refs.panelRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.param.content.where.isleave = this.isleave
+      let year = new Date().getFullYear()
+      this.$refs.panelRef.paramChart.content.dataid = id
+      this.$refs.panelRef.paramChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.paramChart.content.year = year
+      this.$refs.panelRef.paramShipmentChart.content.dataid = id
+      this.$refs.panelRef.paramShipmentChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramShipmentChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.paramShipmentChart.content.year = year
+      this.$refs.panelRef.paramInvoiceChart.content.dataid = id
+      this.$refs.panelRef.paramInvoiceChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramInvoiceChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.paramInvoiceChart.content.year = year
+      this.$refs.panelRef.paramRefundChart.content.dataid = id
+      this.$refs.panelRef.paramRefundChart.content.type = this.departmentid !== ''?1:0
+      this.$refs.panelRef.paramRefundChart.content.where.isleave = this.isleave
+      this.$refs.panelRef.$refs.pickerRef.value = String(year)
+      this.$refs.panelRef.listData(false)
+
+      /*销售漏斗*/
+      this.$refs.funnelRef.param.content.dataid = id
+      this.$refs.funnelRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.funnelRef.param.content.where.isleave = this.isleave
+      this.$refs.funnelRef.listData()
+
+      /*营销费用*/
+      this.$refs.expensesRef.param.content.dataid = id
+      this.$refs.expensesRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.expensesRef.param.content.where.isleave = this.isleave
+      this.$refs.expensesRef.listData()
+
+      /*营销费用统计*/
+      this.$refs.exStatisticsRef.param.content.dataid = id
+      this.$refs.exStatisticsRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.exStatisticsRef.param.content.where.isleave = this.isleave
+      this.$refs.exStatisticsRef.cusInit(false)
+      this.$refs.exStatisticsRef.proInit(false)
+
+      /*应收账款*/
+      this.$refs.receivableRef.param.content.dataid = id
+      this.$refs.receivableRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.receivableRef.param.content.where.isleave = this.isleave
+      this.$refs.receivableRef.listData()
+
+      /*数据概况*/
+      this.$refs.profileRef.param.content.dataid = id
+      this.$refs.profileRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.listData()
+      this.$refs.profileRef.$refs.proTypRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.proTypRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.proTypRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.$refs.proFowRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.proFowRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.proFowRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.$refs.cusFowRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.cusFowRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.cusFowRef.param.content.where.isleave = this.isleave
+      let currentDate = new Date(); // 获取当前日期
+      // let startDate = new Date(currentDate.getFullYear(), currentDate.getMonth() ) // 计算起始日期
+      let startDate = currentDate.getFullYear() +'-' + 1
+      let endDate = currentDate.getFullYear() +'-' + 12 // 计算起始日期
+      this.$refs.profileRef.$refs.startRef.value = startDate
+      this.$refs.profileRef.$refs.endRef.value = endDate
+      this.$refs.profileRef.$refs.proTypRef.typeInit(false,'项目类型分析')
+      this.$refs.profileRef.$refs.proFowRef.typeInit(false,'项目跟进情况')
+      this.$refs.profileRef.$refs.cusFowRef.typeInit(false,'客户跟进情况')
+      this.$refs.profileRef.$refs.analyzeRef.param.content.dataid = id
+      this.$refs.profileRef.$refs.analyzeRef.param.content.type = this.departmentid !== ''?1:0
+      this.$refs.profileRef.$refs.analyzeRef.param.content.where.isleave = this.isleave
+      this.$refs.profileRef.$refs.analyzeDateRef.value = new Date().getFullYear() + '-' +  (new Date().getMonth() + 1) + '-' + new Date().getDate()
+      this.$refs.profileRef.$refs.analyzeRef.lineInit(false)
+    },
+    detailClick(){
+      this.dialogVisible = true
+    },
+    handleBeforeunload(){
+      console.log('退出全屏刷新页面******')
+      sessionStorage.setItem('isFull','0')
+      this.$refs.fullRef.backFullscreen()
+    },
+    homeBack(){
+      if (this.activePath){
+        this.$router.push(this.activePath)
+      }else {
+        this.$router.push('/message')
+      }
+    }
+  },
+  created() {
+    this.getTime()
+    window.addEventListener('beforeunload',this.handleBeforeunload)
+  },
+  beforeDestroy() {
+    if (this.timer) {
+      clearInterval(this.timer);
+    }
+  },
+}
+</script>
+
+<style scoped>
+.bg-img {
+  background: url("../../assets/icons/bgScreen.jpg") no-repeat;
+  background-size: 100% 100%;
+  width: 100vw;
+  height: 100vh;
+  margin: 0;
+  padding: 0;
+}
+.select-style{
+  width: 30%;
+  padding-top: 0.625vw;
+  margin-left: 1.042vw;
+}
+.title-style {
+  width: 30%;
+  font-family: Microsoft YaHei, Microsoft YaHei;
+  font-weight: bold;
+  font-size: 2.292vw;
+  color: #E6F4FF;
+  text-shadow: 0.000vw 0.104vw 0.208vw #A9D7F9;
+  margin: auto;
+  font-style: normal;
+  text-transform: none;
+  padding-top: 1.042vh
+}
+.time-style{
+  font-family: Microsoft YaHei, Microsoft YaHei;
+  font-weight: 400;
+  font-size: 0.938vw;
+  color: #E6F4FF;
+  text-align: right;
+  font-style: normal;
+  text-transform: none;
+  padding-top: 0.538vw;
+  padding-right: 1.042vw;
+}
+.time-style .span {
+  margin-right: 1.042vw;
+}
+.time-style .button {
+  font-family: Microsoft YaHei, Microsoft YaHei;
+  font-weight: 400;
+  font-size: 0.938vw;
+  color: #E6F4FF;
+  text-align: left;
+  font-style: normal;
+  text-transform: none;
+  margin-top: 0.438vw;
+  border-radius: 0.313vw 0.313vw 0.313vw 0.313vw;
+  border: none;
+}
+.justify-style{
+  display: flex;
+  justify-content: space-between
+}
+.content-style{
+  margin: 1.804vw 1.042vw 1.042vw 1.042vw;
+  /*border: 0.052vw solid #5daf34;*/
+  height: calc(100vh - 7.458vw);
+}
+.inline-left-20{
+  margin-left: 1.042vw;
+}
+.inline-top-20{
+  margin-top: 1.042vw;
+}
+/deep/ .el-input {
+  position: relative;
+  font-size: 0.729vw;
+  display: inline-block;
+  width: 5.892vw;
+}
+/deep/ .el-input__inner {
+  -webkit-appearance: none;
+  background-color: #061a31;
+  background-image: none;
+  box-sizing: border-box;
+  color: #c6d6e4;
+  display: inline-block;
+  font-size: inherit;
+  height: 1.583vw;
+  line-height: 1.583vw;
+  outline: 0;
+  padding: 0 0 0 0.381vw;
+  transition: border-color .2s cubic-bezier(.645, .045, .355, 1);
+  width: 100%;
+  box-shadow: 0.000vw 0.156vw 0.313vw 0.052vw rgba(0,0,0,0.16);
+  border-radius: 0.313vw 0.313vw 0.313vw 0.313vw;
+  border: 0.052vw solid #CFDCE5;
+}
+</style>

+ 34 - 34
src/HManagement/serviceDataScreen/modules/dataProfile.vue

@@ -39,40 +39,40 @@
           </div>
         </div>
         <profileTemplate :dataProfile="dataProfile" :profileType="profileType"></profileTemplate>
-        <div class="bottom_justify">
-          <div class="title_font">
-            {{$t(`数据图例`)}}
-          </div>
-          <div class="title_right" v-show="typeSelect !== '报价'">
-            <el-select v-model="dateType"  class="inline-16" size="small" @change="dateTypeChange"  :popper-append-to-body="false">
-              <el-option :label="$t('全部')" value="全部"></el-option>
-              <el-option :label="$t('本年')" value="本年"></el-option>
-            </el-select>
-            <div class="line-style inline-16"></div>
-            <div class="inline-16">
-              <datePicker ref="startRef" type="date" @selectTime="begDateChange" format="yyyy-MM" value_format="yyyy-MM"></datePicker>
-            </div>
-            <div class="title_right_font inline-16">{{$t(`至`)}}</div>
-            <div>
-              <datePicker ref="endRef" type="date" @selectTime="endDateChange" format="yyyy-MM" value_format="yyyy-MM"></datePicker>
-            </div>
-          </div>
-          <div class="title_right" v-show="typeSelect == '报价'">
-            <datePicker ref="analyzeDateRef" type="date" @selectTime="analyzeChange" format="yyyy-MM-dd" value_format="yyyy-MM-dd"></datePicker>
-          </div>
-        </div>
-        <div v-show="typeSelect === '报价'">
-          <div style="margin-top: 1.042vw">
-            <LineCharts ref="analyzeRef" height="10.844vw" width="29.125vw" h-chart="9.933vw" w-chart="29.125vw"></LineCharts>
-          </div>
-        </div>
-       <div v-show="typeSelect !== '报价'">
-         <div  style="display:flex;justify-content: left;margin-top: 1.042vw">
-           <PieCharts ref="proTypRef" height="11.844vw" width="12.125vw" h-chart="9.633vw" w-chart="10.125vw" title="项目类型分析"></PieCharts>
-           <PieCharts ref="proFowRef" height="11.844vw" width="11.125vw" h-chart="9.633vw" w-chart="10.125vw" title="项目跟进情况"></PieCharts>
-           <PieCharts ref="cusFowRef" height="11.844vw" width="11.125vw" h-chart="9.633vw" w-chart="10.125vw" title="客户跟进情况"></PieCharts>
-         </div>
-       </div>
+<!--        <div class="bottom_justify">-->
+<!--          <div class="title_font">-->
+<!--            {{$t(`数据图例`)}}-->
+<!--          </div>-->
+<!--          <div class="title_right" v-show="typeSelect !== '报价'">-->
+<!--            <el-select v-model="dateType"  class="inline-16" size="small" @change="dateTypeChange"  :popper-append-to-body="false">-->
+<!--              <el-option :label="$t('全部')" value="全部"></el-option>-->
+<!--              <el-option :label="$t('本年')" value="本年"></el-option>-->
+<!--            </el-select>-->
+<!--            <div class="line-style inline-16"></div>-->
+<!--            <div class="inline-16">-->
+<!--              <datePicker ref="startRef" type="date" @selectTime="begDateChange" format="yyyy-MM" value_format="yyyy-MM"></datePicker>-->
+<!--            </div>-->
+<!--            <div class="title_right_font inline-16">{{$t(`至`)}}</div>-->
+<!--            <div>-->
+<!--              <datePicker ref="endRef" type="date" @selectTime="endDateChange" format="yyyy-MM" value_format="yyyy-MM"></datePicker>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--          <div class="title_right" v-show="typeSelect == '报价'">-->
+<!--            <datePicker ref="analyzeDateRef" type="date" @selectTime="analyzeChange" format="yyyy-MM-dd" value_format="yyyy-MM-dd"></datePicker>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div v-show="typeSelect === '报价'">-->
+<!--          <div style="margin-top: 1.042vw">-->
+<!--            <LineCharts ref="analyzeRef" height="10.844vw" width="29.125vw" h-chart="9.933vw" w-chart="29.125vw"></LineCharts>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--       <div v-show="typeSelect !== '报价'">-->
+<!--         <div  style="display:flex;justify-content: left;margin-top: 1.042vw">-->
+<!--           <PieCharts ref="proTypRef" height="11.844vw" width="12.125vw" h-chart="9.633vw" w-chart="10.125vw" title="项目类型分析"></PieCharts>-->
+<!--           <PieCharts ref="proFowRef" height="11.844vw" width="11.125vw" h-chart="9.633vw" w-chart="10.125vw" title="项目跟进情况"></PieCharts>-->
+<!--           <PieCharts ref="cusFowRef" height="11.844vw" width="11.125vw" h-chart="9.633vw" w-chart="10.125vw" title="客户跟进情况"></PieCharts>-->
+<!--         </div>-->
+<!--       </div>-->
       </template>
     </borderTemplate>
   </div>

+ 28 - 25
src/HManagement/serviceDataScreen/modules/jobData.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <borderTemplate borderBox="width: 15.208vw;height: 12.500vw;" title="作业数据" detailTitle="查看详情" @dialog="detailClick" systemappid="42" push_path="/dataanalysis">
-      <template slot="content">
-        <div style="display: flex;justify-content: right;margin-top: 0.242vw;">
+    <borderTemplate borderBox="width: 31.250vw;height: 12.500vw;" title="作业数据" detailTitle="查看详情" @dialog="detailClick" systemappid="42" push_path="/dataanalysis">
+      <template slot="operation">
+        <div style="display: flex;justify-content: right;margin-top: -0.23vw;margin-left: 1.256vw">
           <el-select v-model="dateType"   size="small"  @change="dateTypeChange" :popper-append-to-body="false">
             <el-option :label="$t('本周')" value="本周"></el-option>
             <el-option :label="$t('本月')" value="本月"></el-option>
@@ -10,6 +10,8 @@
             <el-option :label="$t('本年')" value="本年"></el-option>
           </el-select>
         </div>
+      </template>
+      <template slot="content">
         <div class="box-style">
           <div class="box-border">
             <div class="justify-content-style-set">
@@ -18,16 +20,10 @@
                 <div class="title">{{$t(`新增线索`)}}</div>
               </div>
               <div class="magin-10">
-                <div class="data-font">{{list.xmxz}}</div>
-                <div class="title">{{$t(`新增项目`)}}</div>
+                <div class="data-font">{{list.xsgj}}</div>
+                <div class="title">{{$t(`跟进线索`)}}</div>
               </div>
               <div class="magin-10">
-                <div class="data-font">{{list.lxxz}}</div>
-                <div class="title">{{$t(`新增联系人`)}}</div>
-              </div>
-            </div>
-            <div class="justify-content-style-set">
-              <div>
                 <div class="data-font">{{list.khxz}}</div>
                 <div class="title">{{$t(`新增客户`)}}</div>
               </div>
@@ -35,20 +31,26 @@
                 <div class="data-font">{{list.khgj}}</div>
                 <div class="title">{{$t(`客户跟进`)}}</div>
               </div>
+
               <div class="magin-10">
-                <div class="data-font">{{list.xsgj}}</div>
-                <div class="title">{{$t(`跟进线索`)}}</div>
+                <div class="data-font">{{list.lxxz}}</div>
+                <div class="title">{{$t(`新增联系人`)}}</div>
+              </div>
+              <div class="magin-10">
+                <div class="data-font">{{list.lxgj}}</div>
+                <div class="title">{{$t(`联系人跟进`)}}</div>
               </div>
             </div>
             <div class="justify-content-style-set">
               <div>
-                <div class="data-font">{{list.lxgj}}</div>
-                <div class="title">{{$t(`联系人跟进`)}}</div>
+                <div class="data-font">{{list.xmxz}}</div>
+                <div class="title">{{$t(`新增项目`)}}</div>
               </div>
-              <div style="margin-left: 0.52vw">
+
+              <div class="magin-10">
                 <div class="data-font">{{list.xmgj}}</div>
                 <div class="title">{{$t(`项目跟进`)}}</div>
-              </div>
+              </div >
             </div>
           </div>
         </div>
@@ -144,19 +146,20 @@ export default {
 
 <style scoped>
 .box-style{
-  width: 13.021vw;
-  height: 6.458vw;
+  width: 28.921vw;
+  height: 6.858vw;
   background: #001E41;
   box-shadow: 0.000vw 0.156vw 0.313vw 0.052vw rgba(0,0,0,0.16);
   border-radius: 0.313vw 0.313vw 0.313vw 0.313vw;
   border: 0.052vw solid #CFDCE5;
-  margin-top: 0.642vw;
+  margin-top: 1.256vw;
+  margin-bottom: 1.256vw;
 }
 .box-border{
-  margin: 0vw 0 0.605vw 0vw;
-  max-width: 13.021vw;
-  max-height: 6.058vw;
-  overflow: auto;
+  /*margin: 0vw 0 0.605vw 0vw;*/
+  /*max-width: 28.521vw;*/
+  /*max-height: 6.858vw;*/
+  /*overflow: auto;*/
 }
 .box-border::-webkit-scrollbar {
   width: 0.313vw;
@@ -196,6 +199,6 @@ export default {
   padding: 0.225vw 1.042vw 0 1.042vw;
 }
 .magin-10{
-  margin-left: 1.182vw;
+  margin-left: 1.782vw;
 }
 </style>

+ 4 - 3
src/HManagement/serviceDataScreen/modules/salesFunnel.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <borderTemplate borderBox="width: 33.333vw;height: 35.417vw;" title="销售漏斗"  detailTitle="查看详情" @dialog="$emit('dialog')" systemappid="260" push_path="/salesfunnel">
+    <borderTemplate borderBox="width: 33.333vw;height: 48.917vw;" title="销售漏斗"  detailTitle="查看详情" @dialog="$emit('dialog')" systemappid="260" push_path="/salesfunnel">
       <template slot="content">
-        <div style="display: flex;justify-content: space-between">
+        <div style="display: flex;justify-content: space-between;margin-top: 1.256vw">
           <div>
             <el-checkbox v-model="param.content.where.unfinish" true-label="0" false-label="1"  @change="listData(null)">{{$t(`包含失败、结案项目`)}}</el-checkbox>
           </div>
@@ -24,8 +24,9 @@
             </div>
           </div>
         </div>
+        <div style="height: 0.256vw"></div>
         <div>
-          <funnelBox style="margin-top: 0.625vw;" v-for="(item,index) in list"  :key="item.index" :width="width - (index * 1.042)"  :data="item"></funnelBox>
+          <funnelBox style="margin-top: 1.256vw;" v-for="(item,index) in list"  :key="item.index" :width="width - (index * 1.042)"  :data="item"></funnelBox>
         </div>
       </template>
     </borderTemplate>

+ 28 - 1
src/HManagement/task/components/followData.vue

@@ -10,7 +10,30 @@
       <div style="padding: 0px 16px 16px 16px">
         <table-new-layout :layout="tablecols" :checkbox="false"  :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true" fixedName="operation">
           <template v-slot:customcol="scope">
-            <p>{{scope.column.data[scope.column.columnname]?$t(scope.column.data[scope.column.columnname]):scope.column.columnname == 'operation'?'':'--'}}</p>
+            <div v-if="scope.column.columnname == 'createby'">
+              <div>{{scope.column.data[scope.column.columnname]}}</div>
+              <el-tag v-if="scope.column.data.resource" size="mini" style="color: #3874f6">{{$t(scope.column.data.resource)}}</el-tag>
+            </div>
+            <div v-else-if="scope.column.columnname == 'contacts'">
+              <div v-for="item in scope.column.data.contacts" :key="item.index">
+                <span v-if="item.rowindex === scope.column.data.contacts.length" class="span-style">
+                  {{item.name}}
+                </span>
+                <span v-else class="span-style">
+                  {{item.name + ','}}
+                </span>
+              </div>
+            </div>
+            <div v-else-if="scope.column.columnname == 'content'">
+              <div>{{$t(`目的:`)}}{{scope.column.data.target?scope.column.data.target:'--'}}</div>
+              <div>{{$t(`过程:`)}}{{scope.column.data.content?scope.column.data.content:'--'}}</div>
+              <div>{{$t(`结果:`)}}{{scope.column.data.results?scope.column.data.results:'--'}}</div>
+              <div>{{$t(`下次跟进计划:`)}}{{scope.column.data.nextplan?scope.column.data.nextplan:'--'}}</div>
+            </div>
+            <div v-else-if="scope.column.columnname == 'attcount'">
+              <el-button type="text" size="small" >{{scope.column.data.attcount?tool.qtyShow(scope.column.data.attcount):'--'}}</el-button>
+            </div>
+            <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:scope.column.columnname == 'operation'?'':'--'}}</p>
           </template>
           <template v-slot:opreation="scope">
             <el-button type="text" @click="onSelect(scope.data)">{{ $t('选择') }}</el-button>
@@ -67,6 +90,10 @@ export default {
       this.param.content.pageNumber = val
       this.listData()
     },
+    showFiles(data){
+      this.$refs.normalDialogFile.dialogVisible = true
+      this.attinfo_attachment = data.attinfos
+    },
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).followTable.tablecols

+ 2 - 2
src/HManagement/task/modules/completeTask.vue

@@ -70,9 +70,9 @@ export default {
           let obj = ''
           contacts.forEach((item,index)=>{
             if (index === contacts.length -1){
-              obj = obj + item
+              obj = obj + item.name
             }else {
-              obj = obj + item + ','
+              obj = obj + item,name + ','
             }
           })
           this.form.finishnotes = '跟进类型:'+type+'\n'+ '跟进对象:'+obj+'\n' + content

+ 14 - 0
src/SDrpManagement/salerPrivatecustomer/detail/modules/detailedData.vue

@@ -156,6 +156,20 @@
               : "--"
           }}</el-descriptions-item
         >
+        <el-descriptions-item
+            label-class-name="my-label"
+            :label="$t(`最近跟进时间`)"
+        >{{
+            data.followdate ? data.followdate : "--"
+          }}</el-descriptions-item
+        >
+        <el-descriptions-item
+            label-class-name="my-label"
+            :label="$t(`近1个月跟进次数`)"
+        >{{
+            tool.qtyShow(data.followcounts)
+          }}</el-descriptions-item
+        >
 
         <!--        <el-descriptions-item label-class-name="my-label" :label="$t(`修正比例`)" v-if="siteid === 'HY'">
           <span >{{ data.reward_rate?Math.round((data.reward_rate * 100)*100)/100 + '%':"0%" }}</span>

+ 3 - 0
src/SDrpManagement/salerPrivatecustomer/index.vue

@@ -294,6 +294,9 @@
               : "--"
           }}</span>
         </div>
+        <div v-else-if="scope.data.column.columnname == 'followcounts'">
+          {{tool.qtyShow(scope.data.column.data[[scope.data.column.columnname]])}}
+        </div>
         <div v-else>
           {{
             scope.data.column.data[[scope.data.column.columnname]]

+ 3 - 0
src/SManagement/orderclue/index.vue

@@ -126,6 +126,9 @@
           <span v-if="scope.data.column.data[[scope.data.column.columnname]].length !== 0">{{scope.data.column.data[[scope.data.column.columnname]].length > 0 && scope.data.column.data[[scope.data.column.columnname]][0].name}}</span>
           <span v-else>--</span>
         </div>
+        <div v-else-if="scope.data.column.columnname == 'followcounts'">
+          {{tool.qtyShow(scope.data.column.data[[scope.data.column.columnname]])}}
+        </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]?$t(scope.data.column.data[[scope.data.column.columnname]]):'--'}}
         </div>

+ 4 - 2
src/SManagement/orderclue_detail/index.vue

@@ -352,7 +352,8 @@ export default {
 
             }
           },
-
+          { label: this.$t("最近跟进时间"), value: this.mainData.followdate },
+          { label: this.$t("近一个月跟进次数"), value: this.tool.qtyShow(this.mainData.followcounts) }
         ],
         systemInfo: [
           {label:'创建人',value:this.mainData.createBy},
@@ -488,7 +489,8 @@ export default {
 
                 }
               },
-
+              { label: this.$t("最近跟进时间"), value: this.mainData.followdate },
+              { label: this.$t("近一个月跟进次数"), value: this.tool.qtyShow(this.mainData.followcounts) }
             ],
             systemInfo: [
               {label:'创建人',value:this.mainData.createBy},