Forráskód Böngészése

Merge branch 'release'

zhujindu 2 hónapja
szülő
commit
5b7326564c

BIN
src/assets/mapLocation.png


BIN
src/assets/searchLocation.png


+ 16 - 3
src/components/imageAIVerifyErr.vue

@@ -26,7 +26,18 @@
           </template>
           <template v-if="shotsNum >= maxNum">
             <div class="feedbackMessage">
-              <div class="label">若门店异常、或图像识别错误,可在此反馈:</div>
+              <!-- 调色机 -->
+              <div class="label" v-if="npkpiData.recognizeType == 3">
+                <template v-if="contentMessage == '投放号错误'">
+                  AI识别投放号为{{ deliveryCode }},如与实际投放号不一致,请在此反馈:
+                </template>
+                <template v-else-if="contentMessage == '投放号缺失'">
+                  AI未识别到调色机投放号,若AI识别错误,请在此反馈:
+                </template>
+                <template v-else>若认为AI识别错误,请在此反馈:</template>
+              </div>
+              <!-- 门店 -->
+              <div class="label" v-else>若门店异常、或图像识别错误,可在此反馈:</div>
               <div class="value">
                 <van-field
                   v-model="feedbackMessage"
@@ -156,6 +167,7 @@ export default {
       storeIDCardUrl: '', //	门店身份证
       maxNum: 2,
       tsjErrorMsg: '',
+      deliveryCode: '', //AI识别投放编号
     };
   },
   methods: {
@@ -181,6 +193,7 @@ export default {
       this.lastVisitUrl = imageAIVerifyData.lastVisitUrl || ''; //	上次拜访时店招
       this.storeIDCardUrl = imageAIVerifyData.storeIDCardUrl || ''; //	门店身份证
       this.tsjErrorMsg = imageAIVerifyData.tsjErrorMsg || ''; //	调色机识别结果
+      this.deliveryCode = this.npkpiData.colorantDispenserInfo.deliveryCode || ''; //AI识别投放编号
       // 先判断照片作弊情况,然后是否合格,然后是否和历史照片一致
       // 作弊和不合格记录识别次数,超过两次弹框提醒
       if (this.npkpiData.checkInfo) {
@@ -330,12 +343,12 @@ export default {
     }
     .tsjErrorMsg {
       font-size: vw(32);
-      margin-top: vw(45);
+      margin-top: vw(30);
       display: flex;
       justify-content: center;
       span {
         display: block;
-        max-width: 70%;
+        max-width: 90%;
       }
     }
   }

+ 14 - 0
src/components/uploadVNormal.vue

@@ -137,6 +137,16 @@ export default {
       type: String,
       default: '0',
     },
+    equipmentCode: {
+      // 当前任务对应的资产编号
+      type: String,
+      default: '',
+    },
+    inStore: {
+      // 调色机是否在店
+      type: String,
+      default: '否',
+    },
   },
   computed: {
     ...mapState({
@@ -357,6 +367,8 @@ export default {
         thirdCollectionId: thirdCollectionId,
         deviceCode: that.deviceCode, //设备编号
         putInCode: that.putInCode, //投放编号
+        equipmentCode: that.equipmentCode,
+        inStore: that.inStore,
       };
       // 0=企业微信,1=H5相机
       if (this.userInfo.photoMethod == '0') {
@@ -482,6 +494,8 @@ export default {
           url: res.data.url, //	String	当前拍摄图片的url
           businessId: res.data.businessId, // 当前拍摄图片id
           feedbackMessage: res.feedbackMessage,
+          equipmentCode: this.equipmentCode,
+          inStore: this.inStore,
         };
         // 0=企业微信,1=H5相机
         if (this.userInfo.photoMethod == '0') {

+ 62 - 40
src/views/deviceOutside/rangeStore.vue

@@ -128,6 +128,16 @@
         @reload="reload"
         :key="baiduMapKey"
         ref="myMap">
+        <!-- 地图中心坐标 -->
+        <bm-marker
+          v-if="touchmoveTrue"
+          :position="{ lng: currentCenter.lng, lat: currentCenter.lat }"
+          class="aaaa"
+          :icon="{
+            url: require('@/assets/mapLocation.png'),
+            size: { width: 32, height: 60 },
+          }">
+        </bm-marker>
         <!--        :minClusterSize="minClusterSize"-->
         <bml-marker-clusterer :averageCenter="false" :styles="styless">
           <bm-marker
@@ -137,8 +147,6 @@
             @click="infoShow(marker, index)"
             :icon="{ url: mpFn(marker, 2), size: { width: 34, height: 40 } }"></bm-marker>
         </bml-marker-clusterer>
-        <bm-marker :position="{ lng: lonmy, lat: latmy }"></bm-marker>
-        <!--        +0.00003-->
         <bm-marker
           :position="{ lng: info.lon, lat: info.lat }"
           :top="true"
@@ -162,10 +170,15 @@
             lineHeight: '50px',
           }"
           :offset="{ width: -10, height: -10 }" />
-        <!--        <bm-geolocation @locationSuccess="locationSuccess" anchor="BMAP_ANCHOR_BOTTOM_RIGHT" :showAddressBar="true" :autoLocation="true" :offset="{width:5,height:280}"></bm-geolocation>-->
       </baidu-map>
-      <img src="./../../assets/list.png" @click="onClickLeft" class="mapimg" />
-      <img src="./../../assets/sbpm.png" @click="onMaps" class="mapimg" style="bottom: 286px" />
+      <img src="./../../assets/sbpm.png" @click="onMaps" class="mapimg" style="bottom: 340px" />
+      <img
+        src="./../../assets/list.png"
+        @click="onClickLeft"
+        class="mapimg"
+        style="bottom: 286px" />
+      <!-- 获取当前中心位置数据 -->
+      <img src="./../../assets/searchLocation.png" @click="getLocationData" class="mapimg" />
       <div v-if="show" class="mapStoreList">
         <van-icon
           name="close"
@@ -859,6 +872,11 @@ export default {
       baiduMapKey: new Date().getTime(),
       isCompetingStores: true,
       postType: '',
+      currentCenter: {
+        lng: '',
+        lat: '',
+      }, //地图中心位置
+      touchmoveTrue: false, //移动后在线式中心图标
     };
   },
   created() {
@@ -874,6 +892,7 @@ export default {
   },
   activated() {
     this.postType = localStorage.getItem('postType');
+    this.touchmoveTrue = false;
     this.listData = [];
     this.baiduMapKey = new Date().getTime();
     this.closeFn();
@@ -981,6 +1000,16 @@ export default {
       // this.mapk.clearOverlays()
       this.getposition();
     },
+    getLocationData() {
+      // let currentCenter = this.CJ02BD(34.62200241805427, 112.45384320079718);
+      // this.lon = currentCenter.lon;
+      // this.lat = currentCenter.lat;
+
+      this.lon = this.currentCenter.lng;
+      this.lat = this.currentCenter.lat;
+      console.log(this.lon, this.lat);
+      this.getUserOutPlaList();
+    },
     getStoreTypeList() {
       getStoreTypeListlp({}).then((res) => {
         this.storeTypeLists = res.data;
@@ -1096,9 +1125,7 @@ export default {
         this.listData = this.list;
       }
     },
-    reload() {
-      debugger;
-    },
+    reload() {},
     handler({ BMap, map }) {
       this.mapk = map;
       this.mapks = BMap;
@@ -1123,18 +1150,21 @@ export default {
       this.geocoder = new TMap.service.Geocoder();
     },
     dragend(e) {
-      this.getMapposition(e, '2', this.$route.query.tabVal);
+      this.touchmoveTrue = true;
+      // const currentCenter = this.mapk.getCenter();
+      // console.log(`当前中心点纬度: ${currentCenter.lat}, 经度: ${currentCenter.lng}`);
+      // this.getMapposition(e, '2', this.$route.query.tabVal);
+      var input = [e.target.re.lat, e.target.re.lng];
+      this.currentCenter = new TMap.LatLng(Number(input[0]), Number(input[1]));
+      console.log(e);
+      console.log(`当前中心点纬度: ${this.currentCenter.lat}, 经度: ${this.currentCenter.lng}`);
     },
     zoomend(e) {
       this.getMapposition(e, '1', this.$route.query.tabVal);
     },
     getMapposition(e, type, listType) {
-      debugger;
       var that = this;
       var typeList = -1;
-      var input = [e.target.re.lat, e.target.re.lng];
-      var location = new TMap.LatLng(Number(input[0]), Number(input[1]));
-
       var Zoom = e.target.getZoom();
       if (listType == 1) {
         typeList = 1;
@@ -1159,11 +1189,11 @@ export default {
         var PointSum = that.twoPointSum(lat, lon, that.latsave, that.lonsave).toFixed(2);
         this.lon = this.mapk.getCenter().lng;
         this.lat = this.mapk.getCenter().lat;
-        if (PointSum > 3000) {
-          setTimeout(() => {
-            this.getUserOutPlaList();
-          }, 1000);
-        }
+        // if (PointSum > 3000) {
+        //   setTimeout(() => {
+        //     this.getUserOutPlaList();
+        //   }, 1000);
+        // }
       }
     },
     getStoreMapInfo(val) {
@@ -1336,6 +1366,8 @@ export default {
                   that.lon1 = location.lon;
                   that.latmy = location.lat;
                   that.lonmy = location.lon;
+                  that.currentCenter.lat = that.latmy;
+                  that.currentCenter.lng = that.lonmy;
                   that.mapk.centerAndZoom(new BMap.Point(location.lon, location.lat), 18);
                   that.onSearch();
                   // that.getUserOutPlaList('2');
@@ -1385,7 +1417,6 @@ export default {
       this.getpointList(row);
     },
     getpointList(val) {
-      debugger;
       var that = this;
       let loading3 = this.$toast.loading({
         duration: 0,
@@ -1556,11 +1587,9 @@ export default {
               this.$toast('附近无客户信息');
               this.show = false;
             }
-            if (res.total > 50) {
-              this.msg = this.setMapRangeTitle(res.total);
-              this.msgshow = true;
-              this.show = false;
-            }
+            this.msg = this.setMapRangeTitle(res.total);
+            this.msgshow = true;
+            this.show = false;
             if (this.first < 2) {
               this.zoom = 18;
               this.first = 2;
@@ -1598,11 +1627,9 @@ export default {
               this.$toast('附近无客户信息');
               this.show = false;
             }
-            if (res.total > 50) {
-              this.msg = this.setMapRangeTitle(res.total);
-              this.msgshow = true;
-              this.show = false;
-            }
+            this.msg = this.setMapRangeTitle(res.total);
+            this.msgshow = true;
+            this.show = false;
             if (this.first < 2) {
               this.zoom = 18;
               this.first = 2;
@@ -1640,11 +1667,9 @@ export default {
               this.$toast('附近无客户信息');
               this.show = false;
             }
-            if (res.total > 50) {
-              this.msg = this.setMapRangeTitle(res.total);
-              this.msgshow = true;
-              this.show = false;
-            }
+            this.msg = this.setMapRangeTitle(res.total);
+            this.msgshow = true;
+            this.show = false;
             if (this.first < 2) {
               this.zoom = 18;
               this.first = 2;
@@ -1690,7 +1715,6 @@ export default {
           }
         });
       } else {
-        debugger;
         getUserOrgStoreList({
           type: 2,
           lon: this.lon,
@@ -1723,11 +1747,9 @@ export default {
               this.$toast('附近无客户信息');
               this.show = false;
             }
-            if (res.total > 50) {
-              this.msg = this.setMapRangeTitle(res.total);
-              this.msgshow = true;
-              this.show = false;
-            }
+            this.msg = this.setMapRangeTitle(res.total);
+            this.msgshow = true;
+            this.show = false;
             if (this.first < 2) {
               this.zoom = 18;
               this.first = 2;

+ 41 - 8
src/views/deviceWithin/addStoreVisit.vue

@@ -26,12 +26,15 @@
     <div class="lineGrey"></div>
     <div class="lineGrey"></div>
     <div class="lineGrey"></div>
-    <div class="deviceCode" v-if="showCode">
+    <div class="deviceCode" v-if="inspectionType">
       <div class="vertical"></div>
-      <p>设备编号:{{ deviceCode }}</p>
-      <p>投放编号:{{ putInCode }}</p>
+      <div class="codeData">
+        <p>设备编号:{{ deviceCode }}</p>
+        <p>投放编号:{{ putInCode }}</p>
+        <p v-if="inspectionType == 'place'">资产编号:{{ equipmentCode }}</p>
+      </div>
     </div>
-    <div class="lineGrey" v-if="showCode"></div>
+    <div class="lineGrey" v-if="inspectionType"></div>
     <div
       v-if="taskType == 3"
       class="container"
@@ -2898,11 +2901,13 @@
             :childIndex="childIndex"
             :deviceCode="deviceCode"
             :putInCode="putInCode"
+            :equipmentCode="equipmentCode"
             @newimgarr="newimgarr1"
             @typeshow="typeshow"
             :photoIdentifyType="photoIdentifyType"
             :pictureSource="pictureSource"
             :continuousShoot="continuousShoot"
+            :inStore="machineInTheStore"
             ref="uploadVNormal"></upload-img>
         </template>
       </van-cell>
@@ -3126,6 +3131,7 @@ export default {
       maxDate: new Date(),
       currentDate: new Date(1945, 0, 1),
       continuousShoot: '0',
+      machineInTheStore: '否',
     };
   },
   beforeRouteLeave(to, from, next) {
@@ -3680,10 +3686,10 @@ export default {
         // 调色机类型:buy-购买类调色机,place-放置类调色机 不显示设备编号和投放编号
         if (this.inspectionType == 'buy') {
           this.equipmentCode = this.putInCode || '';
-          this.showCode = true;
+          // this.showCode = true;
         } else if (this.inspectionType == 'place') {
           this.equipmentCode = this.equipmentCode || '';
-          this.showCode = false;
+          // this.showCode = false;
         }
         // 生动化陈列是否可以编辑
         if (this.$route.query.types == 'edit' && this.photoIdentifyType == '6') {
@@ -4270,8 +4276,30 @@ export default {
       this.childIndex6 = childIndex6;
       this.childIndex7 = childIndex7;
       this.pType = type;
+      this.collectionItemList;
+      debugger;
+      this.filterInStore(this.collectionItemList[index]);
       this.show = true;
     },
+    filterInStore(item) {
+      let optionList = item.collectionOptionList || [];
+      if (item.collectionName == '机器是否在店') {
+        if (optionList.length) {
+          for (let i = 0; i < optionList.length; i++) {
+            if (optionList[i].isCheck == 1) {
+              this.machineInTheStore = optionList[i].collectionOption;
+              return false;
+            }
+          }
+        }
+      } else {
+        if (optionList.length) {
+          for (let i = 0; i < optionList.length; i++) {
+            this.filterInStore(optionList[i]);
+          }
+        }
+      }
+    },
     newimgarr1(val) {
       //  店招识别只允许上传一张
       let photoIdentifyType = val.photoIdentifyType;
@@ -4654,6 +4682,7 @@ export default {
           checkUnManage: checkUnManage,
           deviceCode: this.deviceCode || '', //设备编号
           putInCode: this.putInCode || '', //投放编号
+          equipmentCode: this.equipmentCode || '', //资产编号
         };
       }
 
@@ -5333,15 +5362,19 @@ export default {
   border-radius: 5px;
   position: relative;
   overflow: hidden;
+  display: flex;
+  flex-direction: row;
+  align-items: center;
 }
 .vertical {
   background-color: #2b2f3a;
   height: 14px;
   width: 8px;
   border-radius: 40px;
-  position: absolute;
+  margin-right: 10px;
+  /* position: absolute;
   left: -3px;
-  top: 50px;
+  top: 50px; */
 }
 .van-f-red {
   color: red;

+ 22 - 11
src/views/historicalVisit/hisvistdeils.vue

@@ -6,12 +6,15 @@
     <!--@click-right="onSubmit"-->
     <!--        主体内容-->
     <div class="lineGrey"></div>
-    <div class="deviceCode" v-if="showCode">
+    <div class="deviceCode" v-if="inspectionType">
       <div class="vertical"></div>
-      <p>设备编号:{{ deviceCode }}</p>
-      <p>投放编号:{{ putInCode }}</p>
+      <div class="codeData">
+        <p>设备编号:{{ deviceCode }}</p>
+        <p>投放编号:{{ putInCode }}</p>
+        <p v-if="inspectionType == 'place'">资产编号:{{ equipmentCode }}</p>
+      </div>
     </div>
-    <div class="lineGrey" v-if="showCode"></div>
+    <div class="lineGrey" v-if="inspectionType"></div>
     <div
       class="container containert"
       style="width: 100%; margin: 0 auto; padding: 10px 0"
@@ -318,6 +321,8 @@ export default {
       checkShow: false,
       infoData: {},
       putInCode: '',
+      inspectionType: '',
+      equipmentCode: '',
     };
   },
   activated() {
@@ -398,11 +403,13 @@ export default {
         // this.putInCode=res.data.putInCode;
         this.deviceCode = res.data.sfaTaskList[this.$route.query.ids].deviceCode || ''; // 设备编号
         this.putInCode = res.data.sfaTaskList[this.$route.query.ids].putInCode || ''; // 投放编号
-        if (res.data.sfaTaskList[this.$route.query.ids].inspectionType == 'buy') {
-          this.showCode = true;
-        } else {
-          this.showCode = false;
-        }
+        this.equipmentCode = res.data.sfaTaskList[this.$route.query.ids].equipmentCode || ''; // 机资产编号
+        this.inspectionType = res.data.sfaTaskList[this.$route.query.ids].inspectionType;
+        // if (res.data.sfaTaskList[this.$route.query.ids].inspectionType == 'buy') {
+        //   this.showCode = true;
+        // } else {
+        //   this.showCode = false;
+        // }
         if (this.$route.query.taskType == 1 || this.$route.query.taskType == 4) {
           for (var q = 0; q < collectionItemLists.length; q++) {
             if (
@@ -561,15 +568,19 @@ export default {
   border-radius: 5px;
   position: relative;
   overflow: hidden;
+  display: flex;
+  flex-direction: row;
+  align-items: center;
 }
 .vertical {
   background-color: #2b2f3a;
   height: 14px;
   width: 8px;
   border-radius: 40px;
-  position: absolute;
+  margin-right: 10px;
+  /* position: absolute;
   left: -3px;
-  top: 50px;
+  top: 50px; */
 }
 </style>
 <style lang="scss">

+ 31 - 1
src/views/week/daily.vue

@@ -427,7 +427,7 @@
               v-model="notVisitReason"
               rows="3"
               autosize
-              maxlength="800"
+              maxlength="1000"
               show-word-limit
               type="textarea"
               :formatter="formatter" />
@@ -592,6 +592,36 @@ export default {
         if (this.$route.query.reportId != undefined) {
           this.getDetailById();
         } else {
+          this.notVisitReason = '';
+          this.reportContents = [
+            {
+              dayContent: '',
+              contentTime: '',
+              type: 2,
+              status: '1',
+            },
+            {
+              dayContent: '',
+              contentTime: '',
+
+              type: 3,
+              status: '1',
+            },
+            {
+              dayContent: '',
+              contentTime: '',
+              projectFollowNum: '',
+              type: 3,
+              status: '1',
+            },
+            {
+              dayContent: '',
+              contentTime: '',
+              tucReportingSuccessNum: '',
+              type: 3,
+              status: '1',
+            },
+          ];
           this.getReportInfo();
         }
       }