Просмотр исходного кода

Revert "Merge branch 'master_20260511'"

This reverts commit 854cf0ba6b404562a072b49dae51c31facea7700, reversing
changes made to 6a084e15b7005fc1bd4b832cc9bf80ce87e8c6cc.
zhujindu недель назад: 2
Родитель
Сommit
bfb88e3444
73 измененных файлов с 4497 добавлено и 3788 удалено
  1. 12 12
      src/api/index.js
  2. 0 9
      src/api/week.js
  3. BIN
      src/assets/wanmeiStoreImg.gif
  4. 56 0
      src/components/componentsTarget/ZYPlaceOrder.vue
  5. 52 0
      src/components/componentsTarget/ZYSAP.vue
  6. 42 0
      src/components/componentsTarget/chunTaiSAP.vue
  7. 52 0
      src/components/componentsTarget/cizhuanjiaoSAP.vue
  8. 82 0
      src/components/componentsTarget/createStoreBJ.vue
  9. 52 0
      src/components/componentsTarget/fangshuiSAP.vue
  10. 0 0
      src/components/componentsTarget/index.css
  11. 52 0
      src/components/componentsTarget/moshouqiSAP.vue
  12. 52 0
      src/components/componentsTarget/neiqiangzhonggaoduanSAP.vue
  13. 52 0
      src/components/componentsTarget/neiwaiqiangpingtu.vue
  14. 84 0
      src/components/componentsTarget/performanceSAP.vue
  15. 63 0
      src/components/componentsTarget/placeOrder.vue
  16. 54 0
      src/components/componentsTarget/veryGoodPlaceOrder.vue
  17. 126 0
      src/components/componentsTarget/visitedRealTime.vue
  18. 52 0
      src/components/componentsTarget/zhiganwaiqiangSAP.vue
  19. 87 11
      src/components/share.vue
  20. 710 0
      src/components/shareAtarget.vue
  21. 509 0
      src/components/shareBtarget.vue
  22. 536 0
      src/components/shareCommonTarget.vue
  23. 96 0
      src/components/shareReportCustom.vue
  24. 1 1
      src/components/uploadVNormal.vue
  25. 14 241
      src/components/uploadVNormalTaskPhoto.vue
  26. 0 3
      src/main.js
  27. 19 26
      src/permission.js
  28. 0 6
      src/router/index.js
  29. 43 5
      src/store/modules/user.js
  30. 2 2
      src/views/clew/clewent.vue
  31. 3 3
      src/views/clew/complaintDetail/index.vue
  32. 6 67
      src/views/componentsTarget/createStoreBJ.vue
  33. 0 74
      src/views/componentsTarget/index.css
  34. 4 40
      src/views/componentsTarget/placeOrder.vue
  35. 6 29
      src/views/componentsTarget/visitedRealTime.vue
  36. 41 68
      src/views/deviceOutside/oderSuccess.vue
  37. 4 6
      src/views/deviceOutside/outabnormalVisit.vue
  38. 2 2
      src/views/deviceOutside/suishenbangOutstoreVisit.vue
  39. 184 253
      src/views/deviceWithin/abnormalVisit.vue
  40. 1 9
      src/views/deviceWithin/addStoreVisit.vue
  41. 8 16
      src/views/deviceWithin/addStoreVisitd.vue
  42. 5 9
      src/views/deviceWithin/storeVisit.vue
  43. 12 25
      src/views/deviceWithin/taskPhotoTaking.vue
  44. 161 428
      src/views/historicalVisit/perfectStore.vue
  45. 62 236
      src/views/historicalVisit/perfectStoreTask.vue
  46. 78 0
      src/views/home/ABtarget.vue
  47. 80 3
      src/views/home/Atarget.vue
  48. 78 0
      src/views/home/Btarget.vue
  49. 96 33
      src/views/home/HomeTarget.vue
  50. 42 1
      src/views/home/bottomBtn.vue
  51. 10 34
      src/views/home/hintTabPage/hintDetail.vue
  52. 71 49
      src/views/home/hintTabPage/index.vue
  53. 4 6
      src/views/home/hintTabPage/noVisit.vue
  54. 4 6
      src/views/home/hintTabPage/unCreateStore.vue
  55. 34 29
      src/views/home/index.vue
  56. 1 2
      src/views/storeManagement/storeAdd.vue
  57. 9 12
      src/views/storeManagement/success.vue
  58. 3 3
      src/views/week/assignAwait/JZfollowUp.vue
  59. 4 6
      src/views/week/assignAwait/assignPage.vue
  60. 0 102
      src/views/week/changeChain.vue
  61. 29 405
      src/views/week/daily.vue
  62. 24 439
      src/views/week/dailyApproval.vue
  63. 187 493
      src/views/week/dailyDetails.vue
  64. 129 490
      src/views/week/dailyHistoricalDetails.vue
  65. 21 6
      src/views/week/doubleWeekly.vue
  66. 21 9
      src/views/week/doubleWeeklyApproval.vue
  67. 18 2
      src/views/week/doubleWeeklyDetils.vue
  68. 0 15
      src/views/week/index.vue
  69. 74 42
      src/views/week/target.vue
  70. 21 6
      src/views/week/weekly.vue
  71. 21 9
      src/views/week/weeklyApproval.vue
  72. 21 3
      src/views/week/weeklyApprovalDetils.vue
  73. 18 2
      src/views/week/weeklyHistoricalDetils.vue

+ 12 - 12
src/api/index.js

@@ -1170,37 +1170,37 @@ export function getCljlaToDBLabel(query) {
   });
 }
 
