Procházet zdrojové kódy

Reapply "Merge branch 'master_20260511'"

This reverts commit bfb88e3444800cda9ed83e1f7daa4f2b8bb736e2.
zhujindu před 2 týdny
rodič
revize
d6d4d80e7d
73 změnil soubory, kde provedl 3788 přidání a 4497 odebrání
  1. 12 12
      src/api/index.js
  2. 9 0
      src/api/week.js
  3. binární
      src/assets/wanmeiStoreImg.gif
  4. 0 56
      src/components/componentsTarget/ZYPlaceOrder.vue
  5. 0 52
      src/components/componentsTarget/ZYSAP.vue
  6. 0 42
      src/components/componentsTarget/chunTaiSAP.vue
  7. 0 52
      src/components/componentsTarget/cizhuanjiaoSAP.vue
  8. 0 82
      src/components/componentsTarget/createStoreBJ.vue
  9. 0 52
      src/components/componentsTarget/fangshuiSAP.vue
  10. 0 0
      src/components/componentsTarget/index.css
  11. 0 52
      src/components/componentsTarget/moshouqiSAP.vue
  12. 0 52
      src/components/componentsTarget/neiqiangzhonggaoduanSAP.vue
  13. 0 52
      src/components/componentsTarget/neiwaiqiangpingtu.vue
  14. 0 84
      src/components/componentsTarget/performanceSAP.vue
  15. 0 63
      src/components/componentsTarget/placeOrder.vue
  16. 0 54
      src/components/componentsTarget/veryGoodPlaceOrder.vue
  17. 0 126
      src/components/componentsTarget/visitedRealTime.vue
  18. 0 52
      src/components/componentsTarget/zhiganwaiqiangSAP.vue
  19. 11 87
      src/components/share.vue
  20. 0 710
      src/components/shareAtarget.vue
  21. 0 509
      src/components/shareBtarget.vue
  22. 0 536
      src/components/shareCommonTarget.vue
  23. 0 96
      src/components/shareReportCustom.vue
  24. 1 1
      src/components/uploadVNormal.vue
  25. 241 14
      src/components/uploadVNormalTaskPhoto.vue
  26. 3 0
      src/main.js
  27. 26 19
      src/permission.js
  28. 6 0
      src/router/index.js
  29. 5 43
      src/store/modules/user.js
  30. 2 2
      src/views/clew/clewent.vue
  31. 3 3
      src/views/clew/complaintDetail/index.vue
  32. 67 6
      src/views/componentsTarget/createStoreBJ.vue
  33. 74 0
      src/views/componentsTarget/index.css
  34. 40 4
      src/views/componentsTarget/placeOrder.vue
  35. 29 6
      src/views/componentsTarget/visitedRealTime.vue
  36. 68 41
      src/views/deviceOutside/oderSuccess.vue
  37. 6 4
      src/views/deviceOutside/outabnormalVisit.vue
  38. 2 2
      src/views/deviceOutside/suishenbangOutstoreVisit.vue
  39. 253 184
      src/views/deviceWithin/abnormalVisit.vue
  40. 9 1
      src/views/deviceWithin/addStoreVisit.vue
  41. 16 8
      src/views/deviceWithin/addStoreVisitd.vue
  42. 9 5
      src/views/deviceWithin/storeVisit.vue
  43. 25 12
      src/views/deviceWithin/taskPhotoTaking.vue
  44. 428 161
      src/views/historicalVisit/perfectStore.vue
  45. 236 62
      src/views/historicalVisit/perfectStoreTask.vue
  46. 0 78
      src/views/home/ABtarget.vue
  47. 3 80
      src/views/home/Atarget.vue
  48. 0 78
      src/views/home/Btarget.vue
  49. 33 96
      src/views/home/HomeTarget.vue
  50. 1 42
      src/views/home/bottomBtn.vue
  51. 34 10
      src/views/home/hintTabPage/hintDetail.vue
  52. 49 71
      src/views/home/hintTabPage/index.vue
  53. 6 4
      src/views/home/hintTabPage/noVisit.vue
  54. 6 4
      src/views/home/hintTabPage/unCreateStore.vue
  55. 29 34
      src/views/home/index.vue
  56. 2 1
      src/views/storeManagement/storeAdd.vue
  57. 12 9
      src/views/storeManagement/success.vue
  58. 3 3
      src/views/week/assignAwait/JZfollowUp.vue
  59. 6 4
      src/views/week/assignAwait/assignPage.vue
  60. 102 0
      src/views/week/changeChain.vue
  61. 405 29
      src/views/week/daily.vue
  62. 439 24
      src/views/week/dailyApproval.vue
  63. 493 187
      src/views/week/dailyDetails.vue
  64. 490 129
      src/views/week/dailyHistoricalDetails.vue
  65. 6 21
      src/views/week/doubleWeekly.vue
  66. 9 21
      src/views/week/doubleWeeklyApproval.vue
  67. 2 18
      src/views/week/doubleWeeklyDetils.vue
  68. 15 0
      src/views/week/index.vue
  69. 42 74
      src/views/week/target.vue
  70. 6 21
      src/views/week/weekly.vue
  71. 9 21
      src/views/week/weeklyApproval.vue
  72. 3 21
      src/views/week/weeklyApprovalDetils.vue
  73. 2 18
      src/views/week/weeklyHistoricalDetils.vue

+ 12 - 12
src/api/index.js

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

+ 9 - 0
src/api/week.js

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

binární
src/assets/wanmeiStoreImg.gif


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

@@ -1,56 +0,0 @@
-<!-- 拜访数据(实时) -->
-<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>

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

@@ -1,52 +0,0 @@
-<!-- 拜访数据(实时) -->
-<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>

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

@@ -1,42 +0,0 @@
-<!-- 拜访数据(实时) -->
-<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>

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

@@ -1,52 +0,0 @@
-<!-- 瓷砖胶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>

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

@@ -1,82 +0,0 @@
-<!-- 建店布机 -->
-<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>

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

@@ -1,52 +0,0 @@
-<!-- 防水+背胶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


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

@@ -1,52 +0,0 @@
-<!-- 魔术漆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>

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

@@ -1,52 +0,0 @@
-<!-- 内墙中高端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>

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

@@ -1,52 +0,0 @@
-<!-- 内外墙平涂 -->
-<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>

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

@@ -1,84 +0,0 @@
-<!-- 业绩目标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>

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

@@ -1,63 +0,0 @@
-<!-- 下单点数 -->
-<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>

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

@@ -1,54 +0,0 @@
-<!-- 拜访数据(实时) -->
-<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>

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

@@ -1,126 +0,0 @@
-<!-- 拜访数据(实时) -->
-<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>

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

@@ -1,52 +0,0 @@
-<!-- 质感外墙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>

+ 11 - 87
src/components/share.vue

@@ -55,35 +55,12 @@
             </div>
           </div>
         </div>
-        <!-- 旧的日报内容 -->
-        <template v-if="checkedPlan && reportContents && isHistory == '1'">
+        <template v-if="checkedPlan && reportContents">
           <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">
@@ -109,7 +86,7 @@
       <div class="footerShare">
         <div class="right-text">
           <div>长按识别二维码查看详情&点评</div>
-          <!-- <div></div> -->
+          <div></div>
         </div>
         <vue-qr
           class="QRcodes"
@@ -120,7 +97,6 @@
           :logoSrc="require('@/assets/logo1.png')"
           :logoMargin="2"></vue-qr>
       </div>
