Procházet zdrojové kódy

完美门店优化

zhujindu před 3 dny
rodič
revize
d2c7b4b081

binární
src/assets/shouzhi.png


+ 1 - 1
src/views/deviceOutside/index.vue

@@ -365,7 +365,7 @@
                   @click="openPerfectStore(item)">
                   <div style="margin: 4px; font-size: 14px; font-weight: 600">
                     <img
-                      style="width: 18px; height: 20px; margin-left: 5px; vertical-align: -5px"
+                      style="width: 18px; height: 20px; margin: 0 5px; vertical-align: -5px"
                       :src="require('@/assets/shouzhi.png')" />完美门店报告
                   </div>
                 </div>

+ 10 - 11
src/views/deviceWithin/index.vue

@@ -372,20 +372,17 @@
             <van-icon :name="times" color="#ee0a24" size="32" />
           </div>
           <template v-if="item.stateString == '已拜访'">
-            <div class="statstext">
-              已拜访
+            <div class="statstext" style="background-color: #e3f0fe">
+              <span style="color: #387bca">已拜访</span>
               <div
                 class="statstextIcon"
-                style="border-radius: 6px; background-color: #e3f0fe; color: #387bca"
+                style="background-color: #0057ba"
                 v-if="item.jinpaiStore"
                 @click="openPerfectStore(item)">
-                <div style="margin: 3px 7px; font-size: 14px; font-weight: 600">
-                  <p style="line-height: 20px; margin: 0">
-                    查看<img
-                      style="width: 18px; height: 20px; margin-left: 5px; vertical-align: -5px"
-                      :src="require('@/assets/shouzhi.png')" />
-                  </p>
-                  <p style="line-height: 20px; margin: 0">完美门店</p>
+                <div style="margin: 4px; font-size: 14px; font-weight: 600">
+                  <img
+                    style="width: 18px; height: 20px; margin: 0 5px; vertical-align: -5px"
+                    :src="require('@/assets/shouzhi.png')" />完美门店报告
                 </div>
               </div>
             </div>