-// 完美门店-陈列任务详情
-export function getVisitsDetailPerfectStoreByTaskId(query) {
+// 获取服务商档案信息接口
+export function getServiceProviderArchives(query) {
   return request({
-    url: 'mobile/storeGroup/getVisitsDetailPerfectStoreByTaskId',
+    url: 'mobile/store/getServiceProviderArchives',
     method: 'get',
     params: query,
   });
 }
 
-// 查询用户距离拜访门店得距离
-export function selectUserDistanceTheStore(query) {
+// 完美门店-陈列任务详情
+export function getVisitsDetailPerfectStoreByTaskId(query) {
   return request({
-    url: 'mobile/storeGroup/selectUserDistanceTheStore',
+    url: 'mobile/storeGroup/getVisitsDetailPerfectStoreByTaskId',
     method: 'get',
     params: query,
   });
 }
 
-// 获取服务商档案信息接口
-export function getServiceProviderArchives(query) {
+// 查询用户距离拜访门店得距离
+export function selectUserDistanceTheStore(query) {
   return request({
-    url: 'mobile/store/getServiceProviderArchives',
+    url: 'mobile/storeGroup/selectUserDistanceTheStore',
     method: 'get',
     params: query,
   });
 }
 
-//修改陈列奖励案牌面数-测试
-export function updateDisplayRewardCaseSkuCount(data) {
+//分享日报入记录表
+export function shareReportMobile(data) {
   return request({
-    url: '/mobile/storeGroup/updateDisplayRewardCaseSkuCount',
+    url: '/mobile/reportMobile/share',
     method: 'post',
     data,
   });

+ 0 - 9
src/api/week.js

@@ -25,12 +25,3 @@ export function writeAgainCustomAnswer(data) {
     data,
   });
 }
-
-// 切换经销商身份接口
-export function switchChainIdentity(query) {
-  return request({
-    url: '/mobile/switchChainIdentity',
-    method: 'get',
-    params: query,
-  });
-}

BIN
src/assets/wanmeiStoreImg.gif


+ 56 - 0
src/components/componentsTarget/ZYPlaceOrder.vue

@@ -0,0 +1,56 @@
+<!-- 拜访数据(实时) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">昨日新增:</span></van-col>
+    <van-col span="12"><span class="rightTitle">本月实际:</span></van-col>
+    <van-col span="12">
+      <p>
+        下单点数:<span class="colorbalck">{{
+          Micrometer(reportTargetAll.professionalSslYes)
+        }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        下单点数:<span class="colorbalck">{{
+          Micrometer(reportTargetAll.professionalSslMonth)
+        }}</span>
+      </p></van-col
+    >
+    <van-col span="12"><p></p></van-col>
+    <van-col span="12"
+      ><p>
+        下单率:<span class="colorbalck">{{ reportTargetAll.professionalSslOrderRateMonth }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        下单数量(桶):<span class="colorbalck">{{
+          Micrometer(reportTargetAll.professionalSslOrderNumYes)
+        }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        下单数量(桶):<span class="colorbalck">{{
+          Micrometer(reportTargetAll.professionalSslOrderNumMonth)
+        }}</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 52 - 0
src/components/componentsTarget/ZYSAP.vue

@@ -0,0 +1,52 @@
+<!-- 拜访数据(实时) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col>
+    <van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.czjMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.czjQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.czjMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.czjQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.czjMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.czjQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 42 - 0
src/components/componentsTarget/chunTaiSAP.vue

@@ -0,0 +1,42 @@
+<!-- 拜访数据(实时) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月:</span></van-col
+    ><van-col span="12"><span class="rightTitle">本季:</span></van-col>
+    <van-col span="12"
+      ><p>
+        业绩实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzCtzjMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        业绩实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzCtzjQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        业绩成长率:<span class="colorbalck">{{ reportTargetAll.gzCtzjMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        业绩成长率:<span class="colorbalck">{{ reportTargetAll.gzCtzjQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 52 - 0
src/components/componentsTarget/cizhuanjiaoSAP.vue

@@ -0,0 +1,52 @@
+<!-- 瓷砖胶SAP(千元) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col
+    ><van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.czjSapMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.czjSapQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.czjSapMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.czjSapQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.czjSapMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.czjSapQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 82 - 0
src/components/componentsTarget/createStoreBJ.vue

@@ -0,0 +1,82 @@
+<!-- 建店布机 -->
+<template>
+  <van-row>
+    <van-col span="12">
+      <p>
+        <span class="leftTitle">本月实际:</span>
+      </p>
+    </van-col>
+    <van-col span="12">
+      <p>
+        <span class="rightTitle">今年实际(达成率):</span>
+      </p>
+    </van-col>
+    <van-col span="12">
+      <p>
+        <span class="colLabel colLabel_KK">可控店:</span>
+        <span class="colorbalck">{{ Micrometer(reportTargetAll.controlledShopMonthAct) }}</span>
+      </p>
+    </van-col>
+    <van-col span="12">
+      <p>
+        <span class="colLabel colLabel_KK">可控店:</span>
+        <span class="colorbalck">{{ Micrometer(reportTargetAll.controlledShopYearAct) }}</span>
+        <span class="colorbalck" v-if="reportTargetAll.controlledShopYearRate"
+          >({{ reportTargetAll.controlledShopYearRate }}%)</span
+        >
+        <span class="colorbalck" v-else>({{ '-' }})</span>
+      </p>
+    </van-col>
+    <div>
+      <div class="backLeft back"></div>
+      <div class="backRight back"></div>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_JP">金牌店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.goldShopMonthAct) }}</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_JP">金牌店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.goldShopYearAct) }}</span>
+          <span class="colorbalck" v-if="reportTargetAll.goldShopYearRate">
+            ({{ reportTargetAll.goldShopYearRate }}%)
+          </span>
+          <span class="colorbalck" v-else>({{ '-' }})</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_TCFX">仿石漆店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.fsqShopMonthAct) }}</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_TCFX">仿石漆店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.fsqShopYearAct) }}</span>
+          <span class="colorbalck" v-if="reportTargetAll.fsqShopYearRate"
+            >({{ reportTargetAll.fsqShopYearRate }}%)</span
+          >
+          <span class="colorbalck" v-else>({{ '-' }})</span>
+        </p>
+      </van-col>
+    </div>
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 52 - 0
src/components/componentsTarget/fangshuiSAP.vue

@@ -0,0 +1,52 @@
+<!-- 防水+背胶SAP(千元) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col
+    ><van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.fsbjSapMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.fsbjSapQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.fsbjSapMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.fsbjSapQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.fsbjSapMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.fsbjSapQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 0 - 0
src/components/componentsTarget/index.css


+ 52 - 0
src/components/componentsTarget/moshouqiSAP.vue

@@ -0,0 +1,52 @@
+<!-- 魔术漆SAP(千元) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col>
+    <van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.ysqMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.ysqQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.ysqMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.ysqQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.ysqMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.ysqQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 52 - 0
src/components/componentsTarget/neiqiangzhonggaoduanSAP.vue

@@ -0,0 +1,52 @@
+<!-- 内墙中高端SAP(千元) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col>
+    <van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.rjqSapMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.rjqSapQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.rjqSapMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.rjqSapQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.rjqSapMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.rjqSapQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 52 - 0
src/components/componentsTarget/neiwaiqiangpingtu.vue

@@ -0,0 +1,52 @@
+<!-- 内外墙平涂 -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col>
+    <van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.nwqSapMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.nwqSapQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.nwqSapMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.nwqSapQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.nwqSapMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.nwqSapQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 84 - 0
src/components/componentsTarget/performanceSAP.vue

@@ -0,0 +1,84 @@
+<!-- 业绩目标SAP(千元)/公裝业绩SAP(千元) -->
+<template>
+  <van-row>
+    <van-col span="12"
+      ><span v-if="!JZQuota" class="leftTitle">本月业绩:</span
+      ><span v-if="JZQuota" class="leftTitle">本月实际:</span></van-col
+    >
+    <van-col span="12"
+      ><span v-if="!JZQuota" class="rightTitle">本季业绩:</span
+      ><span v-if="JZQuota" class="rightTitle">本季实际:</span></van-col
+    >
+    <van-col span="12">
+      <p v-if="!JZQuota">
+        本月实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.sapMonthAct) }}</span>
+      </p>
+      <p v-if="JZQuota">
+        本月累计:<span class="colorbalck">{{ Micrometer(reportTargetAll.sapMonthAct) }}</span>
+      </p>
+    </van-col>
+    <van-col span="12">
+      <p v-if="!JZQuota">
+        本季实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.sapQuarterAct) }}</span>
+      </p>
+      <p v-if="JZQuota">
+        本季累计:<span class="colorbalck">{{ Micrometer(reportTargetAll.sapQuarterAct) }}</span>
+      </p>
+    </van-col>
+    <van-col span="12"
+      ><p>
+        本月达成率:<span class="colorbalck">{{ reportTargetAll.sapMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        本季达成率:<span class="colorbalck">{{ reportTargetAll.sapQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        本月成长率:<span class="colorbalck">{{ reportTargetAll.sapMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        本季成长率:<span class="colorbalck">{{ reportTargetAll.sapQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="24" v-if="JZQuota"><span class="leftTitle">年度累计</span></van-col>
+    <van-col span="24" v-if="JZQuota"
+      ><p>
+        年度累计:<span class="colorbalck">{{ Micrometer(reportTargetAll.sapYearAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="24" v-if="JZQuota"
+      ><p>
+        年度达成率:<span class="colorbalck">{{ reportTargetAll.sapYearSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="24" v-if="JZQuota"
+      ><p>
+        年度成长率:<span class="colorbalck">{{ reportTargetAll.sapYearGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+    JZQuota: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 63 - 0
src/components/componentsTarget/placeOrder.vue

@@ -0,0 +1,63 @@
+<!-- 下单点数 -->
+<template>
+  <van-row>
+    <van-col span="24"><span class="leftTitle">本月进度:</span></van-col>
+    <van-col span="12">
+      <p>
+        <span class="colLabel colLabel_KK">可控店:</span>
+        <span class="colorbalck">{{
+          Micrometer(reportTargetAll.controlledOrderShopMonthAct)
+        }}</span>
+      </p>
+    </van-col>
+    <van-col span="12">
+      <p>
+        <span class="colLabel colLabel_KK">可控店:</span>
+        <span class="colorbalck">{{ reportTargetAll.controlledShopMonthOrderRate }}%</span>
+      </p>
+    </van-col>
+    <div>
+      <div class="backLeft back"></div>
+      <div class="backRight back"></div>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_JP">金牌店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.jpOrderShopMonthAct) }}</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_JP">金牌店:</span>
+          <span class="colorbalck"> {{ reportTargetAll.jpShopMonthOrderRate }}% </span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_TCFX">同城分销近3月:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxOrderShopMonthAct) }}</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_TCFX">同城分销近3月:</span>
+          <span class="colorbalck"> {{ reportTargetAll.tcfxShopMonthOrderRate }}% </span>
+        </p>
+      </van-col>
+    </div>
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 54 - 0
src/components/componentsTarget/veryGoodPlaceOrder.vue

@@ -0,0 +1,54 @@
+<!-- 拜访数据(实时) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">昨日新增:</span></van-col
+    ><van-col span="12"><span class="rightTitle">本月实际:</span></van-col>
+    <van-col span="12"
+      ><p>
+        下单点数:<span class="colorbalck">{{ Micrometer(reportTargetAll.excellentPostYes) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        下单点数:<span class="colorbalck">{{
+          Micrometer(reportTargetAll.excellentPostMonth)
+        }}</span>
+      </p></van-col
+    >
+    <van-col span="12"><p></p></van-col>
+    <van-col span="12"
+      ><p>
+        下单率:<span class="colorbalck">{{ reportTargetAll.excellentPostOrderRateMonth }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        下单数量(包):<span class="colorbalck">{{
+          Micrometer(reportTargetAll.excellentPostOrderNumYes)
+        }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        下单数量(包):<span class="colorbalck">{{
+          Micrometer(reportTargetAll.excellentPostOrderNumMonth)
+        }}</span>
+      </p>
+    </van-col>
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 126 - 0
src/components/componentsTarget/visitedRealTime.vue

@@ -0,0 +1,126 @@
+<!-- 拜访数据(实时) -->
+<template>
+  <!-- 家装和公装 -->
+  <van-row v-if="JZQuota">
+    <van-col span="12"><span class="leftTitle">今日拜访:</span></van-col>
+    <van-col span="12"><span class="rightTitle">本月拜访:</span></van-col>
+    <van-col span="12"
+      ><p>
+        线内拜访点数:<span class="colorbalck">{{ reportTargetAll.inVisitAct }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        线内拜访点数:<span class="colorbalck">{{ reportTargetAll.inVisitActMonth }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        计划拜访点数:<span class="colorbalck">{{ reportTargetAll.visitTarget }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        计划拜访点数:<span class="colorbalck">{{ reportTargetAll.coverStoreNum }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        线内拜访率:<span class="colorbalck">{{ reportTargetAll.inVisitRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        线内拜访率:<span class="colorbalck">{{ reportTargetAll.inVisitMonthRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        整体拜访数:<span class="colorbalck">{{ reportTargetAll.allVisitNum }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        整体拜访率:<span class="colorbalck">{{ reportTargetAll.allVisitMonthRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+  <!-- 其他 -->
+  <van-row v-else>
+    <van-col span="12">
+      <span class="leftTitle">今日拜访点数:</span>
+    </van-col>
+    <van-col span="12">
+      <span class="rightTitle">月度拜访点数(拜访率):</span>
+    </van-col>
+    <van-col span="12">
+      <p>
+        <span class="colLabel colLabel_KK">可控店:</span>
+        <span class="colorbalck">{{ Micrometer(reportTargetAll.controlledShopVisitDayNum) }}</span>
+      </p>
+    </van-col>
+    <van-col span="12">
+      <p>
+        <span class="colLabel colLabel_KK">可控店:</span>
+        <span class="colorbalck">{{
+          Micrometer(reportTargetAll.controlledShopVisitMonthNum)
+        }}</span>
+        <span class="colorbalck">({{ reportTargetAll.controlledShopVisitMonthRate }}%)</span>
+      </p>
+    </van-col>
+    <div>
+      <div class="backLeft back"></div>
+      <div class="backRight back"></div>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_JP">金牌店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.jpShopVisitDayNum) }}</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_JP">金牌店:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.jpShopVisitMonthNum) }}</span>
+          <span class="colorbalck"> ({{ reportTargetAll.jpShopVisitMonthRate }}%) </span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_TCFX">同城分销:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxShopVisitDayNum) }}</span>
+        </p>
+      </van-col>
+      <van-col span="12">
+        <p>
+          <span class="colLabel colLabel_TCFX">同城分销近3月:</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxShopVisitMonthNum) }}</span>
+          <span class="colorbalck"> ({{ reportTargetAll.tcfxShopVisitMonthRate }}%) </span>
+        </p>
+      </van-col>
+    </div>
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+    powerGrade: {
+      type: [Number, String],
+    },
+    JZQuota: {
+      type: Boolean,
+    },
+    GZdata: {
+      type: Boolean,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 52 - 0
src/components/componentsTarget/zhiganwaiqiangSAP.vue

@@ -0,0 +1,52 @@
+<!-- 质感外墙SAP(千元) -->
+<template>
+  <van-row>
+    <van-col span="12"><span class="leftTitle">本月业绩:</span></van-col
+    ><van-col span="12"><span class="rightTitle">本季业绩:</span></van-col>
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.zgwqMonthAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.zgwqQuarterAct) }}</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.zgwqMonthSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        达成率:<span class="colorbalck">{{ reportTargetAll.zgwqQuarterSuccessRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.zgwqMonthGrowRate }}%</span>
+      </p></van-col
+    >
+    <van-col span="12"
+      ><p>
+        成长率:<span class="colorbalck">{{ reportTargetAll.zgwqQuarterGrowRate }}%</span>
+      </p></van-col
+    >
+  </van-row>
+</template>
+<script>
+export default {
+  props: {
+    reportTargetAll: {
+      type: Object,
+    },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+<style scoped>
+@import './index.css';
+</style>

+ 87 - 11
src/components/share.vue

@@ -55,12 +55,35 @@
             </div>
           </div>
         </div>
-        <template v-if="checkedPlan && reportContents">
+        <!-- 旧的日报内容 -->
+        <template v-if="checkedPlan && reportContents && isHistory == '1'">
           <template v-for="value in reportContents">
             <div :class="['text']">{{ value.dictValue }}</div>
             <div class="content">{{ value.content }}</div>
           </template>
         </template>
+        <!-- 日报指标 -->
+        <template v-if="isTarget">
+          <template v-if="reportTarget.targetType == '1'">
+            <!--targetType 0-历史指标  1-动态指标,String类型 -->
+            <shareCommonTarget
+              :homePageIndicatorDate="reportTarget.homePageIndicatorList"></shareCommonTarget>
+          </template>
+          <template v-else>
+            <!-- YFQuota:应用服务平台 不显示各项指标 -->
+            <shareAtarget :reportInfo="reportTarget"></shareAtarget>
+            <shareBtarget :reportInfo="reportTarget"></shareBtarget>
+          </template>
+          <!-- <shareAtarget :reportInfo="reportTarget"></shareAtarget>
+          <shareBtarget :reportInfo="reportTarget"></shareBtarget> -->
+        </template>
+        <!-- 日报填写内容 -->
+        <template v-if="isReportCustom">
+          <shareReportCustom
+            :disabled="true"
+            :reportCustomData="reportTarget.customTaskList"></shareReportCustom>
+        </template>
+        <!-- 今日拜访照片 -->
         <template v-if="photosData && photosData.length">
           <div class="text">今日拜访照片</div>
           <div class="content-photos">
@@ -86,7 +109,7 @@
       <div class="footerShare">
         <div class="right-text">
           <div>长按识别二维码查看详情&点评</div>
-          <div></div>
+          <!-- <div></div> -->
         </div>
         <vue-qr
           class="QRcodes"
@@ -97,6 +120,7 @@
           :logoSrc="require('@/assets/logo1.png')"
           :logoMargin="2"></vue-qr>
       </div>
+      <div class="footerTips">来自立邦好邦手</div>
     </div>
     <div
       class="share-mask"
@@ -122,11 +146,16 @@
 </template>
 <script>
 import html2canvas from 'html2canvas';
-import { imgToBase64 } from '@/api/index';
+import { imgToBase64, shareReportMobile } from '@/api/index';
 import VueQr from 'vue-qr';
+import ShareAtarget from './shareAtarget.vue';
+import shareBtarget from './shareBtarget.vue';
+import shareReportCustom from './shareReportCustom.vue';
+import uploadAliOss from '@/utils/uploadAliOss';
+import shareCommonTarget from './shareCommonTarget.vue';
 export default {
   name: 'share',
-  components: { VueQr },
+  components: { VueQr, ShareAtarget, shareReportCustom, shareBtarget, shareCommonTarget },
   props: {
     // 日报数据
     reportTarget: {
@@ -162,6 +191,21 @@ export default {
         return [];
       },
     },
+    // 是否显示 指标
+    isTarget: {
+      type: Boolean,
+      default: true,
+    },
+    // 是否显示 日报填写内容
+    isReportCustom: {
+      type: Boolean,
+      default: true,
+    },
+    // 是否为历史汇报:0-新汇报 1-历史汇报
+    isHistory: {
+      type: String,
+      default: '0',
+    },
   },
   data() {
     return {
@@ -172,9 +216,15 @@ export default {
       qrcode: null,
       vueQrText: '',
       heightFlag: 'start', //图片高度不足,居中显示
+      shareDuration: 0, //分享时间
+      shareInterval: null,
     };
   },
   created() {
+    this.shareDuration = 0;
+    this.shareInterval = setInterval(() => {
+      this.shareDuration++;
+    }, 1000);
     this.zIndex = -1;
     this.canvasImageUrl = '';
     let links = process.env.NODE_ENV == 'production' ? 'http://1.npz.cn/3/' : 'http://1.npz.cn/2/';
@@ -266,7 +316,6 @@ export default {
           this.toastLoading().clear();
           let imageUrl = canvas.toDataURL('image/png');
           this.canvasImageUrl = imageUrl;
-
           // 图片加载完成后设置滚动容器高度
           const img = new Image();
           img.onload = () => {
@@ -308,6 +357,22 @@ export default {
           this.zIndex = 9;
           this.$emit('setShareImg', true);
           this.$emit('setDailyDetailsBox', false);
+          // 上传阿里云oss
+          // 图片名称:用户名-时间戳
+          let username = this.reportTarget.nickName;
+          let imgName = username + '-' + new Date().getTime();
+          uploadAliOss(imageUrl, imgName).then((res) => {
+            if (res.url && res.url.indexOf('http') != -1) {
+              console.log(res.url);
+              shareReportMobile({
+                reportId: this.reportId, //	long	汇报主键id
+                imageUrl: res.url, //	String	分享日报的图片的URL
+                shareDuration: this.shareDuration, //	long	分享用时(秒)
+              }).then((res) => {
+                if (this.shareInterval) clearInterval(this.shareInterval);
+              });
+            }
+          });
         })
         .catch((error) => {
           this.toastLoading().clear();
@@ -422,7 +487,7 @@ export default {
       line-height: vw(94);
       // margin-top: vw(152);
       // margin-bottom: vw(45);
-      margin: vw(35) 0;
+      margin: vw(35) 0 vw(20) 0;
       font-weight: bold;
     }
 
@@ -491,8 +556,9 @@ export default {
   .footerShare {
     // position: absolute;
     display: flex;
-    // align-items: center;
-    justify-content: flex-end;
+    flex-direction: column;
+    align-items: center;
+    // justify-content: flex-end;
     margin-top: vw(30);
     margin-right: 2px;
 
@@ -501,7 +567,7 @@ export default {
       display: flex;
       flex-direction: column;
       justify-content: space-between;
-      margin-right: vw(24);
+      // margin-right: vw(24);
 
       div {
         color: #ffffff;
@@ -531,6 +597,15 @@ export default {
     //   }
     // }
   }
+  .footerTips {
+    width: 100%;
+    text-align: center;
+    padding: 10px 0;
+    color: rgba(255, 255, 255, 0.721);
+    font-size: 14px;
+    font-family: PingFang-SC-Medium;
+    font-weight: 600;
+  }
   .html2canvasBox {
     width: 100%;
     height: 100%;
@@ -539,6 +614,7 @@ export default {
     overflow: hidden !important;
     display: flex;
     flex-direction: column;
+    -webkit-user-select: none; /* Safari */
   }
   #html2canvas {
     width: 100%;
@@ -617,8 +693,8 @@ export default {
   .QRcodes {
     // width: 45px; /* 固定像素尺寸 */
     // height: 45px;
-    width: vw(200); /* 固定像素尺寸 */
-    height: vw(200);
+    width: vw(280);
+    height: vw(280);
     position: relative;
     background: #ffffff;
     image-rendering: crisp-edges;

+ 710 - 0
src/components/shareAtarget.vue

@@ -0,0 +1,710 @@
+<template>
+  <div class="shareAtarget">
+    <div v-if="type != 4" class="container linep">
+      <!-- performanceSAP 业绩目标SAP(千元)/公裝业绩SAP(千元) -->
+      <template v-if="type != 3 && type != 4" name="1" :title="saptitle">
+        <div class="text">{{ saptitle }}</div>
+        <performanceSAP :reportTargetAll="reportTargetAll" :JZQuota="JZQuota"></performanceSAP>
+      </template>
+      <template v-if="powerGrade != 1 && !JZQuota && !GZdata" name="2" title="质感外墙SAP(千元)">
+        <div class="text">质感外墙SAP(千元)</div>
+        <zhiganwaiqiangSAP :reportTargetAll="reportTargetAll"></zhiganwaiqiangSAP>
+      </template>
+      <template v-if="powerGrade != 1 && !JZQuota && !GZdata" name="3" title="魔术漆SAP(千元)">
+        <div class="text">魔术漆SAP(千元)</div>
+        <moshouqiSAP :reportTargetAll="reportTargetAll"></moshouqiSAP>
+      </template>
+      <template v-if="powerGrade != 1 && !JZQuota && !GZdata" name="4" title="防水+背胶SAP(千元)">
+        <div class="text">防水+背胶SAP(千元)</div>
+        <fangshuiSAP :reportTargetAll="reportTargetAll"></fangshuiSAP>
+      </template>
+      <template v-if="powerGrade != 1 && !JZQuota && !GZdata" name="5" title="内墙中高端SAP(千元)">
+        <div class="text">内墙中高端SAP(千元)</div>
+        <neiqiangzhonggaoduanSAP :reportTargetAll="reportTargetAll"></neiqiangzhonggaoduanSAP>
+      </template>
+      <!-- 内外墙平涂SAP -->
+      <template name="6" v-if="powerGrade != 1 && !JZQuota && !GZdata" title="内外墙平涂SAP(千元)">
+        <div class="text">内外墙平涂SAP(千元)</div>
+        <neiwaiqiangpingtu :reportTargetAll="reportTargetAll"></neiwaiqiangpingtu>
+      </template>
+      <template
+        v-if="!JZQuota && !GZdata && [1, 4, 5].indexOf(powerGrade) !== -1"
+        name="7"
+        title="专业时时丽SAP(千元)">
+        <div class="text">专业时时丽SAP(千元)</div>
+        <ZYSAP :reportTargetAll="reportTargetAll"></ZYSAP>
+      </template>
+      <template
+        v-if="!JZQuota && !GZdata && [1, 4, 5].indexOf(powerGrade) !== -1"
+        name="8"
+        :title="'瓷砖胶SAP(千元)'">
+        <div class="text">瓷砖胶SAP(千元)</div>
+        <cizhuanjiaoSAP :reportTargetAll="reportTargetAll"></cizhuanjiaoSAP>
+      </template>
+      <template v-if="GZdata" name="9" title="纯态之家SAP(千元)">
+        <div class="text">纯态之家SAP(千元)</div>
+        <chunTaiSAP :reportTargetAll="reportTargetAll"></chunTaiSAP>
+      </template>
+      <template v-if="GZdata" name="10" title="商机关联的质感外墙业绩SAP(千元)">
+        <div class="text">商机关联的质感外墙业绩SAP(千元)</div>
+        <van-row>
+          <van-col span="12"><span class="leftTitle">本月:</span></van-col
+          ><van-col span="12"><span class="rightTitle">本季:</span></van-col>
+          <van-col span="12"
+            ><p>
+              业绩实际:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.gzZgwqMonthAct)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              业绩实际:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.gzZgwqQuarterAct)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              业绩成长率:<span class="colorbalck">{{ reportTargetAll.gzZgwqMonthGrowRate }}%</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              业绩成长率:<span class="colorbalck"
+                >{{ reportTargetAll.gzZgwqQuarterGrowRate }}%</span
+              >
+            </p></van-col
+          >
+        </van-row>
+      </template>
+      <template v-if="GZdata" name="11" title="累计出货有效客户">
+        <div class="text">累计出货有效客户</div>
+        <van-row>
+          <van-col span="12"
+            ><p>
+              全年实际:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.gzKhljYearAct)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              全年目标:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.gzKhljYearTarget)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"><p>&nbsp;</p></van-col>
+          <van-col span="12"
+            ><p>
+              目标达成率:<span class="colorbalck"
+                >{{ Micrometer(reportTargetAll.gzKhljSuccessRate) }}%</span
+              >
+            </p></van-col
+          >
+        </van-row>
+      </template>
+      <template v-if="GZdata" name="12" title="今日拜访">
+        <div class="text">今日拜访</div>
+        <van-row>
+          <van-col span="12"
+            ><p>
+              公装客户数:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.gzVisitCustomerNum)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              工地数:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzVisitGdNum) }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              潜在客户数:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.gzVisitQzCustomerNum)
+              }}</span>
+            </p></van-col
+          >
+        </van-row>
+      </template>
+      <template v-if="JZQuota" name="13" title="展厅上样">
+        <div class="text">展厅上样</div>
+        <van-row>
+          <van-col span="24"
+            ><p>
+              当月新增店数:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.exhibitionHallMonthAct)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              全年实际店数:<span class="colorbalck"
+                >{{ Micrometer(reportTargetAll.exhibitionHallYearAct) }}%</span
+              >
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              全年达成进度率:<span class="colorbalck"
+                >{{ reportTargetAll.exhibitionHallYearRate }}%</span
+              >
+            </p></van-col
+          >
+        </van-row>
+      </template>
+      <template v-if="JZQuota" name="14" title="基材粉料过账(千元)">
+        <div class="text">基材粉料过账(千元)</div>
+        <van-row>
+          <van-col span="12"><span class="leftTitle">本月实际:</span></van-col
+          ><van-col span="12"><span class="rightTitle">本季实际:</span></van-col>
+          <van-col span="12"
+            ><p>
+              客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerMonth }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerQuarter }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单数(包):<span class="colorbalck">{{ reportTargetAll.jcPostOrderNumMonth }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单数(包):<span class="colorbalck">{{ reportTargetAll.jcPostOrderNumQuarter }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单销售额:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.jcPostOrderPriceMonth)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单销售额:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.jcPostOrderPriceQuarter)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateMonth }}%</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateQuarter }}%</span>
+            </p></van-col
+          >
+          <van-col span="24"><span class="leftTitle">年度累计实际:</span></van-col>
+          <van-col span="24"
+            ><p>
+              客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerYear }}</span>
+            </p></van-col
+          >
+          <van-col span="24"
+            ><p>
+              下单数(包):<span class="colorbalck">{{ reportTargetAll.jcPostOrderNumYear }}</span>
+            </p></van-col
+          >
+          <van-col span="24"
+            ><p>
+              下单销售额:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.jcPostOrderPriceYear)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="24"
+            ><p>
+              下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateYear }}%</span>
+            </p></van-col
+          >
+        </van-row>
+      </template>
+      <template v-if="JZQuota" name="15" title="魔术漆过账(千元)">
+        <div class="text">魔术漆过账(千元)</div>
+        <van-row>
+          <van-col span="12"><span class="leftTitle">本月实际:</span></van-col
+          ><van-col span="12"><span class="rightTitle">本季实际:</span></van-col>
+          <van-col span="12"
+            ><p>
+              客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerMonth }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerQuarter }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单销售额:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.msqPostOrderPriceMonth)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单销售额:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.msqPostOrderPriceQuarter)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单率:<span class="colorbalck">{{ reportTargetAll.msqPostOrderRateMonth }}%</span>
+            </p></van-col
+          >
+          <van-col span="12"
+            ><p>
+              下单率:<span class="colorbalck">{{ reportTargetAll.msqPostOrderRateQuarter }}%</span>
+            </p></van-col
+          >
+          <van-col span="24"><span class="leftTitle">年度累计实际:</span></van-col>
+          <van-col span="24"
+            ><p>
+              客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerYear }}</span>
+            </p></van-col
+          >
+          <van-col span="24"
+            ><p>
+              下单销售额:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.msqPostOrderPriceYear)
+              }}</span>
+            </p></van-col
+          >
+          <van-col span="24"
+            ><p>
+              下单率:<span class="colorbalck">{{ reportTargetAll.msqPostOrderRateYear }}%</span>
+            </p></van-col
+          >
+        </van-row>
+      </template>
+    </div>
+  </div>
+</template>
+<script>
+import performanceSAP from '@/components/componentsTarget/performanceSAP';
+import neiwaiqiangpingtu from '@/components/componentsTarget/neiwaiqiangpingtu';
+import zhiganwaiqiangSAP from '@/components/componentsTarget/zhiganwaiqiangSAP';
+import moshouqiSAP from '@/components/componentsTarget/moshouqiSAP';
+import fangshuiSAP from '@/components/componentsTarget/fangshuiSAP';
+import neiqiangzhonggaoduanSAP from '@/components/componentsTarget/neiqiangzhonggaoduanSAP';
+import chunTaiSAP from '@/components/componentsTarget/chunTaiSAP';
+import ZYSAP from '@/components/componentsTarget/ZYSAP';
+import cizhuanjiaoSAP from '@/components/componentsTarget/cizhuanjiaoSAP';
+export default {
+  components: {
+    performanceSAP,
+    neiwaiqiangpingtu,
+    zhiganwaiqiangSAP,
+    moshouqiSAP,
+    fangshuiSAP,
+    neiqiangzhonggaoduanSAP,
+    chunTaiSAP,
+    ZYSAP,
+    cizhuanjiaoSAP,
+  },
+  props: {
+    reportInfo: {
+      type: Object,
+    },
+  },
+  watch: {
+    reportInfo: {
+      handler(val) {
+        if (val.postType == 'GZ') {
+          this.GZdata = true;
+          this.saptitle = '公裝业绩SAP(千元)';
+        } else {
+          this.saptitle = '业绩目标SAP(千元)';
+          this.GZdata = false;
+        }
+        if (val.postType == 'JZ') {
+          this.JZQuota = true;
+        } else {
+          this.JZQuota = false;
+        }
+        this.reportInfoData = val;
+        this.powerGrade = val.positionId;
+        if (val.reportTargetAll != null) {
+          this.reportTargetAll = val.reportTargetAll;
+        }
+        this.type = val.userType;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  data() {
+    return {
+      type: '-1',
+      JZQuota: false,
+      GZdata: false,
+      saptitle: '业绩目标SAP(千元)',
+      powerGrade: '2',
+      reportTargetAll: {},
+      activeNames: [
+        '1',
+        '2',
+        '3',
+        '4',
+        '5',
+        '6',
+        '7',
+        '8',
+        '10',
+        '11',
+        '12',
+        '9',
+        '14',
+        '15',
+        '13',
+      ],
+    };
+  },
+};
+</script>
+
+<style scoped>
+.homeTitle {
+  padding: 6px 16px;
+}
+
+.homeTitle .van-icon__image {
+  width: 1.4em;
+  height: auto;
+}
+
+.container {
+  /* margin: 10px; */
+}
+
+.container .template {
+  margin-bottom: 10px;
+  border-radius: 6px;
+  overflow: hidden;
+}
+
+.progressContentlist {
+  font-size: 14px;
+  border-bottom: 1px dashed #f1f1f1;
+  padding: 10px 0;
+}
+
+.linep p {
+  /* margin: 10px 0 0 0; */
+  font-size: 14px;
+  color: #666;
+}
+</style>
+<style lang="scss">
+.myTab .van-tabs__nav--card {
+  margin: 0 !important;
+  border-left: 0;
+  border-right: 0;
+}
+.myTab .van-tabs__wrap,
+.van-tabs__nav--card {
+  height: 39px;
+}
+.myTab .van-tab {
+  line-height: 40px;
+}
+.linep .van-collapse-item__content {
+  color: #666;
+}
+.linep .van-collapse-item__content {
+  color: #666;
+}
+
+.linep .van-cell__title {
+  color: #1e5398;
+  font-weight: 500;
+  font-size: 16px;
+}
+
+.homeCellIcon {
+  line-height: 34px;
+}
+
+.homeTitle .van-cell__title {
+  color: #444;
+  font-size: 16px;
+  font-weight: bold;
+  padding-left: 4px;
+  line-height: 36px;
+  height: 36px;
+}
+
+.updataTime {
+  color: #999;
+  font-size: 12px;
+  text-align: center;
+}
+
+.homeTitle .van-tag--danger {
+  /* border-radius: 20px; */
+}
+
+.van-dialog__confirm,
+.van-dialog__confirm:active {
+  color: #0057ba;
+}
+
+.tipTitleBox p {
+  margin: 0;
+  line-height: 28px;
+  color: #555;
+}
+
+.tipTitleBox .p {
+  color: #555;
+  font-size: 16px;
+  border-bottom: 1px solid #f5f5f5;
+  margin: 0;
+  margin-bottom: 10px;
+  text-align: center;
+  padding: 14px 0px;
+}
+
+.storeTypeHome .van-collapse-item__content {
+  padding: 0;
+}
+
+.storeTypeHome .storeTypeHomeList .van-cell__title {
+  color: #4a4a4a;
+  font-size: 14px;
+}
+
+.storeTypeHome .monthNoVisit {
+  padding: 10px;
+  margin: 10px;
+  border-radius: 5px;
+  //   background-color: #ebf4ff;
+}
+
+.storeTypeHome .leftContent {
+  padding-right: 68px;
+  position: relative;
+}
+
+.storeTypeHome .monthNoVisitStatstext {
+  font-size: 12px;
+  //   background-color: #0057ba;
+  position: absolute;
+  right: 0;
+  top: 6px;
+  padding: 2px 6px 2px 12px;
+  border-bottom-left-radius: 60px;
+  border-top-left-radius: 60px;
+  color: #fff;
+}
+.ABtarage {
+  .table-headermd {
+    font-size: 12px;
+    text-align: center;
+    position: initial;
+    width: 98% !important;
+    margin: 0 auto;
+    border-right: 0;
+  }
+  .table-headermdhome {
+    font-size: 14px;
+  }
+  .table-headermdhome th.el-table__cell > .cell {
+    white-space: pre;
+  }
+  .table-headermd .el-table__header,
+  .table-headermd .el-table__body {
+    width: 100% !important;
+  }
+  .table-headermdhome.van-cell {
+    padding: 0 6px;
+    height: 100%;
+  }
+
+  .table-headermd th.el-table__cell > .cell {
+    padding: 0 4px;
+    text-align: center;
+  }
+
+  .table-headermdhometh.el-table__cell:first-child > .cell {
+    text-align: left;
+  }
+
+  .table-headermd th.el-table__cell {
+    // background-color: #1989fa;
+    color: #fff;
+  }
+  .table-headermdhome th.el-table__cell {
+    // background-color: #fff;
+    color: #444;
+  }
+  .table-headermd .el-table__cell {
+    padding: 4px 0;
+  }
+
+  .table-headermdhome.el-table .cell {
+    padding: 0 4px;
+    text-align: center;
+  }
+
+  .table-headermdhome .tipTitle {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+    text-align: center;
+  }
+
+  .table-headermd::before {
+    height: 0;
+  }
+
+  .table-headermd .cell,
+  .el-table--border .el-table__cell:first-child .cell {
+    padding: 0 4px;
+  }
+}
+.colBack {
+  width: 100%;
+  height: 100%;
+  display: block;
+  /* overflow: unset; */
+  position: relative;
+  z-index: 2;
+  float: left;
+  z-index: 2;
+  .back {
+    position: absolute;
+    // background: rgb(226, 240, 217);
+    height: 100%;
+    display: block;
+    overflow: hidden;
+    /* z-index: 1; */
+    border-radius: 12px;
+    bottom: -4px;
+  }
+  .backLeft {
+    width: 45%;
+    left: -12px;
+  }
+  .backRight {
+    width: 50%;
+    left: calc(50% - 12px);
+  }
+  .van-col {
+    position: relative;
+    z-index: 3;
+  }
+}
+</style>
+<style lang="scss">
+.shareAtarget {
+  p {
+    margin: 10px 0 0 0;
+    font-size: 14px;
+    color: #fff !important;
+    /* color: #666; */
+  }
+  .leftTitle {
+    /* background-color: #74a4d9; */
+    color: #fff;
+    display: inline-block;
+    // padding: 0 4px;
+    border-radius: 2px;
+    font-size: 14px;
+  }
+  .rightTitle {
+    /* background-color: #e7b4bb; */
+    color: #fff;
+    display: inline-block;
+    // padding: 0 4px;
+    border-radius: 2px;
+    font-size: 14px;
+  }
+
+  .colBack {
+    width: 100%;
+    height: 100%;
+    display: block;
+    /* overflow: unset; */
+    position: relative;
+    z-index: 2;
+    float: left;
+    z-index: 2;
+    .back {
+      position: absolute;
+      /* background: rgb(226, 240, 217); */
+      height: 100%;
+      display: block;
+      overflow: hidden;
+      /* z-index: 1; */
+      border-radius: 12px;
+      bottom: -4px;
+    }
+    .backLeft {
+      width: 45%;
+      left: -12px;
+    }
+    .backRight {
+      width: 50%;
+      left: calc(50% - 12px);
+    }
+    .van-col {
+      position: relative;
+      z-index: 3;
+    }
+  }
+  .colLabel {
+    display: inline-block;
+    // padding: 2px 5px;
+    color: #fff;
+    margin-right: 10px;
+    border-radius: 3px;
+  }
+  .colLabel_KK {
+    /* background: rgb(235, 104, 119); */
+  }
+  .colLabel_FX {
+    /* background: rgb(253 120 88); */
+  }
+  .colLabel_JP {
+    /* background: rgb(241, 183, 137); */
+  }
+  .colLabel_JPBJ {
+    /* background: rgb(248 215 189); */
+  }
+  .colLabel_TCFX {
+    /* background: rgb(131 204 202); */
+  }
+  .colorbalck {
+    color: #fff;
+    margin-left: 8px;
+  }
+  .text {
+    background: url('../assets/textBack.png') no-repeat;
+    width: 100%;
+    height: vw(94);
+    background-size: cover;
+    color: #7d0207;
+    font-size: vw(36);
+    text-align: center;
+    line-height: vw(94);
+    // margin-top: vw(152);
+    // margin-bottom: vw(45);
+    margin: vw(35) 0 vw(15) 0;
+    font-weight: bold;
+  }
+}
+</style>

+ 509 - 0
src/components/shareBtarget.vue

@@ -0,0 +1,509 @@
+<template>
+  <div class="shareBtarget">
+    <div v-if="type != 4" class="container linep">
+      <!-- 拜访数据(实时) -->
+      <template name="7" v-if="powerGrade == 1 && !GZdata">
+        <div class="text">拜访数据(实时)</div>
+        <visitedRealTime
+          :reportTargetAll="reportTargetAll"
+          :powerGrade="powerGrade"
+          :JZQuota="JZQuota"></visitedRealTime>
+      </template>
+      <!-- 建店布机 -->
+      <template name="2" v-if="!JZQuota && !GZdata" title="建店布机">
+        <div class="text">建店布机</div>
+        <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
+      </template>
+      <!-- 下单点数 -->
+      <template v-if="powerGrade == 1 && !JZQuota && !GZdata" name="33" title="下单点数">
+        <div class="text">下单点数</div>
+        <placeOrder :reportTargetAll="reportTargetAll"></placeOrder>
+      </template>
+      <!-- 专业时时丽分销店下单 -->
+      <template name="16" v-if="!JZQuota && !GZdata" title="专业时时丽分销店下单">
+        <div class="text">专业时时丽分销店下单</div>
+        <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
+      </template>
+      <!-- 超好贴分销店下单 -->
+      <template name="17" v-if="!JZQuota && !GZdata" title="超好贴分销店下单">
+        <div class="text">超好贴分销店下单</div>
+        <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
+      </template>
+      <template v-if="powerGrade != 1 && !JZQuota && !GZdata" name="32" title="客户开拓">
+        <div class="text">客户开拓</div>
+        <van-row>
+          <van-col span="24"><span class="leftTitle">非片客户开发</span></van-col>
+          <van-col span="24">
+            <p>
+              全年开发数:<span class="colorbalck">{{
+                Micrometer(reportTargetAll.customerAct)
+              }}</span>
+            </p>
+          </van-col>
+          <van-col span="24">
+            <p>
+              全年进度率:<span class="colorbalck"> {{ reportTargetAll.customerYearRate }}% </span>
+            </p>
+          </van-col>
+        </van-row>
+      </template>
+    </div>
+    <div v-if="type == 4" class="container linep">
+      <template v-if="reportInfo.customerUserTargets">
+        <template v-for="(item, index) in reportInfo.customerUserTargets">
+          <div class="text">{{ item.nickName }}</div>
+          <van-row>
+            <van-col span="24"
+              ><p class="indexTile" style="margin-top: -2px">
+                <van-icon :name="bfindex" class="indexicon"></van-icon>拜访
+              </p></van-col
+            >
+            <van-col span="12"
+              ><p><span class="leftTitle">本日实际:</span></p></van-col
+            >
+            <van-col span="12"
+              ><p><span class="rightTitle">本月实际:</span></p></van-col
+            >
+            <van-col span="12"
+              ><p>
+                拜访点数:<span class="colorbalck">{{ Micrometer(item.dayVisitCount) }}</span>
+              </p></van-col
+            >
+            <van-col span="12"
+              ><p>
+                拜访点数:<span class="colorbalck">{{ Micrometer(item.monthVisitCount) }}</span>
+              </p></van-col
+            >
+            <van-col span="24"
+              ><p class="indexTile">
+                <van-icon :name="storeindex" class="indexicon"></van-icon>建店
+              </p></van-col
+            >
+            <van-col span="12"
+              ><p><span class="leftTitle">本日新增:</span></p></van-col
+            >
+            <van-col span="12"
+              ><p><span class="rightTitle">本月实际:</span></p></van-col
+            >
+            <van-col span="12"
+              ><p>
+                分销店点数:<span class="colorbalck">{{ Micrometer(item.dayFxdAct) }}</span>
+              </p></van-col
+            >
+            <van-col span="12"
+              ><p>
+                分销店点数:<span class="colorbalck">{{ Micrometer(item.monthFxdAct) }}</span>
+              </p></van-col
+            >
+            <van-col span="24"
+              ><p class="indexTile">
+                <van-icon :name="oderindex" class="indexicon"></van-icon>下单
+              </p></van-col
+            >
+            <van-col span="12"
+              ><p><span class="leftTitle">昨日新增:</span></p></van-col
+            >
+            <van-col span="12"
+              ><p><span class="rightTitle">本月实际:</span></p></van-col
+            >
+            <van-col span="12"
+              ><p>
+                下单点数:<span class="colorbalck">{{ Micrometer(item.yesOrderAct) }}</span>
+              </p></van-col
+            >
+            <van-col span="12"
+              ><p>
+                下单点数:<span class="colorbalck">{{ Micrometer(item.monthOrderAct) }}</span>
+              </p></van-col
+            >
+          </van-row>
+        </template>
+      </template>
+    </div>
+  </div>
+</template>
+<script>
+import createStoreBJ from '@/components/componentsTarget/createStoreBJ';
+import visitedRealTime from '@/components/componentsTarget/visitedRealTime';
+import placeOrder from '@/components/componentsTarget/placeOrder';
+import ZYPlaceOrder from '@/components/componentsTarget/ZYPlaceOrder';
+import veryGoodPlaceOrder from '@/components/componentsTarget/veryGoodPlaceOrder';
+export default {
+  components: {
+    createStoreBJ,
+    visitedRealTime,
+    placeOrder,
+    ZYPlaceOrder,
+    veryGoodPlaceOrder,
+  },
+  props: {
+    reportInfo: {
+      type: Object,
+    },
+  },
+  watch: {
+    reportInfo: {
+      handler(val) {
+        if (val.postType == 'GZ') {
+          this.GZdata = true;
+          this.saptitle = '公裝业绩SAP(千元)';
+        } else {
+          this.saptitle = '业绩目标SAP(千元)';
+          this.GZdata = false;
+        }
+        if (val.postType == 'JZ') {
+          this.JZQuota = true;
+        } else {
+          this.JZQuota = false;
+        }
+        this.reportInfoData = val;
+        this.powerGrade = val.positionId;
+        if (val.reportTargetAll != null) {
+          this.reportTargetAll = val.reportTargetAll;
+        }
+        this.type = val.userType;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  data() {
+    return {
+      type: '-1',
+      JZQuota: false,
+      GZdata: false,
+      saptitle: '业绩目标SAP(千元)',
+      powerGrade: '2',
+      reportTargetAll: {},
+      activeNames: [
+        '1',
+        '2',
+        '3',
+        '4',
+        '5',
+        '6',
+        '7',
+        '8',
+        '10',
+        '11',
+        '12',
+        '16',
+        '17',
+        '20',
+        '21',
+        '22',
+        '23',
+        '24',
+        '25',
+        '26',
+        '27',
+        '28',
+        '29',
+        '30',
+        '31',
+        '32',
+        '33',
+        '34',
+        '35',
+        '36',
+        '37',
+        '38',
+        '39',
+        '40',
+        '41',
+        '42',
+        '43',
+      ],
+    };
+  },
+};
+</script>
+
+<style scoped>
+.container .template {
+  margin-bottom: 10px;
+  border-radius: 6px;
+  overflow: hidden;
+}
+
+.progressContentlist {
+  font-size: 14px;
+  border-bottom: 1px dashed #f1f1f1;
+  padding: 10px 0;
+}
+
+.linep p {
+  /* margin: 10px 0 0 0; */
+  font-size: 14px;
+  color: #666;
+}
+
+.leftTitle {
+  background-color: #74a4d9;
+  color: #fff;
+  display: inline-block;
+  padding: 0 4px;
+  border-radius: 2px;
+}
+
+.rightTitle {
+  background-color: #e7b4bb;
+  color: #fff;
+  display: inline-block;
+  padding: 0 4px;
+  border-radius: 2px;
+  white-space: nowrap;
+}
+</style>
+<style lang="scss">
+.myTab .van-tabs__nav--card {
+  margin: 0 !important;
+  border-left: 0;
+  border-right: 0;
+}
+.myTab .van-tabs__wrap,
+.van-tabs__nav--card {
+  height: 39px;
+}
+.myTab .van-tab {
+  line-height: 40px;
+}
+.linep .van-collapse-item__content {
+  color: #666;
+}
+.linep .van-collapse-item__content {
+  color: #666;
+}
+
+.linep .van-cell__title {
+  color: #1e5398;
+  font-weight: 500;
+  font-size: 16px;
+}
+
+.homeCellIcon {
+  line-height: 34px;
+}
+
+.homeTitle .van-cell__title {
+  color: #444;
+  font-size: 16px;
+  font-weight: bold;
+  padding-left: 4px;
+  line-height: 36px;
+  height: 36px;
+}
+
+.updataTime {
+  color: #999;
+  font-size: 12px;
+  text-align: center;
+}
+
+.van-dialog__confirm,
+.van-dialog__confirm:active {
+  color: #0057ba;
+}
+
+.tipTitleBox p {
+  margin: 0;
+  line-height: 28px;
+  color: #555;
+}
+
+.tipTitleBox .p {
+  color: #555;
+  font-size: 16px;
+  border-bottom: 1px solid #f5f5f5;
+  margin: 0;
+  margin-bottom: 10px;
+  text-align: center;
+  padding: 14px 0px;
+}
+
+.storeTypeHome .van-collapse-item__content {
+  padding: 0;
+}
+
+.storeTypeHome .storeTypeHomeList .van-cell__title {
+  color: #4a4a4a;
+  font-size: 14px;
+}
+
+.storeTypeHome .monthNoVisit {
+  padding: 10px;
+  margin: 10px;
+  border-radius: 5px;
+  background-color: #ebf4ff;
+}
+
+.storeTypeHome .leftContent {
+  padding-right: 68px;
+  position: relative;
+}
+
+.storeTypeHome .monthNoVisitStatstext {
+  font-size: 12px;
+  background-color: #0057ba;
+  position: absolute;
+  right: 0;
+  top: 6px;
+  padding: 2px 6px 2px 12px;
+  border-bottom-left-radius: 60px;
+  border-top-left-radius: 60px;
+  color: #fff;
+}
+.ABtarage {
+  .table-headermd {
+    font-size: 12px;
+    text-align: center;
+    position: initial;
+    width: 98% !important;
+    margin: 0 auto;
+    border-right: 0;
+  }
+  .table-headermdhome {
+    font-size: 14px;
+  }
+  .table-headermdhome th.el-table__cell > .cell {
+    white-space: pre;
+  }
+  .table-headermd .el-table__header,
+  .table-headermd .el-table__body {
+    width: 100% !important;
+  }
+  .table-headermdhome.van-cell {
+    padding: 0 6px;
+    height: 100%;
+  }
+
+  .table-headermd th.el-table__cell > .cell {
+    padding: 0 4px;
+    text-align: center;
+  }
+
+  .table-headermdhometh.el-table__cell:first-child > .cell {
+    text-align: left;
+  }
+
+  .table-headermd th.el-table__cell {
+    background-color: #1989fa;
+    color: #fff;
+  }
+  .table-headermdhome th.el-table__cell {
+    background-color: #fff;
+    color: #444;
+  }
+  .table-headermd .el-table__cell {
+    padding: 4px 0;
+  }
+
+  .table-headermdhome.el-table .cell {
+    padding: 0 4px;
+    text-align: center;
+  }
+
+  .table-headermdhome .tipTitle {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+    text-align: center;
+  }
+
+  .table-headermd::before {
+    height: 0;
+  }
+
+  .table-headermd .cell,
+  .el-table--border .el-table__cell:first-child .cell {
+    padding: 0 4px;
+  }
+}
+</style>
+
+<style lang="scss">
+.shareBtarget {
+  p {
+    margin: 10px 0 0 0;
+    font-size: 14px;
+    color: #fff !important;
+    /* color: #666; */
+  }
+  .leftTitle {
+    /* background-color: #74a4d9; */
+    color: #fff;
+    display: inline-block;
+    // padding: 0 4px;
+    border-radius: 2px;
+    font-size: 14px;
+  }
+  .rightTitle {
+    /* background-color: #e7b4bb; */
+    color: #fff;
+    display: inline-block;
+    // padding: 0 4px;
+    border-radius: 2px;
+    font-size: 14px;
+  }
+
+  .colBack {
+    width: 100%;
+    height: 100%;
+    display: block;
+    /* overflow: unset; */
+    position: relative;
+    z-index: 2;
+    float: left;
+    z-index: 2;
+    .back {
+      position: absolute;
+      /* background: rgb(226, 240, 217); */
+      height: 100%;
+      display: block;
+      overflow: hidden;
+      /* z-index: 1; */
+      border-radius: 12px;
+      bottom: -4px;
+    }
+    .backLeft {
+      width: 45%;
+      left: -12px;
+    }
+    .backRight {
+      width: 50%;
+      left: calc(50% - 12px);
+    }
+    .van-col {
+      position: relative;
+      z-index: 3;
+    }
+  }
+  .colLabel {
+    display: inline-block;
+    // padding: 2px 5px;
+    color: #fff;
+    // margin-right: 10px;
+    border-radius: 3px;
+  }
+  .colorbalck {
+    color: #fff;
+    margin-left: 8px;
+  }
+  .text {
+    background: url('../assets/textBack.png') no-repeat;
+    width: 100%;
+    height: vw(94);
+    background-size: cover;
+    color: #7d0207;
+    font-size: vw(36);
+    text-align: center;
+    line-height: vw(94);
+    // margin-top: vw(152);
+    // margin-bottom: vw(45);
+    margin: vw(35) 0 vw(15) 0;
+    font-weight: bold;
+  }
+}
+</style>

+ 536 - 0
src/components/shareCommonTarget.vue

@@ -0,0 +1,536 @@
+<template>
+  <div class="shareCommonTarget">
+    <!-- labelStyle 垃圾,不能全匹配,需要特殊处理 -->
+    <template>
+      <div class="container linep">
+        <van-collapse v-model="activeNames">
+          <div v-for="(homePageItem, index) in homePageIndicatorDate" :key="index">
+            <van-collapse-item v-if="homePageItem.labelStyle == 1" :name="(index + 1).toString()">
+              <template #title>
+                <div class="text">{{ homePageItem.name }}</div>
+              </template>
+              <van-row>
+                <!-- 动态渲染标题栏 -->
+                <div
+                  v-for="(periodItem, periodIndex) in homePageItem.children"
+                  :key="'title-' + periodIndex">
+                  <van-col span="12" v-if="periodItem.name">
+                    <span :class="periodIndex % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
+                      periodItem.name
+                    }}</span>
+                  </van-col>
+                </div>
+                <!-- 动态渲染指标项 -->
+                <div v-if="homePageItem.children.length >= 2">
+                  <!-- 遍历第一个周期的所有指标 -->
+                  <div
+                    v-for="(metric, metricIndex) in homePageItem.children[0].children"
+                    :key="'metric-' + metricIndex">
+                    <!-- 左侧指标 -->
+                    <van-col span="12">
+                      <p>
+                        {{ metric.name }}:
+                        <span class="colorblack">
+                          {{ metric.indicatorDisplayValue }}
+                        </span>
+                      </p>
+                    </van-col>
+                    <!-- 对应右侧指标 -->
+                    <van-col span="12">
+                      <p>
+                        {{ homePageItem.children[1]?.children[metricIndex]?.name || '-' }}:
+                        <span class="colorblack">
+                          {{
+                            homePageItem.children[1]?.children[metricIndex]?.indicatorDisplayValue
+                          }}
+                        </span>
+                      </p>
+                    </van-col>
+                  </div>
+                </div>
+              </van-row>
+            </van-collapse-item>
+            <van-collapse-item v-if="homePageItem.labelStyle == 2" :name="(index + 1).toString()">
+              <template #title>
+                <div class="text">{{ homePageItem.name }}</div>
+              </template>
+              <!-- 外层循环:遍历主要类别 -->
+              <van-row
+                v-for="(category, index) in homePageItem.children"
+                :key="index"
+                :style="{ marginTop: index > 0 ? '10px' : '0' }">
+                <van-col span="24" v-if="category.name">
+                  <span :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
+                    category.name
+                  }}</span>
+                </van-col>
+
+                <!-- 内层循环:遍历各个统计项 -->
+                <div v-for="(item, idx) in category.children" :key="idx">
+                  <van-col :span="idx == 0 ? 24 : 12">
+                    <p>
+                      {{ item.name }}:<span
+                        :style="labelStyle(item.clickable)"
+                        class="colorbalck"
+                        >{{ item.indicatorDisplayValue }}</span
+                      >
+                    </p>
+                  </van-col>
+                </div>
+              </van-row>
+            </van-collapse-item>
+            <van-collapse-item v-if="homePageItem.labelStyle == 3" :name="(index + 1).toString()">
+              <template #title>
+                <div class="text">{{ homePageItem.name }}</div>
+              </template>
+              <!-- 外层循环:遍历主要类别 -->
+              <van-row
+                v-for="(category, index) in homePageItem.children"
+                :key="index"
+                :style="{ marginTop: index == 0 ? '-10px' : '0' }">
+                <!-- 内层循环:遍历各个统计项 -->
+                <div v-for="(item, idx) in category.children" :key="idx">
+                  <van-col :span="idx == 0 ? 24 : 12">
+                    <p>
+                      {{ item.name }}:<span
+                        :style="labelStyle(item.clickable)"
+                        class="colorbalck"
+                        >{{ item.indicatorDisplayValue }}</span
+                      >
+                    </p>
+                  </van-col>
+                </div>
+              </van-row>
+            </van-collapse-item>
+            <van-collapse-item v-if="homePageItem.labelStyle == 4" :name="(index + 1).toString()">
+              <template #title>
+                <div class="text">{{ homePageItem.name }}</div>
+              </template>
+              <!-- 外层循环:遍历主要类别 -->
+              <template v-for="(category, index) in homePageItem.children">
+                <van-row
+                  :style="{
+                    width: category.name ? '49%' : '100%',
+                    float: category.name ? 'left' : 'none',
+                  }">
+                  <van-col
+                    span="20"
+                    :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'"
+                    v-if="category.name">
+                    <span>{{ category.name }}</span>
+                  </van-col>
+
+                  <!-- 内层循环:遍历各个统计项 -->
+                  <div v-for="(item, idx) in category.children" :key="idx">
+                    <van-col :span="24">
+                      <p>
+                        {{ item.name }}:<span
+                          :style="labelStyle(item.clickable)"
+                          class="colorbalck"
+                          >{{ item.indicatorDisplayValue }}</span
+                        >
+                      </p>
+                    </van-col>
+                  </div>
+                </van-row>
+              </template>
+            </van-collapse-item>
+            <van-collapse-item v-if="homePageItem.labelStyle == 5" :name="(index + 1).toString()">
+              <template #title>
+                <div class="text">{{ homePageItem.name }}</div>
+              </template>
+              <!-- 外层循环:遍历主要类别 -->
+              <van-row
+                v-for="(category, index) in homePageItem.children"
+                :key="index"
+                :style="{ marginTop: index == 0 ? '-10px' : '0' }">
+                <!-- 内层循环:遍历各个统计项 -->
+                <div v-for="(item, idx) in category.children" :key="idx">
+                  <van-col :span="24">
+                    <p>
+                      {{ item.name }}:<span
+                        :style="labelStyle(item.clickable)"
+                        class="colorbalck"
+                        >{{ item.indicatorDisplayValue }}</span
+                      >
+                    </p>
+                  </van-col>
+                </div>
+              </van-row>
+            </van-collapse-item>
+          </div>
+        </van-collapse>
+      </div>
+    </template>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'shareCommonTarget',
+  props: {
+    homePageIndicatorDate: {
+      type: Object,
+      default: () => ({}),
+    },
+  },
+  data() {
+    return {
+      shows: true,
+      show: true,
+      num: 0,
+      todayGoal: {},
+      progressWidth: 0,
+      updataTime: '',
+      activeNames: [
+        '1',
+        '2',
+        '3',
+        '4',
+        '5',
+        '6',
+        '7',
+        '8',
+        '10',
+        '11',
+        '12',
+        '16',
+        '17',
+        '20',
+        '21',
+        '22',
+        '23',
+        '24',
+        '25',
+        '26',
+        '27',
+        '28',
+        '29',
+        '30',
+        '31',
+        '32',
+        '33',
+        '34',
+        '35',
+        '36',
+        '37',
+        '38',
+        '39',
+        '40',
+        '41',
+        '42',
+        '43',
+      ],
+      activeNameType: [],
+      powerGradeShow: false,
+      showButton: false,
+      isCommit: null,
+      powerGrade: '2',
+      deptLevel: '',
+      // positionId:等级(1-销售员 2-销售部主管 3-大区主管 4-区域公司总经理 5-DIY公司)
+      reportTargetAll: {},
+      approvalPendingNum: 0,
+      isDiy: false,
+      approvalButton: false,
+      times: 5,
+      timer: null,
+      type: '-1',
+      monthNoVisit: {},
+      flag: true,
+      reportInfoData: {},
+      applyNumber: '',
+      proccessPendingNum: 0,
+      JZQuota: false,
+      GZdata: false,
+    };
+  },
+  methods: {
+    labelStyle(val) {
+      return {
+        'text-decoration': 'none',
+        color: '#fff',
+      };
+    },
+  },
+};
+</script>
+<style scoped>
+.shareCommonTarget {
+  .homeTitle {
+    padding: 6px 16px;
+  }
+
+  .homeTitle .van-icon__image {
+    width: 1.4em;
+    height: auto;
+  }
+
+  .container {
+    margin: 10px 0;
+  }
+
+  .container .van-collapse-item {
+    margin-bottom: 10px;
+    overflow: hidden;
+  }
+
+  .progressContentlist {
+    font-size: 14px;
+    padding: 10px 0;
+  }
+
+  .linep p {
+    margin: 10px 0 0 0;
+    font-size: 14px;
+    color: #fff;
+  }
+
+  .leftTitle {
+    color: #fff;
+    display: inline-block;
+    margin-top: 10px;
+  }
+
+  .rightTitle {
+    color: #fff;
+    display: inline-block;
+    white-space: nowrap;
+    margin-top: 10px;
+  }
+  .colorblack {
+    color: #fff;
+  }
+  .colorbalck {
+    color: #fff;
+  }
+}
+</style>
+<style lang="scss">
+.shareCommonTarget {
+  .myTab .van-tabs__nav--card {
+    margin: 0 !important;
+  }
+
+  .myTab .van-tabs__wrap,
+  .van-tabs__nav--card {
+    height: 39px;
+  }
+
+  .myTab .van-tab {
+    line-height: 40px;
+  }
+
+  .linep .van-collapse-item__content {
+    color: #fff;
+  }
+
+  .linep .van-collapse-item__content {
+    color: #fff;
+  }
+
+  .linep .van-cell__title {
+    color: #fff;
+    font-weight: 500;
+    font-size: 16px;
+  }
+
+  .homeCellIcon {
+    line-height: 34px;
+  }
+
+  .homeTitle .van-cell__title {
+    color: #fff;
+    font-size: 16px;
+    font-weight: bold;
+    padding-left: 4px;
+    line-height: 36px;
+    height: 36px;
+  }
+
+  .updataTime {
+    color: #fff;
+    font-size: 12px;
+    text-align: center;
+  }
+
+  .homeTitle .van-tag--danger {
+    /* border-radius: 20px; */
+  }
+
+  .van-dialog__confirm,
+  .van-dialog__confirm:active {
+    color: #fff;
+  }
+
+  .van-collapse-item__content {
+    padding: 0px !important;
+    overflow: hidden;
+    background-color: unset !important;
+  }
+
+  .storeTypeHome .storeTypeHomeList .van-cell__title {
+    color: #fff;
+    font-size: 14px;
+  }
+
+  .storeTypeHome .monthNoVisit {
+    padding: 10px;
+    margin: 10px;
+    border-radius: 5px;
+    background-color: #ebf4ff;
+  }
+
+  .storeTypeHome .leftContent {
+    padding-right: 68px;
+    position: relative;
+  }
+
+  .storeTypeHome .monthNoVisitStatstext {
+    font-size: 12px;
+    background-color: #0057ba;
+    position: absolute;
+    right: 0;
+    top: 6px;
+    padding: 2px 6px 2px 12px;
+    color: #fff;
+  }
+
+  .colBack {
+    width: 100%;
+    height: 100%;
+    display: block;
+    /* overflow: unset; */
+    position: relative;
+    z-index: 2;
+    float: left;
+    z-index: 2;
+
+    .back {
+      position: absolute;
+      background: rgb(226, 240, 217);
+      height: 100%;
+      display: block;
+      overflow: hidden;
+      /* z-index: 1; */
+      border-radius: 12px;
+      bottom: -4px;
+    }
+
+    .backLeft {
+      width: 45%;
+      left: -12px;
+    }
+
+    .backRight {
+      width: 50%;
+      left: calc(50% - 12px);
+    }
+
+    .van-col {
+      position: relative;
+      z-index: 3;
+    }
+  }
+}
+.shareCommonTarget {
+  color: #fff;
+  .van-cell {
+    background-color: unset !important;
+    padding: 0 !important;
+  }
+  :deep(*) {
+    border: none !important;
+  }
+
+  .table-headermdhome {
+    font-size: 14px;
+  }
+
+  .table-headermdhome th.el-table__cell > .cell {
+    white-space: pre;
+  }
+
+  .table-headermd .el-table__header,
+  .table-headermd .el-table__body {
+    width: 100% !important;
+  }
+
+  .table-headermdhome.van-cell {
+    padding: 0 6px;
+    height: 100%;
+  }
+
+  .table-headermd th.el-table__cell > .cell {
+    padding: 0 4px;
+    text-align: center;
+  }
+
+  .table-headermdhometh.el-table__cell:first-child > .cell {
+    text-align: left;
+  }
+
+  .table-headermd th.el-table__cell {
+    background-color: #1989fa;
+    color: #fff;
+  }
+
+  .table-headermdhome th.el-table__cell {
+    // background-color: #fff;
+    color: #fff;
+  }
+
+  .table-headermd .el-table__cell {
+    padding: 4px 0;
+  }
+
+  .table-headermdhome.el-table .cell {
+    padding: 0 4px;
+    text-align: center;
+  }
+
+  .table-headermdhome .tipTitle {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+    text-align: center;
+  }
+
+  .table-headermd::before {
+    height: 0;
+  }
+
+  .table-headermd .cell,
+  .el-table--border .el-table__cell:first-child .cell {
+    padding: 0 4px;
+  }
+  .van-hairline--top-bottom::after,
+  .van-hairline-unset--top-bottom::after {
+    border-width: 0;
+  }
+  .van-cell::after {
+    border-width: 0;
+  }
+  .van-collapse-item--border::after {
+    border-width: 0;
+  }
+  .van-cell__right-icon {
+    display: none;
+  }
+  .text {
+    background: url('../assets/textBack.png') no-repeat;
+    width: 100%;
+    height: vw(94);
+    background-size: cover;
+    color: #7d0207;
+    font-size: vw(36);
+    text-align: center;
+    line-height: vw(94);
+    // margin-top: vw(152);
+    // margin-bottom: vw(45);
+    margin: vw(35) 0 vw(15) 0;
+    font-weight: bold;
+  }
+}
+</style>

+ 96 - 0
src/components/shareReportCustom.vue

@@ -0,0 +1,96 @@
+<template>
+  <div class="shareReportCustom" v-if="fromData && fromData.length">
+    <template v-for="(value, ind) in fromData">
+      <template v-if="value.sfaReportCustomCollections">
+        <div
+          v-for="(item, index) in value.sfaReportCustomCollections"
+          :key="item.reportCustomCollectionId">
+          <template v-if="item.isShare == '1'">
+            <template
+              v-if="
+                item.reportCustomCollectionType == 'sz' || item.reportCustomCollectionType == 'wb'
+              ">
+              <div class="text">{{ item.reportCustomCollectionName }}</div>
+              <div class="content">{{ item.answerValue }}</div>
+            </template>
+            <template
+              v-if="
+                item.reportCustomCollectionType == 'duox' || item.reportCustomCollectionType == 'dx'
+              ">
+              <div class="text">{{ item.reportCustomCollectionName }}</div>
+              <div class="content">
+                <p v-for="value in item.sfaReportCustomOptions">
+                  <template v-if="value.answerValue == 'Y'">{{ value.customOption }}</template>
+                </p>
+              </div>
+            </template>
+          </template>
+        </div>
+      </template>
+    </template>
+  </div>
+</template>
+<script>
+import zRadio from '@/components/componentZRadio';
+import zCheckbox from '@/components/componentZCheckbox';
+export default {
+  components: { zRadio, zCheckbox },
+  props: {
+    reportCustomData: {
+      type: Array,
+      default: () => [],
+    },
+    disabled: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  watch: {
+    reportCustomData: {
+      handler(val) {
+        this.postName = localStorage.getItem('postName');
+        this.filterFromData(val);
+      },
+      immediate: true,
+      deep: true,
+    },
+  },
+  data() {
+    return {
+      fromData: null,
+      postName: '',
+    };
+  },
+  methods: {
+    filterFromData(val) {
+      this.fromData = val;
+    },
+  },
+};
+</script>
+<style lang="scss">
+.shareReportCustom {
+  .text {
+    background: url('../assets/textBack.png') no-repeat;
+    width: 100%;
+    height: vw(94);
+    background-size: cover;
+    color: #7d0207;
+    font-size: vw(36);
+    text-align: center;
+    line-height: vw(94);
+    // margin-top: vw(152);
+    // margin-bottom: vw(45);
+    margin: vw(35) 0 vw(20) 0;
+    font-weight: bold;
+  }
+
+  .content {
+    font-size: vw(28);
+    font-weight: bold;
+    color: #ffff;
+    line-height: vw(63);
+    white-space: pre-wrap;
+  }
+}
+</style>

+ 1 - 1
src/components/uploadVNormal.vue

@@ -258,7 +258,7 @@ export default {
                     },
                     function (err) {
                       that.addressesRemark = '';
-                    },
+                    }
                   );
                 },
                 fail: function () {

+ 14 - 241
src/components/uploadVNormalTaskPhoto.vue

@@ -31,32 +31,6 @@
       @normalFlow="normalFlow"
       @close="close">
     </imageWhiteStore>
-    <!-- 上传动画 -->
-    <div class="uploadImgDemoMask" v-show="uploadImgFlag">
-      <div class="uploadImgDemo">
-        <div class="ring-area" id="d2area" style="display: flex">
-          <div class="ring-wrap">
-            <svg width="90" height="90" viewBox="0 0 90 90">
-              <circle class="ring-bg" cx="45" cy="45" r="40" />
-              <circle class="ring-progress" id="d2ring" cx="45" cy="45" r="40" />
-            </svg>
-            <div class="ring-text">
-              <span class="ring-pct" id="d2pct">0%</span>
-              <span class="ring-sub" id="d2sub">上传中</span>
-            </div>
-          </div>
-          <div class="ring-info">
-            <div class="ring-filename" id="d2name"></div>
-            <div class="ring-list" id="d2dots">
-              <div
-                v-for="(value, index) in uploadImgTotal"
-                class="ring-dot"
-                :id="`dot${index}`"></div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
   </div>
 </template>
 
@@ -140,16 +114,8 @@ export default {
       imageWhiteStoreData: null,
       imageWhiteStoreFlag: false,
       localIdsArr: [],
-      uploadImgFlag: false, //上传图片中
-      uploadImgTotal: 0, // 上传图片总数
-      d2running: false,
-      d2count: 0,
-      d2timer: null,
     };
   },
-  activated() {
-    this.resetDemo2();
-  },
   methods: {
     // 原生H5拍照图片
     // url: base64
@@ -265,9 +231,6 @@ export default {
                   //   collectionItemId: that.collectionItemId,
                   //   source: 'weixin',
                   // });
-                  that.uploadImgFlag = true;
-                  that.uploadImgTotal = localIds.length;
-                  that.startDemo2();
                   that.syncUpload(localIds);
                 },
               });
@@ -282,7 +245,7 @@ export default {
         var localId = localIds.pop();
         wx.uploadImage({
           localId: localId,
-          isShowProgressTips: 0, // 默认为1,显示进度提示
+          isShowProgressTips: 1, // 默认为1,显示进度提示
           success: (res) => {
             this.localIdsArr.push(res.serverId);
             this.syncUpload(localIds);
@@ -332,7 +295,6 @@ export default {
           this.requestThen(res);
         })
         .catch((error) => {
-          this.resetDemo2();
           this.requestCatch(error);
         });
     },
@@ -361,7 +323,6 @@ export default {
           }
         }
       } else {
-        this.resetDemo2();
         that.$toast('上传失败!');
       }
     },
@@ -374,51 +335,20 @@ export default {
     },
     // 正常流程
     normalFlow(res) {
-      if (this.d2timer) {
-        clearTimeout(this.d2timer);
-      }
-      try {
-        this.runD2(500, false, () => {
-          this.resetDemo2();
-          this.$toast('上传成功!');
-          let fileInfoList = [];
-          res.data.forEach((val) => {
-            fileInfoList.push({
-              fileUrl: val.url,
-              id: val.fileId,
-              type: 2,
-            });
-          });
-          this.$emit('newimgarr', {
-            fileInfoList: fileInfoList,
-            photoIdentifyType: this.photoIdentifyType,
-            source: 'H5',
-          });
+      this.$toast('上传成功!');
+      let fileInfoList = [];
+      res.data.forEach((val) => {
+        fileInfoList.push({
+          fileUrl: val.url,
+          id: val.fileId,
+          type: 2,
         });
-      } catch (error) {
-        this.resetDemo2();
-      }
-    },
-    resetDemo2() {
-      if (this.d2timer) {
-        clearTimeout(this.d2timer);
-      }
-      this.d2running = false;
-      this.d2count = 0;
-      this.uploadImgTotal = 0;
-      if (document.getElementById('d2ring')) {
-        document.getElementById('d2ring').style.strokeDashoffset = 251.2;
-      }
-      if (document.getElementById('d2pct')) {
-        document.getElementById('d2pct').textContent = '0%';
-      }
-      if (document.getElementById('d2sub')) {
-        document.getElementById('d2sub').textContent = '上传中';
-      }
-      if (document.getElementById('d2name')) {
-        document.getElementById('d2name').textContent = '正在上传。。。';
-      }
-      this.uploadImgFlag = false;
+      });
+      this.$emit('newimgarr', {
+        fileInfoList: fileInfoList,
+        photoIdentifyType: this.photoIdentifyType,
+        source: 'H5',
+      });
     },
     // 照片是否入库,1.照片识别三次不通过仍要上传,2.照片识别通过
     // isUpdate:是否更新店招照片,只有门店店招需要更新
@@ -479,55 +409,6 @@ export default {
           this.confirmUpload(res);
         });
     },
-    // ===== Demo 2 =====
-    startDemo2() {
-      if (this.d2running) return;
-      this.d2running = true;
-      this.d2count = 0;
-      this.runD2(1100, true);
-    },
-    runD2(delay, isFirst, callback) {
-      //   this.NAMES = Array.from(
-      //     { length: this.uploadImgTotal },
-      //     (_, i) => `IMG_${String(2001 + i).padStart(4, '0')}.jpg`,
-      //   );
-      if (this.d2count >= this.uploadImgTotal) {
-        document.getElementById('d2sub').textContent = '完成';
-        document.getElementById('d2name').textContent = '全部上传成功 ✅';
-        callback && callback();
-        return;
-      }
-      if (this.uploadImgTotal >= 2) {
-        this.d2timer = setTimeout(() => {
-          if (this.d2count > 0) {
-            document.getElementById(`dot${this.d2count - 1}`).className = 'ring-dot done';
-          }
-          document.getElementById(`dot${this.d2count}`).className = 'ring-dot active';
-          document.getElementById('d2name').textContent = '正在上传。。。';
-          this.d2count++;
-          const pct = Math.round((this.d2count / this.uploadImgTotal) * 100);
-          document.getElementById('d2pct').textContent = pct + '%';
-          const offset = 251.2 * (1 - this.d2count / this.uploadImgTotal);
-          document.getElementById('d2ring').style.strokeDashoffset = offset;
-          document.getElementById('d2sub').textContent = `${this.d2count}/${this.uploadImgTotal}`;
-          // this.d2count >= Math.floor(this.uploadImgTotal * (0.4 + Math.random() * 0.5))
-          if (this.d2count >= Math.floor(this.uploadImgTotal * 0.9) && isFirst) {
-            clearTimeout(this.d2timer);
-            return;
-          }
-          this.runD2(delay, isFirst, callback);
-        }, delay);
-      } else {
-        this.$nextTick(() => {
-          document.getElementById(`dot0`).className = 'ring-dot active';
-          document.getElementById('d2name').textContent = '正在上传。。。';
-          this.d2count++;
-          document.getElementById('d2pct').textContent = '50%';
-          document.getElementById('d2ring').style.strokeDashoffset = 50;
-          document.getElementById('d2sub').textContent = `0/${this.uploadImgTotal}`;
-        });
-      }
-    },
   },
 };
 </script>