-      <div class="footerTips">来自立邦好邦手</div>
     </div>
     <div
       class="share-mask"
@@ -146,16 +122,11 @@
 </template>
 <script>
 import html2canvas from 'html2canvas';
-import { imgToBase64, shareReportMobile } from '@/api/index';
+import { imgToBase64 } 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, ShareAtarget, shareReportCustom, shareBtarget, shareCommonTarget },
+  components: { VueQr },
   props: {
     // 日报数据
     reportTarget: {
@@ -191,21 +162,6 @@ export default {
         return [];
       },
     },
-    // 是否显示 指标
-    isTarget: {
-      type: Boolean,
-      default: true,
-    },
-    // 是否显示 日报填写内容
-    isReportCustom: {
-      type: Boolean,
-      default: true,
-    },
-    // 是否为历史汇报:0-新汇报 1-历史汇报
-    isHistory: {
-      type: String,
-      default: '0',
-    },
   },
   data() {
     return {
@@ -216,15 +172,9 @@ 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/';
@@ -316,6 +266,7 @@ export default {
           this.toastLoading().clear();
           let imageUrl = canvas.toDataURL('image/png');
           this.canvasImageUrl = imageUrl;
+
           // 图片加载完成后设置滚动容器高度
           const img = new Image();
           img.onload = () => {
@@ -357,22 +308,6 @@ 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();
@@ -487,7 +422,7 @@ export default {
       line-height: vw(94);
       // margin-top: vw(152);
       // margin-bottom: vw(45);
-      margin: vw(35) 0 vw(20) 0;
+      margin: vw(35) 0;
       font-weight: bold;
     }
 
@@ -556,9 +491,8 @@ export default {
   .footerShare {
     // position: absolute;
     display: flex;
-    flex-direction: column;
-    align-items: center;
-    // justify-content: flex-end;
+    // align-items: center;
+    justify-content: flex-end;
     margin-top: vw(30);
     margin-right: 2px;
 
@@ -567,7 +501,7 @@ export default {
       display: flex;
       flex-direction: column;
       justify-content: space-between;
-      // margin-right: vw(24);
+      margin-right: vw(24);
 
       div {
         color: #ffffff;
@@ -597,15 +531,6 @@ 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%;
@@ -614,7 +539,6 @@ export default {
     overflow: hidden !important;
     display: flex;
     flex-direction: column;
-    -webkit-user-select: none; /* Safari */
   }
   #html2canvas {
     width: 100%;
@@ -693,8 +617,8 @@ export default {
   .QRcodes {
     // width: 45px; /* 固定像素尺寸 */
     // height: 45px;
-    width: vw(280);
-    height: vw(280);
+    width: vw(200); /* 固定像素尺寸 */
+    height: vw(200);
     position: relative;
     background: #ffffff;
     image-rendering: crisp-edges;

+ 0 - 710
src/components/shareAtarget.vue

@@ -1,710 +0,0 @@
-<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>

+ 0 - 509
src/components/shareBtarget.vue

@@ -1,509 +0,0 @@
-<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>

+ 0 - 536
src/components/shareCommonTarget.vue

@@ -1,536 +0,0 @@
-<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>

+ 0 - 96
src/components/shareReportCustom.vue

@@ -1,96 +0,0 @@
-<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 () {

+ 241 - 14
src/components/uploadVNormalTaskPhoto.vue

@@ -31,6 +31,32 @@
       @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>
 
@@ -114,8 +140,16 @@ export default {
       imageWhiteStoreData: null,
       imageWhiteStoreFlag: false,
       localIdsArr: [],
+      uploadImgFlag: false, //上传图片中
+      uploadImgTotal: 0, // 上传图片总数
+      d2running: false,
+      d2count: 0,
+      d2timer: null,
     };
   },
+  activated() {
+    this.resetDemo2();
+  },
   methods: {
     // 原生H5拍照图片
     // url: base64
@@ -231,6 +265,9 @@ export default {
                   //   collectionItemId: that.collectionItemId,
                   //   source: 'weixin',
                   // });
+                  that.uploadImgFlag = true;
+                  that.uploadImgTotal = localIds.length;
+                  that.startDemo2();
                   that.syncUpload(localIds);
                 },
               });
@@ -245,7 +282,7 @@ export default {
         var localId = localIds.pop();
         wx.uploadImage({
           localId: localId,
-          isShowProgressTips: 1, // 默认为1,显示进度提示
+          isShowProgressTips: 0, // 默认为1,显示进度提示
           success: (res) => {
             this.localIdsArr.push(res.serverId);
             this.syncUpload(localIds);
@@ -295,6 +332,7 @@ export default {
           this.requestThen(res);
         })
         .catch((error) => {
+          this.resetDemo2();
           this.requestCatch(error);
         });
     },
@@ -323,6 +361,7 @@ export default {
           }
         }
       } else {
+        this.resetDemo2();
         that.$toast('上传失败!');
       }
     },
@@ -335,20 +374,51 @@ export default {
     },
     // 正常流程
     normalFlow(res) {
-      this.$toast('上传成功!');
-      let fileInfoList = [];
-      res.data.forEach((val) => {
-        fileInfoList.push({
-          fileUrl: val.url,
-          id: val.fileId,
-          type: 2,
+      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.$emit('newimgarr', {
-        fileInfoList: fileInfoList,
-        photoIdentifyType: this.photoIdentifyType,
-        source: 'H5',
-      });
+      } 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;
     },
     // 照片是否入库,1.照片识别三次不通过仍要上传,2.照片识别通过
     // isUpdate:是否更新店招照片,只有门店店招需要更新
@@ -409,6 +479,55 @@ 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>
@@ -447,3 +566,111 @@ 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>

+ 3 - 0
src/main.js

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

+ 26 - 19
src/permission.js

@@ -9,28 +9,35 @@ router.beforeEach((to, from, next) => {
     localStorage.setItem('loginName', queryLoginName);
   }
   const username = localStorage.getItem('loginName');
-  // 测试使用 账户密码登录页面,正式环境禁用
-  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 {
-    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 {
-      alert('获取签名失败');
       next();
     }
+    // // 没有token
+    // if (whiteList.indexOf(to.path) !== -1) {
+    //   // 在免登录白名单,直接进入
+    //   next();
+    // } else {
+    //     next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
+    //     NProgress.done();
+    // }
   }
 });

+ 6 - 0
src/router/index.js

@@ -557,6 +557,12 @@ 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: '切换经销商' },
+        },
       ],
     },
     {

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

@@ -1,4 +1,4 @@
-import { getMobileUserInfo, getDictOption, loginLog, getReportInfo } from '@/api/index';
+import { getMobileUserInfo, getDictOption, loginLog } from '@/api/index';
 
 const user = {
   state: {
@@ -6,7 +6,6 @@ const user = {
     activaTypeStore: null, //未拜访门店
     activaCreateTypeStore: null, //建店未完工、未结案门店
     storeType: [],
-    reportInfo: null,
   },
 
   mutations: {
@@ -22,9 +21,6 @@ const user = {
     SET_ACTIVA_CREATE_TYPE_STORE: (state, value) => {
       state.activaCreateTypeStore = value;
     },
-    SET_REPORT_INFO: (state, reportInfo) => {
-      state.reportInfo = reportInfo;
-    },
   },
 
   actions: {
@@ -45,22 +41,10 @@ const user = {
             localStorage.setItem('getRequestFlage', 'true');
             // userDeptLevel用户部门等级字段,0-总部,1-公司,2-大区,3-销售部,4-业务员
             localStorage.setItem('userDeptLevel', res.data.userDeptLevel);
-            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();
-                });
-              }
+            // 门店类型
+            getDictOption({}, 'sfa_store_type').then((res) => {
+              commit('SET_STORE_TYPE', res.data);
+              resolve();
             });
             // 登录日志
             var appVersion = navigator.appVersion;
@@ -96,28 +80,6 @@ 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 + '/mobile/clew');
+                window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/clew');
+              window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/clew');
+                window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/clew');
+              window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/clew');
+                window.location.replace(window.location.origin + this.locationOrigin + '/clew');
               } else {
                 store.dispatch('setRefreshClewPage', true);
                 // 返回上一页不会刷新页面

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

@@ -27,6 +27,22 @@
         <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>
@@ -48,16 +64,61 @@
       </van-col>
       <van-col span="12">
         <p>
-          <span class="colLabel colLabel_TCFX">仿石漆店</span>
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.fsqShopMonthAct) }}</span>
+          <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>
         </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 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>
           <span class="colorbalck" v-else>({{ '-' }})</span>
         </p>

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

@@ -0,0 +1,74 @@
+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);
+}

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

@@ -16,6 +16,18 @@
         <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>
@@ -33,14 +45,38 @@
       </van-col>
       <van-col span="12">
         <p>
-          <span class="colLabel colLabel_TCFX">同城分销近3月</span>
-          <span class="colorbalck">{{ Micrometer(reportTargetAll.tcfxOrderShopMonthAct) }}</span>
+          <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>
         </p>
       </van-col>
       <van-col span="12">
         <p>
-          <span class="colLabel colLabel_TCFX">同城分销近3月</span>
-          <span class="colorbalck"> {{ reportTargetAll.tcfxShopMonthOrderRate }}% </span>
+          涂料店:
+          <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>
         </p>
       </van-col>
     </div>

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

@@ -68,6 +68,19 @@
         <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>
@@ -87,17 +100,27 @@
       <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>
+          <span class="colLabel colLabel_TCFX">同城分销</span>
         </p>
       </van-col>
-      <!-- <van-col span="12">
+      <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">
         <p style="margin-top: 0">
           厨卫店:<span class="colorbalck">{{
             Micrometer(reportTargetAll.tcfxOtherShopVisitDayNum)
@@ -111,7 +134,7 @@
           }}</span>
           <span class="colorbalck"> ({{ reportTargetAll.tcfxOtherShopVisitMonthRate }}%) </span>
         </p>
-      </van-col> -->
+      </van-col>
     </div>
   </van-row>
 </template>

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

@@ -1,72 +1,99 @@
 <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 + "/mobile/")
+      window.location.replace(window.location.origin + this.locationOrigin + '/');
     },
     visite() {
       if (this.fromValue != undefined) {
         if (this.fromValue.url != undefined) {
-          window.location.replace(window.location.origin + "/mobile" + this.fromValue.url)
+          window.location.replace(
+            window.location.origin + this.locationOrigin + 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>

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

@@ -155,7 +155,9 @@ export default {
                   message: '拜访中任务结束成功!',
                 })
                 .then(() => {
-                  window.location.replace(window.location.origin + '/mobile/outsidelist/index');
+                  window.location.replace(
+                    window.location.origin + this.locationOrigin + '/outsidelist/index',
+                  );
                 });
             } else {
               this.$toast(res.msg);
@@ -166,7 +168,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() {
@@ -263,7 +265,7 @@ export default {
               that.$toast(res.msg);
             }
           });
-        }
+        },
       );
     },
     endVisitsFn() {
@@ -300,7 +302,7 @@ export default {
                 //   window.location.replace(window.location.origin + "/mobile/topStore?info=y")
                 // }else{
                 window.location.replace(
-                  window.location.origin + '/mobile/outsidelist/index?info=y'
+                  window.location.origin + this.locationOrigin + '/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 + '/mobile/home');
+        window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/home');
+              window.location.replace(window.location.origin + this.locationOrigin + '/home');
             } else {
               this.onClickLeft();
               // window.location.replace(

+ 253 - 184
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,42 +12,58 @@
       <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>
@@ -56,13 +72,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,
@@ -70,109 +86,118 @@ 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: '取消拜访会清空填写的拜访内容和照片,是否确认?',
-      }).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)
-          }
+    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 + 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);
@@ -182,144 +207,188 @@ 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', "");
+            locationCity: '',
+            locationRemark: addresses.recommend,
+            locationAccuracy: that.urlParameter.PointSum,
+          };
+          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)
+          });
+        },
+        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+"/mobile/deviceWithin/index")
-
-              }else{
-                this.$router.go(-1)
-              }
-            });
-            localStorage.removeItem("visitId")
+            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');
             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>

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

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

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

