Bläddra i källkod

Merge branch 'feature_20251117_日报填写内容自定义配置' into uat(dev)

# Conflicts:
#	src/views/week/dailyDetails.vue
#	src/views/week/dailyHistoricalDetails.vue
zhujindu 1 vecka sedan
förälder
incheckning
0809909330
3 ändrade filer med 113 tillägg och 80 borttagningar
  1. 11 19
      src/components/share.vue
  2. 51 17
      src/views/week/dailyDetails.vue
  3. 51 44
      src/views/week/dailyHistoricalDetails.vue

+ 11 - 19
src/components/share.vue

@@ -55,25 +55,11 @@
             </div>
           </div>
         </div>
-        <!-- <template
-          v-for="(item, index) in reportTarget.reportContents"
-          v-if="reportTarget.reportContents && reportTarget.reportContents.length > 0">
-          <div :class="['text']">{{ filterText(index) }}</div>
-          <div class="content">{{ item.dayContent }}</div>
-        </template> -->
-        <template v-if="checkedPlan">
-          <div :class="['text']">今日机会与挑战总结</div>
-          <div class="content">
-            {{
-              reportTarget.reportContents.length ? reportTarget.reportContents[0].dayContent : ''
-            }}
-          </div>
-          <div :class="['text']">明日工作计划</div>
-          <div class="content">
-            {{
-              reportTarget.reportContents.length ? reportTarget.reportContents[1].dayContent : ''
-            }}
-          </div>
+        <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="photosData && photosData.length">
           <div class="text">今日拜访照片</div>
@@ -170,6 +156,12 @@ export default {
       type: Boolean,
       default: true,
     },