@@ -566,111 +447,3 @@ export default {
   position: absolute;
 }
 </style>
-<style lang="scss">
-/* ===== 样例2:圆形进度环 ===== */
-.uploadImgDemoMask {
-  position: fixed;
-  inset: 0;
-  background: rgba(0, 0, 0, 0.5);
-  z-index: 9998;
-}
-.uploadImgDemo {
-  width: 95%;
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-  z-index: 9999;
-  background: #fff;
-  padding: 10px 5px;
-  border-radius: 8px;
-}
-.uploadImgDemo .ring-area {
-  display: none;
-  // margin-top: 16px;
-  align-items: center;
-  gap: 20px;
-}
-.uploadImgDemo .ring-wrap {
-  position: relative;
-  width: 90px;
-  height: 90px;
-  flex-shrink: 0;
-}
-.uploadImgDemo .ring-wrap svg {
-  transform: rotate(-90deg);
-}
-.uploadImgDemo .ring-bg {
-  fill: none;
-  stroke: #e0f7f4;
-  stroke-width: 8;
-}
-.uploadImgDemo .ring-progress {
-  fill: none;
-  stroke: url(#greenGrad);
-  stroke-width: 8;
-  stroke-linecap: round;
-  stroke-dasharray: 251.2;
-  stroke-dashoffset: 251.2;
-  transition: stroke-dashoffset 0.35s ease;
-}
-.uploadImgDemo .ring-text {
-  position: absolute;
-  inset: 0;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-}
-.uploadImgDemo .ring-pct {
-  font-size: 18px;
-  font-weight: 700;
-  color: #11998e;
-}
-.uploadImgDemo .ring-sub {
-  font-size: 10px;
-  color: #aaa;
-}
-.uploadImgDemo .ring-info {
-  flex: 1;
-}
-.uploadImgDemo .ring-filename {
-  font-size: 13px;
-  font-weight: 500;
-  color: #333;
-  margin-bottom: 6px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  max-width: 160px;
-}
-.uploadImgDemo .ring-list {
-  display: flex;
-  flex-wrap: wrap;
-  gap: 4px;
-  margin-top: 8px;
-}
-.uploadImgDemo .ring-dot {
-  width: 10px;
-  height: 10px;
-  border-radius: 50%;
-  background: #e0e0e0;
-  transition: background 0.3s;
-}
-.uploadImgDemo .ring-dot.done {
-  background: #11998e;
-}
-.uploadImgDemo .ring-dot.active {
-  background: #38ef7d;
-  animation: pulse2 0.8s infinite;
-}
-@keyframes pulse2 {
-  0%,
-  100% {
-    transform: scale(1);
-  }
-  50% {
-    transform: scale(1.4);
-  }
-}
-</style>

+ 0 - 3
src/main.js

@@ -85,9 +85,6 @@ if (isProd) {
   Vue.use(vConsole);
 }
 
-const locationOrigin = process.env.NODE_ENV === 'development' ? '/releaseMobile' : '/mobile';
-Vue.prototype.locationOrigin = locationOrigin;
-
 Vue.use(directive);
 
 new Vue({

+ 19 - 26
src/permission.js

@@ -9,35 +9,28 @@ router.beforeEach((to, from, next) => {
     localStorage.setItem('loginName', queryLoginName);
   }
   const username = localStorage.getItem('loginName');
-  if (username) {
-    /* has token*/
-    if (!store.state.user.userInfo) {
-      // 获取移动端获取用户信息接口
-      store
-        .dispatch('getUserInfo')
-        .then(() => {
-          next();
-        })
-        .catch(() => {
-          next();
-        });
-    } else {
-      next();
-    }
+  // 测试使用 账户密码登录页面,正式环境禁用
+  if (to.path == '/logincs' && process.env.NODE_ENV == 'production') {
+    next('/');
   } else {
-    // 测试使用 账户密码登录页面,正式环境禁用
-    if (to.path == '/logincs' && process.env.NODE_ENV == 'production') {
-      next('/');
+    if (username) {
+      /* has token*/
+      if (!store.state.user.userInfo) {
+        // 获取移动端获取用户信息接口
+        store
+          .dispatch('getUserInfo')
+          .then(() => {
+            next();
+          })
+          .catch(() => {
+            next();
+          });
+      } else {
+        next();
+      }
     } else {
+      alert('获取签名失败');
       next();
     }
-    // // 没有token
-    // if (whiteList.indexOf(to.path) !== -1) {
-    //   // 在免登录白名单,直接进入
-    //   next();
-    // } else {
-    //     next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
-    //     NProgress.done();
-    // }
   }
 });

+ 0 - 6
src/router/index.js

@@ -557,12 +557,6 @@ const router = new VueRouter({
           component: () => import('@/views/week/SUPTaskApproval/SUPTaskApprovalDetail.vue'),
           meta: { title: '主管任务审批详情', keepAlive: true },
         },
-        {
-          path: '/changeChain',
-          name: 'changeChain',
-          component: () => import('@/views/week/changeChain.vue'),
-          meta: { title: '切换经销商' },
-        },
       ],
     },
     {

+ 43 - 5
src/store/modules/user.js

@@ -1,4 +1,4 @@
-import { getMobileUserInfo, getDictOption, loginLog } from '@/api/index';
+import { getMobileUserInfo, getDictOption, loginLog, getReportInfo } from '@/api/index';
 
 const user = {
   state: {
@@ -6,6 +6,7 @@ const user = {
     activaTypeStore: null, //未拜访门店
     activaCreateTypeStore: null, //建店未完工、未结案门店
     storeType: [],
+    reportInfo: null,
   },
 
   mutations: {
@@ -21,6 +22,9 @@ const user = {
     SET_ACTIVA_CREATE_TYPE_STORE: (state, value) => {
       state.activaCreateTypeStore = value;
     },
+    SET_REPORT_INFO: (state, reportInfo) => {
+      state.reportInfo = reportInfo;
+    },
   },
 
   actions: {
@@ -41,10 +45,22 @@ const user = {
             localStorage.setItem('getRequestFlage', 'true');
             // userDeptLevel用户部门等级字段,0-总部,1-公司,2-大区,3-销售部,4-业务员
             localStorage.setItem('userDeptLevel', res.data.userDeptLevel);
-            // 门店类型
-            getDictOption({}, 'sfa_store_type').then((res) => {
-              commit('SET_STORE_TYPE', res.data);
-              resolve();
+            getReportInfo({ isContent: false }).then((res) => {
+              if (res.code == 200) {
+                commit('SET_REPORT_INFO', res.data);
+                localStorage.setItem('powerGrade', res.data.positionId);
+                localStorage.setItem('isDiy', res.data.diy);
+                localStorage.setItem('uType', res.data.userType);
+                localStorage.setItem('jzType', res.data.jzType);
+                localStorage.setItem('customerVisits', res.data.customerManagerVisits);
+                localStorage.setItem('postType', res.data.postType);
+                localStorage.setItem('reportType', res.data.reportType);
+                // 门店类型
+                getDictOption({}, 'sfa_store_type').then((res) => {
+                  commit('SET_STORE_TYPE', res.data);
+                  resolve();
+                });
+              }
             });
             // 登录日志
             var appVersion = navigator.appVersion;
@@ -80,6 +96,28 @@ const user = {
     activaCreateTypeStore({ commit }, value) {
       commit('SET_ACTIVA_CREATE_TYPE_STORE', value);
     },
+    // 获取用户ReportInfo
+    getReportInfoDeta({ dispatch, commit, state }) {
+      return new Promise((resolve, reject) => {
+        getReportInfo({ isContent: false })
+          .then((res) => {
+            if (res.code == 200) {
+              commit('SET_REPORT_INFO', res.data);
+              localStorage.setItem('powerGrade', res.data.positionId);
+              localStorage.setItem('isDiy', res.data.diy);
+              localStorage.setItem('uType', res.data.userType);
+              localStorage.setItem('jzType', res.data.jzType);
+              localStorage.setItem('customerVisits', res.data.customerManagerVisits);
+              localStorage.setItem('postType', res.data.postType);
+              localStorage.setItem('reportType', res.data.reportType);
+              resolve();
+            }
+          })
+          .catch((error) => {
+            reject(error);
+          });
+      });
+    },
   },
 };
 

+ 2 - 2
src/views/clew/clewent.vue

@@ -562,7 +562,7 @@ export default {
               this.$toast.success('转发成功');
               this.show = false;
               if (this.$route.query.token != undefined) {
-                window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+                window.location.replace(window.location.origin + '/mobile/clew');
               } else {
                 store.dispatch('setRefreshClewPage', true);
                 // 返回上一页不会刷新页面
@@ -773,7 +773,7 @@ export default {
           this.toastLoading().clear();
           if (res.code == 200) {
             if (this.$route.query.token != undefined) {
-              window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+              window.location.replace(window.location.origin + '/mobile/clew');
             } else {
               store.dispatch('setRefreshClewPage', true);
               // 返回上一页不会刷新页面

+ 3 - 3
src/views/clew/complaintDetail/index.vue

@@ -303,7 +303,7 @@ export default {
                 showCancelButton: false,
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+                window.location.replace(window.location.origin + '/mobile/clew');
               });
           }
         } else {
@@ -337,7 +337,7 @@ export default {
           this.toastLoading().clear();
           if (res.code == 200) {
             if (this.$route.query.token != undefined) {
-              window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+              window.location.replace(window.location.origin + '/mobile/clew');
             } else {
               store.dispatch('setRefreshClewPage', true);
               // 返回上一页不会刷新页面
@@ -484,7 +484,7 @@ export default {
               this.$toast.success('转发成功');
               this.show = false;
               if (this.$route.query.token != undefined) {
-                window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+                window.location.replace(window.location.origin + '/mobile/clew');
               } else {
                 store.dispatch('setRefreshClewPage', true);
                 // 返回上一页不会刷新页面

+ 6 - 67
src/views/componentsTarget/createStoreBJ.vue

@@ -27,22 +27,6 @@
         <span class="colorbalck" v-else>({{ '-' }})</span>
       </p>
     </van-col>
-    <van-col span="12">
-      <p>
-        <span class="colLabel colLabel_FX">分销店</span>
-        <span class="colorbalck">{{ Micrometer(reportTargetAll.allShopMonthAct) }}</span>
-      </p>
-    </van-col>
-    <van-col span="12">
-      <p>
-        <span class="colLabel colLabel_FX">分销店</span>
-        <span class="colorbalck">{{ Micrometer(reportTargetAll.allShopYearAct) }}</span>
-        <span class="colorbalck" v-if="reportTargetAll.allShopYearRate"
-          >({{ reportTargetAll.allShopYearRate }}%)</span
-        >
-        <span class="colorbalck" v-else>({{ '-' }})</span>
-      </p>
-    </van-col>
     <div>
       <div class="backLeft back"></div>
       <div class="backRight back"></div>
@@ -64,61 +48,16 @@
       </van-col>
       <van-col span="12">
         <p>
-          <span class="colLabel colLabel_JPBJ">金牌店布机</span>
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.goldShopBjMonthAct) }}</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          <span class="colLabel colLabel_JPBJ">金牌店布机</span>
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.goldShopBjYearAct) }}</span>
-          <span class="colorbalck" v-if="reportTargetAll.goldShopBjYearRate">
-            ({{ reportTargetAll.goldShopBjYearRate }}%)
-          </span>
-          <span class="colorbalck" v-else>({{ '-' }})</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          <span class="colLabel colLabel_TCFX">同城分销</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          <span class="colLabel colLabel_TCFX">同城分销</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          涂料店:<span class="colorbalck">{{
-            Micrometer(reportTargetAll.tcfxTlShopMonthAct)
-          }}</span>
+          <span class="colLabel colLabel_TCFX">仿石漆店</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.fsqShopMonthAct) }}</span>
         </p>
       </van-col>
       <van-col span="12">
         <p>
-          涂料店:<span class="colorbalck">{{
-            Micrometer(reportTargetAll.tcfxTlShopYearAct)
-          }}</span>
-          <span class="colorbalck" v-if="reportTargetAll.tcfxTlShopYearRate">
-            ({{ reportTargetAll.tcfxTlShopYearRate }}%)
-          </span>
-          <span class="colorbalck" v-else>({{ '-' }})</span>
-        </p>
-      </van-col>
-
-      <van-col span="12">
-        <p style="margin-top: 0">
-          厨卫店:
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxOtherShopMonthAct) }}</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p style="margin-top: 0">
-          厨卫店:
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxOtherShopYearAct) }}</span>
-          <span class="colorbalck" v-if="reportTargetAll.tcfxOtherShopYearRate">
-            ({{ reportTargetAll.tcfxOtherShopYearRate }}%)
+          <span class="colLabel colLabel_TCFX">仿石漆店</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.fsqShopYearAct) }}</span>
+          <span class="colorbalck" v-if="reportTargetAll.fsqShopYearRate">
+            ({{ reportTargetAll.fsqShopYearRate }}%)
           </span>
           <span class="colorbalck" v-else>({{ '-' }})</span>
         </p>

+ 0 - 74
src/views/componentsTarget/index.css

@@ -1,74 +0,0 @@
-p{
-    margin: 10px 0 0 0;
-    font-size: 14px;
-    /* color: #666; */
-}
-.leftTitle {
-    background-color: #74a4d9;
-    color: #fff;
-    display: inline-block;
-    padding: 0 4px;
-    border-radius: 2px;
-}
-.rightTitle {
-    background-color: #e7b4bb;
-    color: #fff;
-    display: inline-block;
-    padding: 0 4px;
-    border-radius: 2px;
-}
-
-.colBack {
-    width: 100%;
-    height: 100%;
-    display: block;
-    /* overflow: unset; */
-    position: relative;
-    z-index: 2;
-    float: left;
-    z-index: 2;
-    .back {
-        position: absolute;
-        background: rgb(226, 240, 217);
-        height: 100%;
-        display: block;
-        overflow: hidden;
-        /* z-index: 1; */
-        border-radius: 12px;
-        bottom: -4px;
-    }
-    .backLeft {
-        width: 45%;
-        left: -12px;
-    }
-    .backRight {
-        width: 50%;
-        left: calc(50% - 12px);
-    }
-    .van-col {
-        position: relative;
-        z-index: 3;
-    }
-}
-.colLabel{
-    display: inline-block;
-    padding: 2px 5px;
-    color: #fff;
-    margin-right: 10px;
-    border-radius:3px;
-}
-.colLabel_KK{
-    background: rgb(235, 104, 119);
-}
-.colLabel_FX{
-    background: rgb(253 120 88);
-}
-.colLabel_JP{
-    background: rgb(241, 183, 137);
-}
-.colLabel_JPBJ{
-    background: rgb(248 215 189);
-}
-.colLabel_TCFX{
-    background: rgb(131 204 202);
-}

+ 4 - 40
src/views/componentsTarget/placeOrder.vue

@@ -16,18 +16,6 @@
         <span class="colorbalck">{{ reportTargetAll.controlledShopMonthOrderRate }}%</span>
       </p>
     </van-col>
-    <van-col span="12">
-      <p>
-        <span class="colLabel colLabel_FX">分销店</span>
-        <span class="colorbalck">{{ Micrometer(reportTargetAll.fxOrderShopMonthAct) }}</span>
-      </p>
-    </van-col>
-    <van-col span="12">
-      <p>
-        <span class="colLabel colLabel_FX">分销店</span
-        ><span class="colorbalck">{{ reportTargetAll.fxShopMonthOrderRate }}%</span>
-      </p>
-    </van-col>
     <div>
       <div class="backLeft back"></div>
       <div class="backRight back"></div>
@@ -45,38 +33,14 @@
       </van-col>
       <van-col span="12">
         <p>
-          <span class="colLabel colLabel_TCFX">同城分销</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          <span class="colLabel colLabel_TCFX">同城分销</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          涂料店:
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxTlOrderShopMonthAct) }}</span>
+          <span class="colLabel colLabel_TCFX">同城分销近3月</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxOrderShopMonthAct) }}</span>
         </p>
       </van-col>
       <van-col span="12">
         <p>
-          涂料店:
-          <span class="colorbalck">{{ reportTargetAll.tcfxTlShopMonthOrderRate }}%</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p style="margin-top: 0">
-          厨卫店:
-          <span class="colorbalck">{{
-            Micrometer(reportTargetAll.tcfxOtherOrderShopMonthAct)
-          }}</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p style="margin-top: 0">
-          厨卫店:
-          <span class="colorbalck">{{ reportTargetAll.tcfxOtherShopMonthOrderRate }}%</span>
+          <span class="colLabel colLabel_TCFX">同城分销近3月</span>
+          <span class="colorbalck"> {{ reportTargetAll.tcfxShopMonthOrderRate }}% </span>
         </p>
       </van-col>
     </div>

+ 6 - 29
src/views/componentsTarget/visitedRealTime.vue

@@ -68,19 +68,6 @@
         <span class="colorbalck">({{ reportTargetAll.controlledShopVisitMonthRate }}%)</span>
       </p>
     </van-col>
-    <van-col span="12">
-      <p>
-        <span class="colLabel colLabel_FX">分销店</span>
-        <span class="colorbalck">{{ Micrometer(reportTargetAll.fxShopVisitDayNum) }}</span>
-      </p>
-    </van-col>
-    <van-col span="12">
-      <p>
-        <span class="colLabel colLabel_FX">分销店</span>
-        <span class="colorbalck">{{ Micrometer(reportTargetAll.fxShopVisitMonthNum) }}</span>
-        <span class="colorbalck"> ({{ reportTargetAll.fxShopVisitMonthRate }}%) </span>
-      </p>
-    </van-col>
     <div>
       <div class="backLeft back"></div>
       <div class="backRight back"></div>
@@ -100,27 +87,17 @@
       <van-col span="12">
         <p>
           <span class="colLabel colLabel_TCFX">同城分销</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxShopVisitDayNum) }}</span>
         </p>
       </van-col>
       <van-col span="12">
         <p>
-          <span class="colLabel colLabel_TCFX">同城分销</span>
+          <span class="colLabel colLabel_TCFX">同城分销近3月</span>
+          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxShopVisitMonthNum) }}</span>
+          <span class="colorbalck"> ({{ reportTargetAll.tcfxShopVisitMonthRate }}%) </span>
         </p>
       </van-col>
-      <van-col span="12">
-        <p>
-          涂料店:
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxTlShopVisitDayNum) }}</span>
-        </p>
-      </van-col>
-      <van-col span="12">
-        <p>
-          <span style="font-weight: 600">近2月</span>涂料店:
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxTlShopVisitMonthNum) }}</span>
-          <span class="colorbalck"> ({{ reportTargetAll.tcfxTlShopVisitMonthRate }}%) </span>
-        </p>
-      </van-col>
-      <van-col span="12">
+      <!-- <van-col span="12">
         <p style="margin-top: 0">
           厨卫店:<span class="colorbalck">{{
             Micrometer(reportTargetAll.tcfxOtherShopVisitDayNum)
@@ -134,7 +111,7 @@
           }}</span>
           <span class="colorbalck"> ({{ reportTargetAll.tcfxOtherShopVisitMonthRate }}%) </span>
         </p>
-      </van-col>
+      </van-col> -->
     </div>
   </van-row>
 </template>

+ 41 - 68
src/views/deviceOutside/oderSuccess.vue

@@ -1,99 +1,72 @@
 <template>
   <div>
-    <van-nav-bar class="navBar" title="下单成功" />
-    <div
-      style="
-        background-color: rgb(74, 202, 109);
-        color: #fff;
-        width: 132px;
-        height: 132px;
-        border-radius: 106px;
-        text-align: center;
-        line-height: 190px;
-        margin: 38% auto 80px;
-      ">
-      <van-icon name="success" size="80" />
+    <van-nav-bar class="navBar" title="下单成功"   />
+    <div style="    background-color: rgb(74, 202, 109);
+    color: #fff;
+    width: 132px;
+    height: 132px;
+    border-radius: 106px;
+    text-align: center;
+    line-height: 190px;    margin: 38% auto 80px;">
+      <van-icon name="success"  size="80"/>
     </div>
     <van-row gutter="20" style="text-align: center">
-      <van-col span="12"
-        ><van-button
-          icon="home"
-          style="width: 120px"
-          size="small"
-          round
-          type="primary"
-          @click="goback"
-          >去首页</van-button
-        >
+      <van-col span="12"><van-button icon="home" style="width: 120px" size="small" round  type="primary" @click="goback">去首页</van-button>
       </van-col>
-      <van-col span="12"
-        ><van-button
-          icon="guide-o"
-          style="width: 120px"
-          size="small"
-          round
-          type="info"
-          @click="visite"
-          >继续拜访</van-button
-        ></van-col
-      >
+      <van-col span="12"><van-button icon="guide-o"  style="width: 120px" size="small" round  type="info" @click="visite">继续拜访</van-button></van-col>
     </van-row>
   </div>
 </template>
 
 <script>
-import { addstoreRegister, addVisitsPosition, checkVisit, mobileReposition } from '@/api';
-import axios from 'axios';
-import home from '@/assets/Icon/home.png';
-import { getVisitsParams } from '@/api/inventory';
+import {addstoreRegister, addVisitsPosition, checkVisit, mobileReposition} from "@/api";
+import axios from "axios";
+import home from "@/assets/Icon/home.png";
+import {getVisitsParams} from "@/api/inventory";
 export default {
-  name: 'success',
-  data() {
-    return {
-      fromValue: {},
-      home: home,
-    };
+  name: "success",
+  data(){
+    return{
+      fromValue:{},
+      home:home,
+    }
   },
   created() {
-    this.addstoreRegister();
+    this.addstoreRegister()
   },
   watch: {
     $route(to, from) {
-      if (to.path == '/success') {
-        this.addstoreRegister();
+      if (to.path == "/success") {
+        this.addstoreRegister()
       }
-    },
+    }
   },
   methods: {
     addstoreRegister() {
-      getVisitsParams({ storeCode: this.$route.query.storeCode }).then((res) => {
-        this.fromValue = res.data;
-      });
+      getVisitsParams({storeCode: this.$route.query.storeCode}).then(res => {
+        this.fromValue = res.data
+      })
     },
     goback() {
-      window.location.replace(window.location.origin + this.locationOrigin + '/');
+      window.location.replace(window.location.origin + "/mobile/")
     },
     visite() {
       if (this.fromValue != undefined) {
         if (this.fromValue.url != undefined) {
-          window.location.replace(
-            window.location.origin + this.locationOrigin + this.fromValue.url,
-          );
+          window.location.replace(window.location.origin + "/mobile" + this.fromValue.url)
         } else {
-          this.$dialog
-            .alert({
-              message: '拜访地址有误,请联系管理员!',
-            })
-            .then(() => {});
+          this.$dialog.alert({
+            message: "拜访地址有误,请联系管理员!",
+          }).then(() => {
+          });
         }
       } else {
-        this.$dialog
-          .alert({
-            message: '拜访地址有误,请联系管理员!',
-          })
-          .then(() => {});
+        this.$dialog.alert({
+          message: "拜访地址有误,请联系管理员!",
+        }).then(() => {
+        });
       }
-    },
-  },
-};
+    }
+  }
+}
 </script>

+ 4 - 6
src/views/deviceOutside/outabnormalVisit.vue

@@ -155,9 +155,7 @@ export default {
                   message: '拜访中任务结束成功!',
                 })
                 .then(() => {
-                  window.location.replace(
-                    window.location.origin + this.locationOrigin + '/outsidelist/index',
-                  );
+                  window.location.replace(window.location.origin + '/mobile/outsidelist/index');
                 });
             } else {
               this.$toast(res.msg);
@@ -168,7 +166,7 @@ export default {
     formatter(value) {
       return value.replace(
         /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
-        '',
+        ''
       );
     },
     getPhotoTypeList() {
@@ -265,7 +263,7 @@ export default {
               that.$toast(res.msg);
             }
           });
-        },
+        }
       );
     },
     endVisitsFn() {
@@ -302,7 +300,7 @@ export default {
                 //   window.location.replace(window.location.origin + "/mobile/topStore?info=y")
                 // }else{
                 window.location.replace(
-                  window.location.origin + this.locationOrigin + '/outsidelist/index?info=y',
+                  window.location.origin + '/mobile/outsidelist/index?info=y'
                 );
                 // }
               });

+ 2 - 2
src/views/deviceOutside/suishenbangOutstoreVisit.vue