@@ -1781,9 +1778,11 @@ export default {
   height: 0.7em;
 }
 .statstextIcon {
+  width: 121px;
   position: absolute;
-  left: -11px;
+  left: -62px;
   top: 31px;
+  border-radius: 15px 0 0 15px;
 }
 .visitStoreIco {
   float: left;

+ 5 - 27
src/views/historicalVisit/perfectStore.vue

@@ -93,30 +93,6 @@
           <p style="text-align: right">点评时间:{{ managerRemarkContents[0].createTime }}</p>
         </van-collapse-item>
       </van-collapse> -->
-      <!-- <template v-if="list.isSku == '是'">
-        <div style="padding: 10px 16px; font-size: 16px; font-weight: bold">SKU图像识别结果</div>
-        <div class="card">
-          <div
-            class="info"
-            @click="toSkuRecognize"
-            style="
-              display: flex;
-              align-items: center;
-              justify-content: space-between;
-              padding: 3px;
-            ">
-            <p
-              style="flex: 1; margin: 0; line-height: 24px; padding: 10px 0; display: inline-block">
-              拍摄的所有产品陈列照识别结果:<span v-if="list.skuTotal" style="color: red"
-                >{{ list.skuTotal }}个</span
-              >
-            </p>
-            <p class="arrowdetils1">
-              <van-icon name="arrow" />
-            </p>
-          </div>
-        </div>
-      </template> -->
       <!-- 特殊任务展示 -->
       <!-- 店招 -->
       <div class="shopSign specialTask" v-if="shopSignDetail && shopSignDetail.qualifiedState">
@@ -169,12 +145,14 @@
         </div>
       </div>
       <!-- 目前陈列任务 -->
-      <div class="TSJBox specialTask" v-if="list.isSku == '是'">
+      <div
+        class="TSJBox specialTask"
+        v-if="list.isSku == '是' && taskTypeArr && taskTypeArr.length">
         <div class="specialTaskLeft">
           <div class="SignText">AI 陈列任务识别</div>
         </div>
       </div>
-      <div class="SKUBox">
+      <div class="SKUBox" v-if="taskTypeArr && taskTypeArr.length">
         <div class="SKUList">
           <div
             class="itemList"
@@ -626,7 +604,7 @@ export default {
   .SKUBox {
     margin: 0px 10px 10px 10px;
     border-radius: 10px;
-    min-height: 90px;
+    // min-height: 90px;
     padding: 5px 10px;
     font-size: 16px;
     // background: #ffecf4;

+ 43 - 76
src/views/historicalVisit/perfectStoreSku.vue

@@ -1,15 +1,7 @@
 <template>
   <div class="perfectStoreSku">
     <van-nav-bar class="navBar" title="拜访任务详情" left-arrow @click-left="onClickLeft">
-      <template #right>
-        <!-- <van-button
-          style="height: 30px; padding: 5px; border-radius: 5px"
-          type="info"
-          v-if="detail && detail.skuPhotoIdentifyId"
-          @click="clickFeedbackShow"
-          >识别异常反馈</van-button
-        > -->
-      </template>
+      <template #right> </template>
     </van-nav-bar>
     <div class="content" v-if="detail">
       <div class="container">
@@ -17,9 +9,6 @@
           <span class="headlineIcon"></span>
           <span class="headlineTitle">生动化陈列</span>
         </div>
-        <!-- <div class="tipsTitle" style="padding: 10px">
-          目前识别桶装和战略产品合计106个,后续会增加识别产品数
-        </div> -->
         <div style="padding: 10px">
           <van-row gutter="10">
             <van-col span="6" v-for="(urls, index) in detail.fileUrlList" :key="index">
@@ -30,13 +19,13 @@
           </van-row>
         </div>
       </div>
-      <div class="skuDeatil" v-if="detail.skuList">
+      <div class="skuDeatil" v-if="skuList">
         <div class="headline" style="margin-top: 10px">
           <span class="headlineIcon"></span>
           <span class="headlineTitle">SKU图像识别结果:{{ detail.skuNum }}个</span>
         </div>
         <el-table
-          :data="detail.skuList"
+          :data="skuList"
           style="width: 100%; border-radius: 10px"
           border
           class="table-headermd1">
@@ -54,44 +43,31 @@
           <el-table-column label="排面数" prop="count" align="center" width="50"></el-table-column>
         </el-table>
       </div>
-      <!-- 返回历史 -->
-      <!-- <div class="feedbackHistorical" v-if="detail.feedbackList.length">
-        <div class="tableTitle">识别异常反馈</div>
-        <div class="historicalContent">
-          <div class="rejectMsgItem" v-for="(item, index) in detail.feedbackList" :key="index">
-            <div class="item approver">
-              <span class="label">反馈人:</span>
-              <span class="value">{{ item.nickName }}</span>
-            </div>
-            <div class="item approvalTime">
-              <span class="label">反馈时间:</span>
-              <span class="value">{{ item.createTime }}</span>
-            </div>
-            <div class="item rejectCause">
-              <span class="label">反馈内容:</span>
-              <span class="value">{{ item.feedbackContent }}</span>
-            </div>
-          </div>
+      <div class="skuDeatil" v-if="daojuList">
+        <div class="headline" style="margin-top: 10px">
+          <span class="headlineIcon"></span>
+          <span class="headlineTitle">道具识别结果:{{ daojuNum }}个</span>
         </div>
-      </div> -->
-    </div>
-    <!-- 识别异常反馈 -->
-    <van-popup v-model="feedbackShow" round class="feedbackMsgBox" :close-on-click-overlay="false">
-      <div class="feedbackTitle">SKU图像识别结果异常反馈</div>
-      <div class="feedbackContent">
-        <van-field
-          v-model="feedbackMessage"
-          rows="2"
-          autosize
-          type="textarea"
-          :formatter="formatter"
-          placeholder="若识别SKU有遗漏、缺失,请在此反馈,本部会根据实际情况优化模型,谢谢!" />
-      </div>
-      <div class="btnBox">
-        <van-button type="info" plain @click="feedbackShow = false">取消</van-button>
-        <van-button type="info" @click="feedbackSubmit">提交</van-button>
+        <el-table
+          :data="daojuList"
+          style="width: 100%; border-radius: 10px"
+          border
+          class="table-headermd1">
+          <el-table-column label="序号" type="index" align="center" width="40"> </el-table-column>
+          <el-table-column
+            label="品类"
+            prop="skuProductType"
+            align="center"
+            width="60"></el-table-column>
+          <el-table-column label="道具名称" prop="name" align="center">
+            <template slot-scope="scope">
+              <span class="tipTitle">{{ scope.row.name }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="排面数" prop="count" align="center" width="50"></el-table-column>
+        </el-table>
       </div>
-    </van-popup>
+    </div>
   </div>
 </template>
 
@@ -106,8 +82,9 @@ export default {
     return {
       visitsId: '',
       detail: null,
-      feedbackShow: false,
-      feedbackMessage: '', //反馈内容
+      daojuNum: 0,
+      skuList: [],
+      daojuList: [],
     };
   },
   activated() {
@@ -123,6 +100,20 @@ export default {
           this.toastLoading().clear();
           if (res.code == 200) {
             this.detail = res.data;
+            this.skuList = [];
+            this.daojuList = [];
+            this.detail.skuList.forEach((val) => {
+              if (val.skuProductType == '道具') {
+                this.daojuList.push(val);
+              } else {
+                this.skuList.push(val);
+              }
+            });
+            if (this.detail.skuTotal != null && this.detail.skuNum != null) {
+              this.daojuNum = this.detail.skuTotal - this.detail.skuNum;
+            } else {
+              this.daojuNum = 0;
+            }
           } else {
             this.$dialog.alert({
               message: res.msg,
@@ -135,36 +126,12 @@ export default {
           });
         });
     },
-    // 提交反馈
-    feedbackSubmit() {
-      if (this.feedbackMessage == '') {
-        this.$toast('请输入反馈意见!');
-        return;
-      }
-      photoSkuFeedback({
-        photoIdentifyId: this.detail.skuPhotoIdentifyId, //long	sku识别信息id
-        feedbackContent: this.feedbackMessage, //string	内容
-      }).then((res) => {
-        this.feedbackShow = false;
-        this.getDetail();
-      });
-    },
     previewsImg(index) {
       ImagePreview({
         images: this.detail.fileUrlList,
         startPosition: index,
       });
     },
-    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,
-        '',
-      );
-    },
-    clickFeedbackShow() {
-      this.feedbackMessage = '';
-      this.feedbackShow = true;
-    },
     onClickLeft() {
       this.$router.go(-1);
     },

+ 14 - 10
src/views/historicalVisit/perfectStoreTSJ.vue

@@ -77,7 +77,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div class="formLabel z-cell z-cells" v-if="item.answerType == 'zp'">
@@ -88,7 +88,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div
@@ -120,7 +120,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div class="formLabel z-cell z-cells" v-if="item.answerType == 'tel'">
@@ -142,7 +142,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div class="formLabel z-cell z-cells" v-if="item.answerType == 'date'">
@@ -164,7 +164,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div class="formLabel z-cell z-cells" v-if="item.answerType == 'sm'">
@@ -203,7 +203,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div class="formLabel z-cell z-cells" v-if="item.answerType == 'duox'">
@@ -219,7 +219,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
               <div class="formLabel z-cell z-cells" v-if="item.answerType == 'dx'">
@@ -235,7 +235,7 @@
                   <img
                     v-for="value in item.fileInfoList"
                     :src="value.fileUrl"
-                    @click="previewsImg(value.fileUrl)" />
+                    @click="previewsImg(item.fileInfoList)" />
                 </div>
               </div>
             </div>
@@ -351,8 +351,12 @@ export default {
         }
       }
     },
-    previewsImg(url) {
-      ImagePreview([url]);
+    previewsImg(fileInfoList) {
+      var arrimg = [];
+      for (var imgi = 0; imgi < fileInfoList.length; imgi++) {
+        arrimg.push(fileInfoList[imgi].fileUrl);
+      }
+      ImagePreview(arrimg);
     },
     onClickLeft() {
       this.$router.go(-1);