+    reportContents: {
+      type: Array,
+      default() {
+        return [];
+      },
+    },
   },
   data() {
     return {

+ 51 - 17
src/views/week/dailyDetails.vue

@@ -563,6 +563,7 @@
       @setDailyDetailsBox="setDailyDetailsBox"
       :urlList="urlList"
       :reportRemarksIndex="reportRemarksIndex"
+      :reportContents="reportContents"
       :checkedPlan="checkedPlan"></share>
     <!--分享图片列表 -->
     <el-dialog
@@ -574,11 +575,11 @@
       @close="wuliaoTableClose"
       custom-class="shareImgFlag">
       <div v-if="reportTarget.photoSummary">
-        <p style="margin-bottom: 15px; margin-top: 0; display: flex">
+        <!-- <p style="margin-bottom: 10px; margin-top: 0; display: flex">
           今日总结&明日规划的文本内容<van-checkbox
             v-model="checkedPlan"
             style="margin-left: 10px"></van-checkbox>
-        </p>
+        </p> -->
         <p style="margin-top: 0">请点击勾选想要分享的今日拜访照片</p>
         <div class="shareVisitImg">
           <template v-for="(itemImg, indexImg) in reportTarget.photoSummary">
@@ -620,6 +621,7 @@ import {
   getDetailById,
   getReportInfo,
   buryingPoint,
+  getDictOption,
 } from '@/api/index';
 import { ImagePreview } from 'vant';
 import visitedRealTime from '@/views/componentsTarget/visitedRealTime';
@@ -685,7 +687,7 @@ export default {
       Content: '',
       Content2: '',
       reportTargetAll: {},
-      reportContents: [{ dayContent: '' }],
+      reportContents: [],
       reportTarget: {},
       successContent: '',
       projectFollowNum: '',
@@ -710,7 +712,7 @@ export default {
       checkedPlan: true, //今日总结&明日规划
       shareVisible: true,
       visitIMG1Flag: false,
-      //
+      shareReportConfig: null,
     };
   },
   created() {
@@ -814,6 +816,10 @@ export default {
         message: '加载中...',
         forbidClick: true,
       });
+      // 获取店招异常原因字典
+      getDictOption({}, 'share_report_config').then((res) => {
+        this.shareReportConfig = res.data;
+      });
       getDetailById({ reportId: this.$route.query.reportId }).then((res) => {
         loading1.clear();
         this.reportTargetAll = res.data.reportTargetAll;
@@ -838,22 +844,50 @@ export default {
         } else {
           this.successContent = res.data.failContent;
         }
-        if (res.data.reportContents.length > 0) {
-          this.Content = res.data.reportContents[0].dayContent;
-          if (res.data.reportContents.length > 1) {
-            this.Content2 = res.data.reportContents[1].dayContent;
-          } else {
-            this.Content2 = '';
-          }
-          if (res.data.reportContents.length > 2) {
-            this.projectFollowNum = res.data.reportContents[2].projectFollowNum;
-            this.tucReportingSuccessNum = res.data.reportContents[3].tucReportingSuccessNum;
+        this.Content = '';
+        this.Content2 = '';
+        this.reportContents = [];
+        // <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
+        if (this.reportTarget.isHistory == '0') {
+          for (let x = 0; x < this.reportTarget.customTaskList.length; x++) {
+            let sfaReportCustomCollections =
+              this.reportTarget.customTaskList[x].sfaReportCustomCollections;
+            if (sfaReportCustomCollections) {
+              for (let y = 0; y < sfaReportCustomCollections.length; y++) {
+                let custom = this.shareReportConfig.filter(
+                  (val) => val.dictValue == sfaReportCustomCollections[y].reportCustomCollectionName
+                );
+                if (custom.length) {
+                  custom[0].content = sfaReportCustomCollections[y].answerValue;
+                  this.reportContents = this.reportContents.concat(custom);
+                }
+              }
+            }
           }
         } else {
-          this.Content = '';
-          this.Content2 = '';
+          if (res.data.reportContents.length > 0) {
+            this.Content = res.data.reportContents[0].dayContent;
+            if (res.data.reportContents.length > 1) {
+              this.Content2 = res.data.reportContents[1].dayContent;
+            } else {
+              this.Content2 = '';
+            }
+            if (res.data.reportContents.length > 2) {
+              this.projectFollowNum = res.data.reportContents[2].projectFollowNum;
+              this.tucReportingSuccessNum = res.data.reportContents[3].tucReportingSuccessNum;
+            }
+          }
+          this.reportContents = [
+            {
+              dictValue: '今日机会与挑战总结',
+              content: this.Content,
+            },
+            {
+              dictValue: '明日工作计划',
+              content: this.Content2,
+            },
+          ];
         }
-        this.reportContents = res.data.reportContents;
         var imgList = [];
         if (res.data.photoSummary != null) {
           for (var k = 0; k < res.data.photoSummary.length; k++) {

+ 51 - 44
src/views/week/dailyHistoricalDetails.vue

@@ -598,6 +598,7 @@
       @setDailyDetailsBox="setDailyDetailsBox"
       :urlList="urlList"
       :reportRemarksIndex="reportRemarksIndex"
+      :reportContents="reportContents"
       :checkedPlan="checkedPlan"></share>
     <!--分享图片列表 -->
     <el-dialog
@@ -609,11 +610,11 @@
       @close="wuliaoTableClose"
       custom-class="shareImgFlag">
       <div v-if="reportTarget.photoSummary">
-        <p style="margin-bottom: 15px; margin-top: 0; display: flex">
+        <!-- <p style="margin-bottom: 10px; margin-top: 0; display: flex">
           今日总结&明日规划的文本内容<van-checkbox
             v-model="checkedPlan"
             style="margin-left: 10px"></van-checkbox>
-        </p>
+        </p> -->
         <p style="margin-top: 0">请点击勾选想要分享的今日拜访照片</p>
         <div class="shareVisitImg">
           <template v-for="(itemImg, indexImg) in reportTarget.photoSummary">
@@ -722,7 +723,7 @@ export default {
       Content: '',
       Content2: '',
       reportTargetAll: null,
-      reportContents: [{ dayContent: '' }],
+      reportContents: [],
       reportTarget: {},
       successContent: '',
       managerRemarkContent: '',
@@ -746,7 +747,7 @@ export default {
       checkedPlan: true, //今日总结&明日规划
       setDailyDetailsBoxFlag: true,
       visitIMG1Flag: false,
-      //
+      shareReportConfig: null,
     };
   },
   watch: {
@@ -950,38 +951,16 @@ export default {
         }
       });
     },
-    // submint(){
-    //   let loading1 = this.$toast.loading({
-    //     duration: 0,
-    //     message: '数据提交中...',
-    //     forbidClick: true,
-    //   });
-    //   if(this.managerRemarkContent.trim()==""){
-    //     this.$toast("点评内容未填写")
-    //     return false
-    //   }
-    //   this.reportTarget.managerRemarkContent=this.managerRemarkContent
-    //   this.reportTarget.status=4
-    //   insertRemark(this.reportTarget).then(res=>{
-    //     loading1.clear()
-    //     if(res.code==200){
-    //       this.$dialog.alert({
-    //         title: '系统提示',
-    //         message: '提交成功',
-    //       }).then(() => {
-    //         this.getDetailById()
-    //       });
-    //     }else{
-    //       this.$toast.fail(res.msg)
-    //     }
-    //   })
-    // },
     getDetailById() {
       let loading1 = this.$toast.loading({
         duration: 0,
         message: '加载中...',
         forbidClick: true,
       });
+      // 获取店招异常原因字典
+      getDictOption({}, 'share_report_config').then((res) => {
+        this.shareReportConfig = res.data;
+      });
       getDetailById({ reportId: this.reportId }).then((res) => {
         loading1.clear();
         if (res.code == 500 && this.source == 'share') {
@@ -1019,22 +998,51 @@ export default {
           } else {
             this.successContent = res.data.failContent;
           }
-          if (res.data.reportContents.length > 0) {
-            this.Content = res.data.reportContents[0].dayContent;
-            if (res.data.reportContents.length > 1) {
-              this.Content2 = res.data.reportContents[1].dayContent;
-            } else {
-              this.Content2 = '';
-            }
-            if (res.data.reportContents.length > 2) {
-              this.projectFollowNum = res.data.reportContents[2].projectFollowNum;
-              this.tucReportingSuccessNum = res.data.reportContents[3].tucReportingSuccessNum;
+          this.Content = '';
+          this.Content2 = '';
+          this.reportContents = [];
+          // <!-- isHistory 是否为历史汇报:0-新汇报 1-历史汇报 -->
+          if (this.reportTarget.isHistory == '0') {
+            for (let x = 0; x < this.reportTarget.customTaskList.length; x++) {
+              let sfaReportCustomCollections =
+                this.reportTarget.customTaskList[x].sfaReportCustomCollections;
+              if (sfaReportCustomCollections) {
+                for (let y = 0; y < sfaReportCustomCollections.length; y++) {
+                  let custom = this.shareReportConfig.filter(
+                    (val) =>
+                      val.dictValue == sfaReportCustomCollections[y].reportCustomCollectionName
+                  );
+                  if (custom.length) {
+                    custom[0].content = sfaReportCustomCollections[y].answerValue;
+                    this.reportContents = this.reportContents.concat(custom);
+                  }
+                }
+              }
             }
           } else {
-            this.Content = '';
-            this.Content2 = '';
+            if (res.data.reportContents.length > 0) {
+              this.Content = res.data.reportContents[0].dayContent;
+              if (res.data.reportContents.length > 1) {
+                this.Content2 = res.data.reportContents[1].dayContent;
+              } else {
+                this.Content2 = '';
+              }
+              if (res.data.reportContents.length > 2) {
+                this.projectFollowNum = res.data.reportContents[2].projectFollowNum;
+                this.tucReportingSuccessNum = res.data.reportContents[3].tucReportingSuccessNum;
+              }
+            }
+            this.reportContents = [
+              {
+                dictValue: '今日机会与挑战总结',
+                content: this.Content,
+              },
+              {
+                dictValue: '明日工作计划',
+                content: this.Content2,
+              },
+            ];
           }
-          this.reportContents = res.data.reportContents;
           var imgList = [];
           if (res.data.photoSummary != null) {
             for (var k = 0; k < res.data.photoSummary.length; k++) {
@@ -1043,7 +1051,6 @@ export default {
           }
           this.imgList = imgList;
         }
-        this.reportContents = res.data.reportContents;
         var imgList = [];
         if (res.data.photoSummary != null) {
           if (res.data.photoSummary != null) {