@@ -679,7 +679,7 @@ export default {
     onClickLeft() {
       localStorage.setItem('getRequestFlage', 'true');
       if (this.$route.query.urltype == 1) {
-        window.location.replace(window.location.origin + this.locationOrigin + '/home');
+        window.location.replace(window.location.origin + '/mobile/home');
       } else {
         this.$router.go(-1);
       }
@@ -752,7 +752,7 @@ export default {
             //   window.location.replace(window.location.origin + '/mobile/topStore?info=y');
             // } else {
             if (this.$route.query.urltype == 1) {
-              window.location.replace(window.location.origin + this.locationOrigin + '/home');
+              window.location.replace(window.location.origin + '/mobile/home');
             } else {
               this.onClickLeft();
               // window.location.replace(

+ 184 - 253
src/views/deviceWithin/abnormalVisit.vue

@@ -3,7 +3,7 @@
     <!--        顶部条-->
     <van-nav-bar class="navBar" title="异常拜访" left-arrow @click-left="onClickLeft">
       <template #right>
-        <span @click="onstopVisit" class="navRightBtnTop">取消拜访</span>
+        <span  @click="onstopVisit" class="navRightBtnTop">取消拜访</span>
       </template>
     </van-nav-bar>
     <!--        主体内容-->
@@ -12,58 +12,42 @@
       <van-form class="bgWhite">
         <div class="formLabel">
           <van-cell>
-            <template #title> <span class="van-f-red">*</span>异常信息照 </template>
+            <template #title>
+              <span class="van-f-red">*</span>异常信息照
+            </template>
             <template #right-icon>
-              <upload-img
-                :uploadid="uploadid2"
-                :imgArr="imgs"
-                @newimgarr="newimgarr1"
-                :visitModel="visitModel"
-                :visitsId="visitId"
-                :taskId="rdId"></upload-img>
+              <upload-img :uploadid="uploadid2" :imgArr="imgs" @newimgarr="newimgarr1"
+                          :visitModel="visitModel" :visitsId="visitId" :taskId="rdId"></upload-img>
             </template>
           </van-cell>
-          <div style="padding: 10px 10px 0" v-if="imgs.length > 0">
+          <div style="padding:10px 10px 0;" v-if="imgs.length>0">
             <delete-upload-img :imgs="imgs" @delimg="newimgarr1"></delete-upload-img>
           </div>
         </div>
         <div class="formLabel">
           <van-cell>
-            <template #title> <span class="van-f-red">*</span>异常事由 </template>
+            <template #title>
+              <span class="van-f-red">*</span>异常事由
+            </template>
           </van-cell>
           <van-radio-group v-model="abnormalReason" class="z-checkbox">
-            <van-radio :name="item.dictValue" v-for="(item, index) in typeList" :key="index">{{
-              item.dictLabel
-            }}</van-radio>
+            <van-radio :name="item.dictValue" v-for="(item,index) in typeList" :key="index">{{item.dictLabel }}</van-radio>
           </van-radio-group>
         </div>
-        <div class="formLabel" style="padding-bottom: 20px">
+        <div class="formLabel" style="padding-bottom: 20px;">
           <van-cell>
             <van-cell>
-              <template #title> <span class="van-f-red">*</span>信息备注 </template>
+              <template #title>
+                <span class="van-f-red">*</span>信息备注
+              </template>
             </van-cell>
           </van-cell>
-          <van-field
-            v-model="remark"
-            rows="3"
-            autosize
-            maxlength="260"
-            show-word-limit
-            label=""
-            :formatter="formatter"
-            type="textarea"
-            placeholder="请填写信息异常信息" />
+          <van-field v-model="remark" rows="3"  autosize maxlength="260" show-word-limit label=""
+                     :formatter="formatter" type="textarea" placeholder="请填写信息异常信息"/>
         </div>
       </van-form>
-      <div class="formLabel" style="margin: 20px 16px">
-        <van-button
-          block
-          type="info"
-          size="normal"
-          style="background-color: #0057ba"
-          @click="endVisitsFn"
-          >提交</van-button
-        >
+      <div class="formLabel" style="margin:20px 16px;">
+        <van-button block type="info" size="normal" style="background-color: #0057ba;" @click="endVisitsFn">提交</van-button>
       </div>
     </div>
     <div id="allmap"></div>
@@ -72,13 +56,13 @@
 
 <script>
 // import uploadImg from "@/components/uploadImg";
-import uploadImg from '@/components/uploadVvisit';
-import deleteUploadImg from '@/components/deleteUploadImg1';
-import { addVisits, getVisitsDetail, endVisits, getPhotoTypeList1, stopVisit } from '@/api/index';
+import uploadImg from "@/components/uploadVvisit";
+import deleteUploadImg from "@/components/deleteUploadImg1";
+import {addVisits, getVisitsDetail, endVisits, getPhotoTypeList1, stopVisit} from "@/api/index";
 
 export default {
-  name: 'abnormalVisit',
-  components: { uploadImg, deleteUploadImg },
+  name: "abnormalVisit",
+  components: {uploadImg, deleteUploadImg},
   data() {
     return {
       flag: false,
@@ -86,118 +70,109 @@ export default {
       checkboxGroup: [],
       PhotoTypeList: [],
       radio: '',
-      typeList: '',
+      typeList: "",
       imgs: [],
-      abnormalReason: '',
+      abnormalReason: "",
       uploadid2: 'uploadid2',
-      remark: '',
-      lat: '',
-      lon: '',
-      storeCode: '',
+      remark: "",
+      lat: "",
+      lon: "",
+      storeCode: "",
       dialogms: true,
-      visitModel: '',
-    };
+      visitModel: ""
+    }
   },
   created() {
-    this.getPhotoTypeList();
-    this.urlParameter = this.$route.query;
-    this.storeId = this.$route.query.storeId + '';
+    this.getPhotoTypeList()
+    this.urlParameter = this.$route.query
+    this.storeId = this.$route.query.storeId + "";
     this.visitId = this.$route.query.visitId;
-    this.rdId = this.$route.query.rdId + '';
+    this.rdId = this.$route.query.rdId + "";
     this.storeCode = this.$route.query.storeCode;
-    this.lat = this.$route.query.lat + '';
-    this.lon = this.$route.query.lon + '';
-    this.visitModel = this.$route.query.visitModel + '';
-    this.imgs = [];
-    this.remark = '';
-    this.abnormalReason = '';
+    this.lat = this.$route.query.lat + "";
+    this.lon = this.$route.query.lon + "";
+    this.visitModel = this.$route.query.visitModel + "";
+    this.imgs = []
+    this.remark = ""
+    this.abnormalReason = ""
   },
   watch: {
     $route(to, from) {
-      if (from.path == '/deviceWithin/index' && to.path == '/abnormalVisit') {
-        this.urlParameter = this.$route.query;
-        this.storeId = this.$route.query.storeId + '';
+      if (from.path == "/deviceWithin/index" && to.path == "/abnormalVisit") {
+        this.urlParameter = this.$route.query
+        this.storeId = this.$route.query.storeId + "";
         this.visitId = this.$route.query.visitId;
-        this.rdId = this.$route.query.rdId + '';
+        this.rdId = this.$route.query.rdId + "";
         this.storeCode = this.$route.query.storeCode;
-        this.lat = this.$route.query.lat + '';
-        this.lon = this.$route.query.lon + '';
-        this.visitModel = this.$route.query.visitModel + '';
-        this.imgs = [];
-        this.remark = '';
-        this.abnormalReason = '';
+        this.lat = this.$route.query.lat + "";
+        this.lon = this.$route.query.lon + "";
+        this.visitModel = this.$route.query.visitModel + "";
+        this.imgs = []
+        this.remark = ""
+        this.abnormalReason = ""
       }
-      if (from.path == '/abnormalVisit' && to.path == '/deviceWithin/index') {
-        localStorage.removeItem('visitId');
+      if (from.path == "/abnormalVisit" && to.path == "/deviceWithin/index") {
+        localStorage.removeItem("visitId")
       }
-    },
+    }
   },
   activated() {
     this.imgs = [];
-    this.remark = '';
-    this.abnormalReason = '';
-    this.visitModel = this.$route.query.visitModel + '';
-    if (this.$route.query.type == 'edit') {
-      this.visitId = this.$route.query.visitId + '';
-      localStorage.setItem('visitId', this.$route.query.visitId);
-      this.getVisitsDetailFn();
-    } else {
-      this.addVisits();
+    this.remark = "";
+    this.abnormalReason = "";
+    this.visitModel = this.$route.query.visitModel + "";
+    if(this.$route.query.type=="edit"){
+      this.visitId = this.$route.query.visitId + "";
+      localStorage.setItem("visitId",this.$route.query.visitId);
+      this.getVisitsDetailFn()
+    }else{
+      this.addVisits()
     }
   },
   methods: {
     // 结束拜访
-    onstopVisit() {
-      this.$dialog
-        .confirm({
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          title: '系统提示',
-          message: '取消拜访会清空填写的拜访内容和照片,是否确认?',
+    onstopVisit(){
+      this.$dialog.confirm({
+        confirmButtonText:"确定",
+        cancelButtonText:"取消",
+        title: '系统提示',
+        message: '取消拜访会清空填写的拜访内容和照片,是否确认?',
+      }).then(() => {
+        stopVisit({visitsId:this.visitId}).then(res=>{
+          if(res.code==200){
+            this.$dialog.alert({
+              title: '系统提示',
+              message: '拜访中任务结束成功!',
+            }).then(() => {
+              window.location.replace(window.location.origin+"/mobile/deviceWithin/index")
+            });
+          }else{
+            this.$toast(res.msg)
+          }
         })
-        .then(() => {
-          stopVisit({ visitsId: this.visitId }).then((res) => {
-            if (res.code == 200) {
-              this.$dialog
-                .alert({
-                  title: '系统提示',
-                  message: '拜访中任务结束成功!',
-                })
-                .then(() => {
-                  window.location.replace(
-                    window.location.origin + this.locationOrigin + '/deviceWithin/index',
-                  );
-                });
-            } else {
-              this.$toast(res.msg);
-            }
-          });
-        });
+      })
     },
     formatter(value) {
-      return value.replace(
-        /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
-        '',
-      );
+      return value.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi, '');
     },
     getVisitsDetailFn() {
-      getVisitsDetail({ visitsId: this.$route.query.visitId }).then((res) => {
+      getVisitsDetail({visitsId: this.$route.query.visitId}).then(res => {
         if (res.code == 200) {
-          this.list = res.data;
-          this.abnormalReason = res.data.abnormalReason + '';
-          this.remark = res.data.remark;
+          this.list = res.data
+          this.abnormalReason=res.data.abnormalReason+""
+          this.remark=res.data.remark
           if (res.data.visitSource == 2) {
-            this.imgs = res.data.sysFileInfos;
+            this.imgs = res.data.sysFileInfos
           }
-        } else {
-          this.$toast(res.msg);
+        }else{
+          this.$toast(res.msg)
         }
-      });
+      })
     },
     getPhotoTypeList() {
-      getPhotoTypeList1({}).then((res) => {
-        this.typeList = res.data;
-      });
+      getPhotoTypeList1({}).then(res => {
+        this.typeList = res.data
+      })
     },
     newimgarr1(val) {
       this.imgs.push(val);
@@ -207,188 +182,144 @@ export default {
     },
     addVisits() {
       var that = this;
-      var map = new TMap.Map('allmap', {
-        zoom: 14,
-        center: new TMap.LatLng(39.986785, 116.301012),
-      });
+      var map = new TMap.Map('allmap', {zoom: 14, center: new TMap.LatLng(39.986785, 116.301012),});
       var geocoder = new TMap.service.Geocoder();
-      var markers = new TMap.MultiMarker({ map: map, geometries: [] });
+      var markers = new TMap.MultiMarker({map: map, geometries: [],});
       markers.setGeometries([]);
       var input = [that.urlParameter.marklat, that.urlParameter.marklon];
       var location = new TMap.LatLng(Number(input[0]), Number(input[1]));
       map.setCenter(location);
-      markers.updateGeometries([{ id: 'main', position: location }]);
-      geocoder.getAddress({ location: location }).then(
-        function (result) {
-          var addresses = result.result.formatted_addresses;
+      markers.updateGeometries([{id: 'main', position: location,},]);
+      geocoder.getAddress({ location: location }).then(function(result){
+            var addresses=result.result.formatted_addresses
           var params = {
             storeId: that.storeId,
             storeCode: that.storeCode,
-            visitSource: '2',
-            visitEntry: '0',
+            visitSource: "2",
+            visitEntry: "0",
             lat: that.urlParameter.lat,
             lon: that.urlParameter.lon,
             visitModel: that.$route.query.visitModel,
             routeDetailsId: that.rdId,
-            locationCity: '',
-            locationRemark: addresses.recommend,
-            locationAccuracy: that.urlParameter.PointSum,
-          };
-          localStorage.setItem('address', '');
-          if (that.visitId != null) {
-            params.id = that.visitId;
+            locationCity: "",
+            locationRemark:  addresses.recommend,
+            locationAccuracy: that.urlParameter.PointSum
           }
-          addVisits(params).then((res) => {
-            if (res.code == 200) {
-              localStorage.setItem('visitId', res.data);
-              that.visitId = res.data;
-            } else {
-              this.$toast(res.msg);
-            }
-          });
-        },
-        function (err) {
-          var params = {
-            storeId: that.storeId,
-            storeCode: that.storeCode,
-            visitSource: '2',
-            visitEntry: '0',
-            lat: that.urlParameter.lat,
-            lon: that.urlParameter.lon,
-            visitModel: that.$route.query.visitModel,
-            routeDetailsId: that.rdId,
-            locationCity: '',
-            locationRemark: '',
-            locationAccuracy: that.urlParameter.PointSum,
-          };
-          localStorage.setItem('address', '');
+         localStorage.setItem('address', "");
           if (that.visitId != null) {
-            params.id = that.visitId;
+            params.id = that.visitId
           }
-          addVisits(params).then((res) => {
+          addVisits(params).then(res => {
             if (res.code == 200) {
               localStorage.setItem('visitId', res.data);
-              that.visitId = res.data;
-            } else {
-              this.$toast(res.msg);
+              that.visitId = res.data
+            }else{
+              this.$toast(res.msg)
             }
-          });
-        },
-      );
+          })
+      },function(err){
+        var params = {
+          storeId: that.storeId,
+          storeCode: that.storeCode,
+          visitSource: "2",
+          visitEntry: "0",
+          lat: that.urlParameter.lat,
+          lon: that.urlParameter.lon,
+          visitModel: that.$route.query.visitModel,
+          routeDetailsId: that.rdId,
+          locationCity: "",
+          locationRemark:"",
+          locationAccuracy: that.urlParameter.PointSum
+        }
+        localStorage.setItem('address', "");
+        if (that.visitId != null) {
+          params.id = that.visitId
+        }
+        addVisits(params).then(res => {
+          if (res.code == 200) {
+            localStorage.setItem('visitId', res.data);
+            that.visitId = res.data
+          }else{
+            this.$toast(res.msg)
+          }
+        })
+      })
     },
     endVisitsFn() {
-      var insert = '';
-      if (this.$route.query.type == 'edit') {
-        insert = false;
-      } else {
-        insert = true;
+      var insert=""
+      if(this.$route.query.type=="edit"){
+        insert=false
+      }else{
+        insert=true
       }
       if (this.imgs.length == 0) {
-        this.$toast('请上传图片');
+        this.$toast("请上传图片");
         return;
-      } else if (this.abnormalReason == '') {
-        this.$toast('请选择事由');
+      } else if (this.abnormalReason == "") {
+        this.$toast("请选择事由");
         return;
-      } else if (this.remark.trim() == '') {
-        this.$toast('请填写异常内容');
+      } else if (this.remark.trim() == "") {
+        this.$toast("请填写异常内容");
         return;
       } else {
-        let dwellTime = this.weekend(localStorage.getItem('startTime'), new Date());
+        let dwellTime = this.weekend(localStorage.getItem('startTime'), new Date())
         endVisits({
-          visitSource: '2',
+          visitSource: "2",
           dwellTime: dwellTime,
           remark: this.remark,
-          visitType: '0',
-          insert: insert,
+          visitType: "0",
+          insert:insert,
           abnormalReason: this.abnormalReason,
           id: this.visitId,
           storeCode: this.storeCode,
-          visitModel: this.$route.query.visitModel,
-        }).then((res) => {
+          visitModel: this.$route.query.visitModel
+        }).then(res => {
           if (res.code == 200) {
-            this.$dialog
-              .alert({
-                title: '系统提示',
-                message: '保存成功',
-              })
-              .then(() => {
-                if (insert) {
-                  window.location.replace(
-                    window.location.origin + this.locationOrigin + '/deviceWithin/index',
-                  );
-                } else {
-                  this.$router.go(-1);
-                }
-              });
-            localStorage.removeItem('visitId');
+            this.$dialog.alert({
+              title: '系统提示',
+              message: '保存成功',
+            }).then(() => {
+              if(insert){
+                window.location.replace(window.location.origin+"/mobile/deviceWithin/index")
+
+              }else{
+                this.$router.go(-1)
+              }
+            });
+            localStorage.removeItem("visitId")
             localStorage.removeItem('startTime');
           } else {
             this.$toast.fail(res.msg);
           }
-        });
+        })
       }
     },
     weekend(time1) {
       var arrtime1 = new Date(time1).getTime();
       var arrtime2 = new Date().getTime();
-      return Math.round((arrtime2 - arrtime1) / 1000);
+      return (Math.round((arrtime2 - arrtime1) / 1000));
     },
-  },
-};
+  }
+}
 </script>
 <style lang="scss" scoped>
-.container {
-  padding-bottom: 50px;
-}
-.van-f-red {
-  color: red;
-  width: 4px;
-  display: inline-block;
-}
-.formLabel {
-  margin: 0 16px;
-  border-bottom: 1px solid #f1f1f1;
-}
-.formLabel .van-cell {
-  padding: 10px 0;
-}
-.z-checkbox .van-radio {
-  padding: 6px 0;
-}
+.container {padding-bottom: 50px;}
+.van-f-red {color: red;width: 4px;display: inline-block}
+.formLabel {margin: 0 16px;border-bottom: 1px solid #f1f1f1}
+.formLabel .van-cell {padding: 10px 0}
+.z-checkbox .van-radio {padding: 6px 0;}
 </style>
 <style>
-.bgWhite {
-  background-color: white;
-}
-.formLabel .van-field {
-  border: 1px solid #f1f1f1;
-  padding: 10px;
-  width: 100%;
-  background-color: #f1f1f1;
-}
-.formLabel .van-field__control {
-  padding: 0 10px;
-}
-.lineGrey {
-  height: 10px;
-  width: 100%;
-  background: #f1f1f1;
-}
-.van-dialog__confirm,
-.van-dialog__confirm:active {
-  color: #0057ba;
-}
-.navRightBtnTop {
-  color: white;
-  background: #74a4d9;
-  display: block;
-  padding: 6px 10px;
-  border-radius: 6px;
-}
-#allmap {
+.bgWhite {background-color: white;}
+.formLabel .van-field {border: 1px solid #f1f1f1;padding: 10px;width: 100%;background-color: #f1f1f1;}
+.formLabel .van-field__control {padding: 0 10px}
+.lineGrey {height: 10px;width: 100%;background: #f1f1f1;}
+.van-dialog__confirm, .van-dialog__confirm:active {color: #0057ba;}
+.navRightBtnTop{color: white; background: #74a4d9; display: block; padding: 6px 10px; border-radius: 6px;}
+#allmap{
   width: 20px;
   height: 20px;
   left: -1000px;
   position: relative;
 }
-</style>
+</style>

+ 1 - 9
src/views/deviceWithin/addStoreVisit.vue

@@ -3662,12 +3662,7 @@
       </van-form>
     </div>
     <br />
-    <van-dialog
-      v-model="show"
-      :show-confirm-button="false"
-      show-cancel-button
-      title="上传图片"
-      className="uploadDialog">
+    <van-dialog v-model="show" :show-confirm-button="false" show-cancel-button title="上传图片">
       <van-field
         v-if="indexselect == '1'"
         :value="PhotoTypeText"
@@ -6681,8 +6676,5 @@ export default {
     font-size: 12px;
     margin: 3px 0;
   }
-  .uploadDialog {
-    padding: 20px 0;
-  }
 }
 </style>

+ 8 - 16
src/views/deviceWithin/addStoreVisitd.vue

@@ -614,12 +614,7 @@
       </van-form>
     </div>
     <br />
-    <van-dialog
-      v-model="show"
-      :show-confirm-button="false"
-      show-cancel-button
-      title="上传图片"
-      className="uploadDialog">
+    <van-dialog v-model="show" :show-confirm-button="false" show-cancel-button title="上传图片">
       <van-field
         v-if="indexselect == '1'"
         :value="PhotoTypeText"
@@ -915,7 +910,7 @@ export default {
     formatter(value) {
       return value.replace(
         /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
-        '',
+        ''
       );
     },
     editDwellTimes() {
@@ -946,8 +941,8 @@ export default {
             /\.\d{2,}$/,
             this.collectionItemList[index].answerValue.substr(
               this.collectionItemList[index].answerValue.indexOf('.'),
-              3,
-            ),
+              3
+            )
           );
         }
       } else {
@@ -958,8 +953,8 @@ export default {
             /\.\d{2,}$/,
             this.collectionItemList[index].answerValue.substr(
               this.collectionItemList[index].answerValue.indexOf('.'),
-              3,
-            ),
+              3
+            )
           );
         }
       }
@@ -1043,7 +1038,7 @@ export default {
               for (var qq = 0; qq < collectionItemLists[q].collectionOptionList.length; qq++) {
                 if (collectionItemLists[q].collectionOptionList[qq].isCheck == 1) {
                   collectionItemLists[q].answerValue.push(
-                    collectionItemLists[q].collectionOptionList[qq].collectionOptionId,
+                    collectionItemLists[q].collectionOptionList[qq].collectionOptionId
                   );
                   collectionItemLists[q].collectionOptionList[qq].code =
                     collectionItemLists[q].collectionCode;
@@ -1105,7 +1100,7 @@ export default {
                             listchild[qq1].secondCollectionId;
                           if (listchild[qq1].collectionOptionList[qq2].isCheck == 1) {
                             listchild[qq1].answerValue.push(
-                              listchild[qq1].collectionOptionList[qq2].collectionOptionId,
+                              listchild[qq1].collectionOptionList[qq2].collectionOptionId
                             );
                             // this.collectionAnswerlisd.push(listchild[qq1].collectionOptionList[qq2]);
                           }
@@ -1979,7 +1974,4 @@ export default {
 .formLabel .mobile-input {
   border: 0 !important;
 }
-.uploadDialog {
-  padding: 20px 0;
-}
 </style>

+ 5 - 9
src/views/deviceWithin/storeVisit.vue

@@ -356,9 +356,7 @@ export default {
                   message: '拜访中任务结束成功!',
                 })
                 .then(() => {
-                  window.location.replace(
-                    window.location.origin + this.locationOrigin + '/deviceWithin/index',
-                  );
+                  window.location.replace(window.location.origin + '/mobile/deviceWithin/index');
                 });
             } else {
               this.$toast(res.msg);
@@ -853,7 +851,7 @@ export default {
     onClickLeft() {
       localStorage.setItem('getRequestFlage', 'true');
       if (this.$route.query.urltype == 2) {
-        window.location.replace(window.location.origin + this.locationOrigin + '/home');
+        window.location.replace(window.location.origin + '/mobile/home');
       } else {
         this.$router.go(-1);
       }
@@ -920,7 +918,7 @@ export default {
             if (res.code == 200) {
               this.editDwellTimes();
               if (this.$route.query.urltype == 2) {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               } else {
                 this.$router.go(-1);
                 // window.location.replace(window.location.origin + '/mobile/deviceWithin/index');
@@ -947,11 +945,9 @@ export default {
             loading1.clear();
             if (res.code == 200) {
               if (this.$route.query.urltype == 2) {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               } else {
-                window.location.replace(
-                  window.location.origin + this.locationOrigin + '/historAllVisit',
-                );
+                window.location.replace(window.location.origin + '/mobile/historAllVisit');
               }
             } else {
               this.$toast({

+ 12 - 25
src/views/deviceWithin/taskPhotoTaking.vue

@@ -76,28 +76,14 @@
             <div class="itemHtml" v-html="item.displayInstructions"></div>
           </div>
           <div class="itemBottom" v-if="insert == 'false'">
-            <van-button
-              round
-              type="primary"
-              @click="openDialog(item)"
-              v-if="item.taskPhotoConditionPassed == 1"
-              >通过</van-button
-            >
-            <van-button
-              round
-              type="danger"
-              @click="openDialog(item)"
-              v-if="item.taskPhotoConditionPassed == 0"
-              >不通过</van-button
-            >
-            <!-- <img
+            <img
               v-if="item.taskPhotoConditionPassed == 1"
               @click="openDialog(item)"
               :src="require('@/assets/taskPhotoSu.png')" />
             <img
               v-if="item.taskPhotoConditionPassed == 0"
               @click="openDialog(item)"
-              :src="require('@/assets/taskPhotoErr.png')" /> -->
+              :src="require('@/assets/taskPhotoErr.png')" />
           </div>
         </div>
       </div>
@@ -175,7 +161,6 @@ export default {
       mediaIds: [],
       mediaInfos: [],
       editFlag: true,
-      mediaInfos: [],
     };
   },
   activated() {
@@ -318,7 +303,7 @@ export default {
         storeGroupId: this.$route.query.storeGroupId,
         visitsId: this.visitsId,
         taskList: this.taskIds.split(',').map((val) => Number(val)),
-        insert: this.insert,
+        insert: true,
         collectionAnswers: [],
         checkUnManage: 'N',
         deviceCode: '',
@@ -484,7 +469,7 @@ export default {
       }
       .itemBottom {
         align-items: center;
-        width: 60px;
+        width: 35px;
         margin-left: 5px;
         img {
           width: 100%;
@@ -502,12 +487,14 @@ export default {
 }
 </style>
 <style lang="scss">
-.taskPhotoTaking {
-  .van-button--danger {
-    background-color: #ee0a24 !important;
-    border: 1px solid #ee0a24 !important;
-  }
-}
+// .taskPhotoTaking {
+//   .itenHtml {
+//     overflow: hidden;
+//     img {
+//       width: 100%;
+//     }
+//   }
+// }
 .identifyResultdialog {
   width: vw(690) !important;
   margin-top: 1vh !important;

+ 161 - 428
src/views/historicalVisit/perfectStore.vue

@@ -1,289 +1,190 @@
 <template>
-  <div class="perfectStore ceshi">
+  <div class="perfectStore">
     <!--        顶部条-->
     <van-nav-bar class="navBar" title="AI完美门店报告" left-arrow @click-left="onClickLeft">
-      <template #right v-if="list">
-        <template v-if="list.wanmeiStore">
-          <span
-            style="
-              color: white;
-              background: #74a4d9;
-              display: block;
-              padding: 6px 10px;
-              border-radius: 6px;
-            "
-            @click="editorFn"
-            v-if="!remarkShow && sameDay"
-            >编辑
-          </span>
-        </template>
-        <template v-else>
-          <!-- 新的生成中动画组件 -->
-          <div class="ai-generating">
-            <!-- AI 星星图标 -->
-            <div class="ai-icon">
-              <svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
-                <defs>
-                  <linearGradient id="starGrad" x1="0%" y1="0%" x2="100%" y2="100%">
-                    <stop offset="0%" stop-color="#6366f1" />
-                    <stop offset="100%" stop-color="#a855f7" />
-                  </linearGradient>
-                </defs>
-                <!-- 大星星 -->
-                <path
-                  d="M10 2 L11.2 7.8 L17 9 L11.2 10.2 L10 16 L8.8 10.2 L3 9 L8.8 7.8 Z"
-                  fill="url(#starGrad)"
-                  style="
-                    animation: starPulse 1.8s ease-in-out infinite;
-                    transform-origin: 10px 9px;
-                  ">
-                  <animateTransform
-                    attributeName="transform"
-                    type="scale"
-                    values="1;1.12;1"
-                    dur="1.8s"
-                    repeatCount="indefinite"
-                    additive="sum"
-                    calcMode="ease" />
-                </path>
-                <!-- 小星星 -->
-                <circle cx="15.5" cy="4.5" r="1.5" fill="#a855f7" opacity="0.7">
-                  <animate
-                    attributeName="opacity"
-                    values="0.4;1;0.4"
-                    dur="1.4s"
-                    repeatCount="indefinite" />
-                  <animate
-                    attributeName="r"
-                    values="1.2;1.8;1.2"
-                    dur="1.4s"
-                    repeatCount="indefinite" />
-                </circle>
-                <!-- 微星 -->
-                <circle cx="4.5" cy="14.5" r="1" fill="#6366f1" opacity="0.5">
-                  <animate
-                    attributeName="opacity"
-                    values="0.3;0.9;0.3"
-                    dur="1.8s"
-                    begin="0.5s"
-                    repeatCount="indefinite" />
-                  <animate
-                    attributeName="r"
-                    values="0.8;1.4;0.8"
-                    dur="1.8s"
-                    begin="0.5s"
-                    repeatCount="indefinite" />
-                </circle>
-              </svg>
-            </div>
-
-            <!-- 三个跳动点 -->
-            <div class="dots-container">
-              <div class="dot"></div>
-              <div class="dot"></div>
-              <div class="dot"></div>
-            </div>
-
-            <!-- 渐变文字 -->
-            <span class="gen-text">生成中</span>
-          </div>
-          <!-- <span style="font-size: 18px; color: #1989fa; display: flex; align-items: center"
-            ><img width="35px" :src="require('@/assets/wanmeiStoreImg.gif')" />生成中</span
-          > -->
-        </template>
+      <template #right>
+        <span
+          style="
+            color: white;
+            background: #74a4d9;
+            display: block;
+            padding: 6px 10px;
+            border-radius: 6px;
+          "
+          @click="editorFn"
+          v-if="!remarkShow && sameDay"
+          >编辑</span
+        >
       </template>
     </van-nav-bar>
     <!--        主体内容-->
     <div class="container" v-if="list">
-      <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
-        <div class="lineGrey"></div>
-        <div class="card mt10">
-          <div class="title">
-            {{ list.storeName }}(<span style="color: #1989fa">{{ list.storeCode }}</span
-            >)
-          </div>
-          <div class="subtitle">地址:{{ list.addressLine }}</div>
-          <div class="subtitle">拜访人:{{ list.nickName }}</div>
-          <div class="subtitle">拜访日期:{{ list.startTime }}~{{ list.stopTime }}</div>
-          <div class="subtitle" v-if="list.dwellTime">拜访时长:{{ list.dwellTime }}</div>
-          <!-- 分销店 -->
-          <template
-            v-if="
-              verifyStoreType(list.storeCategory) &&
-              verifyStoreType(list.storeCategory).type == 'fxd'
-            ">
-            <div class="subtitle" style="display: flex">
-              <div class="label" style="width: 75px">经销商:</div>
-              <div class="valuue TCFXList">
-                <div
-                  class="sfaStoreChainsContactList"
-                  v-for="(item, index) in list.sfaStoreChainsContactList"
-                  :key="index">
-                  {{ item.categoryDescribe }}
-                  {{ item.chainCode }}
-                  {{ item.chainName }}
-                </div>
+      <div class="lineGrey"></div>
+      <div class="card mt10">
+        <div class="title">
+          {{ list.storeName }}(<span style="color: #1989fa">{{ list.storeCode }}</span
+          >)
+        </div>
+        <div class="subtitle">地址:{{ list.addressLine }}</div>
+        <div class="subtitle">拜访人:{{ list.nickName }}</div>
+        <div class="subtitle">拜访日期:{{ list.startTime }}~{{ list.stopTime }}</div>
+        <div class="subtitle" v-if="list.dwellTime">拜访时长:{{ list.dwellTime }}</div>
+        <!-- 分销店 -->
+        <template
+          v-if="
+            verifyStoreType(list.storeCategory) && verifyStoreType(list.storeCategory).type == 'fxd'
+          ">
+          <div class="subtitle" style="display: flex">
+            <div class="label" style="width: 75px">经销商:</div>
+            <div class="valuue TCFXList">
+              <div
+                class="sfaStoreChainsContactList"
+                v-for="(item, index) in list.sfaStoreChainsContactList"
+                :key="index">
+                {{ item.categoryDescribe }}
+                {{ item.chainCode }}
+                {{ item.chainName }}
               </div>
             </div>
-          </template>
-          <template v-else>
-            <div class="subtitle">经销商:{{ list.chainName }}</div>
-          </template>
-          <div class="subtitle" v-if="updateTimeShow">更新时间:{{ list.updateTime }}</div>
-        </div>
-        <!-- 特殊任务展示 -->
-        <!-- 店招 -->
-        <div class="shopSign specialTask" v-if="shopSignDetail && shopSignDetail.qualifiedState">
-          <div class="specialTaskLeft" @click="openPerfectStoreSign(shopSignDetail)">
-            <div class="SignText">AI 店招识别</div>
-            <div class="signContent">
-              <div class="" style="display: flex">
-                <template v-if="shopSignDetail.qualifiedState != null">
-                  <van-button round type="primary" v-if="shopSignDetail.qualifiedState == '1'"
-                    >通过</van-button
-                  >
-                  <van-button round type="danger" v-else-if="shopSignDetail.qualifiedState == '0'"
-                    >不通过</van-button
-                  >
-                  <div class="jiantou">
-                    <van-icon name="arrow" />
-                  </div>
-                </template>
-                <template v-else>
-                  <span class="AISpan">AI识别中</span>
-                </template>
+          </div>
+        </template>
+        <template v-else>
+          <div class="subtitle">经销商:{{ list.chainName }}</div>
+        </template>
+        <div class="subtitle" v-if="updateTimeShow">更新时间:{{ list.updateTime }}</div>
+      </div>
+      <!-- 特殊任务展示 -->
+      <!-- 店招 -->
+      <div class="shopSign specialTask" v-if="shopSignDetail && shopSignDetail.qualifiedState">
+        <div class="specialTaskLeft" @click="openPerfectStoreSign(shopSignDetail)">
+          <div class="SignText">AI 店招识别</div>
+          <div class="signContent">
+            <div class="" style="display: flex">
+              <van-button round type="primary" v-if="shopSignDetail.qualifiedState == '1'"
+                >通过</van-button
+              >
+              <van-button round type="danger" v-if="shopSignDetail.qualifiedState == '0'"
+                >不通过</van-button
+              >
+              <div class="jiantou">
+                <van-icon name="arrow" />
               </div>
             </div>
           </div>
         </div>
-        <!-- 调色机 -->
-        <div class="TSJBox specialTask" v-if="tiaoSJDetail">
-          <div class="specialTaskLeft" @click="openPerfectStoreTSJ(tiaoSJDetail)">
-            <div class="SignText">AI 调色机识别</div>
-            <div class="signContent">
-              <div class="" style="display: flex">
-                <template v-if="tiaoSJDetail.qualifiedState != null">
-                  <van-button round type="primary" v-if="tiaoSJDetail.qualifiedState == '1'"
-                    >通过</van-button
-                  >
-                  <van-button round type="danger" v-if="tiaoSJDetail.qualifiedState == '0'"
-                    >不通过</van-button
-                  >
-                  <div class="jiantou">
-                    <van-icon name="arrow" />
-                  </div>
-                </template>
-                <template v-else>
-                  <span class="AISpan">AI识别中</span>
-                </template>
+      </div>
+      <!-- 调色机 -->
+      <div class="TSJBox specialTask" v-if="tiaoSJDetail">
+        <div class="specialTaskLeft" @click="openPerfectStoreTSJ(tiaoSJDetail)">
+          <div class="SignText">AI 调色机识别</div>
+          <div class="signContent">
+            <div class="" style="display: flex">
+              <van-button round type="primary" v-if="tiaoSJDetail.qualifiedState == '1'"
+                >通过</van-button
+              >
+              <van-button round type="danger" v-if="tiaoSJDetail.qualifiedState == '0'"
+                >不通过</van-button
+              >
+              <div class="jiantou">
+                <van-icon name="arrow" />
               </div>
             </div>
           </div>
         </div>
-        <!-- 陈列SKU个数: -->
-        <div class="TSJBox specialTask" v-if="list.isSku == '是'">
-          <div class="specialTaskLeft">
-            <div class="SignText">
-              AI SKU个数识别: <span v-if="list.skuNum">{{ list.skuNum }}个</span>
-            </div>
-            <div class="signContent" @click="toSkuRecognize">
-              <div class="" style="display: flex">
-                <template v-if="list.wanmeiStore">
-                  <span style="color: rgb(25, 137, 250)">查看详情</span>
-                  <div class="jiantou">
-                    <van-icon name="arrow" />
-                  </div>
-                </template>
-                <template v-else>
-                  <span class="AISpan">AI识别中</span>
-                </template>
+      </div>
+      <!-- 陈列SKU个数: -->
+      <div class="TSJBox specialTask" v-if="list.isSku == '是'">
+        <div class="specialTaskLeft">
+          <div class="SignText">
+            AI SKU个数识别: <span v-if="list.skuNum">{{ list.skuNum }}个</span>
+          </div>
+          <div class="signContent" @click="toSkuRecognize">
+            <div class="" style="display: flex">
+              <span style="color: rgb(25, 137, 250)">查看详情</span>
+              <div class="jiantou">
+                <van-icon name="arrow" />
               </div>
             </div>
           </div>
         </div>
-        <!-- 目前陈列任务 -->
-        <div class="TSJBox specialTask" v-if="taskTypeArr && taskTypeArr.length">
-          <div class="specialTaskLeft">
-            <div class="SignText">AI 陈列任务识别</div>
-          </div>
+      </div>
+      <!-- 目前陈列任务 -->
+      <div class="TSJBox specialTask" v-if="taskTypeArr && taskTypeArr.length">
+        <div class="specialTaskLeft">
+          <div class="SignText">AI 陈列任务识别</div>
         </div>
-        <div class="SKUBox" v-if="taskTypeArr && taskTypeArr.length">
-          <div class="SKUList">
-            <div
-              class="itemList"
-              v-for="(value, index) in taskTypeArr"
-              @click="historiStoreVisit(value)">
-              <div class="itemTitle">{{ convertToChinese(index + 1) }}、{{ value.taskName }}</div>
-              <div class="" style="display: flex">
-                <template v-if="value.taskPhotoConditionPassed != null">
-                  <van-button round type="primary" v-if="value.taskPhotoConditionPassed == 1"
-                    >通过</van-button
-                  >
-                  <van-button round type="danger" v-if="value.taskPhotoConditionPassed == 0"
-                    >不通过</van-button
-                  >
-                  <div class="jiantou">
-                    <van-icon name="arrow" />
-                  </div>
-                </template>
-                <template v-else>
-                  <span class="AISpan">AI识别中</span>
-                </template>
+      </div>
+      <div class="SKUBox" v-if="taskTypeArr && taskTypeArr.length">
+        <div class="SKUList">
+          <div
+            class="itemList"
+            v-for="(value, index) in taskTypeArr"
+            @click="historiStoreVisit(value)">
+            <div class="itemTitle">{{ convertToChinese(index + 1) }}、{{ value.taskName }}</div>
+            <div class="" style="display: flex">
+              <van-button round type="primary" v-if="value.taskPhotoConditionPassed == 1"
+                >通过</van-button
+              >
+              <van-button round type="danger" v-if="value.taskPhotoConditionPassed == 0"
+                >不通过</van-button
+              >
+              <div class="jiantou">
+                <van-icon name="arrow" />
               </div>
             </div>
           </div>
         </div>
+      </div>
 
-        <div style="padding: 15px 16px; font-size: 16px; font-weight: bold; background: #f5f5f5">
-          其他拜访任务
-        </div>
-        <div class="card" v-if="list.visitSource != 2">
-          <div
-            class="info"
-            style="
-              font-size: 14px;
-              display: flex;
-              align-items: center;
-              justify-content: space-between;
-              padding: 3px;
-            "
-            v-for="(item, index) in list.sfaTaskList"
-            :key="index"
-            v-if="
-              item.photoIdentifyType != '1' && item.photoIdentifyType != '3' && item.taskType != '5'
-            "
-            @click="historiStoreVisit(item, index)">
-            <p style="flex: 1; margin: 0">
-              {{ item.taskName }}
-            </p>
+      <div style="padding: 15px 16px; font-size: 16px; font-weight: bold; background: #f5f5f5">
+        其他拜访任务
+      </div>
+      <div class="card" v-if="list.visitSource != 2">
+        <div
+          class="info"
+          style="
+            font-size: 14px;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            padding: 3px;
+          "
+          v-for="(item, index) in list.sfaTaskList"
+          :key="index"
+          v-if="
+            item.photoIdentifyType != '1' && item.photoIdentifyType != '3' && item.taskType != '5'
+          "
+          @click="historiStoreVisit(item, index)">
+          <p style="flex: 1; margin: 0">
+            {{ item.taskName }}
+          </p>
 
-            <div class="taskPhotoConditionPassed" @click.stop>
-              <el-popover
-                :popper-class="item.taskPhotoConditionPassed == 1 ? 'zpoverSuccess' : 'zpover'"
-                placement="bottom"
-                width="120"
-                trigger="click"
-                :content="
-                  item.taskPhotoConditionPassed == 1
-                    ? '陈列奖励案拍照AI识别通过'
-                    : '陈列奖励案拍照AI识别不通过'
-                ">
-                <div class="taskPhotoConditionPassed" slot="reference">
-                  <img
-                    v-if="item.taskPhotoConditionPassed == 1"
-                    :src="require('@/assets/taskPhotoSu.png')" />
-                  <img
-                    v-if="item.taskPhotoConditionPassed == 0"
-                    :src="require('@/assets/taskPhotoErr.png')" />
-                </div>
-              </el-popover>
-            </div>
-            <p class="arrowdetils1">
-              <van-icon name="arrow" />
-            </p>
+          <div class="taskPhotoConditionPassed" @click.stop>
+            <el-popover
+              :popper-class="item.taskPhotoConditionPassed == 1 ? 'zpoverSuccess' : 'zpover'"
+              placement="bottom"
+              width="120"
+              trigger="click"
+              :content="
+                item.taskPhotoConditionPassed == 1
+                  ? '陈列奖励案拍照AI识别通过'
+                  : '陈列奖励案拍照AI识别不通过'
+              ">
+              <div class="taskPhotoConditionPassed" slot="reference">
+                <img
+                  v-if="item.taskPhotoConditionPassed == 1"
+                  :src="require('@/assets/taskPhotoSu.png')" />
+                <img
+                  v-if="item.taskPhotoConditionPassed == 0"
+                  :src="require('@/assets/taskPhotoErr.png')" />
+              </div>
+            </el-popover>
           </div>
+          <p class="arrowdetils1">
+            <van-icon name="arrow" />
+          </p>
         </div>
-      </van-pull-refresh>
+      </div>
     </div>
   </div>
 </template>
@@ -325,7 +226,6 @@ export default {
       shopSignDetail: null,
       tiaoSJDetail: null,
       taskTypeArr: null,
-      refreshing: false,
     };
   },
   activated() {
@@ -341,11 +241,6 @@ export default {
     this.getPhotoTypeList();
   },
   methods: {
-    onRefresh() {
-      this.refreshing = true;
-      this.toastLoading(0, '加载中...', true);
-      this.getVisitsDetailFn();
-    },
     resultCorrect(resultCorrect) {
       let data = this.AIResultOption.find((item) => item.dictValue == resultCorrect);
       return data ? data.dictLabel : '';
@@ -449,9 +344,6 @@ export default {
       this.taskTypeArr = null;
       getVisitsDetailPerfectStore({ visitsId: this.$route.query.visitId }).then((res) => {
         this.toastLoading().clear();
-        if (this.refreshing) {
-          this.refreshing = false;
-        }
         if (res.code == 200) {
           this.list = res.data;
           this.filterSfaTaskList(this.list.sfaTaskList);
@@ -515,9 +407,6 @@ export default {
     },
     historiStoreVisit(val, index) {
       if (val.taskType == '5') {
-        if (val.taskPhotoConditionPassed == null) {
-          return;
-        }
         this.$router.push({
           path: '/perfectStoreTask',
           query: {
@@ -538,12 +427,10 @@ export default {
       sessionStorage.setItem('collectionItemList', JSON.stringify(val.collectionItemList));
     },
     toSkuRecognize() {
-      if (this.list.wanmeiStore) {
-        this.$router.push({
-          path: '/perfectStoreSku',
-          query: { visitId: this.visitsId },
-        });
-      }
+      this.$router.push({
+        path: '/perfectStoreSku',
+        query: { visitId: this.visitsId },
+      });
     },
     onClickLeft() {
       if (this.$route.query.token) {
@@ -558,18 +445,12 @@ export default {
       ImagePreview([url]);
     },
     openPerfectStoreSign(val) {
-      if (val.qualifiedState == null) {
-        return;
-      }
       this.$router.push({
         path: '/perfectStoreSign',
         query: { visitId: this.visitsId, taskId: val.taskId },
       });
     },
     openPerfectStoreTSJ(val) {
-      if (val.qualifiedState == null) {
-        return;
-      }
       let tiaoSJArr = this.list.sfaTaskList.filter((val) => val.photoIdentifyType == '3');
       let taskIds = tiaoSJArr.map((item) => item.taskId).join(',');
       this.$router.push({
@@ -772,152 +653,4 @@ export default {
   border: 0 !important;
   box-shadow: none !important;
 }
-.perfectStore {
-  /* ===== AI 生成中动画 ===== */
-  .ai-generating {
-    display: flex;
-    align-items: center;
-    gap: 5px;
-    background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(168, 85, 247, 0.08));
-    border: 1px solid rgba(99, 102, 241, 0.2);
-    border-radius: 20px;
-    padding: 3px 10px 3px 7px;
-    margin-right: -3px;
-  }
-
-  /* AI 图标 - 彩色渐变扫描动效 */
-  .ai-icon {
-    width: 20px;
-    height: 20px;
-    position: relative;
-    flex-shrink: 0;
-  }
-  .ai-icon svg {
-    width: 20px;
-    height: 20px;
-  }
-
-  /* 三个跳动圆点 */
-  .dots-container {
-    display: flex;
-    align-items: center;
-    gap: 3px;
-  }
-  .dot {
-    width: 5px;
-    height: 5px;
-    border-radius: 50%;
-    background: linear-gradient(135deg, #6366f1, #a855f7);
-    animation: dotBounce 1.4s ease-in-out infinite;
-  }
-  .dot:nth-child(1) {
-    animation-delay: 0s;
-  }
-  .dot:nth-child(2) {
-    animation-delay: 0.2s;
-  }
-  .dot:nth-child(3) {
-    animation-delay: 0.4s;
-  }
-
-  @keyframes dotBounce {
-    0%,
-    60%,
-    100% {
-      transform: translateY(0);
-      opacity: 0.5;
-    }
-    30% {
-      transform: translateY(-5px);
-      opacity: 1;
-    }
-  }
-
-  /* 生成中文字 */
-  .gen-text {
-    font-size: 12px;
-    font-weight: 500;
-    background: linear-gradient(90deg, #6366f1, #a855f7, #6366f1);
-    background-size: 200% auto;
-    -webkit-background-clip: text;
-    -webkit-text-fill-color: transparent;
-    background-clip: text;
-    animation: textShimmer 2s linear infinite;
-  }
-  @keyframes textShimmer {
-    0% {
-      background-position: 0% center;
-    }
-    100% {
-      background-position: 200% center;
-    }
-  }
-
-  /* AI 图标内部的星星动画 */
-  @keyframes starPulse {
-    0%,
-    100% {
-      transform: scale(1) rotate(0deg);
-      opacity: 0.9;
-    }
-    50% {
-      transform: scale(1.15) rotate(15deg);
-      opacity: 1;
-    }
-  }
-  @keyframes starOrbit {
-    0% {
-      transform: rotate(0deg) translateX(5px) rotate(0deg);
-    }
-    100% {
-      transform: rotate(360deg) translateX(5px) rotate(-360deg);
-    }
-  }
-
-  /* 光晕扫描 */
-  .scan-line {
-    position: absolute;
-    top: 0;
-    left: -100%;
-    width: 60%;
-    height: 100%;
-    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
-    animation: scanAnim 2s ease-in-out infinite;
-    border-radius: 50%;
-  }
-  @keyframes scanAnim {
-    0% {
-      left: -60%;
-    }
-    100% {
-      left: 160%;
-    }
-  }
-  .AISpan {
-    display: flex;
-    align-items: center;
-    color: #1989fa;
-    margin-right: 5px;
-    font-size: 12px;
-  }
-  .AISpan::before {
-    content: '';
-    display: inline-block;
-    width: 6px;
-    height: 6px;
-    border-radius: 50%;
-    background: #2979ff;
-    animation: blink 1.2s ease-in-out infinite;
-    margin-right: 5px;
-  }
-  @keyframes blink {
-    0%,
-    100% {
-      opacity: 0.3;
-    }
-    50% {
-      opacity: 1;
-    }
-  }
-}
 </style>

+ 62 - 236
src/views/historicalVisit/perfectStoreTask.vue

@@ -68,33 +68,12 @@
         </van-form>
       </div>
       <div class="skuDeatil">
-        <div class="headline" style="margin-top: 10px; justify-content: space-between">
-          <div
-            class="skuDeatilHeaderLeft"
-            style="
-              font-weight: 600;
-              font-size: 16px;
-              position: relative;
-              display: flex;
-              align-items: center;
-            ">
-            <span class="headlineIcon"></span>
-            <span class="headlineTitle">SKU图像识别结果</span>
-          </div>
-          <div
-            class="skuDeatilHeaderRight"
-            v-if="formData.displayRewardTaskEditable"
-            style="margin-right: 72px">
-            <van-button plain type="primary" @click="editTable" v-if="!editTableFlag"
-              >编辑</van-button
-            >
-            <van-button type="primary" @click="saveTable" v-if="editTableFlag">保存</van-button>
-            <!-- <span style="color: #07c160" @click="editTable" v-if="!editTableFlag">编辑</span>
-            <span style="color: red" @click="saveTable" v-if="editTableFlag">保存</span> -->
-          </div>
+        <div class="headline" style="margin-top: 10px">
+          <span class="headlineIcon"></span>
+          <span class="headlineTitle">SKU图像识别结果</span>
         </div>
         <el-table
-          :data="taskPhotoRecognitionResult"
+          :data="formData.taskPhotoRecognitionResult"
           :span-method="taskObjectSpanMethod"
           border
           class="table-headermd1"
@@ -110,31 +89,11 @@
               <span class="tipTitle">{{ scope.row.skuProductName }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="排面数" prop="identifyTheNumberOfCards" align="center" width="80">
-            <template slot-scope="scope">
-              <span
-                v-if="!editTableFlag"
-                :class="{ shelfEdit: scope.row.shelfEdit == 1, identifyTheNumber: true }"
-                >{{ scope.row.identifyTheNumberOfCards }}
-              </span>
-              <span v-else-if="!editTableFlag" class="identifyTheNumber">
-                {{ scope.row.identifyTheNumberOfCards }}
-              </span>
-              <van-field
-                v-else
-                :class="{
-                  shelfEdit: scope.row.shelfEdit == 1,
-                  identifyTheNumber: true,
-                  isEdit: scope.row.identifyTheNumberOfCards > '0',
-                }"
-                v-model="scope.row.identifyTheNumberOfCards"
-                placeholder="请输入排面数"
-                type="digit"
-                :disabled="scope.row.identifyTheNumberOfCards == '0'"
-                @input="onPositiveIntegerInput(scope.row, $event)"
-                @blur="inputbluwl(scope.row)" />
-            </template>
-          </el-table-column>
+          <el-table-column
+            label="排面数"
+            prop="identifyTheNumberOfCards"
+            align="center"
+            width="50"></el-table-column>
           <el-table-column label="要求" prop="conditionIdentifyNum" align="center" width="60px">
             <template slot-scope="scope">
               <span
@@ -179,10 +138,13 @@
       @close="vanPopup == false"
       custom-class="identifyResultdialog">
       <!-- 识别结果 -->
-      <div class="identifyResult" v-if="taskPhotoRecognitionResult" style="padding: 0 10px">
+      <div
+        class="identifyResult"
+        v-if="formData.taskPhotoRecognitionResult"
+        style="padding: 0 10px">
         <div class="resultContent">
           <el-table
-            :data="taskPhotoRecognitionResult"
+            :data="formData.taskPhotoRecognitionResult"
             :span-method="taskObjectSpanMethod"
             border
             class="table-headermd1"
@@ -213,7 +175,6 @@ import {
   addCollectionAnswerBatch,
   getVisitsDetailPerfectStore,
   getVisitsDetailPerfectStoreByTaskId,
-  updateDisplayRewardCaseSkuCount,
 } from '@/api/index';
 import taskTips from '@/views/deviceWithin/taskTips';
 import deleteUploadImg from '@/components/deleteUploadImgTaskPhoto';
@@ -234,8 +195,6 @@ export default {
       vanPopup: false,
       taskPhotoRecognitionResult: null,
       spanArr: [],
-      editTableFlag: false,
-      editCountArr: [],
     };
   },
   activated() {
@@ -245,8 +204,6 @@ export default {
     this.objectType = this.$route.query.photoType || '';
     this.insert = this.$route.query.insert;
     this.formData = null;
-    this.editCountArr = [];
-    this.editTableFlag = false;
     this.getVisitsDetailFun();
   },
   methods: {
@@ -290,9 +247,8 @@ export default {
         this.toastLoading().clear();
         if (res.code == 200 && res.data && res.data.length > 0) {
           this.formData = res.data[0];
-          this.taskPhotoRecognitionResult =
-            JSON.parse(JSON.stringify(this.formData.taskPhotoRecognitionResult)) || [];
-          this.getSpanArr(this.taskPhotoRecognitionResult);
+          console.log(this.formData.taskPhotoRecognitionResult);
+          this.getSpanArr(this.formData.taskPhotoRecognitionResult);
           console.log(this.formData);
         } else {
           this.formData = null;
@@ -333,86 +289,6 @@ export default {
         startPosition: index,
       });
     },
-    inputbluwl(row) {
-      let filteredResults = this.formData.taskPhotoRecognitionResult.filter(
-        (val) => val.skuProductCode == row.skuProductCode,
-      );
-      if (row.rawIdentifyNum != null && row.rawIdentifyNum !== '') {
-        const original = Number(filteredResults[0]?.rawIdentifyNum || '0'); //原始值
-        const activeOriginal = Number(filteredResults[0]?.identifyTheNumberOfCards || '0'); //上一次修改后的值
-        const current = Number(row.identifyTheNumberOfCards); //当前输入的值
-        if (current < original) {
-          this.$toast('排面数不能小于原始值');
-          row.identifyTheNumberOfCards = String(activeOriginal);
-          const existingIndex = this.editCountArr.findIndex(
-            (item) => item.skuProductCode === row.skuProductCode,
-          );
-          if (existingIndex >= 0) {
-            this.editCountArr.splice(existingIndex, 1);
-          }
-        } else {
-          const editCount = current - activeOriginal; //本次修改的值
-          if (editCount === 0) {
-            const existingIndex = this.editCountArr.findIndex(
-              (item) => item.skuProductCode === row.skuProductCode,
-            );
-            if (existingIndex >= 0) {
-              this.editCountArr.splice(existingIndex, 1);
-            }
-          } else {
-            const existingIndex = this.editCountArr.findIndex(
-              (item) => item.skuProductCode === row.skuProductCode,
-            );
-            if (existingIndex >= 0) {
-              this.editCountArr[existingIndex].editCount = editCount;
-            } else {
-              this.editCountArr.push({
-                taskId: row.taskId, //	Long	任务id
-                visitId: row.visitId, //	Long	拜访id
-                skuProductCode: row.skuProductCode, //	String	产品code
-                editCount,
-              });
-            }
-          }
-        }
-      } else {
-        this.$toast('排面数不能为空');
-        row.identifyTheNumberOfCards = filteredResults[0]?.identifyTheNumberOfCards;
-      }
-    },
-    onPositiveIntegerInput(row, value) {
-      if (value == null) {
-        row.identifyTheNumberOfCards = '';
-        return;
-      }
-      let sanitized = String(value).replace(/[^\d]/g, '');
-      if (sanitized !== '') {
-        sanitized = sanitized.replace(/^0+/, '');
-        if (sanitized === '') {
-          sanitized = '0';
-        }
-      }
-      row.identifyTheNumberOfCards = sanitized;
-    },
-    editTable() {
-      this.editTableFlag = true;
-    },
-    saveTable() {
-      console.log(this.editCountArr);
-      if (this.editCountArr.length == 0) {
-        // this.$toast('请至少修改一项排面数');
-      } else {
-        updateDisplayRewardCaseSkuCount(this.editCountArr).then((res) => {
-          if (res.code == 200) {
-            this.$toast('修改成功');
-            this.getVisitsDetailFun();
-          } else {
-            this.$toast(res.message || '修改失败');
-          }
-        });
-      }
-      this.editTableFlag = false;
-    },
     onClickLeft() {
       this.$router.go(-1);
     },
@@ -572,58 +448,54 @@ export default {
     background-color: #ee0a24 !important;
     border: 1px solid #ee0a24 !important;
   }
-  .table-headermd1 {
-    .el-table__cell {
-      height: 50px !important;
-      .van-field {
-        padding: 0 !important;
-      }
-      .van-field__control {
-        height: 32px;
-        text-align: center;
-      }
-    }
+}
+.identifyResultdialog {
+  width: vw(690) !important;
+  margin-top: 1vh !important;
+  border-radius: 8px !important;
+  font-size: vw(32) !important;
+  height: 70% !important;
+  display: flex;
+  flex-direction: column;
+  .el-dialog__headerbtn {
+    width: vw(44);
+    height: vw(44);
+    background-color: #e1e1e1;
+    border-radius: 50%;
+    margin-top: -3px;
   }
-  .shelfEdit {
-    height: 100%;
-    color: #036bf3;
-    .van-field__body {
-      height: 100%;
-    }
-    input {
-      height: 100%;
-      color: #036bf3;
-    }
+  .el-dialog__body {
+    flex: 1;
+    overflow-y: auto;
   }
-  .identifyTheNumber {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    height: 100%;
+}
+.table-headermd1 {
+  font-size: 14px;
+  text-align: center;
+  position: initial;
+  width: 98% !important;
+  margin: 0 auto;
+  border-right: 0;
+  border-radius: 8px;
+  th {
+    color: #000;
+    font-weight: bold;
   }
-  .isEdit {
-    border: 1px solid #609de8;
+  td {
+    color: #000;
   }
-  .identifyResultdialog {
-    width: vw(690) !important;
-    margin-top: 1vh !important;
-    border-radius: 8px !important;
-    font-size: vw(32) !important;
-    height: 70% !important;
-    display: flex;
-    flex-direction: column;
-    .el-dialog__headerbtn {
-      width: vw(44);
-      height: vw(44);
-      background-color: #e1e1e1;
-      border-radius: 50%;
-      margin-top: -3px;
-    }
-    .el-dialog__body {
-      flex: 1;
-      overflow-y: auto;
+  .el-table__cell {
+    padding: 6px 0 !important;
+    .cell {
+      padding: 0;
     }
   }
+}
+.skuDeatil {
+  width: 100%;
+  margin-top: 10px;
+  background: #fff;
+  border-radius: 6px;
   .table-headermd1 {
     font-size: 14px;
     text-align: center;
@@ -632,6 +504,7 @@ export default {
     margin: 0 auto;
     border-right: 0;
     border-radius: 8px;
+    margin-top: 10px;
     th {
       color: #000;
       font-weight: bold;
@@ -640,64 +513,17 @@ export default {
       color: #000;
     }
     .el-table__cell {
-      padding: 0 !important;
+      padding: 6px 0 !important;
       .cell {
-        height: 100%;
         padding: 0;
       }
     }
   }
-  .skuDeatil {
-    width: 100%;
-    margin-top: 10px;
-    background: #fff;
-    border-radius: 6px;
-    .table-headermd1 {
-      font-size: 14px;
-      text-align: center;
-      position: initial;
-      width: 98% !important;
-      margin: 0 auto;
-      border-right: 0;
-      border-radius: 8px;
-      margin-top: 10px;
-      th {
-        color: #000;
-        font-weight: bold;
-      }
-      td {
-        color: #000;
-      }
-      .el-table__cell {
-        padding: 0 !important;
-        .cell {
-          height: 100%;
-          padding: 0;
-        }
-      }
-    }
-    .table-headermd1 th.el-table__cell {
-      background-color: #f5f5f5;
-    }
+  .table-headermd1 th.el-table__cell {
+    background-color: #f5f5f5;
   }
 }
 .el-table::before {
   height: 0;
 }
-.skuDeatilHeaderRight {
-  button {
-    // width: 120px;
-    height: 36px;
-    border-radius: 18px;
-  }
-  .van-button--primary {
-    background-color: #2b73cf;
-    border-color: #2b73cf;
-  }
-  .van-button--primary.van-button--plain {
-    color: #3875c6;
-    border-color: #dcdfe6;
-    background-color: rgba(217, 233, 255, 1);
-  }
-}
 </style>

+ 78 - 0
src/views/home/ABtarget.vue

@@ -1047,3 +1047,81 @@ export default {
   }
 }
 </style>
+<style lang="scss">
+.ABtarage {
+  p {
+    margin: 10px 0 0 0;
+    font-size: 14px;
+    /* color: #666; */
+  }
+  .leftTitle {
+    background-color: #74a4d9;
+    color: #fff;
+    display: inline-block;
+    padding: 0 4px;
+    border-radius: 2px;
+  }
+  .rightTitle {
+    background-color: #e7b4bb;
+    color: #fff;
+    display: inline-block;
+    padding: 0 4px;
+    border-radius: 2px;
+  }
+
+  .colBack {
+    width: 100%;
+    height: 100%;
+    display: block;
+    /* overflow: unset; */
+    position: relative;
+    z-index: 2;
+    float: left;
+    z-index: 2;
+    .back {
+      position: absolute;
+      background: rgb(226, 240, 217);
+      height: 100%;
+      display: block;
+      overflow: hidden;
+      /* z-index: 1; */
+      border-radius: 12px;
+      bottom: -4px;
+    }
+    .backLeft {
+      width: 45%;
+      left: -12px;
+    }
+    .backRight {
+      width: 50%;
+      left: calc(50% - 12px);
+    }
+    .van-col {
+      position: relative;
+      z-index: 3;
+    }
+  }
+  .colLabel {
+    display: inline-block;
+    padding: 2px 5px;
+    color: #fff;
+    margin-right: 10px;
+    border-radius: 3px;
+  }
+  .colLabel_KK {
+    background: rgb(235, 104, 119);
+  }
+  .colLabel_FX {
+    background: rgb(253 120 88);
+  }
+  .colLabel_JP {
+    background: rgb(241, 183, 137);
+  }
+  .colLabel_JPBJ {
+    background: rgb(248 215 189);
+  }
+  .colLabel_TCFX {
+    background: rgb(131 204 202);
+  }
+}
+</style>

+ 80 - 3
src/views/home/Atarget.vue

@@ -47,9 +47,8 @@
           v-if="!JZQuota && !GZdata && [1, 4, 5].indexOf(powerGrade) !== -1"
           name="8"
           :title="'瓷砖胶SAP(千元)'">
-          <cizhuanjiaoSAP :reportTargetAll="reportTargetAll"></cizhuanjiaoSAP>
-        </van-collapse-item>
-        <van-collapse-item v-if="GZdata" name="9" title="纯态之家SAP(千元)">
+          <cizhuanjiaoSAP :reportTargetAll="reportTargetAll"></cizhuanjiaoSAP> </van-collapse-item
+        ><van-collapse-item v-if="GZdata" name="9" title="纯态之家SAP(千元)">
           <chunTaiSAP :reportTargetAll="reportTargetAll"></chunTaiSAP>
         </van-collapse-item>
         <van-collapse-item v-if="GZdata" name="10" title="商机关联的质感外墙业绩SAP(千元)">
@@ -639,3 +638,81 @@ export default {
   }
 }
 </style>
+<style lang="scss">
+.Atarget {
+  p {
+    margin: 10px 0 0 0;
+    font-size: 14px;
+    /* color: #666; */
+  }
+  .leftTitle {
+    background-color: #74a4d9;
+    color: #fff;
+    display: inline-block;
+    padding: 0 4px;
+    border-radius: 2px;
+  }
+  .rightTitle {
+    background-color: #e7b4bb;
+    color: #fff;
+    display: inline-block;
+    padding: 0 4px;
+    border-radius: 2px;
+  }
+
+  .colBack {
+    width: 100%;
+    height: 100%;
+    display: block;
+    /* overflow: unset; */
+    position: relative;
+    z-index: 2;
+    float: left;
+    z-index: 2;
+    .back {
+      position: absolute;
+      background: rgb(226, 240, 217);
+      height: 100%;
+      display: block;
+      overflow: hidden;
+      /* z-index: 1; */
+      border-radius: 12px;
+      bottom: -4px;
+    }
+    .backLeft {
+      width: 45%;
+      left: -12px;
+    }
+    .backRight {
+      width: 50%;
+      left: calc(50% - 12px);
+    }
+    .van-col {
+      position: relative;
+      z-index: 3;
+    }
+  }
+  .colLabel {
+    display: inline-block;
+    padding: 2px 5px;
+    color: #fff;
+    margin-right: 10px;
+    border-radius: 3px;
+  }
+  .colLabel_KK {
+    background: rgb(235, 104, 119);
+  }
+  .colLabel_FX {
+    background: rgb(253 120 88);
+  }
+  .colLabel_JP {
+    background: rgb(241, 183, 137);
+  }
+  .colLabel_JPBJ {
+    background: rgb(248 215 189);
+  }
+  .colLabel_TCFX {
+    background: rgb(131 204 202);
+  }
+}
+</style>

+ 78 - 0
src/views/home/Btarget.vue

@@ -509,3 +509,81 @@ export default {
   }
 }
 </style>
+<style lang="scss">
+.Btarget {
+  p {
+    margin: 10px 0 0 0;
+    font-size: 14px;
+    /* color: #666; */
+  }
+  .leftTitle {
+    background-color: #74a4d9;
+    color: #fff;
+    display: inline-block;
+    padding: 0 4px;
+    border-radius: 2px;
+  }
+  .rightTitle {
+    background-color: #e7b4bb;
+    color: #fff;
+    display: inline-block;
+    padding: 0 4px;
+    border-radius: 2px;
+  }
+
+  .colBack {
+    width: 100%;
+    height: 100%;
+    display: block;
+    /* overflow: unset; */
+    position: relative;
+    z-index: 2;
+    float: left;
+    z-index: 2;
+    .back {
+      position: absolute;
+      background: rgb(226, 240, 217);
+      height: 100%;
+      display: block;
+      overflow: hidden;
+      /* z-index: 1; */
+      border-radius: 12px;
+      bottom: -4px;
+    }
+    .backLeft {
+      width: 45%;
+      left: -12px;
+    }
+    .backRight {
+      width: 50%;
+      left: calc(50% - 12px);
+    }
+    .van-col {
+      position: relative;
+      z-index: 3;
+    }
+  }
+  .colLabel {
+    display: inline-block;
+    padding: 2px 5px;
+    color: #fff;
+    margin-right: 10px;
+    border-radius: 3px;
+  }
+  .colLabel_KK {
+    background: rgb(235, 104, 119);
+  }
+  .colLabel_FX {
+    background: rgb(253 120 88);
+  }
+  .colLabel_JP {
+    background: rgb(241, 183, 137);
+  }
+  .colLabel_JPBJ {
+    background: rgb(248 215 189);
+  }
+  .colLabel_TCFX {
+    background: rgb(131 204 202);
+  }
+}
+</style>

+ 96 - 33
src/views/home/HomeTarget.vue

@@ -1,6 +1,7 @@
 <template>
-  <div class="ABtarage">
+  <div class="ABtarage HomeTarget">
     <p class="updataTime">更新时间:{{ updataTime }}</p>
+    <!-- labelStyle 垃圾,不能全匹配,需要特殊处理 -->
     <template>
       <div class="container linep">
         <van-collapse v-model="activeNames">
@@ -14,13 +15,12 @@
                 <div
                   v-for="(periodItem, periodIndex) in homePageItem.children"
                   :key="'title-' + periodIndex">
-                  <van-col span="12">
+                  <van-col span="12" v-if="periodItem.name">
                     <span :class="periodIndex % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
                       periodItem.name
                     }}</span>
                   </van-col>
                 </div>
-
                 <!-- 动态渲染指标项 -->
                 <div v-if="homePageItem.children.length >= 2">
                   <!-- 遍历第一个周期的所有指标 -->
@@ -32,13 +32,7 @@
                       <p>
                         {{ metric.name }}:
                         <span class="colorblack">
-                          <template v-if="metric.indicatorUnit === '%'"
-                            >{{ metric.indicatorValue }}%</template
-                          >
-                          <template v-else>
-                            {{ Micrometer(metric.indicatorValue) }}
-                            {{ metric.indicatorUnit }}
-                          </template>
+                          {{ metric.indicatorDisplayValue }}
                         </span>
                       </p>
                     </van-col>
@@ -47,20 +41,9 @@
                       <p>
                         {{ homePageItem.children[1]?.children[metricIndex]?.name || '-' }}:
                         <span class="colorblack">
-                          <template
-                            v-if="
-                              homePageItem.children[1]?.children[metricIndex]?.indicatorUnit === '%'
-                            ">
-                            {{ homePageItem.children[1]?.children[metricIndex]?.indicatorValue }}%
-                          </template>
-                          <template v-else>
-                            {{
-                              Micrometer(
-                                homePageItem.children[1]?.children[metricIndex]?.indicatorValue,
-                              )
-                            }}
-                            {{ homePageItem.children[1]?.children[metricIndex]?.indicatorUnit }}
-                          </template>
+                          {{
+                            homePageItem.children[1]?.children[metricIndex]?.indicatorDisplayValue
+                          }}
                         </span>
                       </p>
                     </van-col>
@@ -77,7 +60,7 @@
                 v-for="(category, index) in homePageItem.children"
                 :key="index"
                 :style="{ marginTop: index > 0 ? '10px' : '0' }">
-                <van-col span="24">
+                <van-col span="24" v-if="category.name">
                   <span :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
                     category.name
                   }}</span>
@@ -91,7 +74,7 @@
                         :style="labelStyle(item.clickable)"
                         @click="onClick(item.clickable)"
                         class="colorbalck"
-                        >{{ Micrometer(item.indicatorValue) }}{{ item.indicatorUnit }}</span
+                        >{{ item.indicatorDisplayValue }}</span
                       >
                     </p>
                   </van-col>
@@ -115,7 +98,65 @@
                         :style="labelStyle(item.clickable)"
                         @click="onClick(item.clickable)"
                         class="colorbalck"
-                        >{{ Micrometer(item.indicatorValue) }}{{ item.indicatorUnit }}</span
+                        >{{ item.indicatorDisplayValue }}</span
+                      >
+                    </p>
+                  </van-col>
+                </div>
+              </van-row>
+            </van-collapse-item>
+            <van-collapse-item
+              v-if="homePageItem.labelStyle == 4"
+              :name="(index + 1).toString()"
+              :title="homePageItem.name">
+              <!-- 外层循环:遍历主要类别 -->
+              <template v-for="(category, index) in homePageItem.children">
+                <van-row
+                  :style="{
+                    width: category.name ? '49%' : '100%',
+                    float: category.name ? 'left' : 'none',
+                  }">
+                  <van-col span="20" v-if="category.name">
+                    <span :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
+                      category.name
+                    }}</span>
+                  </van-col>
+
+                  <!-- 内层循环:遍历各个统计项 -->
+                  <div v-for="(item, idx) in category.children" :key="idx">
+                    <van-col :span="24">
+                      <p>
+                        {{ item.name }}:<span
+                          :style="labelStyle(item.clickable)"
+                          @click="onClick(item.clickable)"
+                          class="colorbalck"
+                          >{{ item.indicatorDisplayValue }}</span
+                        >
+                      </p>
+                    </van-col>
+                  </div>
+                </van-row>
+              </template>
+            </van-collapse-item>
+            <van-collapse-item
+              v-if="homePageItem.labelStyle == 5"
+              :name="(index + 1).toString()"
+              :title="homePageItem.name">
+              <!-- 外层循环:遍历主要类别 -->
+              <van-row
+                v-for="(category, index) in homePageItem.children"
+                :key="index"
+                :style="{ marginTop: index == 0 ? '-10px' : '0' }">
+                <!-- 内层循环:遍历各个统计项 -->
+                <div v-for="(item, idx) in category.children" :key="idx">
+                  <van-col :span="24">
+                    <p v-if="item.indicatorDate" style="color: #999">{{ item.indicatorDate }}</p>
+                    <p>
+                      {{ item.name }}:<span
+                        :style="labelStyle(item.clickable)"
+                        @click="onClick(item.clickable)"
+                        class="colorbalck"
+                        >{{ item.indicatorDisplayValue }}</span
                       >
                     </p>
                   </van-col>
@@ -132,8 +173,14 @@
 <script>
 import store from '@/store';
 import { userTodayPlanNum, getReportInfo } from '@/api/index';
+import { mapState } from 'vuex';
 export default {
   name: 'home',
+  computed: {
+    ...mapState({
+      reportInfo: (state) => state.user.reportInfo,
+    }),
+  },
   props: {
     tabVal: {
       type: [String, Number],
@@ -212,10 +259,18 @@ export default {
     };
   },
   watch: {
-    tabVal: {
+    // tabVal: {
+    //   handler(val) {
+    //     if (val == 2) {
+    //       // keep-alive 模式watch执行了两次
+    //       this.initData();
+    //     }
+    //   },
+    //   immediate: true,
+    // },
+    reportInfo: {
       handler(val) {
-        if (val == 2) {
-          // keep-alive 模式watch执行了两次
+        if (val) {
           this.initData();
         }
       },
@@ -242,6 +297,11 @@ export default {
       this.userTodayPlanNum();
     },
     getReportInfo() {
+      if (this.reportInfo && this.reportInfo.homePageIndicatorList != null) {
+        this.homePageIndicatorList = this.reportInfo.homePageIndicatorList;
+        this.updataTime = this.reportInfo.homePageIndicatorUpdateTime;
+      }
+      return;
       let loading1 = this.$toast.loading({
         duration: 0,
         message: '加载中...',
@@ -338,6 +398,7 @@ export default {
   display: inline-block;
   padding: 0 4px;
   border-radius: 2px;
+  margin-top: 10px;
 }
 
 .rightTitle {
@@ -347,6 +408,7 @@ export default {
   padding: 0 4px;
   border-radius: 2px;
   white-space: nowrap;
+  margin-top: 10px;
 }
 </style>
 <style lang="scss">
@@ -375,7 +437,7 @@ export default {
 
 .linep .van-cell__title {
   color: #1e5398;
-  font-weight: 500;
+  font-weight: 600;
   font-size: 16px;
 }
 
@@ -423,8 +485,9 @@ export default {
   padding: 14px 0px;
 }
 
-.storeTypeHome .van-collapse-item__content {
-  padding: 0;
+.HomeTarget .van-collapse-item__content {
+  padding: 0px 15px 15px 15px;
+  overflow: hidden;
 }
 
 .storeTypeHome .storeTypeHomeList .van-cell__title {

+ 42 - 1
src/views/home/bottomBtn.vue

@@ -105,7 +105,13 @@
 </template>
 <script>
 import { getReportInfo } from '@/api/index';
+import { mapState } from 'vuex';
 export default {
+  computed: {
+    ...mapState({
+      reportInfo: (state) => state.user.reportInfo,
+    }),
+  },
   props: {
     tabVal: {
       type: [String, Number],
@@ -130,11 +136,46 @@ export default {
       reportType: null,
     };
   },
+  watch: {
+    reportInfo: {
+      handler(val) {
+        if (val) {
+          this.getReportInfo();
+        }
+      },
+      immediate: true,
+    },
+  },
   activated() {
-    this.getReportInfo();
+    // this.getReportInfo();
   },
   methods: {
     getReportInfo() {
+      if (this.reportInfo) {
+        let reportInfo = this.reportInfo;
+        if (reportInfo.postType == 'GZ') {
+          this.GZdata = true;
+        } else {
+          this.GZdata = false;
+        }
+        this.proccessPendingNum = reportInfo.proccessPendingNum;
+        this.reportInfoData = reportInfo;
+        this.approvalButton = reportInfo.approvalButton;
+        this.powerGrade = reportInfo.positionId;
+        this.showButton = reportInfo.showButton;
+        this.reportType = reportInfo.reportType;
+        if (reportInfo.reportTargetAll != null) {
+          this.updataTime = reportInfo.reportTargetAll.updateTime;
+        }
+        this.approvalPendingNum = reportInfo.approvalPendingNum;
+        this.type = reportInfo.userType;
+        // 金牌店老板生日提醒
+        if (reportInfo.ownerBirthdayReminds && reportInfo.ownerBirthdayReminds.length) {
+          this.ownerBirthdayBoxFlag = true;
+          this.ownerBirthdayReminds = reportInfo.ownerBirthdayReminds.join(',');
+        }
+      }
+      return;
       getReportInfo({ isContent: false }).then((res) => {
         if (res.code == 200) {
           if (res.data.postType == 'GZ') {

+ 10 - 34
src/views/home/hintTabPage/hintDetail.vue

@@ -32,7 +32,7 @@
         <van-tab
           v-for="(val, key, index) in tabsItemPantone"
           :key="index"
-          :title="key=='keKong'?'可控店':'金牌店'"
+          :title="key == 'keKong' ? '可控店' : '金牌店'"
           :name="key"></van-tab>
       </van-tabs>
     </div>
@@ -90,7 +90,7 @@ import {
   getReportMaterialType,
   getReportMaterial,
   selectColorMixerStoreInfo,
-  getColorWarning
+  getColorWarning,
 } from '@/api/index';
 import { mapState } from 'vuex';
 export default {
@@ -149,20 +149,11 @@ export default {
           ],
         },
         {
-          label: '同城分销-涂料店',
-          childredColumn: [
-            {
-              label: '(近2月)',
-              prop: 'TuLiaoNotVisited',
-            },
-          ],
-        },
-        {
-          label: '同城分销-其他店',
+          label: '同城分销',
           childredColumn: [
             {
               label: '(近3月)',
-              prop: 'QiTaNotVisited',
+              prop: 'TcfxNotVisited',
             },
           ],
         },
@@ -191,24 +182,6 @@ export default {
             },
           ],
         },
-        {
-          label: '同城分销-涂料店',
-          childredColumn: [
-            {
-              label: '(7天未结案)',
-              prop: 'TuLiaoAbnormalNum',
-            },
-          ],
-        },
-        {
-          label: '同城分销-其他店',
-          childredColumn: [
-            {
-              label: '(7天未结案)',
-              prop: 'QiTaAbnormalNum',
-            },
-          ],
-        },
       ],
       // 色卡
       pantone: [
@@ -396,7 +369,7 @@ export default {
         this.firstProp = 'warehouseName';
         let deptId = tree ? tree.deptId : null;
         this.getPantoneData(resolve, deptId);
-      }else if (this.fromType == 'colorWarning') {
+      } else if (this.fromType == 'colorWarning') {
         // 调色预警
         let deptId = tree ? tree.onlyId : null;
         this.firstProp = 'onlyName';
@@ -494,7 +467,7 @@ export default {
       // deptId 第一次传 null 获取当前等级下的数据(不需要当前层级)
       getReportMaterialType(
         { materialCode: this.materialCode, deptId: deptId },
-        this.controller.signal
+        this.controller.signal,
       ).then((res) => {
         this.maskShow = false;
         if (res.code == 200) {
@@ -532,7 +505,10 @@ export default {
     // 调色机详情
     getColorWarningFun(resolve, deptId) {
       // deptId 第一次传 null 获取当前等级下的数据(不需要当前层级)
-      selectColorMixerStoreInfo({ deptId: deptId,storeType:this.activaPantoneName }, this.controller.signal).then((res) => {
+      selectColorMixerStoreInfo(
+        { deptId: deptId, storeType: this.activaPantoneName },
+        this.controller.signal,
+      ).then((res) => {
         this.maskShow = false;
         if (res.code == 200) {
           res.data.forEach((val) => {

+ 71 - 49
src/views/home/hintTabPage/index.vue

@@ -344,26 +344,26 @@ export default {
               },
             ],
           },
+          // {
+          //   title: '同城分销-涂料店',
+          //   titleProp: 'TuLiao',
+          //   bagColor: '#88abda',
+          //   visitDetail: [
+          //     {
+          //       leftTable: '近2个月拜访率:',
+          //       leftProp: 'visitRateInThePastTwoMonths',
+          //       leftUnit: '%',
+          //       leftIsClick: false,
+          //       rightTable: '未拜访:',
+          //       rightProp: 'notVisited',
+          //       rightUnit: '家',
+          //       rightIsClick: true,
+          //     },
+          //   ],
+          // },
           {
-            title: '同城分销-涂料店',
-            titleProp: 'TuLiao',
-            bagColor: '#88abda',
-            visitDetail: [
-              {
-                leftTable: '近2个月拜访率:',
-                leftProp: 'visitRateInThePastTwoMonths',
-                leftUnit: '%',
-                leftIsClick: false,
-                rightTable: '未拜访:',
-                rightProp: 'notVisited',
-                rightUnit: '家',
-                rightIsClick: true,
-              },
-            ],
-          },
-          {
-            title: '同城分销-其他店',
-            titleProp: 'QiTa',
+            title: '同城分销',
+            titleProp: 'Tcfx',
             bagColor: '#8f82bc',
             visitDetail: [
               {
@@ -448,31 +448,8 @@ export default {
             ],
           },
           {
-            title: '同城分销-涂料店',
-            titleProp: 'TuLiao',
-            bagColor: '#88abda',
-            visitDetail: [
-              {
-                leftTable: '本月累计:',
-                leftProp: 'month',
-                leftUnit: '家',
-                leftIsClick: false,
-              },
-              {
-                leftTable: '今年累计:',
-                leftProp: 'year',
-                leftUnit: '家',
-                leftIsClick: false,
-                rightTable: '7天未结案:',
-                rightProp: 'TuLiaoAbnormalNum',
-                rightUnit: '家',
-                rightIsClick: true,
-              },
-            ],
-          },
-          {
-            title: '同城分销-其他店',
-            titleProp: 'QiTa',
+            title: '仿石漆店',
+            titleProp: 'Fsq',
             bagColor: '#8f82bc',
             visitDetail: [
               {
@@ -486,13 +463,59 @@ export default {
                 leftProp: 'year',
                 leftUnit: '家',
                 leftIsClick: false,
-                rightTable: '7天未结案:',
-                rightProp: 'QiTaAbnormalNum',
-                rightUnit: '家',
-                rightIsClick: true,
+                // rightTable: '7天未结案:',
+                // rightProp: 'QiTaAbnormalNum',
+                // rightUnit: '家',
+                // rightIsClick: true,
               },
             ],
           },
+          // {
+          //   title: '同城分销-涂料店',
+          //   titleProp: 'TuLiao',
+          //   bagColor: '#88abda',
+          //   visitDetail: [
+          //     {
+          //       leftTable: '本月累计:',
+          //       leftProp: 'month',
+          //       leftUnit: '家',
+          //       leftIsClick: false,
+          //     },
+          //     {
+          //       leftTable: '今年累计:',
+          //       leftProp: 'year',
+          //       leftUnit: '家',
+          //       leftIsClick: false,
+          //       rightTable: '7天未结案:',
+          //       rightProp: 'TuLiaoAbnormalNum',
+          //       rightUnit: '家',
+          //       rightIsClick: true,
+          //     },
+          //   ],
+          // },
+          // {
+          //   title: '同城分销-其他店',
+          //   titleProp: 'QiTa',
+          //   bagColor: '#8f82bc',
+          //   visitDetail: [
+          //     {
+          //       leftTable: '本月累计:',
+          //       leftProp: 'month',
+          //       leftUnit: '家',
+          //       leftIsClick: false,
+          //     },
+          //     {
+          //       leftTable: '今年累计:',
+          //       leftProp: 'year',
+          //       leftUnit: '家',
+          //       leftIsClick: false,
+          //       rightTable: '7天未结案:',
+          //       rightProp: 'QiTaAbnormalNum',
+          //       rightUnit: '家',
+          //       rightIsClick: true,
+          //     },
+          //   ],
+          // },
         ],
         resData: null,
       },
@@ -822,7 +845,6 @@ export default {
 }
 .hintPopover {
   background: #deedff;
-  width: 65%;
   .popper__arrow {
     &::after {
       border-right-color: #deedff !important;

+ 4 - 6
src/views/home/hintTabPage/noVisit.vue

@@ -96,11 +96,9 @@ export default {
         type = '可控店';
       } else if (value == 'jinPai') {
         type = '金牌店';
-      } else if (value == 'TuLiao') {
-        type = '同城分销-涂料店';
-      } else if (value == 'QiTa') {
-        type = '同城分销-其他店';
-      }else if (value == 'FuWuShang') {
+      } else if (value == 'Tcfx') {
+        type = '同城分销';
+      } else if (value == 'FuWuShang') {
         type = '服务商';
       }
       return type;
@@ -219,7 +217,7 @@ export default {
         this.TXisBD.lat,
         this.TXisBD.lon,
         this.TXisBD.lat,
-        this.TXisBD.lon
+        this.TXisBD.lon,
       ).toFixed(2);
       // GZ:工装店铺 直接进入拜访
       if (localStorage.getItem('postType') == 'GZ') {

+ 4 - 6
src/views/home/hintTabPage/unCreateStore.vue

@@ -105,7 +105,7 @@
                           placement="bottom"
                           width="200"
                           trigger="click">
-                          <div v-if="item.storeLabels">
+                          <div v-if="item && item.storeLabels">
                             <p>{{ timeData }}未通过的陈列任务:</p>
                             <p v-for="(tt, ind) in (item.storeLabels.targetOne + '').split(';')">
                               <template v-if="tt"> {{ ind + 1 }}、{{ tt }};</template>
@@ -113,7 +113,7 @@
                           </div>
                           <div
                             class="visitStoreIco"
-                            v-if="item.storeLabels.targetOne"
+                            v-if="item && item.storeLabels && item.storeLabels.targetOne"
                             style="background-color: #fff"
                             slot="reference">
                             <van-icon :name="targetOne" size="26" />
@@ -279,6 +279,7 @@ import { mapState } from 'vuex';
 import store from '@/store';
 import { getMonthCommon } from '@/utils';
 import { ProductItemImge } from '@/api/index';
+import targetOne from '@/assets/targetOne.png';
 export default {
   name: 'unCreateStore',
   computed: {
@@ -296,6 +297,7 @@ export default {
       visitRoutePath: '', //拜访页面路径
       clickIsFlage: true,
       timeData: '',
+      targetOne: targetOne,
     };
   },
   filters: {
@@ -307,10 +309,6 @@ export default {
         type = '金牌店7天未完工列表';
       } else if (value == 'jinPaiAbnormalNum') {
         type = '金牌店30天未结案列表';
-      } else if (value == 'TuLiaoAbnormalNum') {
-        type = '同城分销-涂料店7天未结案列表';
-      } else if (value == 'QiTaAbnormalNum') {
-        type = '同城分销-其他店7天未结案列表';
       }
       return type;
     },

+ 34 - 29
src/views/home/index.vue

@@ -47,12 +47,14 @@ import HomeTarget from './HomeTarget.vue';
 import { mapState } from 'vuex';
 import bottomBtn from './bottomBtn.vue';
 import { WXdigest } from '@/utils/digest';
+import store from '@/store';
 export default {
   name: 'home',
   components: { tabBar, hintTabPage, ABtarget, HomeTarget, bottomBtn },
   computed: {
     ...mapState({
       userInfo: (state) => state.user.userInfo,
+      reportInfo: (state) => state.user.reportInfo,
     }),
   },
   data() {
@@ -81,15 +83,8 @@ export default {
     },
   },
   activated() {
+    this.getReportInfo();
     WXdigest();
-    if (this.tabVal == '-1') {
-      // 从其他页面跳转过来如果;要重新获取对应tab数据
-      // if (this.$refs.hintTabPage) this.$refs.hintTabPage.initData();
-    } else if (this.tabVal == '0') {
-      // if (this.$refs.Atarget) this.$refs.Atarget.initData();
-    } else if (this.tabVal == '1') {
-      // if (this.$refs.Btarget) this.$refs.Btarget.initData();
-    }
   },
   created() {
     this.getDict();
@@ -108,19 +103,32 @@ export default {
       this.isLoading = false;
     },
     async getDict(isRefresh) {
+      let postType = this.userInfo.postType;
       let postName = this.userInfo.postName;
       if (postName == '质感销售负责人' || postName == '质感销售专员') {
         this.onlyShowHomeTarget = true;
       } else {
-        this.onlyShowHomeTarget = false;
-        let postType = this.userInfo.postType;
-        // postType:人员类型,JZ(家装)、GZ(公装)、YF(应服)、DIY(DIY)
-        if (postType == 'JZ' || postType == 'GZ') {
-          localStorage.setItem('isGZorJZ', 'true');
-          this.isGZorJZ = 'true';
+        // <!-- 0-历史指标  1-动态指标,String类型 -->
+        if (postType == 'GZ' || postType == 'BMD') {
+          if (this.reportInfo.targetType == '0') {
+            this.onlyShowHomeTarget = false;
+          } else if (this.reportInfo.targetType == '1') {
+            this.onlyShowHomeTarget = true;
+          }
+          if (postType == 'GZ') {
+            localStorage.setItem('isGZorJZ', 'true');
+            this.isGZorJZ = 'true';
+          }
         } else {
-          localStorage.setItem('isGZorJZ', 'false');
-          this.isGZorJZ = 'false';
+          this.onlyShowHomeTarget = false;
+          // postType:人员类型,JZ(家装)、GZ(公装)、YF(应服)、DIY(DIY)
+          if (postType == 'JZ') {
+            localStorage.setItem('isGZorJZ', 'true');
+            this.isGZorJZ = 'true';
+          } else {
+            localStorage.setItem('isGZorJZ', 'false');
+            this.isGZorJZ = 'false';
+          }
         }
       }
       // 家装或工装不显示提示类tab
@@ -164,19 +172,16 @@ export default {
       // window.location.href = process.env.VUE_APP_SSB_LINK + "/homeIndex"
     },
     getReportInfo() {
-      getReportInfo({ isContent: false }).then((res) => {
-        if (res.code == 200) {
-          localStorage.setItem('powerGrade', res.data.positionId);
-          localStorage.setItem('userDeptLevel', res.data.userDeptLevel);
-          localStorage.setItem('isDiy', res.data.diy);
-          localStorage.setItem('uType', res.data.userType);
-          localStorage.setItem('jzType', res.data.jzType);
-          localStorage.setItem('customerVisits', res.data.customerManagerVisits);
-          localStorage.setItem('postType', res.data.postType);
-        } else {
-          this.$toast(res.msg);
-        }
-      });
+      this.toastLoading(0, '加载中...', true);
+      // 获取移动端获取用户信息接口
+      store
+        .dispatch('getReportInfoDeta')
+        .then(() => {
+          this.toastLoading().clear();
+        })
+        .catch(() => {
+          this.toastLoading().clear();
+        });
     },
     deepseek() {
       buryingPoint({

+ 1 - 2
src/views/storeManagement/storeAdd.vue

@@ -1991,8 +1991,7 @@ export default {
                       localStorage.setItem('chainNameR', res.data.sfaStore.storeName);
                       window.location.replace(
                         window.location.origin +
-                          this.locationOrigin +
-                          '/suishenbangOutstoreVisit?PointSum=0&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
+                          '/mobile/suishenbangOutstoreVisit?PointSum=0&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                           res.data.sfaStore.storeId +
                           '&lat=' +
                           this.fromValue.lat +

+ 9 - 12
src/views/storeManagement/success.vue

@@ -90,7 +90,7 @@ export default {
       });
     },
     goback() {
-      window.location.replace(window.location.origin + this.locationOrigin + '/My/index');
+      window.location.replace(window.location.origin + '/mobile/My/index');
     },
     // 返回订单详情也
     gobackStoreDetail() {
@@ -100,7 +100,7 @@ export default {
       localStorage.setItem('successStoreId', this.fromValue.storeId);
       // 跳转到列表在跳到详情页在跳编辑页
       window.location.replace(
-        window.location.origin + this.locationOrigin + '/storemanagementlist?source=successPage',
+        window.location.origin + '/mobile/storemanagementlist?source=successPage'
       );
     },
     visite() {
@@ -204,7 +204,7 @@ export default {
                                     location.lat,
                                     location.lon,
                                     location.lat,
-                                    location.lon,
+                                    location.lon
                                   )
                                   .toFixed(2);
                                 that.$dialog
@@ -215,8 +215,7 @@ export default {
                                   .then(() => {
                                     window.location.replace(
                                       window.location.origin +
-                                        this.locationOrigin +
-                                        '/suishenbangOutstoreVisit?PointSum=' +
+                                        '/mobile/suishenbangOutstoreVisit?PointSum=' +
                                         PointSumval +
                                         '&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                                         that.fromValue.storeId +
@@ -241,7 +240,7 @@ export default {
                                         '&marklat=' +
                                         res.latitude +
                                         '&marklon=' +
-                                        res.longitude,
+                                        res.longitude
                                     );
                                   });
                                 localStorage.setItem('startTime', new Date());
@@ -267,8 +266,7 @@ export default {
                           .then(() => {
                             window.location.replace(
                               window.location.origin +
-                                this.locationOrigin +
-                                '/suishenbangOutstoreVisit?PointSum=' +
+                                '/mobile/suishenbangOutstoreVisit?PointSum=' +
                                 PointSumval +
                                 '&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                                 that.fromValue.storeId +
@@ -293,15 +291,14 @@ export default {
                                 '&marklat=' +
                                 res.latitude +
                                 '&marklon=' +
-                                res.longitude,
+                                res.longitude
                             );
                           })
                           .catch(() => {});
                       } else {
                         window.location.replace(
                           window.location.origin +
-                            this.locationOrigin +
-                            '/suishenbangOutstoreVisit?PointSum=0&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
+                            '/mobile/suishenbangOutstoreVisit?PointSum=0&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                             that.fromValue.storeId +
                             '&lat=' +
                             that.fromValue.lat +
@@ -324,7 +321,7 @@ export default {
                             '&marklat=' +
                             res.latitude +
                             '&marklon=' +
-                            res.longitude,
+                            res.longitude
                         );
                       }
                       localStorage.setItem('startTime', new Date());

+ 3 - 3
src/views/week/assignAwait/JZfollowUp.vue

@@ -175,7 +175,7 @@ export default {
                 showCancelButton: false,
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+                window.location.replace(window.location.origin + '/mobile/clew');
               });
           }
         } else {
@@ -220,7 +220,7 @@ export default {
             this.toastLoading().clear();
             if (res.code == 200) {
               this.$toast(res.msg);
-              window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+              window.location.replace(window.location.origin + '/mobile/clew');
             } else {
               this.$toast(res.msg);
             }
@@ -254,7 +254,7 @@ export default {
           this.toastLoading().clear();
           if (res.code == 200) {
             if (this.$route.query.token != undefined) {
-              window.location.replace(window.location.origin + this.locationOrigin + '/clew');
+              window.location.replace(window.location.origin + '/mobile/clew');
             } else {
               store.dispatch('setRefreshClewPage', true);
               // 返回上一页不会刷新页面

+ 4 - 6
src/views/week/assignAwait/assignPage.vue

@@ -157,7 +157,7 @@ export default {
               let userList = res.data.userList;
               if (this.assignTypeValue != '大型装企') {
                 let userListFilter = userList.filter(
-                  (item) => item.nickName.indexOf(this.infoData.companyName) != -1,
+                  (item) => item.nickName.indexOf(this.infoData.companyName) != -1
                 );
                 this.assignUserData = userListFilter || [];
               } else {
@@ -205,7 +205,7 @@ export default {
             let userList = res.data.userList;
             if (this.assignTypeValue != '大型装企') {
               let userListFilter = userList.filter(
-                (item) => item.nickName.indexOf(this.infoData.companyName) != -1,
+                (item) => item.nickName.indexOf(this.infoData.companyName) != -1
               );
               this.assignUserData = userListFilter || [];
             } else {
@@ -251,9 +251,7 @@ export default {
                 showCancelButton: false,
               })
               .then(() => {
-                window.location.replace(
-                  window.location.origin + this.locationOrigin + '/assignAwait',
-                );
+                window.location.replace(window.location.origin + '/mobile/assignAwait');
               });
           }
           this.getDictOptionFun();
@@ -272,7 +270,7 @@ export default {
         this.toastLoading().clear();
         if (res.code == 200) {
           this.$toast(res.msg);
-          window.location.replace(window.location.origin + this.locationOrigin + '/assignAwait');
+          window.location.replace(window.location.origin + '/mobile/assignAwait');
         } else {
           this.$toast(res.msg);
         }

+ 0 - 102
src/views/week/changeChain.vue

@@ -1,102 +0,0 @@
-<template>
-  <div class="changeChain">
-    <van-nav-bar class="navBar" title="切换经销商" left-arrow @click-left="onClickLeft" />
-    <div class="content">
-      <div class="module">
-        <div
-          class="box"
-          v-if="userInfo && userInfo.userMultipleChains && userInfo.userMultipleChains.length > 0">
-          <van-radio-group v-model="selectedChainIndex" @change="chainChange">
-            <van-radio
-              v-for="(value, index) in userInfo.userMultipleChains"
-              :key="`${value.chainCode}-${index}`"
-              :name="index">
-              {{ value.chainName }}
-            </van-radio>
-          </van-radio-group>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-import { mapState } from 'vuex';
-import { switchChainIdentity } from '@/api/week';
-import store from '@/store';
-export default {
-  name: 'changeChain',
-  computed: {
-    ...mapState({
-      userInfo: (state) => state.user.userInfo,
-    }),
-  },
-  data() {
-    return {
-      selectedChainIndex: null,
-    };
-  },
-  watch: {
-    'userInfo.userMultipleChains'(val) {
-      this.initSelectedChain(val);
-    },
-  },
-  created() {
-    this.initSelectedChain(this.userInfo && this.userInfo.userMultipleChains);
-  },
-  methods: {
-    initSelectedChain(val) {
-      if (val && val.length > 0) {
-        const currentIndex = val.findIndex((item) => item.check);
-        this.selectedChainIndex = currentIndex >= 0 ? currentIndex : 0;
-      }
-    },
-    chainChange(index) {
-      const chain = this.userInfo.userMultipleChains[index];
-      if (!chain) {
-        return;
-      }
-      this.toastLoading(0, '切换中,请稍候...', true);
-      switchChainIdentity({ userMultipleChainId: chain.multipleChainId }).then((res) => {
-        this.toastLoading().clear();
-        if (res.code === 200) {
-          store.dispatch('getUserInfo').then(() => {
-            this.$toast('切换成功');
-          });
-        } else {
-          this.$toast(res.message || '切换失败');
-        }
-      });
-    },
-    onClickLeft() {
-      this.$router.go(-1);
-    },
-  },
-};
-</script>
-<style lang="scss" scoped>
-.changeChain {
-  width: 100%;
-  height: 100%;
-  .content {
-    margin: 10px 16px;
-    .module {
-      margin-bottom: 10px;
-      .title {
-        font-size: 16px;
-        padding: 10px 0;
-      }
-      .box {
-        background: #fff;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        padding: 10px;
-        font-size: 16px;
-        .van-radio {
-          padding: 8px 0;
-        }
-      }
-    }
-  }
-}
-</style>

+ 29 - 405
src/views/week/daily.vue

@@ -30,396 +30,25 @@
         <target :homePageIndicatorDate="homePageIndicatorList"></target>
       </template>
       <template v-else>
-        <van-collapse v-model="activeNames" v-if="!YFQuota">
-          <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <van-collapse-item v-if="!GZQuota" title="拜访数据(实时)" name="7">
-            <visitedRealTime
-              :reportTargetAll="reportTargetAll"
-              :powerGrade="powerGrade"
-              :JZQuota="JZQuota"></visitedRealTime>
-          </van-collapse-item>
-          <van-collapse-item title="建店布机" v-if="!JZQuota && !GZQuota" name="2">
-            <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
-          </van-collapse-item>
-          <van-collapse-item v-if="!JZQuota && !GZQuota" name="33" title="下单点数">
-            <placeOrder :reportTargetAll="reportTargetAll"></placeOrder>
-          </van-collapse-item>
-          <van-collapse-item name="16" v-if="!JZQuota && !GZQuota" title="专业时时丽分销店下单">
-            <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
-          </van-collapse-item>
-          <van-collapse-item v-if="type != 3 && type != 4" name="1" :title="saptitle">
-            <performanceSAP :reportTargetAll="reportTargetAll" :JZQuota="JZQuota"></performanceSAP>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="43" title="纯态之家SAP(千元)">
-            <van-row style="margin-top: -10px">
-              <van-col span="12"><span class="leftTitle">本月</span></van-col
-              ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzCtzjMonthAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzCtzjQuarterAct)
-                  }}</span>
-                </p></van-col
-              >
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzCtzjMonthSuccessRate) }}%</span></p></van-col>-->
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzCtzjQuarterSuccessRate) }}%</span></p></van-col>-->
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzCtzjMonthGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzCtzjQuarterGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="42" title="商机关联的质感外墙业绩SAP(千元)">
-            <van-row style="margin-top: -10px">
-              <van-col span="12"><span class="leftTitle">本月</span></van-col
-              ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzZgwqMonthAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzZgwqQuarterAct)
-                  }}</span>
-                </p></van-col
-              >
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzZgwqMonthSuccessRate) }}%</span></p></van-col>-->
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzZgwqQuarterSuccessRate) }}%</span></p></van-col>-->
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzZgwqMonthGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzZgwqQuarterGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="41" title="累计出货有效客户">
-            <van-row>
-              <!--            <van-col span="12"><span class="leftTitle">全年开户</span></van-col><van-col span="12"><span class="rightTitle">本月报备</span></van-col>-->
-              <van-col span="12"
-                ><p>
-                  全年实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzKhljYearAct)
-                  }}</span>
-                </p></van-col
-              >
-              <!--            <van-col span="12" ><p>报备成功数:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzBbMonthSuccessNum) }}</span></p></van-col>-->
-              <!--            <van-col span="12"><p>&nbsp;</p></van-col>-->
-              <van-col span="12"
-                ><p>
-                  全年目标:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzKhljYearTarget)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"><p>&nbsp;</p></van-col>
-              <van-col span="12"
-                ><p>
-                  目标达成率:<span class="colorbalck"
-                    >{{ Micrometer(reportTargetAll.gzKhljSuccessRate) }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="40" title="今日拜访">
-            <van-row>
-              <van-col span="12"
-                ><p>
-                  公装客户数:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzVisitCustomerNum)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  工地数:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzVisitGdNum)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  潜在客户数:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzVisitQzCustomerNum)
-                  }}</span>
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="!JZQuota && !GZQuota" name="11" title="专业时时丽SAP(千元)">
-            <ZYSAP :reportTargetAll="reportTargetAll"></ZYSAP>
-          </van-collapse-item>
-          <van-collapse-item v-if="!JZQuota && !GZQuota" name="29" title="瓷砖胶SAP(千元)">
-            <van-row>
-              <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
-              ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
-              <van-col span="12"
-                ><p>
-                  实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.czjSapMonthAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.czjSapQuarterAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  达成率:<span class="colorbalck"
-                    >{{ reportTargetAll.czjSapMonthSuccessRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  达成率:<span class="colorbalck"
-                    >{{ reportTargetAll.czjSapQuarterSuccessRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  成长率:<span class="colorbalck">{{ reportTargetAll.czjSapMonthGrowRate }}%</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.czjSapQuarterGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item name="17" v-if="!JZQuota && !GZQuota" title="超好贴分销店下单">
-            <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
-          </van-collapse-item>
-          <van-collapse-item v-if="JZQuota" name="23" title="展厅上样">
-            <van-row>
-              <van-col span="24"
-                ><p>
-                  当月新增店数:<span class="colorbalck">{{
-                    reportTargetAll.exhibitionHallMonthAct
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  全年实际店数:<span class="colorbalck"
-                    >{{ Micrometer(reportTargetAll.exhibitionHallYearAct) }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  全年达成进度率:<span class="colorbalck"
-                    >{{ reportTargetAll.exhibitionHallYearRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="JZQuota" name="22" title="基材粉料过账(千元)">
-            <van-row>
-              <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-              <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerMonth }}</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerQuarter }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单数(包):<span class="colorbalck">{{
-                    reportTargetAll.jcPostOrderNumMonth
-                  }}</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  下单数(包):<span class="colorbalck">{{
-                    reportTargetAll.jcPostOrderNumQuarter
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.jcPostOrderPriceMonth)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.jcPostOrderPriceQuarter)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateMonth }}%</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck"
-                    >{{ reportTargetAll.jcPostOrderRateQuarter }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-              <van-col span="24"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerYear }}</span>
-                </p>
-              </van-col>
-              <van-col span="24"
-                ><p>
-                  下单数(包):<span class="colorbalck">{{
-                    reportTargetAll.jcPostOrderNumYear
-                  }}</span>
-                </p>
-              </van-col>
-              <van-col span="24"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.jcPostOrderPriceYear)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="24"
-                ><p>
-                  下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateYear }}%</span>
-                </p>
-              </van-col>
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="JZQuota" name="21" title="魔术漆过账(千元)">
-            <van-row>
-              <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-              <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerMonth }}</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{
-                    reportTargetAll.msqPostCustomerQuarter
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.msqPostOrderPriceMonth)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.msqPostOrderPriceQuarter)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck"
-                    >{{ reportTargetAll.msqPostOrderRateMonth }}%</span
-                  >
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck"
-                    >{{ reportTargetAll.msqPostOrderRateQuarter }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-              <van-col span="24"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerYear }}</span>
-                </p>
-              </van-col>
-              <van-col span="24"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.msqPostOrderPriceYear)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="24"
-                ><p>
-                  下单率:<span class="colorbalck">{{ reportTargetAll.msqPostOrderRateYear }}%</span>
-                </p>
-              </van-col>
-            </van-row>
-          </van-collapse-item>
-          <!-- 生动化陈列 sku -->
-          <div v-if="photoSkuImgSummaryeList && photoSkuImgSummaryeList.length" class="SKUTable">
-            <p style="padding-bottom: 10px; font-size: 14px; color: #1e5398; font-weight: 500">
-              SKU陈列照识别结果
-            </p>
-            <p style="padding-bottom: 10px; font-size: 14px; font-weight: 500">
-              目前识别桶装和战略产品合计106个,后续会增加被识别产品数
-            </p>
-            <el-table
-              :data="photoSkuImgSummaryeList"
-              border
-              class="table-headermd1"
-              style="width: 100%">
-              <el-table-column label="序号" type="index" width="50px" align="center" />
-              <el-table-column label="门店名称(编号)" prop="name" align="center">
-                <template slot-scope="scope">
-                  {{ scope.row.storeName }}({{ scope.row.storeCode }})
-                </template>
-              </el-table-column>
-              <el-table-column label="SKU数量" prop="count" width="80px" align="center" />
-            </el-table>
-          </div>
+        <van-collapse v-model="activeNames" style="margin-top: -3px">
+          <template v-if="!YFQuota">
+            <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+              <!-- 0-历史指标  1-动态指标,String类型 -->
+              <target
+                v-if="reportTarget.targetType == '1'"
+                :homePageIndicatorDate="homePageIndicatorList"></target>
+              <template v-else>
+                <!-- 历史指标 -->
+                <Atarget :reportInfo="reportTarget"></Atarget>
+                <Btarget :reportInfo="reportTarget"></Btarget>
+              </template>
+            </template>
+            <template v-else>
+              <!-- YFQuota:应用服务平台 不显示各项指标 -->
+              <Atarget :reportInfo="reportTarget"></Atarget>
+              <Btarget :reportInfo="reportTarget"></Btarget>
+            </template>
+          </template>
         </van-collapse>
       </template>
       <div class="contentContainer">
@@ -516,6 +145,8 @@ import ZYSAP from '@/views/componentsTarget/ZYSAP';
 import veryGoodPlaceOrder from '@/views/componentsTarget/veryGoodPlaceOrder';
 import reportCustom from './reportCustom';
 import target from './target.vue';
+import Atarget from '@/views/home/Atarget.vue';
+import Btarget from '@/views/home/Btarget.vue';
 
 export default {
   name: 'daily',
@@ -529,6 +160,8 @@ export default {
     veryGoodPlaceOrder,
     reportCustom,
     target,
+    Atarget,
+    Btarget,
   },
   data() {
     return {
@@ -690,14 +323,10 @@ export default {
                 message: '日报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               });
           } else {
-            if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
-              this.homePageIndicatorList = res.data.homePageIndicatorList;
-            } else {
-              this.homePageIndicatorList = null;
-            }
+            this.homePageIndicatorList = res.data.homePageIndicatorList;
             localStorage.setItem('powerGrade', res.data.positionId);
             localStorage.setItem('userDeptLevel', res.data.userDeptLevel);
             this.GZQuota = false;
@@ -895,7 +524,7 @@ export default {
               })
               .catch(() => {
                 if (this.$route.query.reportId != undefined) {
-                  window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                  window.location.replace(window.location.origin + '/mobile/home');
                 } else {
                   this.onClickLeft();
                 }
@@ -908,9 +537,7 @@ export default {
               })
               .then(() => {
                 if (this.$route.query.reportId != undefined) {
-                  window.location.replace(
-                    window.location.origin + this.locationOrigin + '/myHistoricalDaily',
-                  );
+                  window.location.replace(window.location.origin + '/mobile/myHistoricalDaily');
                 } else {
                   this.onClickLeft();
                 }
@@ -990,11 +617,8 @@ export default {
         this.GZQuota = false;
         this.JZQuota = false;
         this.YFQuota = res.data.postType == 'YF' ? true : false;
-        if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
-          this.homePageIndicatorList = res.data.homePageIndicatorList;
-        } else {
-          this.homePageIndicatorList = null;
-        }
+        this.homePageIndicatorList = res.data.homePageIndicatorList;
+
         if (res.data.postType == 'JZ') {
           this.JZQuota = true;
         } else if (res.data.postType == 'GZ') {

+ 24 - 439
src/views/week/dailyApproval.vue

@@ -15,434 +15,23 @@
         <target :homePageIndicatorDate="homePageIndicatorList"></target>
       </template>
       <template v-else>
-        <van-collapse v-model="activeNames" v-if="!YFQuota">
-          <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <van-collapse-item v-if="!GZQuota" title="拜访数据(实时)" name="7">
-            <visitedRealTime
-              :reportTargetAll="reportTargetAll"
-              :powerGrade="powerGrade"
-              :JZQuota="JZQuota"></visitedRealTime>
-          </van-collapse-item>
-          <van-collapse-item title="建店布机" v-if="!JZQuota && !GZQuota" name="2">
-            <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
-          </van-collapse-item>
-          <van-collapse-item v-if="!JZQuota && !GZQuota" name="33" title="下单点数">
-            <placeOrder :reportTargetAll="reportTargetAll"></placeOrder>
-          </van-collapse-item>
-          <van-collapse-item name="16" v-if="!JZQuota && !GZQuota" title="专业时时丽分销店下单">
-            <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
-          </van-collapse-item>
-          <van-collapse-item v-if="type != 3 && type != 4" name="1" :title="saptitle">
-            <performanceSAP :reportTargetAll="reportTargetAll" :JZQuota="JZQuota"></performanceSAP>
-          </van-collapse-item>
-          <van-collapse-item name="17" v-if="!JZQuota && !GZQuota" title="超好贴分销店下单">
-            <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="43" title="纯态之家SAP(千元)">
-            <van-row style="margin-top: -10px">
-              <van-col span="12"><span class="leftTitle">本月</span></van-col
-              ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzCtzjMonthAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzCtzjQuarterAct)
-                  }}</span>
-                </p></van-col
-              >
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzCtzjMonthSuccessRate) }}%</span></p></van-col>-->
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzCtzjQuarterSuccessRate) }}%</span></p></van-col>-->
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzCtzjMonthGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzCtzjQuarterGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="42" title="商机关联的质感外墙业绩SAP(千元)">
-            <van-row style="margin-top: -10px">
-              <van-col span="12"><span class="leftTitle">本月</span></van-col
-              ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzZgwqMonthAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzZgwqQuarterAct)
-                  }}</span>
-                </p></van-col
-              >
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzZgwqMonthSuccessRate) }}%</span></p></van-col>-->
-              <!--            <van-col span="12" ><p>业绩达成率:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzZgwqQuarterSuccessRate) }}%</span></p></van-col>-->
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzZgwqMonthGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  业绩成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.gzZgwqQuarterGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="41" title="累计出货有效客户">
-            <van-row>
-              <!--            <van-col span="12"><span class="leftTitle">全年开户</span></van-col><van-col span="12"><span class="rightTitle">本月报备</span></van-col>-->
-              <van-col span="12"
-                ><p>
-                  全年实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzKhljYearAct)
-                  }}</span>
-                </p></van-col
-              >
-              <!--            <van-col span="12" ><p>报备成功数:<span class="colorbalck">{{ Micrometer(reportTargetAll.gzBbMonthSuccessNum) }}</span></p></van-col>-->
-              <!--            <van-col span="12"><p>&nbsp;</p></van-col>-->
-              <van-col span="12"
-                ><p>
-                  全年目标:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzKhljYearTarget)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"><p>&nbsp;</p></van-col>
-              <van-col span="12"
-                ><p>
-                  目标达成率:<span class="colorbalck"
-                    >{{ Micrometer(reportTargetAll.gzKhljSuccessRate) }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="GZQuota" name="40" title="今日拜访">
-            <van-row>
-              <van-col span="12"
-                ><p>
-                  公装客户数:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzVisitCustomerNum)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  工地数:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzVisitGdNum)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  潜在客户数:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.gzVisitQzCustomerNum)
-                  }}</span>
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="!JZQuota && !GZQuota" name="11" title="专业时时丽SAP(千元)">
-            <ZYSAP :reportTargetAll="reportTargetAll"></ZYSAP>
-          </van-collapse-item>
-          <van-collapse-item v-if="!JZQuota && !GZQuota" name="29" title="瓷砖胶SAP(千元)">
-            <van-row>
-              <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
-              ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
-              <van-col span="12"
-                ><p>
-                  实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.czjSapMonthAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  实际:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.czjSapQuarterAct)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  达成率:<span class="colorbalck"
-                    >{{ reportTargetAll.czjSapMonthSuccessRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  达成率:<span class="colorbalck"
-                    >{{ reportTargetAll.czjSapQuarterSuccessRate }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  成长率:<span class="colorbalck">{{ reportTargetAll.czjSapMonthGrowRate }}%</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  成长率:<span class="colorbalck"
-                    >{{ reportTargetAll.czjSapQuarterGrowRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="JZQuota" name="23" title="展厅上样">
-            <van-row>
-              <van-col span="24"
-                ><p>
-                  当月新增店数:<span class="colorbalck">{{
-                    reportTargetAll.exhibitionHallMonthAct
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  全年实际店数:<span class="colorbalck"
-                    >{{ Micrometer(reportTargetAll.exhibitionHallYearAct) }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  全年达成进度率:<span class="colorbalck"
-                    >{{ reportTargetAll.exhibitionHallYearRate }}%</span
-                  >
-                </p></van-col
-              >
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="JZQuota" name="22" title="基材粉料过账(千元)">
-            <van-row>
-              <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-              <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerMonth }}</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerQuarter }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单数(包):<span class="colorbalck">{{
-                    reportTargetAll.jcPostOrderNumMonth
-                  }}</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  下单数(包):<span class="colorbalck">{{
-                    reportTargetAll.jcPostOrderNumQuarter
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.jcPostOrderPriceMonth)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.jcPostOrderPriceQuarter)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateMonth }}%</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck"
-                    >{{ reportTargetAll.jcPostOrderRateQuarter }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-              <van-col span="24"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerYear }}</span>
-                </p>
-              </van-col>
-              <van-col span="24"
-                ><p>
-                  下单数(包):<span class="colorbalck">{{
-                    reportTargetAll.jcPostOrderNumYear
-                  }}</span>
-                </p>
-              </van-col>
-              <van-col span="24"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.jcPostOrderPriceYear)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="24"
-                ><p>
-                  下单率:<span class="colorbalck">{{ reportTargetAll.jcPostOrderRateYear }}%</span>
-                </p>
-              </van-col>
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item v-if="JZQuota" name="21" title="魔术漆过账(千元)">
-            <van-row>
-              <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-              <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerMonth }}</span>
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  客户数:<span class="colorbalck">{{
-                    reportTargetAll.msqPostCustomerQuarter
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.msqPostOrderPriceMonth)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.msqPostOrderPriceQuarter)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck"
-                    >{{ reportTargetAll.msqPostOrderRateMonth }}%</span
-                  >
-                </p>
-              </van-col>
-              <van-col span="12"
-                ><p>
-                  下单率:<span class="colorbalck"
-                    >{{ reportTargetAll.msqPostOrderRateQuarter }}%</span
-                  >
-                </p></van-col
-              >
-              <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-              <van-col span="24"
-                ><p>
-                  客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerYear }}</span>
-                </p>
-              </van-col>
-              <van-col span="24"
-                ><p>
-                  下单销售额:<span class="colorbalck">{{
-                    Micrometer(reportTargetAll.msqPostOrderPriceYear)
-                  }}</span>
-                </p></van-col
-              >
-              <van-col span="24"
-                ><p>
-                  下单率:<span class="colorbalck">{{ reportTargetAll.msqPostOrderRateYear }}%</span>
-                </p>
-              </van-col>
-            </van-row>
-          </van-collapse-item>
-          <van-collapse-item title="今日拜访照片" name="10" v-if="reportTarget.photoSummary">
-            <div
-              class="visitIMG1"
-              :style="{
-                overflow: 'hidden',
-                height: visitIMG1Flag ? 'auto' : '170px',
-              }">
-              <template v-for="(item, index) in reportTarget.photoSummary">
-                <van-col span="6" style="padding: 5px" @click="pviewFn(index)" :key="index">
-                  <img :src="item.fileUrl" alt="" />
-                </van-col>
-              </template>
-            </div>
-            <div
-              v-if="reportTarget.photoSummary.length > 8"
-              class="arrowIcon"
-              style="
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                padding: 5px 0;
-                font-size: 14px;
-                color: #969799;
-              "
-              @click="visitIMG1Flag = !visitIMG1Flag">
-              <template v-if="visitIMG1Flag">
-                <span style="margin-right: 5px">折叠</span>
-                <van-icon size="14" :name="require('@/assets/Icon/arrow-up.png')" />
-              </template>
-              <template v-else>
-                <span style="margin-right: 5px">展开</span>
-                <van-icon size="14" :name="require('@/assets/Icon/arrow-down.png')" />
-              </template>
-            </div>
-            <!-- 生动化陈列 sku -->
-            <template
-              v-if="
-                reportTarget.photoSkuImgSummaryeList && reportTarget.photoSkuImgSummaryeList.length
-              ">
-              <p style="padding-bottom: 10px; font-size: 14px; color: #1e5398; font-weight: 500">
-                SKU陈列照识别结果
-              </p>
-              <p style="padding-bottom: 10px; font-size: 14px; font-weight: 500">
-                目前识别桶装和战略产品合计106个,后续会增加被识别产品数
-              </p>
-              <el-table
-                :data="reportTarget.photoSkuImgSummaryeList"
-                border
-                class="table-headermd table-headermdhome"
-                style="width: 100%">
-                <el-table-column label="序号" type="index" width="50px" align="center" />
-                <el-table-column label="门店名称(编号)" prop="name" align="center">
-                  <template slot-scope="scope">
-                    {{ scope.row.name }}({{ scope.row.code }})
-                  </template>
-                </el-table-column>
-                <el-table-column label="SKU数量" prop="count" width="80px" align="center" />
-              </el-table>
+        <van-collapse v-model="activeNames" style="margin-top: -3px">
+          <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+            <!-- 0-历史指标  1-动态指标,String类型 -->
+            <target
+              v-if="reportTarget.targetType == '1'"
+              :homePageIndicatorDate="homePageIndicatorList"></target>
+            <template v-else>
+              <!-- 历史指标 -->
+              <Atarget :reportInfo="reportTarget"></Atarget>
+              <Btarget :reportInfo="reportTarget"></Btarget>
             </template>
-          </van-collapse-item>
+          </template>
+          <template v-else-if="!YFQuota">
+            <!-- YFQuota:应用服务平台 不显示各项指标 -->
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
         </van-collapse>
       </template>
       <div class="contentContainer">
@@ -548,6 +137,8 @@ import ZYSAP from '@/views/componentsTarget/ZYSAP';
 import veryGoodPlaceOrder from '@/views/componentsTarget/veryGoodPlaceOrder';
 import reportCustom from './reportCustom';
 import target from './target.vue';
+import Atarget from '@/views/home/Atarget.vue';
+import Btarget from '@/views/home/Btarget.vue';
 export default {
   name: 'daily',
   components: {
@@ -560,6 +151,8 @@ export default {
     veryGoodPlaceOrder,
     reportCustom,
     target,
+    Atarget,
+    Btarget,
   },
   data() {
     return {
@@ -686,9 +279,7 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(
-                window.location.origin + this.locationOrigin + '/dailyApprovalList',
-              );
+              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
             });
         } else {
           this.$toast.fail(res.msg);
@@ -727,9 +318,7 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(
-                window.location.origin + this.locationOrigin + '/dailyApprovalList',
-              );
+              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
             });
         } else {
           this.$toast.fail(res.msg);
@@ -744,11 +333,7 @@ export default {
       });
       getDetailById({ reportId: this.$route.query.reportId }).then((res) => {
         this.postName = res.data.postName;
-        if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
-          this.homePageIndicatorList = res.data.homePageIndicatorList;
-        } else {
-          this.homePageIndicatorList = null;
-        }
+        this.homePageIndicatorList = res.data.homePageIndicatorList;
         this.GZQuota = false;
         this.JZQuota = false;
         this.YFQuota = res.data.postType == 'YF' ? true : false;
@@ -769,7 +354,7 @@ export default {
                 message: '日报已审批',
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               });
           } else {
             this.reportTargetAll = res.data.reportTargetAll;

+ 187 - 493
src/views/week/dailyDetails.vue

@@ -8,7 +8,7 @@
             <div
               class="shareBtn"
               @click="clickShareFlag(-1)"
-              v-if="reportTarget && source != 'share' && reportTarget.reportPostType == 'fx'">
+              v-if="reportTarget && source != 'share'">
               <van-icon name="share" />
               <div class="vedioLinks" @click.stop>
                 <span>一键分享日报,</span>
@@ -33,442 +33,25 @@
           <target :homePageIndicatorDate="homePageIndicatorList"></target>
         </template>
         <template v-else>
-          <van-collapse v-model="activeNames" v-if="!YFQuota">
-            <!-- YFQuota:应用服务平台 不显示各项指标 -->
-            <van-collapse-item v-if="!GZQuota" title="拜访数据(实时)" name="7">
-              <visitedRealTime
-                :reportTargetAll="reportTargetAll"
-                :powerGrade="powerGrade"
-                :JZQuota="JZQuota"></visitedRealTime>
-            </van-collapse-item>
-            <van-collapse-item title="建店布机" v-if="!JZQuota && !GZQuota" name="2">
-              <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
-            </van-collapse-item>
-            <van-collapse-item v-if="!JZQuota && !GZQuota" name="33" title="下单点数">
-              <placeOrder :reportTargetAll="reportTargetAll"></placeOrder>
-            </van-collapse-item>
-            <van-collapse-item name="16" v-if="!JZQuota && !GZQuota" title="专业时时丽分销店下单">
-              <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
-            </van-collapse-item>
-            <van-collapse-item v-if="type != 3 && type != 4" name="1" :title="saptitle">
-              <performanceSAP
-                :reportTargetAll="reportTargetAll"
-                :JZQuota="JZQuota"></performanceSAP>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="43" title="纯态之家SAP(千元)">
-              <van-row style="margin-top: -10px">
-                <van-col span="12"><span class="leftTitle">本月</span></van-col
-                ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzCtzjMonthAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzCtzjQuarterAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzCtzjMonthGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzCtzjQuarterGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="42" title="商机关联的质感外墙业绩SAP(千元)">
-              <van-row style="margin-top: -10px">
-                <van-col span="12"><span class="leftTitle">本月</span></van-col
-                ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzZgwqMonthAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzZgwqQuarterAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzZgwqMonthGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzZgwqQuarterGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="41" title="累计出货有效客户">
-              <van-row>
-                <van-col span="12"
-                  ><p>
-                    全年实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzKhljYearAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    全年目标:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzKhljYearTarget)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"><p>&nbsp;</p></van-col>
-                <van-col span="12"
-                  ><p>
-                    目标达成率:<span class="colorbalck"
-                      >{{ Micrometer(reportTargetAll.gzKhljSuccessRate) }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="40" title="今日拜访">
-              <van-row>
-                <van-col span="12"
-                  ><p>
-                    公装客户数:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzVisitCustomerNum)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    工地数:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzVisitGdNum)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    潜在客户数:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzVisitQzCustomerNum)
-                    }}</span>
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="!JZQuota && !GZQuota" name="11" title="专业时时丽SAP(千元)">
-              <ZYSAP :reportTargetAll="reportTargetAll"></ZYSAP>
-            </van-collapse-item>
-            <van-collapse-item v-if="!JZQuota && !GZQuota" name="29" title="瓷砖胶SAP(千元)">
-              <van-row>
-                <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
-                ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.czjSapMonthAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.czjSapQuarterAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    达成率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapMonthSuccessRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    达成率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapQuarterSuccessRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapMonthGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapQuarterGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item name="17" v-if="!JZQuota && !GZQuota" title="超好贴分销店下单">
-              <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
-            </van-collapse-item>
-            <van-collapse-item v-if="JZQuota" name="23" title="展厅上样">
-              <van-row>
-                <van-col span="24"
-                  ><p>
-                    当月新增店数:<span class="colorbalck">{{
-                      reportTargetAll.exhibitionHallMonthAct
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    全年实际店数:<span class="colorbalck"
-                      >{{ Micrometer(reportTargetAll.exhibitionHallYearAct) }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    全年达成进度率:<span class="colorbalck"
-                      >{{ reportTargetAll.exhibitionHallYearRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="JZQuota" name="22" title="基材粉料过账(千元)">
-              <van-row>
-                <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-                <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerMonth }}</span>
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{
-                      reportTargetAll.jcPostCustomerQuarter
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单数(包):<span class="colorbalck">{{
-                      reportTargetAll.jcPostOrderNumMonth
-                    }}</span>
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    下单数(包):<span class="colorbalck">{{
-                      reportTargetAll.jcPostOrderNumQuarter
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.jcPostOrderPriceMonth)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.jcPostOrderPriceQuarter)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.jcPostOrderRateMonth }}%</span
-                    >
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.jcPostOrderRateQuarter }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-                <van-col span="24"
-                  ><p>
-                    客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerYear }}</span>
-                  </p>
-                </van-col>
-                <van-col span="24"
-                  ><p>
-                    下单数(包):<span class="colorbalck">{{
-                      reportTargetAll.jcPostOrderNumYear
-                    }}</span>
-                  </p>
-                </van-col>
-                <van-col span="24"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.jcPostOrderPriceYear)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="24"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.jcPostOrderRateYear }}%</span
-                    >
-                  </p>
-                </van-col>
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="JZQuota" name="21" title="魔术漆过账(千元)">
-              <van-row>
-                <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-                <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{
-                      reportTargetAll.msqPostCustomerMonth
-                    }}</span>
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{
-                      reportTargetAll.msqPostCustomerQuarter
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.msqPostOrderPriceMonth)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.msqPostOrderPriceQuarter)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.msqPostOrderRateMonth }}%</span
-                    >
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.msqPostOrderRateQuarter }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-                <van-col span="24"
-                  ><p>
-                    客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerYear }}</span>
-                  </p>
-                </van-col>
-                <van-col span="24"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.msqPostOrderPriceYear)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="24"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.msqPostOrderRateYear }}%</span
-                    >
-                  </p>
-                </van-col>
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item title="今日拜访照片" name="10" v-if="reportTarget.photoSummary">
-              <div
-                class="visitIMG1"
-                :style="{
-                  overflow: 'hidden',
-                  height: visitIMG1Flag ? 'auto' : '170px',
-                }">
-                <template v-for="(item, index) in reportTarget.photoSummary">
-                  <van-col span="6" style="padding: 5px" @click="pviewFn(index)" :key="index">
-                    <img :src="item.fileUrl" alt="" />
-                  </van-col>
-                </template>
-              </div>
-              <div
-                v-if="reportTarget.photoSummary.length > 8"
-                class="arrowIcon"
-                style="
-                  display: flex;
-                  align-items: center;
-                  justify-content: center;
-                  padding: 5px 0;
-                  font-size: 14px;
-                  color: #969799;
-                "
-                @click="visitIMG1Flag = !visitIMG1Flag">
-                <template v-if="visitIMG1Flag">
-                  <span style="margin-right: 5px">折叠</span>
-                  <van-icon size="14" :name="require('@/assets/Icon/arrow-up.png')" />
-                </template>
+          <van-collapse v-model="activeNames" style="margin-top: -3px">
+            <template v-if="!YFQuota">
+              <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+                <!-- 0-历史指标  1-动态指标,String类型 -->
+                <target
+                  v-if="reportTarget.targetType == '1'"
+                  :homePageIndicatorDate="homePageIndicatorList"></target>
                 <template v-else>
-                  <span style="margin-right: 5px">展开</span>
-                  <van-icon size="14" :name="require('@/assets/Icon/arrow-down.png')" />
+                  <!-- 历史指标 -->
+                  <Atarget :reportInfo="reportTarget"></Atarget>
+                  <Btarget :reportInfo="reportTarget"></Btarget>
                 </template>
-              </div>
-              <!-- 生动化陈列 sku -->
-              <template
-                v-if="
-                  reportTarget.photoSkuImgSummaryeList &&
-                  reportTarget.photoSkuImgSummaryeList.length
-                ">
-                <p style="padding-bottom: 10px; font-size: 14px; color: #1e5398; font-weight: 500">
-                  SKU陈列照识别结果
-                </p>
-                <p style="padding-bottom: 10px; font-size: 14px; font-weight: 500">
-                  目前识别桶装和战略产品合计106个,后续会增加被识别产品数
-                </p>
-                <el-table
-                  :data="reportTarget.photoSkuImgSummaryeList"
-                  border
-                  class="table-headermd table-headermdhome"
-                  style="width: 100%">
-                  <el-table-column label="序号" type="index" width="50px" align="center" />
-                  <el-table-column label="门店名称(编号)" prop="name" align="center">
-                    <template slot-scope="scope">
-                      {{ scope.row.name }}({{ scope.row.code }})
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="SKU数量" prop="count" width="80px" align="center" />
-                </el-table>
               </template>
-            </van-collapse-item>
+              <template v-else>
+                <!-- YFQuota:应用服务平台 不显示各项指标 -->
+                <Atarget :reportInfo="reportTarget"></Atarget>
+                <Btarget :reportInfo="reportTarget"></Btarget>
+              </template>
+            </template>
           </van-collapse>
         </template>
         <div class="contentContainer">
@@ -549,7 +132,7 @@
                 <div
                   class="shareBtn"
                   @click="clickShareFlag(index)"
-                  v-if="reportTarget && source != 'share' && reportTarget.reportPostType == 'fx'">
+                  v-if="reportTarget && source != 'share'">
                   <van-icon name="share" />
                 </div>
               </div>
@@ -602,7 +185,10 @@
       :urlList="urlList"
       :reportRemarksIndex="reportRemarksIndex"
       :reportContents="reportContents"
-      :checkedPlan="checkedPlan"></share>
+      :checkedPlan="checkedPlan"
+      :isTarget="isTarget"
+      :isReportCustom="isReportCustom"
+      :isHistory="reportTarget.isHistory"></share>
     <!--分享图片列表 -->
     <el-dialog
       title="选择分享的内容"
@@ -612,36 +198,67 @@
       :close-on-click-modal="false"
       @close="wuliaoTableClose"
       custom-class="shareImgFlag">
-      <div v-if="reportTarget.photoSummary">
+      <div>
         <!-- <p style="margin-bottom: 10px; margin-top: 0; display: flex">
           今日总结&明日规划的文本内容<van-checkbox
             v-model="checkedPlan"
             style="margin-left: 10px"></van-checkbox>
         </p> -->
-        <p style="margin-top: 0">请点击勾选想要分享的今日拜访照片</p>
-        <div class="shareVisitImg">
-          <template v-for="(itemImg, indexImg) in reportTarget.photoSummary">
-            <div>
-              <img :src="itemImg.fileUrl" alt="" @click="selectImg(itemImg)" />
-              <van-icon
-                @click.stop
-                name="success"
-                class="activaImg"
-                color="#fff"
-                size="15"
-                style="
-                  position: absolute;
-                  right: 0;
-                  bottom: 0;
-                  /* margin: -15px 0 0 -15px; */
-                  pointer-events: none;
-                  background: #2b73cf;
-                  border: 2px solid #fff;
-                "
-                v-if="itemImg.checked" />
-            </div>
-          </template>
-        </div>
+        <p
+          style="
+            margin-bottom: 10px;
+            margin-top: 0;
+            display: flex;
+            align-items: center;
+            cursor: pointer;
+          "
+          v-if="reportTarget.isHistory == '0'"
+          @click="isTarget = !isTarget">
+          <van-checkbox v-model="isTarget" style="margin-right: 10px" @click.stop></van-checkbox>
+          <span>日报指标</span>
+        </p>
+        <p
+          style="
+            margin-bottom: 10px;
+            margin-top: 0;
+            display: flex;
+            align-items: center;
+            cursor: pointer;
+          "
+          v-if="reportTarget.isHistory == '0'"
+          @click="isReportCustom = !isReportCustom">
+          <van-checkbox
+            v-model="isReportCustom"
+            style="margin-right: 10px"
+            @click.stop></van-checkbox>
+          <span>日报填写内容</span>
+        </p>
+        <template v-if="reportTarget.photoSummary">
+          <p style="margin-top: 0">请点击勾选想要分享的今日拜访照片</p>
+          <div class="shareVisitImg">
+            <template v-for="(itemImg, indexImg) in reportTarget.photoSummary">
+              <div>
+                <img :src="itemImg.fileUrl" alt="" @click="selectImg(itemImg)" />
+                <van-icon
+                  @click.stop
+                  name="success"
+                  class="activaImg"
+                  color="#fff"
+                  size="15"
+                  style="
+                    position: absolute;
+                    right: 0;
+                    bottom: 0;
+                    /* margin: -15px 0 0 -15px; */
+                    pointer-events: none;
+                    background: #2b73cf;
+                    border: 2px solid #fff;
+                  "
+                  v-if="itemImg.checked" />
+              </div>
+            </template>
+          </div>
+        </template>
       </div>
       <span slot="footer" class="footer-btn">
         <van-button plain type="primary" @click="shareImgFlag = false">取 消</van-button>
@@ -673,6 +290,8 @@ import veryGoodPlaceOrder from '@/views/componentsTarget/veryGoodPlaceOrder';
 import share from '@/components/share';
 import reportCustom from './reportCustom';
 import target from './target.vue';
+import Atarget from '@/views/home/Atarget.vue';
+import Btarget from '@/views/home/Btarget.vue';
 
 export default {
   name: 'daily',
@@ -687,6 +306,8 @@ export default {
     share,
     reportCustom,
     target,
+    Atarget,
+    Btarget,
   },
   data() {
     return {
@@ -754,6 +375,8 @@ export default {
       managerRemarkContent: '',
       postName: '',
       homePageIndicatorList: null,
+      isTarget: false, //日报指标
+      isReportCustom: true, //日报填写内容
     };
   },
   created() {
@@ -801,31 +424,69 @@ export default {
         buryingPointName: '日报详情分享',
         buryingPointPosition: '日报详情',
       });
+      this.isReportCustom = true;
       this.urlList = [];
       this.reportRemarksIndex = index;
+      // <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
+      if (this.reportTarget.isHistory == '0') {
+        this.setPhotoSummary();
+        this.shareImgFlag = true;
+      } else {
+        this.setPhotoSummary();
+        // 没有图片直接打开分享
+        if (this.reportTarget.photoSummary && this.reportTarget.photoSummary.length) {
+          // 选择分享的图片
+          this.setShareFlag = true;
+        }
+      }
+    },
+    setPhotoSummary() {
       if (this.reportTarget.photoSummary && this.reportTarget.photoSummary.length) {
         // 重置分享图片状态
         this.reportTarget.photoSummary.forEach((item) => {
-          // item.photos.forEach((val) => {
           this.$set(item, 'checked', false);
-          // });
         });
-        // 选择分享的图片
-        this.shareImgFlag = true;
-      } else {
-        this.setShareFlag = true;
       }
     },
     // 确认分享
     confirmShare() {
-      this.reportTarget.photoSummary.forEach((item) => {
-        // item.photos.forEach((val) => {
-        if (item.checked) this.urlList.push(item.fileUrl);
-        // });
-      });
-      if (this.urlList.length == 0 && !this.checkedPlan) {
-        this.$notify({ type: 'warning', message: '请选择分享内容!', className: 'notifyIndex' });
-        return;
+      // 旧的分享没有图标不会进来
+      // 是否有图片
+      if (this.reportTarget.photoSummary) {
+        this.reportTarget.photoSummary.forEach((item) => {
+          if (item.checked) this.urlList.push(item.fileUrl);
+        });
+
+        if (this.reportTarget.isHistory == '0') {
+          if (this.urlList.length == 0 && !this.isTarget && !this.isReportCustom) {
+            this.$notify({
+              type: 'warning',
+              message: '请选择分享内容!',
+              className: 'notifyIndex',
+            });
+            return;
+          }
+        } else {
+          if (this.urlList.length == 0 && !this.checkedPlan) {
+            this.$notify({
+              type: 'warning',
+              message: '请选择分享内容!',
+              className: 'notifyIndex',
+            });
+            return;
+          }
+        }
+      } else {
+        if (this.reportTarget.isHistory == '0') {
+          if (!this.isTarget && !this.isReportCustom) {
+            this.$notify({
+              type: 'warning',
+              message: '请选择分享内容!',
+              className: 'notifyIndex',
+            });
+            return;
+          }
+        }
       }
       buryingPoint({
         systemModel: '日报审核',
@@ -905,11 +566,7 @@ export default {
       });
       getDetailById({ reportId: this.$route.query.reportId }).then((res) => {
         loading1.clear();
-        if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
-          this.homePageIndicatorList = res.data.homePageIndicatorList;
-        } else {
-          this.homePageIndicatorList = null;
-        }
+        this.homePageIndicatorList = res.data.homePageIndicatorList;
         this.postName = res.data.postName;
         this.reportTargetAll = res.data.reportTargetAll;
         this.reportTarget = res.data;
@@ -1212,25 +869,60 @@ export default {
     flex-direction: column;
     max-height: 70%;
     margin-top: 0 !important;
+    border-radius: 12px;
+    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+    z-index: 10000;
     .el-dialog__header {
-      height: 40px;
+      height: 50px;
       display: flex;
-      justify-content: right;
+      align-items: center;
+      justify-content: center;
+      border-bottom: 1px solid #ebeef5;
+      padding: 0 20px;
+      background-color: #fff;
+      .el-dialog__title {
+        font-size: 16px;
+        font-weight: 500;
+        color: #303133;
+      }
       .el-dialog__headerbtn {
-        position: static !important;
+        position: absolute;
+        right: 15px;
+        top: 15px;
       }
     }
     .el-dialog__body {
-      padding: 30px 20px !important;
+      padding: 20px !important;
       overflow-y: auto;
       flex: 1;
+      background-color: #fff;
     }
     .cell {
       font-size: 12px;
     }
     .footer-btn {
       display: flex;
-      justify-content: space-around;
+      justify-content: center;
+      gap: 30px;
+      padding: 15px 20px;
+      border-top: 1px solid #ebeef5;
+      background-color: #fff;
+      border-radius: 0 0 12px 12px;
+      margin-top: 0 !important;
+      button {
+        width: 120px;
+        height: 36px;
+        border-radius: 18px;
+      }
+      .van-button--primary {
+        background-color: #2b73cf;
+        border-color: #2b73cf;
+      }
+      .van-button--primary.van-button--plain {
+        color: #999;
+        border-color: #dcdfe6;
+        background-color: #f5f7fa;
+      }
     }
   }
 }
@@ -1244,20 +936,22 @@ export default {
       margin-right: 3%;
       margin-top: 10px;
       position: relative;
+      border-radius: 8px;
+      overflow: hidden;
+      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
       img {
         width: 100%;
         height: 100%;
+        object-fit: cover;
       }
     }
   }
-  .el-dialog__header {
-    display: flex;
-    .el-dialog__title {
-      flex: 1;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-    }
+  .el-dialog__title {
+    height: 50px;
+    line-height: 50px !important;
+  }
+  .el-dialog__footer {
+    padding: 0;
   }
 }
 .notifyIndex {

+ 129 - 490
src/views/week/dailyHistoricalDetails.vue

@@ -10,12 +10,7 @@
             <div
               class="shareBtn"
               @click="clickShareFlag(-1)"
-              v-if="
-                reportTarget &&
-                source != 'share' &&
-                reportTarget.reportPostType == 'fx' &&
-                reportTarget.status != -1
-              ">
+              v-if="reportTarget && source != 'share' && reportTarget.status != -1">
               <van-icon name="share" />
               <div class="vedioLinks" @click.stop>
                 <span>一键分享日报,</span>
@@ -46,442 +41,25 @@
           <target :homePageIndicatorDate="homePageIndicatorList"></target>
         </template>
         <template v-else>
-          <van-collapse v-model="activeNames" v-if="!YFQuota">
-            <!-- YFQuota:应用服务平台 不显示各项指标 -->
-            <van-collapse-item v-if="!GZQuota" title="拜访数据(实时)" name="7">
-              <visitedRealTime
-                :reportTargetAll="reportTargetAll"
-                :powerGrade="powerGrade"
-                :JZQuota="JZQuota"></visitedRealTime>
-            </van-collapse-item>
-            <van-collapse-item title="建店布机" v-if="!JZQuota && !GZQuota" name="2">
-              <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
-            </van-collapse-item>
-            <van-collapse-item v-if="!JZQuota && !GZQuota" name="33" title="下单点数">
-              <placeOrder :reportTargetAll="reportTargetAll"></placeOrder>
-            </van-collapse-item>
-            <van-collapse-item name="16" v-if="!JZQuota && !GZQuota" title="专业时时丽分销店下单">
-              <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
-            </van-collapse-item>
-            <van-collapse-item v-if="type != 3 && type != 4" name="1" :title="saptitle">
-              <performanceSAP
-                :reportTargetAll="reportTargetAll"
-                :JZQuota="JZQuota"></performanceSAP>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="43" title="纯态之家SAP(千元)">
-              <van-row style="margin-top: -10px">
-                <van-col span="12"><span class="leftTitle">本月</span></van-col
-                ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzCtzjMonthAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzCtzjQuarterAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzCtzjMonthGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzCtzjQuarterGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="42" title="商机关联的质感外墙业绩SAP(千元)">
-              <van-row style="margin-top: -10px">
-                <van-col span="12"><span class="leftTitle">本月</span></van-col
-                ><van-col span="12"><span class="rightTitle">本季</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzZgwqMonthAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzZgwqQuarterAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzZgwqMonthGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    业绩成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.gzZgwqQuarterGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="41" title="累计出货有效客户">
-              <van-row>
-                <van-col span="12"
-                  ><p>
-                    全年实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzKhljYearAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    全年目标:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzKhljYearTarget)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"><p>&nbsp;</p></van-col>
-                <van-col span="12"
-                  ><p>
-                    目标达成率:<span class="colorbalck"
-                      >{{ Micrometer(reportTargetAll.gzKhljSuccessRate) }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="GZQuota" name="40" title="今日拜访">
-              <van-row>
-                <van-col span="12"
-                  ><p>
-                    公装客户数:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzVisitCustomerNum)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    工地数:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzVisitGdNum)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    潜在客户数:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.gzVisitQzCustomerNum)
-                    }}</span>
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="!JZQuota && !GZQuota" name="11" title="专业时时丽SAP(千元)">
-              <ZYSAP :reportTargetAll="reportTargetAll"></ZYSAP>
-            </van-collapse-item>
-            <van-collapse-item v-if="!JZQuota && !GZQuota" name="29" title="瓷砖胶SAP(千元)">
-              <van-row>
-                <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
-                ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.czjSapMonthAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    实际:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.czjSapQuarterAct)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    达成率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapMonthSuccessRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    达成率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapQuarterSuccessRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapMonthGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    成长率:<span class="colorbalck"
-                      >{{ reportTargetAll.czjSapQuarterGrowRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item name="17" v-if="!JZQuota && !GZQuota" title="超好贴分销店下单">
-              <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
-            </van-collapse-item>
-            <van-collapse-item v-if="JZQuota" name="23" title="展厅上样">
-              <van-row>
-                <van-col span="24"
-                  ><p>
-                    当月新增店数:<span class="colorbalck">{{
-                      reportTargetAll.exhibitionHallMonthAct
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    全年实际店数:<span class="colorbalck"
-                      >{{ Micrometer(reportTargetAll.exhibitionHallYearAct) }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    全年达成进度率:<span class="colorbalck"
-                      >{{ reportTargetAll.exhibitionHallYearRate }}%</span
-                    >
-                  </p></van-col
-                >
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="JZQuota" name="22" title="基材粉料过账(千元)">
-              <van-row>
-                <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-                <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerMonth }}</span>
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{
-                      reportTargetAll.jcPostCustomerQuarter
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单数(包):<span class="colorbalck">{{
-                      reportTargetAll.jcPostOrderNumMonth
-                    }}</span>
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    下单数(包):<span class="colorbalck">{{
-                      reportTargetAll.jcPostOrderNumQuarter
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.jcPostOrderPriceMonth)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.jcPostOrderPriceQuarter)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.jcPostOrderRateMonth }}%</span
-                    >
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.jcPostOrderRateQuarter }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-                <van-col span="24"
-                  ><p>
-                    客户数:<span class="colorbalck">{{ reportTargetAll.jcPostCustomerYear }}</span>
-                  </p>
-                </van-col>
-                <van-col span="24"
-                  ><p>
-                    下单数(包):<span class="colorbalck">{{
-                      reportTargetAll.jcPostOrderNumYear
-                    }}</span>
-                  </p>
-                </van-col>
-                <van-col span="24"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.jcPostOrderPriceYear)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="24"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.jcPostOrderRateYear }}%</span
-                    >
-                  </p>
-                </van-col>
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item v-if="JZQuota" name="21" title="魔术漆过账(千元)">
-              <van-row>
-                <van-col span="12"><span class="leftTitle">本月实际</span></van-col>
-                <van-col span="12"><span class="rightTitle">本季实际</span></van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{
-                      reportTargetAll.msqPostCustomerMonth
-                    }}</span>
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    客户数:<span class="colorbalck">{{
-                      reportTargetAll.msqPostCustomerQuarter
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.msqPostOrderPriceMonth)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.msqPostOrderPriceQuarter)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.msqPostOrderRateMonth }}%</span
-                    >
-                  </p>
-                </van-col>
-                <van-col span="12"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.msqPostOrderRateQuarter }}%</span
-                    >
-                  </p></van-col
-                >
-                <van-col span="24"><span class="leftTitle">年度累计实际</span></van-col>
-                <van-col span="24"
-                  ><p>
-                    客户数:<span class="colorbalck">{{ reportTargetAll.msqPostCustomerYear }}</span>
-                  </p>
-                </van-col>
-                <van-col span="24"
-                  ><p>
-                    下单销售额:<span class="colorbalck">{{
-                      Micrometer(reportTargetAll.msqPostOrderPriceYear)
-                    }}</span>
-                  </p></van-col
-                >
-                <van-col span="24"
-                  ><p>
-                    下单率:<span class="colorbalck"
-                      >{{ reportTargetAll.msqPostOrderRateYear }}%</span
-                    >
-                  </p>
-                </van-col>
-              </van-row>
-            </van-collapse-item>
-            <van-collapse-item title="今日拜访照片" name="10" v-if="reportTarget.photoSummary">
-              <div
-                class="visitIMG1"
-                :style="{
-                  overflow: 'hidden',
-                  height: visitIMG1Flag ? 'auto' : '170px',
-                }">
-                <template v-for="(item, index) in reportTarget.photoSummary">
-                  <van-col span="6" style="padding: 5px" @click="pviewFn(index)" :key="index">
-                    <img :src="item.fileUrl" alt="" />
-                  </van-col>
-                </template>
-              </div>
-              <div
-                v-if="reportTarget.photoSummary.length > 8"
-                class="arrowIcon"
-                style="
-                  display: flex;
-                  align-items: center;
-                  justify-content: center;
-                  padding: 5px 0;
-                  font-size: 14px;
-                  color: #969799;
-                "
-                @click="visitIMG1Flag = !visitIMG1Flag">
-                <template v-if="visitIMG1Flag">
-                  <span style="margin-right: 5px">折叠</span>
-                  <van-icon size="14" :name="require('@/assets/Icon/arrow-up.png')" />
-                </template>
+          <van-collapse v-model="activeNames" style="margin-top: -3px">
+            <template v-if="!YFQuota">
+              <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+                <!-- 0-历史指标  1-动态指标,String类型 -->
+                <target
+                  v-if="reportTarget.targetType == '1'"
+                  :homePageIndicatorDate="homePageIndicatorList"></target>
                 <template v-else>
-                  <span style="margin-right: 5px">展开</span>
-                  <van-icon size="14" :name="require('@/assets/Icon/arrow-down.png')" />
+                  <!-- 历史指标 -->
+                  <Atarget :reportInfo="reportTarget"></Atarget>
+                  <Btarget :reportInfo="reportTarget"></Btarget>
                 </template>
-              </div>
-              <!-- 生动化陈列 sku -->
-              <template
-                v-if="
-                  reportTarget.photoSkuImgSummaryeList &&
-                  reportTarget.photoSkuImgSummaryeList.length
-                ">
-                <p style="padding-bottom: 10px; font-size: 14px; color: #1e5398; font-weight: 500">
-                  SKU陈列照识别结果
-                </p>
-                <p style="padding-bottom: 10px; font-size: 14px; font-weight: 500">
-                  目前识别桶装和战略产品合计106个,后续会增加被识别产品数
-                </p>
-                <el-table
-                  :data="reportTarget.photoSkuImgSummaryeList"
-                  border
-                  class="table-headermd table-headermdhome"
-                  style="width: 100%">
-                  <el-table-column label="序号" type="index" width="50px" align="center" />
-                  <el-table-column label="门店名称(编号)" prop="name" align="center">
-                    <template slot-scope="scope">
-                      {{ scope.row.name }}({{ scope.row.code }})
-                    </template>
-                  </el-table-column>
-                  <el-table-column label="SKU数量" prop="count" width="80px" align="center" />
-                </el-table>
               </template>
-            </van-collapse-item>
+              <template v-else>
+                <!-- YFQuota:应用服务平台 不显示各项指标 -->
+                <Atarget :reportInfo="reportTarget"></Atarget>
+                <Btarget :reportInfo="reportTarget"></Btarget>
+              </template>
+            </template>
           </van-collapse>
         </template>
         <div class="contentContainer">
@@ -561,12 +139,7 @@
                 <div
                   class="shareBtn"
                   @click="clickShareFlag(index)"
-                  v-if="
-                    reportTarget &&
-                    source != 'share' &&
-                    reportTarget.reportPostType == 'fx' &&
-                    reportTarget.status != -1
-                  ">
+                  v-if="reportTarget && source != 'share' && reportTarget.status != -1">
                   <van-icon name="share" />
                 </div>
               </div>
@@ -582,7 +155,7 @@
             </div>
           </div>
         </div>
-        <div class="contentContainer">
+        <div class="contentContainer" v-if="reportTarget.comment && reportTarget.status != -1">
           <p class="contentContainerTitle">点评</p>
           <div style="padding: 10px 0">
             <van-field
@@ -597,7 +170,7 @@
         </div>
       </div>
       <br />
-      <div class="contentborder">
+      <div class="contentborder" v-if="reportTarget.comment && reportTarget.status != -1">
         <van-button type="info" size="small" plain class="Btn1" @click="submint"
           >提交点评</van-button
         >
@@ -631,7 +204,10 @@
       :urlList="urlList"
       :reportRemarksIndex="reportRemarksIndex"
       :reportContents="reportContents"
-      :checkedPlan="checkedPlan"></share>
+      :checkedPlan="checkedPlan"
+      :isTarget="isTarget"
+      :isReportCustom="isReportCustom"
+      :isHistory="reportTarget.isHistory"></share>
     <!--分享图片列表 -->
     <el-dialog
       title="选择分享的内容"
@@ -641,36 +217,50 @@
       :close-on-click-modal="false"
       @close="wuliaoTableClose"
       custom-class="shareImgFlag">
-      <div v-if="reportTarget.photoSummary">
+      <div>
         <!-- <p style="margin-bottom: 10px; margin-top: 0; display: flex">
           今日总结&明日规划的文本内容<van-checkbox
             v-model="checkedPlan"
             style="margin-left: 10px"></van-checkbox>
         </p> -->
-        <p style="margin-top: 0">请点击勾选想要分享的今日拜访照片</p>
-        <div class="shareVisitImg">
-          <template v-for="(itemImg, indexImg) in reportTarget.photoSummary">
-            <div>
-              <img :src="itemImg.fileUrl" alt="" @click="selectImg(itemImg)" />
-              <van-icon
-                @click.stop
-                name="success"
-                class="activaImg"
-                color="#fff"
-                size="15"
-                style="
-                  position: absolute;
-                  right: 0;
-                  bottom: 0;
-                  /* margin: -15px 0 0 -15px; */
-                  pointer-events: none;
-                  background: #2b73cf;
-                  border: 2px solid #fff;
-                "
-                v-if="itemImg.checked" />
-            </div>
-          </template>
-        </div>
+        <p
+          style="margin-bottom: 10px; margin-top: 0; display: flex"
+          v-if="reportTarget.isHistory == '0'">
+          日报指标<van-checkbox v-model="isTarget" style="margin-left: 10px"></van-checkbox>
+        </p>
+        <p
+          style="margin-bottom: 10px; margin-top: 0; display: flex"
+          v-if="reportTarget.isHistory == '0'">
+          日报填写内容<van-checkbox
+            v-model="isReportCustom"
+            style="margin-left: 10px"></van-checkbox>
+        </p>
+        <template v-if="reportTarget.photoSummary">
+          <p style="margin-top: 0">请点击勾选想要分享的今日拜访照片</p>
+          <div class="shareVisitImg">
+            <template v-for="(itemImg, indexImg) in reportTarget.photoSummary">
+              <div>
+                <img :src="itemImg.fileUrl" alt="" @click="selectImg(itemImg)" />
+                <van-icon
+                  @click.stop
+                  name="success"
+                  class="activaImg"
+                  color="#fff"
+                  size="15"
+                  style="
+                    position: absolute;
+                    right: 0;
+                    bottom: 0;
+                    /* margin: -15px 0 0 -15px; */
+                    pointer-events: none;
+                    background: #2b73cf;
+                    border: 2px solid #fff;
+                  "
+                  v-if="itemImg.checked" />
+              </div>
+            </template>
+          </div>
+        </template>
       </div>
       <span slot="footer" class="footer-btn">
         <van-button plain type="primary" @click="shareImgFlag = false">取 消</van-button>
@@ -703,6 +293,8 @@ import veryGoodPlaceOrder from '@/views/componentsTarget/veryGoodPlaceOrder';
 import share from '@/components/share';
 import reportCustom from './reportCustom';
 import target from './target.vue';
+import Atarget from '@/views/home/Atarget.vue';
+import Btarget from '@/views/home/Btarget.vue';
 
 export default {
   name: 'daily',
@@ -717,6 +309,8 @@ export default {
     share,
     reportCustom,
     target,
+    Atarget,
+    Btarget,
   },
   data() {
     return {
@@ -787,6 +381,8 @@ export default {
       shareReportConfig: null,
       postName: '',
       homePageIndicatorList: null,
+      isTarget: false, //日报指标
+      isReportCustom: true, //日报填写内容
     };
   },
   watch: {
@@ -836,31 +432,69 @@ export default {
         buryingPointName: '日报详情分享',
         buryingPointPosition: '日报详情',
       });
+      this.isReportCustom = true;
       this.urlList = [];
       this.reportRemarksIndex = index;
+      // <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
+      if (this.reportTarget.isHistory == '0') {
+        this.setPhotoSummary();
+        this.shareImgFlag = true;
+      } else {
+        this.setPhotoSummary();
+        // 没有图片直接打开分享
+        if (this.reportTarget.photoSummary && this.reportTarget.photoSummary.length) {
+          // 选择分享的图片
+          this.setShareFlag = true;
+        }
+      }
+    },
+    setPhotoSummary() {
       if (this.reportTarget.photoSummary && this.reportTarget.photoSummary.length) {
         // 重置分享图片状态
         this.reportTarget.photoSummary.forEach((item) => {
-          // item.photos.forEach((val) => {
           this.$set(item, 'checked', false);
-          // });
         });
-        // 选择分享的图片
-        this.shareImgFlag = true;
-      } else {
-        this.setShareFlag = true;
       }
     },
     // 确认分享
     confirmShare() {
-      this.reportTarget.photoSummary.forEach((item) => {
-        // item.photos.forEach((val) => {
-        if (item.checked) this.urlList.push(item.fileUrl);
-        // });
-      });
-      if (this.urlList.length == 0 && !this.checkedPlan) {
-        this.$notify({ type: 'warning', message: '请选择分享内容!', className: 'notifyIndex' });
-        return;
+      // 旧的分享没有图标不会进来
+      // 是否有图片
+      if (this.reportTarget.photoSummary) {
+        this.reportTarget.photoSummary.forEach((item) => {
+          if (item.checked) this.urlList.push(item.fileUrl);
+        });
+
+        if (this.reportTarget.isHistory == '0') {
+          if (this.urlList.length == 0 && !this.isTarget && !this.isReportCustom) {
+            this.$notify({
+              type: 'warning',
+              message: '请选择分享内容!',
+              className: 'notifyIndex',
+            });
+            return;
+          }
+        } else {
+          if (this.urlList.length == 0 && !this.checkedPlan) {
+            this.$notify({
+              type: 'warning',
+              message: '请选择分享内容!',
+              className: 'notifyIndex',
+            });
+            return;
+          }
+        }
+      } else {
+        if (this.reportTarget.isHistory == '0') {
+          if (!this.isTarget && !this.isReportCustom) {
+            this.$notify({
+              type: 'warning',
+              message: '请选择分享内容!',
+              className: 'notifyIndex',
+            });
+            return;
+          }
+        }
       }
       buryingPoint({
         systemModel: '日报审核',
@@ -1016,9 +650,7 @@ export default {
               });
             });
         } else {
-          if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
-            this.homePageIndicatorList = res.data.homePageIndicatorList;
-          }
+          this.homePageIndicatorList = res.data.homePageIndicatorList;
           console.log(this.homePageIndicatorList);
           this.postName = res.data.postName;
           this.GZQuota = false;
@@ -1384,6 +1016,13 @@ export default {
       justify-content: center;
     }
   }
+  .el-dialog__title {
+    height: 50px;
+    line-height: 50px !important;
+  }
+  .el-dialog__footer {
+    padding: 0;
+  }
 }
 .notifyIndex {
   z-index: 999999 !important;

+ 21 - 6
src/views/week/doubleWeekly.vue

@@ -27,8 +27,20 @@
       <div class="lineGrey"></div>
       <div class="lineGrey"></div>
       <van-collapse v-model="activeNames">
-        <Atarget :reportInfo="reportTarget"></Atarget>
-        <Btarget :reportInfo="reportTarget"></Btarget>
+        <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+          <!-- 0-历史指标  1-动态指标,String类型 -->
+          <template v-if="reportTarget.targetType == '1'">
+            <target :homePageIndicatorDate="homePageIndicatorList"></target>
+          </template>
+          <template v-if="reportTarget.targetType == '0'">
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
+        </template>
+        <template v-else>
+          <Atarget :reportInfo="reportTarget"></Atarget>
+          <Btarget :reportInfo="reportTarget"></Btarget>
+        </template>
         <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <reportCustom
@@ -119,6 +131,7 @@ import zhiganwaiqiangSAP from '@/views/componentsTarget/zhiganwaiqiangSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 
 export default {
   name: 'home',
@@ -133,6 +146,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -165,6 +179,7 @@ export default {
       temporaryShow: '',
       type: '-1',
       JZQuota: false,
+      homePageIndicatorList: null,
     };
   },
   created() {
@@ -228,9 +243,10 @@ export default {
                 message: '半月报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               });
           } else {
+            this.homePageIndicatorList = res.data.homePageIndicatorList || null;
             this.reportTargetAll = res.data.reportTargetAll;
             this.reportTarget = res.data;
             this.type = res.data.userType;
@@ -520,9 +536,7 @@ export default {
             })
             .then(() => {
               if (this.$route.query.reportId != undefined) {
-                window.location.replace(
-                  window.location.origin + this.locationOrigin + '/myHistoricalDaily',
-                );
+                window.location.replace(window.location.origin + '/mobile/myHistoricalDaily');
               } else {
                 this.onClickLeft();
                 // window.location.replace(window.location.origin + '/mobile/home');
@@ -548,6 +562,7 @@ export default {
         this.reportTargetAll = res.data.reportTargetAll;
         this.reportTarget = res.data;
         this.type = res.data.userType;
+        this.homePageIndicatorList = res.data.homePageIndicatorList || null;
         var reportContentsList1 = [];
         var reportContentsList2 = [];
         var reportContentsList3 = [];

+ 21 - 9
src/views/week/doubleWeeklyApproval.vue

@@ -13,8 +13,20 @@
       <div class="lineGrey"></div>
       <div class="lineGrey"></div>
       <van-collapse v-model="activeNames">
-        <Atarget :reportInfo="reportTarget"></Atarget>
-        <Btarget :reportInfo="reportTarget"></Btarget>
+        <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+          <!-- 0-历史指标  1-动态指标,String类型 -->
+          <template v-if="reportTarget.targetType == '1'">
+            <target :homePageIndicatorDate="homePageIndicatorList"></target>
+          </template>
+          <template v-if="reportTarget.targetType == '0'">
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
+        </template>
+        <template v-else>
+          <Atarget :reportInfo="reportTarget"></Atarget>
+          <Btarget :reportInfo="reportTarget"></Btarget>
+        </template>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
 
@@ -124,6 +136,7 @@ import zhiganwaiqiangSAP from '@/views/componentsTarget/zhiganwaiqiangSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 
 export default {
   name: 'home',
@@ -138,6 +151,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -173,6 +187,7 @@ export default {
       type: '-1',
       JZQuota: false,
       reportTarget: {},
+      homePageIndicatorList: null,
     };
   },
   created() {
@@ -226,9 +241,7 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(
-                window.location.origin + this.locationOrigin + '/dailyApprovalList',
-              );
+              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
             });
         } else {
           this.$toast.fail(res.msg);
@@ -266,9 +279,7 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(
-                window.location.origin + this.locationOrigin + '/dailyApprovalList',
-              );
+              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
             });
         } else {
           this.$toast.fail(res.msg);
@@ -295,9 +306,10 @@ export default {
                 message: '半月报已审批',
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               });
           } else {
+            this.homePageIndicatorList = res.data.homePageIndicatorList;
             this.reportTargetAll = res.data.reportTargetAll;
             this.reportTarget = res.data;
             this.type = res.data.userType;

+ 18 - 2
src/views/week/doubleWeeklyDetils.vue

@@ -12,8 +12,20 @@
     <!--        主体内容-->
     <div class="container linep">
       <van-collapse v-model="activeNames">
-        <Atarget :reportInfo="reportTarget"></Atarget>
-        <Btarget :reportInfo="reportTarget"></Btarget>
+        <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+          <!-- 0-历史指标  1-动态指标,String类型 -->
+          <template v-if="reportTarget.targetType == '1'">
+            <target :homePageIndicatorDate="homePageIndicatorList"></target>
+          </template>
+          <template v-if="reportTarget.targetType == '0'">
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
+        </template>
+        <template v-else>
+          <Atarget :reportInfo="reportTarget"></Atarget>
+          <Btarget :reportInfo="reportTarget"></Btarget>
+        </template>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
           <reportCustom
@@ -144,6 +156,7 @@ import zhiganwaiqiangSAP from '@/views/componentsTarget/zhiganwaiqiangSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 
 export default {
   name: 'home',
@@ -158,6 +171,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -201,6 +215,7 @@ export default {
       type: '-1',
       ptitle: '',
       JZQuota: false,
+      homePageIndicatorList: null,
       //
     };
   },
@@ -249,6 +264,7 @@ export default {
           this.JZQuota = true;
         }
         loading1.clear();
+        this.homePageIndicatorList = res.data.homePageIndicatorList;
         this.title = res.data.deptName + '  ' + res.data.nickName;
         this.reportTargetAll = res.data.reportTargetAll;
         this.reportTarget = res.data;

+ 0 - 15
src/views/week/index.vue

@@ -68,15 +68,6 @@
               <van-icon name="setting-o" class="zicon" color="#0158ba" />
             </template>
           </van-cell>
-          <van-cell
-            title="切换经销商"
-            is-link
-            to="/changeChain"
-            v-if="userInfo && userInfo.userMultipleChains">
-            <template #icon>
-              <van-icon name="exchange" class="zicon" color="#0158ba" />
-            </template>
-          </van-cell>
         </van-cell-group>
         <!--      客资类-->
         <van-cell-group inset class="mtb10">
@@ -276,15 +267,9 @@ import storeselect from '@/assets/Icon/storeselect.png';
 import tabBar from '@/components/tabBar';
 import { getReportInfo, getstoreCoverPosition } from '@/api/index';
 import { selectAllocationPermission } from '@/api/week';
-import { mapState } from 'vuex';
 export default {
   name: 'MyList',
   components: { tabBar },
-  computed: {
-    ...mapState({
-      userInfo: (state) => state.user.userInfo,
-    }),
-  },
   data() {
     return {
       history: history,

+ 74 - 42
src/views/week/target.vue

@@ -1,7 +1,8 @@
 <template>
-  <div class="ABtarage">
+  <div class="ABtarage HomeTarget">
+    <!-- labelStyle 垃圾,不能全匹配,需要特殊处理 -->
     <template>
-      <div class="container linep" style="margin: 0">
+      <div class="container linep">
         <van-collapse v-model="activeNames">
           <div v-for="(homePageItem, index) in homePageIndicatorDate" :key="index">
             <van-collapse-item
@@ -13,13 +14,12 @@
                 <div
                   v-for="(periodItem, periodIndex) in homePageItem.children"
                   :key="'title-' + periodIndex">
-                  <van-col span="12">
+                  <van-col span="12" v-if="periodItem.name">
                     <span :class="periodIndex % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
                       periodItem.name
                     }}</span>
                   </van-col>
                 </div>
-
                 <!-- 动态渲染指标项 -->
                 <div v-if="homePageItem.children.length >= 2">
                   <!-- 遍历第一个周期的所有指标 -->
@@ -31,13 +31,7 @@
                       <p>
                         {{ metric.name }}:
                         <span class="colorblack">
-                          <template v-if="metric.indicatorUnit === '%'"
-                            >{{ metric.indicatorValue }}%</template
-                          >
-                          <template v-else>
-                            {{ Micrometer(metric.indicatorValue) }}
-                            {{ metric.indicatorUnit }}
-                          </template>
+                          {{ metric.indicatorDisplayValue }}
                         </span>
                       </p>
                     </van-col>
@@ -46,20 +40,9 @@
                       <p>
                         {{ homePageItem.children[1]?.children[metricIndex]?.name || '-' }}:
                         <span class="colorblack">
-                          <template
-                            v-if="
-                              homePageItem.children[1]?.children[metricIndex]?.indicatorUnit === '%'
-                            ">
-                            {{ homePageItem.children[1]?.children[metricIndex]?.indicatorValue }}%
-                          </template>
-                          <template v-else>
-                            {{
-                              Micrometer(
-                                homePageItem.children[1]?.children[metricIndex]?.indicatorValue,
-                              )
-                            }}
-                            {{ homePageItem.children[1]?.children[metricIndex]?.indicatorUnit }}
-                          </template>
+                          {{
+                            homePageItem.children[1]?.children[metricIndex]?.indicatorDisplayValue
+                          }}
                         </span>
                       </p>
                     </van-col>
@@ -76,7 +59,7 @@
                 v-for="(category, index) in homePageItem.children"
                 :key="index"
                 :style="{ marginTop: index > 0 ? '10px' : '0' }">
-                <van-col span="24">
+                <van-col span="24" v-if="category.name">
                   <span :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
                     category.name
                   }}</span>
@@ -88,9 +71,8 @@
                     <p>
                       {{ item.name }}:<span
                         :style="labelStyle(item.clickable)"
-                        @click="onClick(item.clickable)"
                         class="colorbalck"
-                        >{{ Micrometer(item.indicatorValue) }}{{ item.indicatorUnit }}</span
+                        >{{ item.indicatorDisplayValue }}</span
                       >
                     </p>
                   </van-col>
@@ -112,9 +94,63 @@
                     <p>
                       {{ item.name }}:<span
                         :style="labelStyle(item.clickable)"
-                        @click="onClick(item.clickable)"
                         class="colorbalck"
-                        >{{ Micrometer(item.indicatorValue) }}{{ item.indicatorUnit }}</span
+                        >{{ item.indicatorDisplayValue }}</span
+                      >
+                    </p>
+                  </van-col>
+                </div>
+              </van-row>
+            </van-collapse-item>
+            <van-collapse-item
+              v-if="homePageItem.labelStyle == 4"
+              :name="(index + 1).toString()"
+              :title="homePageItem.name">
+              <!-- 外层循环:遍历主要类别 -->
+              <template v-for="(category, index) in homePageItem.children">
+                <van-row
+                  :style="{
+                    width: category.name ? '49%' : '100%',
+                    float: category.name ? 'left' : 'none',
+                  }">
+                  <van-col span="20" v-if="category.name">
+                    <span :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
+                      category.name
+                    }}</span>
+                  </van-col>
+
+                  <!-- 内层循环:遍历各个统计项 -->
+                  <div v-for="(item, idx) in category.children" :key="idx">
+                    <van-col :span="24">
+                      <p>
+                        {{ item.name }}:<span
+                          :style="labelStyle(item.clickable)"
+                          class="colorbalck"
+                          >{{ item.indicatorDisplayValue }}</span
+                        >
+                      </p>
+                    </van-col>
+                  </div>
+                </van-row>
+              </template>
+            </van-collapse-item>
+            <van-collapse-item
+              v-if="homePageItem.labelStyle == 5"
+              :name="(index + 1).toString()"
+              :title="homePageItem.name">
+              <!-- 外层循环:遍历主要类别 -->
+              <van-row
+                v-for="(category, index) in homePageItem.children"
+                :key="index"
+                :style="{ marginTop: index == 0 ? '-10px' : '0' }">
+                <!-- 内层循环:遍历各个统计项 -->
+                <div v-for="(item, idx) in category.children" :key="idx">
+                  <van-col :span="24">
+                    <p>
+                      {{ item.name }}:<span
+                        :style="labelStyle(item.clickable)"
+                        class="colorbalck"
+                        >{{ item.indicatorDisplayValue }}</span
                       >
                     </p>
                   </van-col>
@@ -129,12 +165,12 @@
 </template>
 
 <script>
-import store from '@/store';
 export default {
   name: 'home',
   props: {
     homePageIndicatorDate: {
       type: Array,
+      default: () => [],
     },
   },
   data() {
@@ -215,13 +251,6 @@ export default {
         color: val == 1 ? '#0057ba' : '#666666',
       };
     },
-    // 跳转详情
-    onClick(val) {
-      if (val == 1) {
-        store.dispatch('setActivaTypeStore', 'FuWuShang');
-        this.$router.push({ path: '/noVisit' });
-      }
-    },
   },
 };
 </script>