@@ -614,7 +614,12 @@
       </van-form>
     </div>
     <br />
-    <van-dialog v-model="show" :show-confirm-button="false" show-cancel-button title="上传图片">
+    <van-dialog
+      v-model="show"
+      :show-confirm-button="false"
+      show-cancel-button
+      title="上传图片"
+      className="uploadDialog">
       <van-field
         v-if="indexselect == '1'"
         :value="PhotoTypeText"
@@ -910,7 +915,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() {
@@ -941,8 +946,8 @@ export default {
             /\.\d{2,}$/,
             this.collectionItemList[index].answerValue.substr(
               this.collectionItemList[index].answerValue.indexOf('.'),
-              3
-            )
+              3,
+            ),
           );
         }
       } else {
@@ -953,8 +958,8 @@ export default {
             /\.\d{2,}$/,
             this.collectionItemList[index].answerValue.substr(
               this.collectionItemList[index].answerValue.indexOf('.'),
-              3
-            )
+              3,
+            ),
           );
         }
       }
@@ -1038,7 +1043,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;
@@ -1100,7 +1105,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]);
                           }
@@ -1974,4 +1979,7 @@ export default {
 .formLabel .mobile-input {
   border: 0 !important;
 }
+.uploadDialog {
+  padding: 20px 0;
+}
 </style>

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

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

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

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

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

@@ -1,190 +1,289 @@
 <template>
-  <div class="perfectStore">
+  <div class="perfectStore ceshi">
     <!--        顶部条-->
     <van-nav-bar class="navBar" title="AI完美门店报告" left-arrow @click-left="onClickLeft">
-      <template #right>
-        <span
-          style="
-            color: white;
-            background: #74a4d9;
-            display: block;
-            padding: 6px 10px;
-            border-radius: 6px;
-          "
-          @click="editorFn"
-          v-if="!remarkShow && sameDay"
-          >编辑</span
-        >
+      <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>
     </van-nav-bar>
     <!--        主体内容-->
     <div class="container" v-if="list">
-      <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 }}
+      <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>
             </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">
-              <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" />
+          </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>
             </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">
-              <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 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>
           </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">
-              <span style="color: rgb(25, 137, 250)">查看详情</span>
-              <div class="jiantou">
-                <van-icon name="arrow" />
+        <!-- 陈列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>
             </div>
           </div>
         </div>
-      </div>
-      <!-- 目前陈列任务 -->
-      <div class="TSJBox specialTask" v-if="taskTypeArr && taskTypeArr.length">
-        <div class="specialTaskLeft">
-          <div class="SignText">AI 陈列任务识别</div>
+        <!-- 目前陈列任务 -->
+        <div class="TSJBox specialTask" v-if="taskTypeArr && taskTypeArr.length">
+          <div class="specialTaskLeft">
+            <div class="SignText">AI 陈列任务识别</div>
+          </div>
         </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">
