瀏覽代碼

Merge branch 'feature_20250514_金牌分级标签' into release

zhujindu 5 月之前
父節點
當前提交
5f898a5044

二進制
src/assets/Icon/JPA.png


二進制
src/assets/Icon/JPB.png


二進制
src/assets/Icon/JPC.png


二進制
src/assets/Icon/visitJPNum.png


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

@@ -36,6 +36,21 @@
           <van-cell>
             <div class="card">
               <div class="title titlero">
+                <template v-if="item.storeLabels">
+                  <!-- 金牌店ABC -->
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/JPA.png')"
+                    v-if="item.storeLabels.jpA" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/JPB.png')"
+                    v-if="item.storeLabels.jpB" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/JPC.png')"
+                    v-if="item.storeLabels.jpC" />
+                </template>
                 <span @click="goOtherSystem(item)" :style="setStroeNameStyle(item)">
                   <span>{{ item.storeName }}</span>
                   (<span>{{ item.storeCode }}</span
@@ -62,6 +77,22 @@
               <div class="info" style="position: relative">
                 联系人:{{ item.contactName }}
                 <div style="position: absolute; bottom: 0px; right: 0px">
+                  <!-- 金牌店ABC -->
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="120"
+                    trigger="click"
+                    :content="setJPABCContent(item)">
+                    <div
+                      v-if="setJPABCFlag(item)"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="require('@/assets/Icon/visitJPNum.png')" size="26" />
+                      <div class="JPVisitNum">{{ item.visitNum }}/{{ item.needVisitNum }}</div>
+                    </div>
+                  </el-popover>
                   <!-- 凤凰客户 -->
                   <el-popover
                     popper-class="zpover"
@@ -207,7 +238,7 @@
                     :disabled="!item.userVisitTimesMap"
                     trigger="click">
                     <div
-                      v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                      v-if="false && item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
                       class="visitStoreIco"
                       slot="reference"
                       style="background-color: #fff; position: relative">
@@ -291,6 +322,9 @@
               <div class="info" v-if="item.storeLonExist">
                 距离:{{ Micrometer(item.distance) }}m
               </div>
+              <div class="info" v-if="item.cntOrderAmtYear">
+                门店销额(全年累计):{{ Micrometer(item.cntOrderAmtYear) }}元
+              </div>
             </div>
             <div
               class="statstext"
@@ -768,6 +802,25 @@ export default {
     );
   },
   methods: {
+    setJPABCFlag(item) {
+      // needVisitNum:需要拜访的次数;visitNum:本月已拜访次数
+      if (item.storeLabels.jpA && item.visitNum < item.needVisitNum) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    setJPABCContent(item) {
+      if (item.storeLabels.jpA) {
+        return 'A级金牌店拜访标准1月2次';
+      } else if (item.storeLabels.jpB) {
+        return 'B级金牌店拜访标准1月1次';
+      } else if (item.storeLabels.jpC) {
+        return 'C级金牌店拜访标准1月1次';
+      } else {
+        return '';
+      }
+    },
     handleTouch(e) {
       e._isScroller = true;
     },
@@ -2255,6 +2308,12 @@ export default {
   color: #333;
   line-height: 22px;
   padding-right: 52px;
+  .JPABC {
+    width: 20px;
+    position: relative;
+    top: 4px;
+    margin-right: 3px;
+  }
   .statusIcon {
     padding: 3px;
     font-size: 12px;
@@ -2344,6 +2403,11 @@ export default {
   .tabBar {
     height: 50px;
   }
+  .JPVisitNum {
+    position: relative;
+    top: -26px;
+    font-size: 10px;
+  }
 }
 </style>
 <style lang="scss">

+ 63 - 2
src/views/deviceOutside/rangeStore.vue

@@ -173,6 +173,21 @@
         <div class="maplit" :class="{ maplitactive: listpoint.length > 1 }">
           <div v-for="(info, index) in listpoint" :key="index" class="maplistitem">
             <p style="font-weight: bold; font-size: 16px">
+              <template v-if="info.storeLabels">
+                <!-- 金牌店ABC -->
+                <img
+                  class="JPABC"
+                  :src="require('@/assets/Icon/JPA.png')"
+                  v-if="info.storeLabels.jpA" />
+                <img
+                  class="JPABC"
+                  :src="require('@/assets/Icon/JPB.png')"
+                  v-if="info.storeLabels.jpB" />
+                <img
+                  class="JPABC"
+                  :src="require('@/assets/Icon/JPC.png')"
+                  v-if="info.storeLabels.jpC" />
+              </template>
               <span @click="goOtherSystem(info)" :style="setStroeNameStyle(info)">
                 <span>{{ info.storeName }}</span>
                 (<span> {{ info.storeCode }} </span>)
@@ -206,6 +221,22 @@
             <div class="text" style="position: relative">
               联系人:{{ info.contactName }}
               <div style="position: absolute; bottom: 0px; right: 10px; display: inline-block">
+                <!-- 金牌店ABC -->
+                <el-popover
+                  popper-class="zpover"
+                  placement="bottom"
+                  width="120"
+                  trigger="click"
+                  :content="setJPABCContent(info)">
+                  <div
+                    v-if="setJPABCFlag(info)"
+                    class="visitStoreIco"
+                    style="background-color: #fff"
+                    slot="reference">
+                    <van-icon :name="require('@/assets/Icon/visitJPNum.png')" size="26" />
+                    <div class="JPVisitNum">{{ info.visitNum }}/{{ info.needVisitNum }}</div>
+                  </div>
+                </el-popover>
                 <el-popover
                   popper-class="zpover"
                   placement="bottom"
@@ -358,7 +389,7 @@
                   :disabled="!info.userVisitTimesMap"
                   :content="'本店本月已拜访过' + info.storeLabels.visitTimes + '次'">
                   <div
-                    v-if="info.storeLabels.visitTimes && info.storeLabels.visitTimes > 0"
+                    v-if="false && info.storeLabels.visitTimes && info.storeLabels.visitTimes > 0"
                     class="visitStoreIco"
                     slot="reference"
                     style="background-color: #fff; position: relative">
@@ -850,6 +881,25 @@ export default {
     });
   },
   methods: {
+    setJPABCFlag(item) {
+      // needVisitNum:需要拜访的次数;visitNum:本月已拜访次数
+      if (item.storeLabels.jpA && item.visitNum < item.needVisitNum) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    setJPABCContent(item) {
+      if (item.storeLabels.jpA) {
+        return 'A级金牌店拜访标准1月2次';
+      } else if (item.storeLabels.jpB) {
+        return 'B级金牌店拜访标准1月1次';
+      } else if (item.storeLabels.jpC) {
+        return 'C级金牌店拜访标准1月1次';
+      } else {
+        return '';
+      }
+    },
     setStroeNameStyle(item) {
       // 家装或工装 approvalStatus:是否结案 0:未结案,1:已结案
       if (
@@ -2097,7 +2147,7 @@ export default {
 };
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 .map {
   width: 100%;
   height: 79.3vh;
@@ -2144,6 +2194,12 @@ export default {
 .maplistitem {
   padding-bottom: 14px;
   border-bottom: 1px solid #eeeeee;
+  .JPABC {
+    width: 20px;
+    position: relative;
+    top: 4px;
+    margin-right: 3px;
+  }
 }
 .maplistitem:last-child {
   border: 0;
@@ -2316,6 +2372,11 @@ export default {
   font-size: 14px;
 }
 .rangeStore {
+  .JPVisitNum {
+    position: relative;
+    top: -26px;
+    font-size: 10px;
+  }
   .TCFXListItem {
     display: inline-block;
     border: 1px solid #ccc;

+ 64 - 1
src/views/deviceOutside/topStore.vue

@@ -77,6 +77,21 @@
             <van-cell>
               <div class="card">
                 <div class="title titlero">
+                  <template v-if="item.storeLabels">
+                    <!-- 金牌店ABC -->
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/JPA.png')"
+                      v-if="item.storeLabels.jpA" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/JPB.png')"
+                      v-if="item.storeLabels.jpB" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/JPC.png')"
+                      v-if="item.storeLabels.jpC" />
+                  </template>
                   <span class="btn" :data-clipboard-text="item.storeCode">
                     <span>{{ item.storeName }}</span>
                     (<span style="color: #0057ba">{{ item.storeCode }}</span
@@ -101,6 +116,22 @@
                 <div class="info" style="position: relative">
                   联系人:{{ item.contactName }}
                   <div style="position: absolute; bottom: 0px; right: 0px">
+                    <!-- 金牌店ABC -->
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="120"
+                      trigger="click"
+                      :content="setJPABCContent(item)">
+                      <div
+                        v-if="setJPABCFlag(item)"
+                        class="visitStoreIco"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="require('@/assets/Icon/visitJPNum.png')" size="26" />
+                        <div class="JPVisitNum">{{ item.visitNum }}/{{ item.needVisitNum }}</div>
+                      </div>
+                    </el-popover>
                     <el-popover
                       popper-class="zpover"
                       placement="bottom"
@@ -232,7 +263,9 @@
                       :disabled="!item.userVisitTimesMap"
                       :content="'本店本月已拜访过' + item.storeLabels.visitTimes + '次'">
                       <div
-                        v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                        v-if="
+                          false && item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0
+                        "
                         class="visitStoreIco"
                         slot="reference"
                         style="background-color: #fff; position: relative">
@@ -921,6 +954,25 @@ export default {
     this.getMonth();
   },
   methods: {
+    setJPABCFlag(item) {
+      // needVisitNum:需要拜访的次数;visitNum:本月已拜访次数
+      if (item.storeLabels.jpA && item.visitNum < item.needVisitNum) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    setJPABCContent(item) {
+      if (item.storeLabels.jpA) {
+        return 'A级金牌店拜访标准1月2次';
+      } else if (item.storeLabels.jpB) {
+        return 'B级金牌店拜访标准1月1次';
+      } else if (item.storeLabels.jpC) {
+        return 'C级金牌店拜访标准1月1次';
+      } else {
+        return '';
+      }
+    },
     linkapp(val) {
       var poind = this.gcj02BD(val.lat, val.lon);
       let url = window.location.href;
@@ -2681,6 +2733,12 @@ export default {
   color: #333;
   line-height: 22px;
   padding-right: 52px;
+  .JPABC {
+    width: 20px;
+    position: relative;
+    top: 4px;
+    margin-right: 3px;
+  }
   .statusIcon {
     padding: 3px;
     font-size: 12px;
@@ -2869,6 +2927,11 @@ export default {
   /*background: url("./../../assets/order1.png") center;*/
 }
 .topStore {
+  .JPVisitNum {
+    position: relative;
+    top: -26px;
+    font-size: 10px;
+  }
   .TCFXListItem {
     display: inline-block;
     border: 1px solid #ccc;

+ 65 - 1
src/views/deviceWithin/index.vue

@@ -54,6 +54,21 @@
         <van-cell>
           <div class="card">
             <div class="title">
+              <template v-if="item.storeLabels">
+                <!-- 金牌店ABC -->
+                <img
+                  class="JPABC"
+                  :src="require('@/assets/Icon/JPA.png')"
+                  v-if="item.storeLabels.jpA" />
+                <img
+                  class="JPABC"
+                  :src="require('@/assets/Icon/JPB.png')"
+                  v-if="item.storeLabels.jpB" />
+                <img
+                  class="JPABC"
+                  :src="require('@/assets/Icon/JPC.png')"
+                  v-if="item.storeLabels.jpC" />
+              </template>
               <span @click="goOtherSystem(item)" style="color: #0057ba; text-decoration: underline">
                 <span>{{ item.storeName }}</span>
                 (<span style="color: #0057ba">{{ item.storeCode }}</span
@@ -90,6 +105,22 @@
             <div class="info" style="position: relative">
               联系人:{{ item.contactName }}
               <div style="position: absolute; bottom: 0; right: 14px">
+                <!-- 金牌店ABC -->
+                <el-popover
+                  popper-class="zpover"
+                  placement="bottom"
+                  width="120"
+                  trigger="click"
+                  :content="setJPABCContent(item)">
+                  <div
+                    v-if="setJPABCFlag(item)"
+                    class="visitStoreIco"
+                    style="background-color: #fff"
+                    slot="reference">
+                    <van-icon :name="require('@/assets/Icon/visitJPNum.png')" size="26" />
+                    <div class="JPVisitNum">{{ item.visitNum }}/{{ item.needVisitNum }}</div>
+                  </div>
+                </el-popover>
                 <el-popover
                   popper-class="zpover"
                   placement="bottom"
@@ -214,7 +245,7 @@
                   :disabled="!item.userVisitTimesMap"
                   :content="'本店本月已拜访过' + item.storeLabels.visitTimes + '次'">
                   <div
-                    v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                    v-if="false && item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
                     class="visitStoreIco"
                     slot="reference"
                     style="background-color: #fff; position: relative">
@@ -285,6 +316,9 @@
             </template>
             <!-- storeLonExist 门店是否存在经纬度 字段false=不显示导航和距离,true=显示 -->
             <div class="info" v-if="item.storeLonExist">距离:{{ Micrometer(item.distance) }}m</div>
+            <div class="info" v-if="item.cntOrderAmtYear">
+              门店销额(全年累计):{{ Micrometer(item.cntOrderAmtYear) }}元
+            </div>
           </div>
           <div
             class="statstext"
@@ -487,6 +521,25 @@ export default {
     );
   },
   methods: {
+    setJPABCFlag(item) {
+      // needVisitNum:需要拜访的次数;visitNum:本月已拜访次数
+      if (item.storeLabels.jpA && item.visitNum < item.needVisitNum) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    setJPABCContent(item) {
+      if (item.storeLabels.jpA) {
+        return 'A级金牌店拜访标准1月2次';
+      } else if (item.storeLabels.jpB) {
+        return 'B级金牌店拜访标准1月1次';
+      } else if (item.storeLabels.jpC) {
+        return 'C级金牌店拜访标准1月1次';
+      } else {
+        return '';
+      }
+    },
     closePopup(flag, filterParams) {
       this.showFilter = false;
       if (flag) {
@@ -1509,6 +1562,12 @@ export default {
     line-height: 22px;
     padding-right: 52px;
     /*word-break: break-all;*/
+    .JPABC {
+      width: 20px;
+      position: relative;
+      top: 4px;
+      margin-right: 3px;
+    }
     .statusIcon {
       padding: 3px;
       font-size: 12px;
@@ -1615,6 +1674,11 @@ export default {
   .tabBar {
     height: 50px;
   }
+  .JPVisitNum {
+    position: relative;
+    top: -26px;
+    font-size: 10px;
+  }
   .TCFXListItem {
     display: inline-block;
     border: 1px solid #ccc;

+ 5 - 1
src/views/home/hintTabPage/unCreateStore.vue

@@ -181,7 +181,11 @@
                           trigger="click"
                           :content="'本店本月已拜访过' + item.storeLabels.visitTimes + '次'">
                           <div
-                            v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                            v-if="
+                              false &&
+                              item.storeLabels.visitTimes &&
+                              item.storeLabels.visitTimes > 0
+                            "
                             class="visitStoreIco"
                             slot="reference"
                             style="background-color: #fff; position: relative">

+ 62 - 1
src/views/storeManagement/index.vue

@@ -63,6 +63,21 @@
             <div class="card">
               <div></div>
               <div class="title" style="padding-right: 74px">
+                <template v-if="item.storeLabels">
+                  <!-- 金牌店ABC -->
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/JPA.png')"
+                    v-if="item.storeLabels.jpA" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/JPB.png')"
+                    v-if="item.storeLabels.jpB" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/JPC.png')"
+                    v-if="item.storeLabels.jpC" />
+                </template>
                 <span class="btn" :data-clipboard-text="item.storeCode">
                   <span>{{ item.storeName }}</span>
                   (<span style="color: #0057ba">{{ item.storeCode }}</span
@@ -108,6 +123,22 @@
               <div class="info" style="position: relative">
                 联系人:{{ item.contactName }}
                 <div style="position: absolute; bottom: 0px; right: 0px" v-if="item.storeLabels">
+                  <!-- 金牌店ABC -->
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="120"
+                    trigger="click"
+                    :content="setJPABCContent(item)">
+                    <div
+                      v-if="setJPABCFlag(item)"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="require('@/assets/Icon/visitJPNum.png')" size="26" />
+                      <div class="JPVisitNum">{{ item.visitNum }}/{{ item.needVisitNum }}</div>
+                    </div>
+                  </el-popover>
                   <el-popover
                     popper-class="zpover"
                     placement="bottom"
@@ -242,7 +273,7 @@
                     trigger="click"
                     :content="'本店本月已拜访过' + item.storeLabels.visitTimes + '次'">
                     <div
-                      v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                      v-if="false && item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
                       class="visitStoreIco"
                       slot="reference"
                       style="background-color: #fff; position: relative">
@@ -487,6 +518,25 @@ export default {
     },
   },
   methods: {
+    setJPABCFlag(item) {
+      // needVisitNum:需要拜访的次数;visitNum:本月已拜访次数
+      if (item.storeLabels.jpA && item.visitNum < item.needVisitNum) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    setJPABCContent(item) {
+      if (item.storeLabels.jpA) {
+        return 'A级金牌店拜访标准1月2次';
+      } else if (item.storeLabels.jpB) {
+        return 'B级金牌店拜访标准1月1次';
+      } else if (item.storeLabels.jpC) {
+        return 'C级金牌店拜访标准1月1次';
+      } else {
+        return '';
+      }
+    },
     initSelect() {
       this.activatedTitles = [];
       this.activatedValues = [];
@@ -1047,6 +1097,11 @@ export default {
       }
     }
   }
+  .JPVisitNum {
+    position: relative;
+    top: -26px;
+    font-size: 10px;
+  }
   .TCFXListItem {
     display: inline-block;
     border: 1px solid #ccc;
@@ -1140,6 +1195,12 @@ export default {
 .positionContent .img .van-icon__image {
   border-radius: 100px;
 }
+.JPABC {
+  width: 20px;
+  position: relative;
+  top: 4px;
+  margin-right: 3px;
+}
 .statusIcon {
   padding: 3px;
   font-size: 12px;

+ 15 - 0
src/views/storeManagement/storeDetail.vue

@@ -50,6 +50,10 @@
       <van-dialog title="门店位置">
         <mapmarker :info="list"></mapmarker>
       </van-dialog>
+      <div class="detailHeader" v-if="list.lastVisitTime || list.deliveryDate">
+        <van-field readonly v-model="list.lastVisitTime" label="最新拜访时间" />
+        <van-field readonly v-model="list.deliveryDate" label="最新下单时间" />
+      </div>
       <van-tabs class="myTab" v-model="tabVal" color="#0057ba" @change="tabChange">
         <van-tab title="基础信息" name="insidePlan" ref="dispsps">
           <!-- 提交审批后被驳回 -->
@@ -1792,6 +1796,17 @@ export default {
     }
   }
 }
+.storeDetail {
+  .detailHeader {
+    padding: 6px 0;
+    background: #dfeeff;
+    .van-cell {
+      padding: 3px 16px;
+      background: #dfeeff;
+      line-height: 22px;
+    }
+  }
+}
 </style>
 <style lang="scss">
 .searchDiv {