zhujindu 1 dzień temu
rodzic
commit
4cc895c3ed
1 zmienionych plików z 164 dodań i 152 usunięć
  1. 164 152
      src/views/historicalVisit/perfectStore.vue

+ 164 - 152
src/views/historicalVisit/perfectStore.vue

@@ -6,7 +6,7 @@
         <span
           style="
             color: white;
-            background: #74a4d9;
+            background: #0057ba;
             display: block;
             padding: 6px 10px;
             border-radius: 6px;
@@ -19,46 +19,48 @@
     </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>
-      <!-- <p
+          </template>
+          <template v-else>
+            <div class="subtitle">经销商:{{ list.chainName }}</div>
+          </template>
+          <div class="subtitle" v-if="updateTimeShow">更新时间:{{ list.updateTime }}</div>
+        </div>
+        <!-- <p
         style="padding: 0 10px; font-size: 14px; color: #222; font-weight: bold"
         v-if="list.visitSource != 2 && ListHistoryList.length > 0">
         审批历史
       </p> -->
-      <!-- <div
+        <!-- <div
         v-for="(item1, index1) in ListHistoryList"
         :key="index1"
         style="background-color: white; padding-top: 14px">
@@ -73,7 +75,7 @@
         </van-steps>
         <div style="border-bottom: 2px solid #f5f5f5; margin: 0 16px 16px"></div>
       </div> -->
-      <!-- <van-collapse
+        <!-- <van-collapse
         v-model="active"
         class="fontWeit"
         v-if="managerRemarkContents != null && managerRemarkContents.length > 0">
@@ -93,141 +95,141 @@
           <p style="text-align: right">点评时间:{{ managerRemarkContents[0].createTime }}</p>
         </van-collapse-item>
       </van-collapse> -->
-      <!-- 特殊任务展示 -->
-      <!-- 店招 -->
-      <div class="shopSign specialTask" v-if="shopSignDetail && shopSignDetail.qualifiedState">
-        <div class="specialTaskLeft" @click="openPerfectStoreSign">
-          <div class="SignText">AI 店招识别</div>
-          <div class="signContent">
-            <div class="" style="display: flex">
-              <van-button round type="primary" v-if="shopSignDetail.qualifiedState == '1'"
-                >通过</van-button
-              >
-              <van-button round type="danger" v-if="shopSignDetail.qualifiedState == '0'"
-                >不通过</van-button
-              >
-              <div class="jiantou">
-                <van-icon name="arrow" />
+        <!-- 特殊任务展示 -->
+        <!-- 店招 -->
+        <div class="shopSign specialTask" v-if="shopSignDetail && shopSignDetail.qualifiedState">
+          <div class="specialTaskLeft" @click="openPerfectStoreSign">
+            <div class="SignText">AI 店招识别</div>
+            <div class="signContent">
+              <div class="" style="display: flex">
+                <van-button round type="primary" v-if="shopSignDetail.qualifiedState == '1'"
+                  >通过</van-button
+                >
+                <van-button round type="danger" v-if="shopSignDetail.qualifiedState == '0'"
+                  >不通过</van-button
+                >
+                <div class="jiantou">
+                  <van-icon name="arrow" />
+                </div>
               </div>
             </div>
           </div>
         </div>
-      </div>
-      <!-- 调色机 -->
-      <div class="TSJBox specialTask" v-if="tiaoSJDetail && tiaoSJDetail.qualifiedState">
-        <div class="specialTaskLeft" @click="openPerfectStoreTSJ">
-          <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 && tiaoSJDetail.qualifiedState">
+          <div class="specialTaskLeft" @click="openPerfectStoreTSJ">
+            <div class="SignText">AI 调色机识别</div>
+            <div class="signContent">
+              <div class="" style="display: flex">
+                <van-button round type="primary" v-if="tiaoSJDetail.qualifiedState == '1'"
+                  >通过</van-button
+                >
+                <van-button round type="danger" v-if="tiaoSJDetail.qualifiedState == '0'"
+                  >不通过</van-button
+                >
+                <div class="jiantou">
+                  <van-icon name="arrow" />
+                </div>
               </div>
             </div>
           </div>
         </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">
+                <span style="color: rgb(25, 137, 250)">查看详情</span>
+                <div class="jiantou">
+                  <van-icon name="arrow" />
+                </div>
               </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
-              >
-              <!-- <van-icon name="success" color="#07c160" v-if="value.taskPhotoConditionPassed == 1" />
+        <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
+                >
+                <!-- <van-icon name="success" color="#07c160" v-if="value.taskPhotoConditionPassed == 1" />
               <van-icon name="cross" color="#ee0a24" v-else /> -->
-              <div class="jiantou">
-                <van-icon name="arrow" />
+                <div class="jiantou">
+                  <van-icon name="arrow" />
+                </div>
               </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>
-      <!-- <div v-if="list.visitSource == 2" style="background-color: #fff">
+        <!-- <div v-if="list.visitSource == 2" style="background-color: #fff">
         <van-cell title="异常事由" :value="selectDictLabel(typeList, list.abnormalReason)" />
         <van-cell title="异常信息照" />
         <div style="padding: 10px 16px 0">
@@ -236,7 +238,7 @@
         <van-cell title="异常信息" :value="list.remark" />
       </div> -->
 
-      <!-- <div style="padding: 10px 16px; font-size: 16px; font-weight: bold">更多记录</div>
+        <!-- <div style="padding: 10px 16px; font-size: 16px; font-weight: bold">更多记录</div>
       <van-cell-group>
         <van-cell v-for="(item1, index1) in list.visitsMore" :key="index1">
           <template #title>
@@ -250,8 +252,8 @@
           </template>
         </van-cell>
       </van-cell-group> -->
-      <!-- 业务员拜访记录回显部主管反馈内容 -->
-      <!-- <template v-if="list.sfaPhotoApproveList && list.sfaPhotoApproveList.length">
+        <!-- 业务员拜访记录回显部主管反馈内容 -->
+        <!-- <template v-if="list.sfaPhotoApproveList && list.sfaPhotoApproveList.length">
         <div
           class="sfaPhotoApproveList"
           v-for="(item, index) in list.sfaPhotoApproveList"
@@ -301,6 +303,7 @@
           >
         </div>
       </div> -->
+      </van-pull-refresh>
     </div>
   </div>
 </template>
@@ -342,6 +345,7 @@ export default {
       shopSignDetail: null,
       tiaoSJDetail: null,
       taskTypeArr: null,
+      refreshing: false,
     };
   },
   activated() {
@@ -357,6 +361,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 : '';
@@ -460,6 +469,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);