-              <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 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>
           </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 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>
-          <p class="arrowdetils1">
-            <van-icon name="arrow" />
-          </p>
         </div>
-      </div>
+      </van-pull-refresh>
     </div>
   </div>
 </template>
@@ -226,6 +325,7 @@ export default {
       shopSignDetail: null,
       tiaoSJDetail: null,
       taskTypeArr: null,
+      refreshing: false,
     };
   },
   activated() {
@@ -241,6 +341,11 @@ 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 : '';
@@ -344,6 +449,9 @@ 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);
@@ -407,6 +515,9 @@ export default {
     },
     historiStoreVisit(val, index) {
       if (val.taskType == '5') {
+        if (val.taskPhotoConditionPassed == null) {
+          return;
+        }
         this.$router.push({
           path: '/perfectStoreTask',
           query: {
@@ -427,10 +538,12 @@ export default {
       sessionStorage.setItem('collectionItemList', JSON.stringify(val.collectionItemList));
     },
     toSkuRecognize() {
-      this.$router.push({
-        path: '/perfectStoreSku',
-        query: { visitId: this.visitsId },
-      });
+      if (this.list.wanmeiStore) {
+        this.$router.push({
+          path: '/perfectStoreSku',
+          query: { visitId: this.visitsId },
+        });
+      }
     },
     onClickLeft() {
       if (this.$route.query.token) {
@@ -445,12 +558,18 @@ 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({
@@ -653,4 +772,152 @@ 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>

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

@@ -68,12 +68,33 @@
         </van-form>
       </div>
       <div class="skuDeatil">
-        <div class="headline" style="margin-top: 10px">
-          <span class="headlineIcon"></span>
-          <span class="headlineTitle">SKU图像识别结果</span>
+        <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>
         <el-table
-          :data="formData.taskPhotoRecognitionResult"
+          :data="taskPhotoRecognitionResult"
           :span-method="taskObjectSpanMethod"
           border
           class="table-headermd1"
@@ -89,11 +110,31 @@
               <span class="tipTitle">{{ scope.row.skuProductName }}</span>
             </template>
           </el-table-column>
-          <el-table-column
-            label="排面数"
-            prop="identifyTheNumberOfCards"
-            align="center"
-            width="50"></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="conditionIdentifyNum" align="center" width="60px">
             <template slot-scope="scope">
               <span
@@ -138,13 +179,10 @@
       @close="vanPopup == false"
       custom-class="identifyResultdialog">
       <!-- 识别结果 -->
-      <div
-        class="identifyResult"
-        v-if="formData.taskPhotoRecognitionResult"
-        style="padding: 0 10px">
+      <div class="identifyResult" v-if="taskPhotoRecognitionResult" style="padding: 0 10px">
         <div class="resultContent">
           <el-table
-            :data="formData.taskPhotoRecognitionResult"
+            :data="taskPhotoRecognitionResult"
             :span-method="taskObjectSpanMethod"
             border
             class="table-headermd1"
@@ -175,6 +213,7 @@ import {
   addCollectionAnswerBatch,
   getVisitsDetailPerfectStore,
   getVisitsDetailPerfectStoreByTaskId,
+  updateDisplayRewardCaseSkuCount,
 } from '@/api/index';
 import taskTips from '@/views/deviceWithin/taskTips';
 import deleteUploadImg from '@/components/deleteUploadImgTaskPhoto';
@@ -195,6 +234,8 @@ export default {
       vanPopup: false,
       taskPhotoRecognitionResult: null,
       spanArr: [],
+      editTableFlag: false,
+      editCountArr: [],
     };
   },
   activated() {
@@ -204,6 +245,8 @@ 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: {
@@ -247,8 +290,9 @@ export default {
         this.toastLoading().clear();
         if (res.code == 200 && res.data && res.data.length > 0) {
           this.formData = res.data[0];
-          console.log(this.formData.taskPhotoRecognitionResult);
-          this.getSpanArr(this.formData.taskPhotoRecognitionResult);
+          this.taskPhotoRecognitionResult =
+            JSON.parse(JSON.stringify(this.formData.taskPhotoRecognitionResult)) || [];
+          this.getSpanArr(this.taskPhotoRecognitionResult);
           console.log(this.formData);
         } else {
           this.formData = null;
@@ -289,6 +333,86 @@ 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);
     },
@@ -448,54 +572,58 @@ export default {
     background-color: #ee0a24 !important;
     border: 1px solid #ee0a24 !important;
   }
-}
-.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;
+  .table-headermd1 {
+    .el-table__cell {
+      height: 50px !important;
+      .van-field {
+        padding: 0 !important;
+      }
+      .van-field__control {
+        height: 32px;
+        text-align: center;
+      }
+    }
   }
-  .el-dialog__body {
-    flex: 1;
-    overflow-y: auto;
+  .shelfEdit {
+    height: 100%;
+    color: #036bf3;
+    .van-field__body {
+      height: 100%;
+    }
+    input {
+      height: 100%;
+      color: #036bf3;
+    }
   }
-}
-.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;
+  .identifyTheNumber {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    height: 100%;
   }
-  td {
-    color: #000;
+  .isEdit {
+    border: 1px solid #609de8;
   }
-  .el-table__cell {
-    padding: 6px 0 !important;
-    .cell {
-      padding: 0;
+  .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;
     }
   }
-}
-.skuDeatil {
-  width: 100%;
-  margin-top: 10px;
-  background: #fff;
-  border-radius: 6px;
   .table-headermd1 {
     font-size: 14px;
     text-align: center;
@@ -504,7 +632,6 @@ export default {
     margin: 0 auto;
     border-right: 0;
     border-radius: 8px;
-    margin-top: 10px;
     th {
       color: #000;
       font-weight: bold;
@@ -513,17 +640,64 @@ export default {
       color: #000;
     }
     .el-table__cell {
-      padding: 6px 0 !important;
+      padding: 0 !important;
       .cell {
+        height: 100%;
         padding: 0;
       }
     }
   }
-  .table-headermd1 th.el-table__cell {
-    background-color: #f5f5f5;
+  .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;
+    }
   }
 }
 .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>

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

@@ -1047,81 +1047,3 @@ 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>

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

@@ -47,8 +47,9 @@
           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(千元)">
@@ -638,81 +639,3 @@ 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>

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

@@ -509,81 +509,3 @@ 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>

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

@@ -1,7 +1,6 @@
 <template>
-  <div class="ABtarage HomeTarget">
+  <div class="ABtarage">
     <p class="updataTime">更新时间:{{ updataTime }}</p>
-    <!-- labelStyle 垃圾,不能全匹配,需要特殊处理 -->
     <template>
       <div class="container linep">
         <van-collapse v-model="activeNames">
@@ -15,12 +14,13 @@
                 <div
                   v-for="(periodItem, periodIndex) in homePageItem.children"
                   :key="'title-' + periodIndex">
-                  <van-col span="12" v-if="periodItem.name">
+                  <van-col span="12">
                     <span :class="periodIndex % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
                       periodItem.name
                     }}</span>
                   </van-col>
                 </div>
+
                 <!-- 动态渲染指标项 -->
                 <div v-if="homePageItem.children.length >= 2">
                   <!-- 遍历第一个周期的所有指标 -->
@@ -32,7 +32,13 @@
                       <p>
                         {{ metric.name }}:
                         <span class="colorblack">
-                          {{ metric.indicatorDisplayValue }}
+                          <template v-if="metric.indicatorUnit === '%'"
+                            >{{ metric.indicatorValue }}%</template
+                          >
+                          <template v-else>
+                            {{ Micrometer(metric.indicatorValue) }}
+                            {{ metric.indicatorUnit }}
+                          </template>
                         </span>
                       </p>
                     </van-col>
@@ -41,9 +47,20 @@
                       <p>
                         {{ homePageItem.children[1]?.children[metricIndex]?.name || '-' }}:
                         <span class="colorblack">
-                          {{
-                            homePageItem.children[1]?.children[metricIndex]?.indicatorDisplayValue
-                          }}
+                          <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>
                         </span>
                       </p>
                     </van-col>
@@ -60,7 +77,7 @@
                 v-for="(category, index) in homePageItem.children"
                 :key="index"
                 :style="{ marginTop: index > 0 ? '10px' : '0' }">
-                <van-col span="24" v-if="category.name">
+                <van-col span="24">
                   <span :class="index % 2 === 0 ? 'leftTitle' : 'rightTitle'">{{
                     category.name
                   }}</span>
@@ -74,7 +91,7 @@
                         :style="labelStyle(item.clickable)"
                         @click="onClick(item.clickable)"
                         class="colorbalck"
-                        >{{ item.indicatorDisplayValue }}</span
+                        >{{ Micrometer(item.indicatorValue) }}{{ item.indicatorUnit }}</span
                       >
                     </p>
                   </van-col>
@@ -98,65 +115,7 @@
                         :style="labelStyle(item.clickable)"
                         @click="onClick(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()"
-              :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
+                        >{{ Micrometer(item.indicatorValue) }}{{ item.indicatorUnit }}</span
                       >
                     </p>
                   </van-col>
@@ -173,14 +132,8 @@
 <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],
@@ -259,18 +212,10 @@ export default {
     };
   },
   watch: {
-    // tabVal: {
-    //   handler(val) {
-    //     if (val == 2) {
-    //       // keep-alive 模式watch执行了两次
-    //       this.initData();
-    //     }
-    //   },
-    //   immediate: true,
-    // },
-    reportInfo: {
+    tabVal: {
       handler(val) {
-        if (val) {
+        if (val == 2) {
+          // keep-alive 模式watch执行了两次
           this.initData();
         }
       },
@@ -297,11 +242,6 @@ 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: '加载中...',
@@ -398,7 +338,6 @@ export default {
   display: inline-block;
   padding: 0 4px;
   border-radius: 2px;
-  margin-top: 10px;
 }
 
 .rightTitle {
@@ -408,7 +347,6 @@ export default {
   padding: 0 4px;
   border-radius: 2px;
   white-space: nowrap;
-  margin-top: 10px;
 }
 </style>
 <style lang="scss">
@@ -437,7 +375,7 @@ export default {
 
 .linep .van-cell__title {
   color: #1e5398;
-  font-weight: 600;
+  font-weight: 500;
   font-size: 16px;
 }
 
@@ -485,9 +423,8 @@ export default {
   padding: 14px 0px;
 }
 
-.HomeTarget .van-collapse-item__content {
-  padding: 0px 15px 15px 15px;
-  overflow: hidden;
+.storeTypeHome .van-collapse-item__content {
+  padding: 0;
 }
 
 .storeTypeHome .storeTypeHomeList .van-cell__title {

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

@@ -105,13 +105,7 @@
 </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],
@@ -136,46 +130,11 @@ 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') {

+ 34 - 10
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,11 +149,20 @@ export default {
           ],
         },
         {
-          label: '同城分销',
+          label: '同城分销-涂料店',
+          childredColumn: [
+            {
+              label: '(近2月)',
+              prop: 'TuLiaoNotVisited',
+            },
+          ],
+        },
+        {
+          label: '同城分销-其他店',
           childredColumn: [
             {
               label: '(近3月)',
-              prop: 'TcfxNotVisited',
+              prop: 'QiTaNotVisited',
             },
           ],
         },
@@ -182,6 +191,24 @@ export default {
             },
           ],
         },
+        {
+          label: '同城分销-涂料店',
+          childredColumn: [
+            {
+              label: '(7天未结案)',
+              prop: 'TuLiaoAbnormalNum',
+            },
+          ],
+        },
+        {
+          label: '同城分销-其他店',
+          childredColumn: [
+            {
+              label: '(7天未结案)',
+              prop: 'QiTaAbnormalNum',
+            },
+          ],
+        },
       ],
       // 色卡
       pantone: [
@@ -369,7 +396,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';
@@ -467,7 +494,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) {
@@ -505,10 +532,7 @@ 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) => {

+ 49 - 71
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: 'Tcfx',
+            title: '同城分销-涂料店',
+            titleProp: 'TuLiao',
+            bagColor: '#88abda',
+            visitDetail: [
+              {
+                leftTable: '近2个月拜访率:',
+                leftProp: 'visitRateInThePastTwoMonths',
+                leftUnit: '%',
+                leftIsClick: false,
+                rightTable: '未拜访:',
+                rightProp: 'notVisited',
+                rightUnit: '家',
+                rightIsClick: true,
+              },
+            ],
+          },
+          {
+            title: '同城分销-其他店',
+            titleProp: 'QiTa',
             bagColor: '#8f82bc',
             visitDetail: [
               {
@@ -448,8 +448,31 @@ export default {
             ],
           },
           {
-            title: '仿石漆店',
-            titleProp: 'Fsq',
+            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: [
               {
@@ -463,59 +486,13 @@ 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,
       },
@@ -845,6 +822,7 @@ export default {
 }
 .hintPopover {
   background: #deedff;
+  width: 65%;
   .popper__arrow {
     &::after {
       border-right-color: #deedff !important;

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

@@ -96,9 +96,11 @@ export default {
         type = '可控店';
       } else if (value == 'jinPai') {
         type = '金牌店';
-      } else if (value == 'Tcfx') {
-        type = '同城分销';
-      } else if (value == 'FuWuShang') {
+      } else if (value == 'TuLiao') {
+        type = '同城分销-涂料店';
+      } else if (value == 'QiTa') {
+        type = '同城分销-其他店';
+      }else if (value == 'FuWuShang') {
         type = '服务商';
       }
       return type;
@@ -217,7 +219,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') {

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

@@ -105,7 +105,7 @@
                           placement="bottom"
                           width="200"
                           trigger="click">
-                          <div v-if="item && item.storeLabels">
+                          <div v-if="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 && item.storeLabels && item.storeLabels.targetOne"
+                            v-if="item.storeLabels.targetOne"
                             style="background-color: #fff"
                             slot="reference">
                             <van-icon :name="targetOne" size="26" />
@@ -279,7 +279,6 @@ 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: {
@@ -297,7 +296,6 @@ export default {
       visitRoutePath: '', //拜访页面路径
       clickIsFlage: true,
       timeData: '',
-      targetOne: targetOne,
     };
   },
   filters: {
@@ -309,6 +307,10 @@ export default {
         type = '金牌店7天未完工列表';
       } else if (value == 'jinPaiAbnormalNum') {
         type = '金牌店30天未结案列表';
+      } else if (value == 'TuLiaoAbnormalNum') {
+        type = '同城分销-涂料店7天未结案列表';
+      } else if (value == 'QiTaAbnormalNum') {
+        type = '同城分销-其他店7天未结案列表';
       }
       return type;
     },

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

@@ -47,14 +47,12 @@ 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() {
@@ -83,8 +81,15 @@ 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();
@@ -103,32 +108,19 @@ 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 {
-        // <!-- 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';
-          }
+        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';
         } else {
-          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';
-          }
+          localStorage.setItem('isGZorJZ', 'false');
+          this.isGZorJZ = 'false';
         }
       }
       // 家装或工装不显示提示类tab
@@ -172,16 +164,19 @@ export default {
       // window.location.href = process.env.VUE_APP_SSB_LINK + "/homeIndex"
     },
     getReportInfo() {
-      this.toastLoading(0, '加载中...', true);
-      // 获取移动端获取用户信息接口
-      store
-        .dispatch('getReportInfoDeta')
-        .then(() => {
-          this.toastLoading().clear();
-        })
-        .catch(() => {
-          this.toastLoading().clear();
-        });
+      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);
+        }
+      });
     },
     deepseek() {
       buryingPoint({

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

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

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

@@ -90,7 +90,7 @@ export default {
       });
     },
     goback() {
-      window.location.replace(window.location.origin + '/mobile/My/index');
+      window.location.replace(window.location.origin + this.locationOrigin + '/My/index');
     },
     // 返回订单详情也
     gobackStoreDetail() {
@@ -100,7 +100,7 @@ export default {
       localStorage.setItem('successStoreId', this.fromValue.storeId);
       // 跳转到列表在跳到详情页在跳编辑页
       window.location.replace(
-        window.location.origin + '/mobile/storemanagementlist?source=successPage'
+        window.location.origin + this.locationOrigin + '/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,7 +215,8 @@ export default {
                                   .then(() => {
                                     window.location.replace(
                                       window.location.origin +
-                                        '/mobile/suishenbangOutstoreVisit?PointSum=' +
+                                        this.locationOrigin +
+                                        '/suishenbangOutstoreVisit?PointSum=' +
                                         PointSumval +
                                         '&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                                         that.fromValue.storeId +
@@ -240,7 +241,7 @@ export default {
                                         '&marklat=' +
                                         res.latitude +
                                         '&marklon=' +
-                                        res.longitude
+                                        res.longitude,
                                     );
                                   });
                                 localStorage.setItem('startTime', new Date());
@@ -266,7 +267,8 @@ export default {
                           .then(() => {
                             window.location.replace(
                               window.location.origin +
-                                '/mobile/suishenbangOutstoreVisit?PointSum=' +
+                                this.locationOrigin +
+                                '/suishenbangOutstoreVisit?PointSum=' +
                                 PointSumval +
                                 '&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                                 that.fromValue.storeId +
@@ -291,14 +293,15 @@ export default {
                                 '&marklat=' +
                                 res.latitude +
                                 '&marklon=' +
-                                res.longitude
+                                res.longitude,
                             );
                           })
                           .catch(() => {});
                       } else {
                         window.location.replace(
                           window.location.origin +
-                            '/mobile/suishenbangOutstoreVisit?PointSum=0&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
+                            this.locationOrigin +
+                            '/suishenbangOutstoreVisit?PointSum=0&visitModel=1&tabVal=1&hisTime=null&pageType=out&visitId=null&rdId=null&storeId=' +
                             that.fromValue.storeId +
                             '&lat=' +
                             that.fromValue.lat +
@@ -321,7 +324,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 + '/mobile/clew');
+                window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/clew');
+              window.location.replace(window.location.origin + this.locationOrigin + '/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 + '/mobile/clew');
+              window.location.replace(window.location.origin + this.locationOrigin + '/clew');
             } else {
               store.dispatch('setRefreshClewPage', true);
               // 返回上一页不会刷新页面

+ 6 - 4
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,7 +251,9 @@ export default {
                 showCancelButton: false,
               })
               .then(() => {
-                window.location.replace(window.location.origin + '/mobile/assignAwait');
+                window.location.replace(
+                  window.location.origin + this.locationOrigin + '/assignAwait',
+                );
               });
           }
           this.getDictOptionFun();
@@ -270,7 +272,7 @@ export default {
         this.toastLoading().clear();
         if (res.code == 200) {
           this.$toast(res.msg);
-          window.location.replace(window.location.origin + '/mobile/assignAwait');
+          window.location.replace(window.location.origin + this.locationOrigin + '/assignAwait');
         } else {
           this.$toast(res.msg);
         }

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

@@ -0,0 +1,102 @@
+<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>

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

@@ -30,25 +30,396 @@
         <target :homePageIndicatorDate="homePageIndicatorList"></target>
       </template>
       <template v-else>
-        <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 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>
       </template>
       <div class="contentContainer">
@@ -145,8 +516,6 @@ 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',
@@ -160,8 +529,6 @@ export default {
     veryGoodPlaceOrder,
     reportCustom,
     target,
-    Atarget,
-    Btarget,
   },
   data() {
     return {
@@ -323,10 +690,14 @@ export default {
                 message: '日报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + '/mobile/home');
+                window.location.replace(window.location.origin + this.locationOrigin + '/home');
               });
           } else {
-            this.homePageIndicatorList = res.data.homePageIndicatorList;
+            if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
+              this.homePageIndicatorList = res.data.homePageIndicatorList;
+            } else {
+              this.homePageIndicatorList = null;
+            }
             localStorage.setItem('powerGrade', res.data.positionId);
             localStorage.setItem('userDeptLevel', res.data.userDeptLevel);
             this.GZQuota = false;
@@ -524,7 +895,7 @@ export default {
               })
               .catch(() => {
                 if (this.$route.query.reportId != undefined) {
-                  window.location.replace(window.location.origin + '/mobile/home');
+                  window.location.replace(window.location.origin + this.locationOrigin + '/home');
                 } else {
                   this.onClickLeft();
                 }
@@ -537,7 +908,9 @@ export default {
               })
               .then(() => {
                 if (this.$route.query.reportId != undefined) {
-                  window.location.replace(window.location.origin + '/mobile/myHistoricalDaily');
+                  window.location.replace(
+                    window.location.origin + this.locationOrigin + '/myHistoricalDaily',
+                  );
                 } else {
                   this.onClickLeft();
                 }
@@ -617,8 +990,11 @@ export default {
         this.GZQuota = false;
         this.JZQuota = false;
         this.YFQuota = res.data.postType == 'YF' ? true : false;
-        this.homePageIndicatorList = res.data.homePageIndicatorList;
-
+        if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
+          this.homePageIndicatorList = res.data.homePageIndicatorList;
+        } else {
+          this.homePageIndicatorList = null;
+        }
         if (res.data.postType == 'JZ') {
           this.JZQuota = true;
         } else if (res.data.postType == 'GZ') {

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

@@ -15,23 +15,434 @@
         <target :homePageIndicatorDate="homePageIndicatorList"></target>
       </template>
       <template v-else>
-        <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>
+        <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>
             </template>
-          </template>
-          <template v-else-if="!YFQuota">
-            <!-- YFQuota:应用服务平台 不显示各项指标 -->
-            <Atarget :reportInfo="reportTarget"></Atarget>
-            <Btarget :reportInfo="reportTarget"></Btarget>
-          </template>
+          </van-collapse-item>
         </van-collapse>
       </template>
       <div class="contentContainer">
@@ -137,8 +548,6 @@ 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: {
@@ -151,8 +560,6 @@ export default {
     veryGoodPlaceOrder,
     reportCustom,
     target,
-    Atarget,
-    Btarget,
   },
   data() {
     return {
@@ -279,7 +686,9 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
+              window.location.replace(
+                window.location.origin + this.locationOrigin + '/dailyApprovalList',
+              );
             });
         } else {
           this.$toast.fail(res.msg);
@@ -318,7 +727,9 @@ export default {
               message: '提交成功',
             })
             .then(() => {
-              window.location.replace(window.location.origin + '/mobile/dailyApprovalList');
+              window.location.replace(
+                window.location.origin + this.locationOrigin + '/dailyApprovalList',
+              );
             });
         } else {
           this.$toast.fail(res.msg);
@@ -333,7 +744,11 @@ export default {
       });
       getDetailById({ reportId: this.$route.query.reportId }).then((res) => {
         this.postName = res.data.postName;
-        this.homePageIndicatorList = res.data.homePageIndicatorList;
+        if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
+          this.homePageIndicatorList = res.data.homePageIndicatorList;
+        } else {
+          this.homePageIndicatorList = null;
+        }
         this.GZQuota = false;
         this.JZQuota = false;
         this.YFQuota = res.data.postType == 'YF' ? true : false;
@@ -354,7 +769,7 @@ export default {
                 message: '日报已审批',
               })
               .then(() => {
-                window.location.replace(window.location.origin + '/mobile/home');
+                window.location.replace(window.location.origin + this.locationOrigin + '/home');
               });
           } else {
             this.reportTargetAll = res.data.reportTargetAll;

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

@@ -8,7 +8,7 @@
             <div
               class="shareBtn"
               @click="clickShareFlag(-1)"
-              v-if="reportTarget && source != 'share'">
+              v-if="reportTarget && source != 'share' && reportTarget.reportPostType == 'fx'">
               <van-icon name="share" />
               <div class="vedioLinks" @click.stop>
                 <span>一键分享日报,</span>
@@ -33,25 +33,442 @@
           <target :homePageIndicatorDate="homePageIndicatorList"></target>
         </template>
         <template v-else>
-          <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>
+          <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>
                 <template v-else>
-                  <!-- 历史指标 -->
-                  <Atarget :reportInfo="reportTarget"></Atarget>
-                  <Btarget :reportInfo="reportTarget"></Btarget>
+                  <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>
               </template>
-              <template v-else>
-                <!-- YFQuota:应用服务平台 不显示各项指标 -->
-                <Atarget :reportInfo="reportTarget"></Atarget>
-                <Btarget :reportInfo="reportTarget"></Btarget>
-              </template>
-            </template>
+            </van-collapse-item>
           </van-collapse>
         </template>
         <div class="contentContainer">
@@ -132,7 +549,7 @@
                 <div
                   class="shareBtn"
                   @click="clickShareFlag(index)"
-                  v-if="reportTarget && source != 'share'">
+                  v-if="reportTarget && source != 'share' && reportTarget.reportPostType == 'fx'">
                   <van-icon name="share" />
                 </div>
               </div>
@@ -185,10 +602,7 @@
       :urlList="urlList"
       :reportRemarksIndex="reportRemarksIndex"
       :reportContents="reportContents"
-      :checkedPlan="checkedPlan"
-      :isTarget="isTarget"
-      :isReportCustom="isReportCustom"
-      :isHistory="reportTarget.isHistory"></share>
+      :checkedPlan="checkedPlan"></share>
     <!--分享图片列表 -->
     <el-dialog
       title="选择分享的内容"
@@ -198,67 +612,36 @@
       :close-on-click-modal="false"
       @close="wuliaoTableClose"
       custom-class="shareImgFlag">
-      <div>
+      <div v-if="reportTarget.photoSummary">
         <!-- <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-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>
+        <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>
       </div>
       <span slot="footer" class="footer-btn">
         <van-button plain type="primary" @click="shareImgFlag = false">取 消</van-button>
@@ -290,8 +673,6 @@ 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',
@@ -306,8 +687,6 @@ export default {
     share,
     reportCustom,
     target,
-    Atarget,
-    Btarget,
   },
   data() {
     return {
@@ -375,8 +754,6 @@ export default {
       managerRemarkContent: '',
       postName: '',
       homePageIndicatorList: null,
-      isTarget: false, //日报指标
-      isReportCustom: true, //日报填写内容
     };
   },
   created() {
@@ -424,69 +801,31 @@ 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() {
-      // 旧的分享没有图标不会进来
-      // 是否有图片
-      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;
-          }
-        }
+      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;
       }
       buryingPoint({
         systemModel: '日报审核',
@@ -566,7 +905,11 @@ export default {
       });
       getDetailById({ reportId: this.$route.query.reportId }).then((res) => {
         loading1.clear();
-        this.homePageIndicatorList = res.data.homePageIndicatorList;
+        if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
+          this.homePageIndicatorList = res.data.homePageIndicatorList;
+        } else {
+          this.homePageIndicatorList = null;
+        }
         this.postName = res.data.postName;
         this.reportTargetAll = res.data.reportTargetAll;
         this.reportTarget = res.data;
@@ -869,60 +1212,25 @@ 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: 50px;
+      height: 40px;
       display: flex;
-      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;
-      }
+      justify-content: right;
       .el-dialog__headerbtn {
-        position: absolute;
-        right: 15px;
-        top: 15px;
+        position: static !important;
       }
     }
     .el-dialog__body {
-      padding: 20px !important;
+      padding: 30px 20px !important;
       overflow-y: auto;
       flex: 1;
-      background-color: #fff;
     }
     .cell {
       font-size: 12px;
     }
     .footer-btn {
       display: flex;
-      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;
-      }
+      justify-content: space-around;
     }
   }
 }
@@ -936,22 +1244,20 @@ 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__title {
-    height: 50px;
-    line-height: 50px !important;
-  }
-  .el-dialog__footer {
-    padding: 0;
+  .el-dialog__header {
+    display: flex;
+    .el-dialog__title {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
   }
 }
 .notifyIndex {

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

@@ -10,7 +10,12 @@
             <div
               class="shareBtn"
               @click="clickShareFlag(-1)"
-              v-if="reportTarget && source != 'share' && reportTarget.status != -1">
+              v-if="
+                reportTarget &&
+                source != 'share' &&
+                reportTarget.reportPostType == 'fx' &&
+                reportTarget.status != -1
+              ">
               <van-icon name="share" />
               <div class="vedioLinks" @click.stop>
                 <span>一键分享日报,</span>
@@ -41,25 +46,442 @@
           <target :homePageIndicatorDate="homePageIndicatorList"></target>
         </template>
         <template v-else>
-          <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>
+          <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>
                 <template v-else>
-                  <!-- 历史指标 -->
-                  <Atarget :reportInfo="reportTarget"></Atarget>
-                  <Btarget :reportInfo="reportTarget"></Btarget>
+                  <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>
               </template>
-              <template v-else>
-                <!-- YFQuota:应用服务平台 不显示各项指标 -->
-                <Atarget :reportInfo="reportTarget"></Atarget>
-                <Btarget :reportInfo="reportTarget"></Btarget>
-              </template>
-            </template>
+            </van-collapse-item>
           </van-collapse>
         </template>
         <div class="contentContainer">
@@ -139,7 +561,12 @@
                 <div
                   class="shareBtn"
                   @click="clickShareFlag(index)"
-                  v-if="reportTarget && source != 'share' && reportTarget.status != -1">
+                  v-if="
+                    reportTarget &&
+                    source != 'share' &&
+                    reportTarget.reportPostType == 'fx' &&
+                    reportTarget.status != -1
+                  ">
                   <van-icon name="share" />
                 </div>
               </div>
@@ -155,7 +582,7 @@
             </div>
           </div>
         </div>
-        <div class="contentContainer" v-if="reportTarget.comment && reportTarget.status != -1">
+        <div class="contentContainer">
           <p class="contentContainerTitle">点评</p>
           <div style="padding: 10px 0">
             <van-field
@@ -170,7 +597,7 @@
         </div>
       </div>
       <br />
-      <div class="contentborder" v-if="reportTarget.comment && reportTarget.status != -1">
+      <div class="contentborder">
         <van-button type="info" size="small" plain class="Btn1" @click="submint"
           >提交点评</van-button
         >
@@ -204,10 +631,7 @@
       :urlList="urlList"
       :reportRemarksIndex="reportRemarksIndex"
       :reportContents="reportContents"
-      :checkedPlan="checkedPlan"
-      :isTarget="isTarget"
-      :isReportCustom="isReportCustom"
-      :isHistory="reportTarget.isHistory"></share>
+      :checkedPlan="checkedPlan"></share>
     <!--分享图片列表 -->
     <el-dialog
       title="选择分享的内容"
@@ -217,50 +641,36 @@
       :close-on-click-modal="false"
       @close="wuliaoTableClose"
       custom-class="shareImgFlag">
-      <div>
+      <div v-if="reportTarget.photoSummary">
         <!-- <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-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>
+        <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>
       </div>
       <span slot="footer" class="footer-btn">
         <van-button plain type="primary" @click="shareImgFlag = false">取 消</van-button>
@@ -293,8 +703,6 @@ 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',
@@ -309,8 +717,6 @@ export default {
     share,
     reportCustom,
     target,
-    Atarget,
-    Btarget,
   },
   data() {
     return {
@@ -381,8 +787,6 @@ export default {
       shareReportConfig: null,
       postName: '',
       homePageIndicatorList: null,
-      isTarget: false, //日报指标
-      isReportCustom: true, //日报填写内容
     };
   },
   watch: {
@@ -432,69 +836,31 @@ 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() {
-      // 旧的分享没有图标不会进来
-      // 是否有图片
-      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;
-          }
-        }
+      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;
       }
       buryingPoint({
         systemModel: '日报审核',
@@ -650,7 +1016,9 @@ export default {
               });
             });
         } else {
-          this.homePageIndicatorList = res.data.homePageIndicatorList;
+          if (res.data.postName == '质感销售负责人' || res.data.postName == '质感销售专员') {
+            this.homePageIndicatorList = res.data.homePageIndicatorList;
+          }
           console.log(this.homePageIndicatorList);
           this.postName = res.data.postName;
           this.GZQuota = false;
@@ -1016,13 +1384,6 @@ export default {
       justify-content: center;
     }
   }
-  .el-dialog__title {
-    height: 50px;
-    line-height: 50px !important;
-  }
-  .el-dialog__footer {
-    padding: 0;
-  }
 }
 .notifyIndex {
   z-index: 999999 !important;

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

@@ -27,20 +27,8 @@
       <div class="lineGrey"></div>
       <div class="lineGrey"></div>
       <van-collapse v-model="activeNames">
-        <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>
+        <Atarget :reportInfo="reportTarget"></Atarget>
+        <Btarget :reportInfo="reportTarget"></Btarget>
         <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <reportCustom
@@ -131,7 +119,6 @@ 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',
@@ -146,7 +133,6 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
-    target,
   },
   data() {
     return {
@@ -179,7 +165,6 @@ export default {
       temporaryShow: '',
       type: '-1',
       JZQuota: false,
-      homePageIndicatorList: null,
     };
   },
   created() {
@@ -243,10 +228,9 @@ export default {
                 message: '半月报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + '/mobile/home');
+                window.location.replace(window.location.origin + this.locationOrigin + '/home');
               });
           } else {
-            this.homePageIndicatorList = res.data.homePageIndicatorList || null;
             this.reportTargetAll = res.data.reportTargetAll;
             this.reportTarget = res.data;
             this.type = res.data.userType;
@@ -536,7 +520,9 @@ export default {
             })
             .then(() => {
               if (this.$route.query.reportId != undefined) {
-                window.location.replace(window.location.origin + '/mobile/myHistoricalDaily');
+                window.location.replace(
+                  window.location.origin + this.locationOrigin + '/myHistoricalDaily',
+                );
               } else {
                 this.onClickLeft();
                 // window.location.replace(window.location.origin + '/mobile/home');
@@ -562,7 +548,6 @@ 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 = [];

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

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

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

@@ -12,20 +12,8 @@
     <!--        主体内容-->
     <div class="container linep">
       <van-collapse v-model="activeNames">
-        <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>
+        <Atarget :reportInfo="reportTarget"></Atarget>
+        <Btarget :reportInfo="reportTarget"></Btarget>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
           <reportCustom
@@ -156,7 +144,6 @@ 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',
@@ -171,7 +158,6 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
-    target,
   },
   data() {
     return {
@@ -215,7 +201,6 @@ export default {
       type: '-1',
       ptitle: '',
       JZQuota: false,
-      homePageIndicatorList: null,
       //
     };
   },
@@ -264,7 +249,6 @@ 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;

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

@@ -68,6 +68,15 @@
               <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">
@@ -267,9 +276,15 @@ 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,

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

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

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

@@ -29,20 +29,8 @@
       <van-collapse v-model="activeNames" style="margin-top: -3px">
         <template v-if="!YFQuota">
           <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <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>
+          <Atarget :reportInfo="reportTarget"></Atarget>
+          <Btarget :reportInfo="reportTarget"></Btarget>
         </template>
         <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
@@ -174,7 +162,6 @@ 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: {
@@ -192,7 +179,6 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
-    target,
   },
   data() {
     return {
@@ -228,7 +214,6 @@ export default {
       JZQuota: false,
       YFQuota: false, //应用服务
       GZdata: false,
-      homePageIndicatorList: null,
     };
   },
   created() {
@@ -273,7 +258,6 @@ 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(
@@ -286,7 +270,7 @@ export default {
                 message: '周报已提交或过期',
               })
               .then(() => {
-                window.location.replace(window.location.origin + '/mobile/home');
+                window.location.replace(window.location.origin + this.locationOrigin + '/home');
               });
           } else {
             this.reportTargetAll = res.data.reportTargetAll;
@@ -565,7 +549,9 @@ export default {
             })
             .then(() => {
               if (this.$route.query.reportId != undefined) {
-                window.location.replace(window.location.origin + '/mobile/myHistoricalDaily');
+                window.location.replace(
+                  window.location.origin + this.locationOrigin + '/myHistoricalDaily',
+                );
               } else {
                 this.onClickLeft();
                 // window.location.replace(window.location.origin + '/mobile/home');
@@ -587,7 +573,6 @@ 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(

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

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

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

@@ -14,23 +14,12 @@
       <van-collapse v-model="activeNames">
         <template v-if="!YFQuota">
           <!-- YFQuota:应用服务平台 不显示各项指标 -->
-          <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>
+          <Atarget :reportInfo="reportTarget"></Atarget>
+          <Btarget :reportInfo="reportTarget"></Btarget>
         </template>
         <div class="contentContainer" v-if="reportTarget.isHistory == '0'">
           <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
+
           <reportCustom
             ref="reportCustom"
             :disabled="true"
@@ -186,7 +175,6 @@ 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',
@@ -205,7 +193,6 @@ export default {
     Atarget,
     Btarget,
     reportCustom,
-    target,
   },
   data() {
     return {
@@ -251,18 +238,14 @@ 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();
@@ -295,7 +278,6 @@ 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;

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

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