@@ -236,7 +265,7 @@ export default {
 }
 
 .container {
-  /* margin: 10px; */
+  margin: 10px 0;
 }
 
 .container .van-collapse-item {
@@ -263,6 +292,7 @@ export default {
   display: inline-block;
   padding: 0 4px;
   border-radius: 2px;
+  margin-top: 10px;
 }
 
 .rightTitle {
@@ -272,6 +302,7 @@ export default {
   padding: 0 4px;
   border-radius: 2px;
   white-space: nowrap;
+  margin-top: 10px;
 }
 </style>
 <style lang="scss">
@@ -300,7 +331,7 @@ export default {
 
 .linep .van-cell__title {
   color: #1e5398;
-  font-weight: 500;
+  font-weight: 600 !important;
   font-size: 16px;
 }
 
@@ -348,8 +379,9 @@ export default {
   padding: 14px 0px;
 }
 
-.storeTypeHome .van-collapse-item__content {
-  padding: 0;
+.HomeTarget .van-collapse-item__content {
+  padding: 0px 15px 15px 15px;
+  overflow: hidden;
 }
 
 .storeTypeHome .storeTypeHomeList .van-cell__title {

+ 21 - 6
src/views/week/weekly.vue

@@ -29,8 +29,20 @@
       <van-collapse v-model="activeNames" style="margin-top: -3px">
         <template v-if="!YFQuota">
           <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <Atarget :reportInfo="reportTarget"></Atarget>
-          <Btarget :reportInfo="reportTarget"></Btarget>
+          <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+            <!-- 0-历史指标  1-动态指标,String类型 -->
+            <template v-if="reportTarget.targetType == '1'">
+              <target :homePageIndicatorDate="homePageIndicatorList"></target>
+            </template>
+            <template v-if="reportTarget.targetType == '0'">
+              <Atarget :reportInfo="reportTarget"></Atarget>
+              <Btarget :reportInfo="reportTarget"></Btarget>
+            </template>
+          </template>
+          <template v-else>
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
         </template>
         <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
@@ -162,6 +174,7 @@ import fangshuiSAP from '@/views/componentsTarget/fangshuiSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 export default {
   name: 'home',
   components: {
@@ -179,6 +192,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -214,6 +228,7 @@ export default {
       JZQuota: false,
       YFQuota: false, //应用服务
       GZdata: false,
+      homePageIndicatorList: null,
     };
   },
   created() {
@@ -258,6 +273,7 @@ export default {
           } else {
             this.GZdata = false;
           }
+          this.homePageIndicatorList = res.data.homePageIndicatorList;
           var dayTime = res.data.date;
           this.type = res.data.userType;
           this.timeList = this.parseTimeParagraph(
@@ -270,7 +286,7 @@ export default {
                 message: '周报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               });
           } else {
             this.reportTargetAll = res.data.reportTargetAll;
@@ -549,9 +565,7 @@ export default {
             })
             .then(() => {
               if (this.$route.query.reportId != undefined) {
-                window.location.replace(
-                  window.location.origin + this.locationOrigin + '/myHistoricalDaily',
-                );
+                window.location.replace(window.location.origin + '/mobile/myHistoricalDaily');
               } else {
                 this.onClickLeft();
                 // window.location.replace(window.location.origin + '/mobile/home');
@@ -573,6 +587,7 @@ export default {
         localStorage.setItem('powerGrade', res.data.positionId);
         localStorage.setItem('userDeptLevel', res.data.userDeptLevel);
         this.type = res.data.userType;
+        this.homePageIndicatorList = res.data.homePageIndicatorList;
         var dayTime = res.data.date;
         this.YFQuota = res.data.postType == 'YF' ? true : false;
         this.timeList = this.parseTimeParagraph(

+ 21 - 9
src/views/week/weeklyApproval.vue

@@ -14,8 +14,20 @@
       <van-collapse v-model="activeNames">
         <template v-if="!YFQuota">
           <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <Atarget :reportInfo="reportTarget"></Atarget>
-          <Btarget :reportInfo="reportTarget"></Btarget>
+          <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+            <!-- 0-历史指标  1-动态指标,String类型 -->
+            <template v-if="reportTarget.targetType == '1'">
+              <target :homePageIndicatorDate="homePageIndicatorList"></target>
+            </template>
+            <template v-if="reportTarget.targetType == '0'">
+              <Atarget :reportInfo="reportTarget"></Atarget>
+              <Btarget :reportInfo="reportTarget"></Btarget>
+            </template>
+          </template>
+          <template v-else>
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
         </template>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
@@ -161,6 +173,7 @@ import fangshuiSAP from '@/views/componentsTarget/fangshuiSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 export default {
   name: 'weeklyApproval',
   components: {
@@ -178,6 +191,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -220,6 +234,7 @@ export default {
       JZQuota: false,
       YFQuota: false, //应用服务
       GZdata: false,
+      homePageIndicatorList: null,
     };
   },
   created() {
@@ -273,9 +288,7 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(
-                window.location.origin + this.locationOrigin + '/dailyApprovalList',
-              );
+              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
             });
         } else {
           this.$toast.fail(res.msg);
@@ -313,9 +326,7 @@ export default {
               message: '保存成功',
             })
             .then(() => {
-              window.location.replace(
-                window.location.origin + this.locationOrigin + '/dailyApprovalList',
-              );
+              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
             });
         } else {
           this.$toast.fail(res.msg);
@@ -341,6 +352,7 @@ export default {
           } else {
             this.GZdata = false;
           }
+          this.homePageIndicatorList = res.data.homePageIndicatorList;
           var dayTime = res.data.date;
           this.type = res.data.userType;
           this.timeList = this.parseTimeParagraph(
@@ -353,7 +365,7 @@ export default {
                 message: '周报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + this.locationOrigin + '/home');
+                window.location.replace(window.location.origin + '/mobile/home');
               });
           } else {
             this.reportTargetAll = res.data.reportTargetAll;

+ 21 - 3
src/views/week/weeklyApprovalDetils.vue

@@ -14,12 +14,23 @@
       <van-collapse v-model="activeNames">
         <template v-if="!YFQuota">
           <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <Atarget :reportInfo="reportTarget"></Atarget>
-          <Btarget :reportInfo="reportTarget"></Btarget>
+          <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+            <!-- 0-历史指标  1-动态指标,String类型 -->
+            <template v-if="reportTarget.targetType == '1'">
+              <target :homePageIndicatorDate="homePageIndicatorList"></target>
+            </template>
+            <template v-if="reportTarget.targetType == '0'">
+              <Atarget :reportInfo="reportTarget"></Atarget>
+              <Btarget :reportInfo="reportTarget"></Btarget>
+            </template>
+          </template>
+          <template v-else>
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
         </template>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
-
           <reportCustom
             ref="reportCustom"
             :disabled="true"
@@ -175,6 +186,7 @@ import fangshuiSAP from '@/views/componentsTarget/fangshuiSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 
 export default {
   name: 'home',
@@ -193,6 +205,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -238,14 +251,18 @@ export default {
       JZQuota: false,
       YFQuota: false, //应用服务
       GZdata: false,
+      homePageIndicatorList: null,
     };
   },
   created() {
+    this.postName = localStorage.getItem('postName');
+    this.homePageIndicatorList = null;
     this.powerGrade = localStorage.getItem('powerGrade');
     this.getDetailById();
   },
   watch: {
     $route(to, from) {
+      this.postName = localStorage.getItem('postName');
       this.powerGrade = localStorage.getItem('powerGrade');
       if (to.path == '/weeklyApprovalDetils') {
         this.getDetailById();
@@ -278,6 +295,7 @@ export default {
           } else {
             this.GZdata = false;
           }
+          this.homePageIndicatorList = res.data.homePageIndicatorList || null;
           var dayTime = res.data.date;
           this.type = res.data.userType;
           this.ptitle = res.data.pdeptName + '-' + res.data.ppostName + '-' + res.data.pnickName;

+ 18 - 2
src/views/week/weeklyHistoricalDetils.vue

@@ -15,8 +15,20 @@
       <van-collapse v-model="activeNames">
         <template v-if="!YFQuota">
           <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <Atarget :reportInfo="reportTarget"></Atarget>
-          <Btarget :reportInfo="reportTarget"></Btarget>
+          <template v-if="reportTarget.postType == 'GZ' || reportTarget.postType == 'BMD'">
+            <!-- 0-历史指标  1-动态指标,String类型 -->
+            <template v-if="reportTarget.targetType == '1'">
+              <target :homePageIndicatorDate="homePageIndicatorList"></target>
+            </template>
+            <template v-if="reportTarget.targetType == '0'">
+              <Atarget :reportInfo="reportTarget"></Atarget>
+              <Btarget :reportInfo="reportTarget"></Btarget>
+            </template>
+          </template>
+          <template v-else>
+            <Atarget :reportInfo="reportTarget"></Atarget>
+            <Btarget :reportInfo="reportTarget"></Btarget>
+          </template>
         </template>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
@@ -187,6 +199,7 @@ import fangshuiSAP from '@/views/componentsTarget/fangshuiSAP';
 import Atarget from '@/views/home/Atarget.vue';
 import Btarget from '@/views/home/Btarget.vue';
 import reportCustom from './reportCustom.vue';
+import target from './target.vue';
 export default {
   name: 'home',
   components: {
@@ -204,6 +217,7 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
+    target,
   },
   data() {
     return {
@@ -252,6 +266,7 @@ export default {
       JZQuota: false,
       YFQuota: false, //应用服务
       GZdata: false,
+      homePageIndicatorList: null,
     };
   },
   created() {
@@ -381,6 +396,7 @@ export default {
           } else {
             this.GZdata = false;
           }
+          this.homePageIndicatorList = res.data.homePageIndicatorList || null;
           var dayTime = res.data.date;
           this.type = res.data.userType;
           this.title =