Browse Source

Merge branch 'feature_20250828_竞品店维护' into release

zhujindu 2 months ago
parent
commit
586fd8e7b2

+ 18 - 2
src/components/filtrate.vue

@@ -96,6 +96,20 @@
             </div>
             </div>
           </div>
           </div>
           <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
           <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+          <template v-if="postType != 'GZ' && postType != 'JZ'">
+            <p class="searchchecktitle" @click="isCompetingStores = !isCompetingStores">
+              &nbsp;竞品店<van-icon name="arrow-down" style="float: right" />
+            </p>
+            <div v-if="isCompetingStores" style="width: 100%">
+              <div class="checkbox1" v-for="(item, index) in storeTypeLists" :key="index">
+                <div v-if="item.groupType == 'qzd'" class="child">
+                  <van-checkbox :name="item.dictValue">{{ item.dictLabel }}</van-checkbox>
+                </div>
+              </div>
+              <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+            </div>
+            <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+          </template>
           <p class="searchchecktitle" @click="otherShow = !otherShow">
           <p class="searchchecktitle" @click="otherShow = !otherShow">
             &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
             &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
           </p>
           </p>
@@ -171,11 +185,13 @@ export default {
       otherfxdShow: true,
       otherfxdShow: true,
       otherfxdShow1: true,
       otherfxdShow1: true,
       otherfxdShow2: true,
       otherfxdShow2: true,
+      isCompetingStores: true,
+      postType: '',
     };
     };
   },
   },
   activated() {
   activated() {
-    var postType = localStorage.getItem('postType');
-    if (postType == 'GZ') {
+    this.postType = localStorage.getItem('postType');
+    if (this.postType == 'GZ') {
       this.otherShow = true;
       this.otherShow = true;
     } else {
     } else {
       this.otherShow = false;
       this.otherShow = false;

+ 6 - 0
src/router/index.js

@@ -161,6 +161,12 @@ const router = new VueRouter({
           component: () => import('@/views/storeManagement/FSQStoreEdit.vue'),
           component: () => import('@/views/storeManagement/FSQStoreEdit.vue'),
           meta: { title: '仿石漆', keepAlive: true },
           meta: { title: '仿石漆', keepAlive: true },
         },
         },
+        {
+          path: '/competingStoresDetail',
+          name: 'competingStoresDetail',
+          component: () => import('@/views/storeManagement/competingStoresDetail.vue'),
+          meta: { title: '竞品门店', keepAlive: true },
+        },
       ],
       ],
     },
     },
     {
     {

+ 63 - 32
src/views/deviceOutside/index.vue

@@ -300,33 +300,38 @@
                   :src="sbpmdh"
                   :src="sbpmdh"
                   @click="linkapp(item)" />
                   @click="linkapp(item)" />
               </div>
               </div>
-              <!-- 分销店 -->
-              <template
-                v-if="
-                  item.sfaStoreType &&
-                  item.sfaStoreType.type == 'fxd' &&
-                  item.sfaStoreChainsContactList
-                ">
-                <div class="info" v-if="typeShow">
-                  经销商:
-                  <div class="TCFXListItem" v-for="(item, index) in item.sfaStoreChainsContactList">
-                    <el-popover
-                      popper-class="zpover zpoverStoreztype"
-                      placement="bottom-start"
-                      trigger="click">
-                      <div>
-                        <div>{{ item.chainCode }}</div>
-                        <div>{{ item.chainName }}</div>
-                      </div>
-                      <div slot="reference" :key="index">
-                        {{ item.categoryDescribe }}
-                      </div>
-                    </el-popover>
+              <!-- 潜在店不显示经销商 -->
+              <template v-if="item.sfaStoreType.type != 'qzd'">
+                <!-- 分销店 -->
+                <template
+                  v-if="
+                    item.sfaStoreType &&
+                    item.sfaStoreType.type == 'fxd' &&
+                    item.sfaStoreChainsContactList
+                  ">
+                  <div class="info" v-if="typeShow">
+                    经销商:
+                    <div
+                      class="TCFXListItem"
+                      v-for="(item, index) in item.sfaStoreChainsContactList">
+                      <el-popover
+                        popper-class="zpover zpoverStoreztype"
+                        placement="bottom-start"
+                        trigger="click">
+                        <div>
+                          <div>{{ item.chainCode }}</div>
+                          <div>{{ item.chainName }}</div>
+                        </div>
+                        <div slot="reference" :key="index">
+                          {{ item.categoryDescribe }}
+                        </div>
+                      </el-popover>
+                    </div>
                   </div>
                   </div>
-                </div>
-              </template>
-              <template v-else>
-                <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
+                </template>
+                <template v-else>
+                  <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
+                </template>
               </template>
               </template>
               <!-- storeLonExist 门店是否存在经纬度 字段false=不显示导航和距离,true=显示 -->
               <!-- storeLonExist 门店是否存在经纬度 字段false=不显示导航和距离,true=显示 -->
               <div class="info" v-if="item.storeLonExist">
               <div class="info" v-if="item.storeLonExist">
@@ -507,6 +512,24 @@
             </div>
             </div>
           </div>
           </div>
           <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
           <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+          <template v-if="postType != 'GZ' && postType != 'JZ'">
+            <p class="searchchecktitle" @click="isCompetingStores = !isCompetingStores">
+              &nbsp;竞品店<van-icon name="arrow-down" style="float: right" />
+            </p>
+            <div v-if="isCompetingStores" style="width: 100%">
+              <div
+                class="checkbox1"
+                v-for="(item, index) in storeTypeLists"
+                :key="index"
+                v-if="item.groupType == 'qzd'">
+                <div class="child">
+                  <van-checkbox :name="item.dictValue">{{ item.dictLabel }}</van-checkbox>
+                </div>
+              </div>
+              <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+            </div>
+            <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+          </template>
           <p class="searchchecktitle" @click="otherShow = !otherShow">
           <p class="searchchecktitle" @click="otherShow = !otherShow">
             &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
             &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
           </p>
           </p>
@@ -676,6 +699,8 @@ export default {
       lon: '',
       lon: '',
       timeData: '',
       timeData: '',
       customerVisits: true,
       customerVisits: true,
+      isCompetingStores: true,
+      postType: '',
     };
     };
   },
   },
   watch: {
   watch: {
@@ -735,8 +760,8 @@ export default {
       ) {
       ) {
         this.onSearch();
         this.onSearch();
       }
       }
-      var postType = localStorage.getItem('postType');
-      if (postType == 'GZ') {
+      this.postType = localStorage.getItem('postType');
+      if (this.postType == 'GZ') {
         this.addShow1 = false;
         this.addShow1 = false;
         this.otherShow = true;
         this.otherShow = true;
       } else {
       } else {
@@ -792,8 +817,8 @@ export default {
     localStorage.removeItem('visitId');
     localStorage.removeItem('visitId');
     this.getStoreTypeList();
     this.getStoreTypeList();
     this.getStoreLabels();
     this.getStoreLabels();
-    var postType = localStorage.getItem('postType');
-    if (postType == 'GZ') {
+    this.postType = localStorage.getItem('postType');
+    if (this.postType == 'GZ') {
       this.addShow1 = false;
       this.addShow1 = false;
       this.otherShow = true;
       this.otherShow = true;
     } else {
     } else {
@@ -2037,8 +2062,14 @@ export default {
         buryingPointName: '客户信息',
         buryingPointName: '客户信息',
         buryingPointPosition: this.tabVal == 1 ? '我的' : '销售部',
         buryingPointPosition: this.tabVal == 1 ? '我的' : '销售部',
       });
       });
-      // FSQ 仿石漆服务商
-      if (/^FSQ/.test(val.storeCode)) {
+      if (val.sfaStoreType.type == 'qzd') {
+        // 竞品店/潜在店
+        this.$router.push({
+          path: '/competingStoresDetail',
+          query: { id: val.storeId },
+        });
+      } else if (/^FSQ/.test(val.storeCode)) {
+        // FSQ 仿石漆服务商
         this.$router.push({
         this.$router.push({
           path: '/FSQStoreDetail',
           path: '/FSQStoreDetail',
           query: { id: val.storeId },
           query: { id: val.storeId },

+ 46 - 26
src/views/deviceOutside/rangeStore.vue

@@ -432,33 +432,36 @@
                 >{{ info.telephone }}</a
                 >{{ info.telephone }}</a
               ><van-icon name="phone" size="16" color="#1989fa" />
               ><van-icon name="phone" size="16" color="#1989fa" />
             </p>
             </p>
-            <!-- 分销店 -->
-            <template
-              v-if="
-                info.sfaStoreType &&
-                info.sfaStoreType.type == 'fxd' &&
-                info.sfaStoreChainsContactList
-              ">
-              <div class="text">
-                经销商:
-                <div class="TCFXListItem" v-for="(item, index) in info.sfaStoreChainsContactList">
-                  <el-popover
-                    popper-class="zpover zpoverStoreztype"
-                    placement="bottom-start"
-                    trigger="click">
-                    <div>
-                      <div>{{ item.chainCode }}</div>
-                      <div>{{ item.chainName }}</div>
-                    </div>
-                    <div slot="reference" :key="index">
-                      {{ item.categoryDescribe }}
-                    </div>
-                  </el-popover>
+            <!-- 潜在店不显示经销商 -->
+            <template v-if="info.sfaStoreType.type != 'qzd'">
+              <!-- 分销店 -->
+              <template
+                v-if="
+                  info.sfaStoreType &&
+                  info.sfaStoreType.type == 'fxd' &&
+                  info.sfaStoreChainsContactList
+                ">
+                <div class="text">
+                  经销商:
+                  <div class="TCFXListItem" v-for="(item, index) in info.sfaStoreChainsContactList">
+                    <el-popover
+                      popper-class="zpover zpoverStoreztype"
+                      placement="bottom-start"
+                      trigger="click">
+                      <div>
+                        <div>{{ item.chainCode }}</div>
+                        <div>{{ item.chainName }}</div>
+                      </div>
+                      <div slot="reference" :key="index">
+                        {{ item.categoryDescribe }}
+                      </div>
+                    </el-popover>
+                  </div>
                 </div>
                 </div>
-              </div>
-            </template>
-            <template v-else>
-              <p class="text">经销商:{{ info.chainName }}</p>
+              </template>
+              <template v-else>
+                <p class="text">经销商:{{ info.chainName }}</p>
+              </template>
             </template>
             </template>
             <p class="text">地址:{{ info.addressLine }}</p>
             <p class="text">地址:{{ info.addressLine }}</p>
             <div class="text" style="height: 24px">
             <div class="text" style="height: 24px">
@@ -601,6 +604,20 @@
             </div>
             </div>
           </div>
           </div>
           <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
           <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+          <template v-if="postType != 'GZ' && postType != 'JZ'">
+            <p class="searchchecktitle" @click="isCompetingStores = !isCompetingStores">
+              &nbsp;竞品店<van-icon name="arrow-down" style="float: right" />
+            </p>
+            <div v-if="isCompetingStores" style="width: 100%">
+              <div class="checkbox1" v-for="(item, index) in storeTypeLists" :key="index">
+                <div v-if="item.groupType == 'qzd'" class="child">
+                  <van-checkbox :name="item.dictValue">{{ item.dictLabel }}</van-checkbox>
+                </div>
+              </div>
+              <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+            </div>
+            <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
+          </template>
           <p class="searchchecktitle" @click="otherShow = !otherShow">
           <p class="searchchecktitle" @click="otherShow = !otherShow">
             &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
             &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
           </p>
           </p>
@@ -840,6 +857,8 @@ export default {
       heifhgts: '200px',
       heifhgts: '200px',
       mapRange: [], //地图范围
       mapRange: [], //地图范围
       baiduMapKey: new Date().getTime(),
       baiduMapKey: new Date().getTime(),
+      isCompetingStores: true,
+      postType: '',
     };
     };
   },
   },
   created() {
   created() {
@@ -854,6 +873,7 @@ export default {
     }
     }
   },
   },
   activated() {
   activated() {
+    this.postType = localStorage.getItem('postType');
     this.listData = [];
     this.listData = [];
     this.baiduMapKey = new Date().getTime();
     this.baiduMapKey = new Date().getTime();
     this.closeFn();
     this.closeFn();

+ 37 - 28
src/views/deviceWithin/index.vue

@@ -295,33 +295,36 @@
                 :src="sbpmdh"
                 :src="sbpmdh"
                 @click="linkapp(item)" />
                 @click="linkapp(item)" />
             </div>
             </div>
-            <!-- 分销店 -->
-            <template
-              v-if="
-                item.sfaStoreType &&
-                item.sfaStoreType.type == 'fxd' &&
-                item.sfaStoreChainsContactList
-              ">
-              <div class="info" v-if="typeShow">
-                经销商:
-                <div class="TCFXListItem" v-for="(item, index) in item.sfaStoreChainsContactList">
-                  <el-popover
-                    popper-class="zpover zpoverStoreztype"
-                    placement="bottom-start"
-                    trigger="click">
-                    <div>
-                      <div>{{ item.chainCode }}</div>
-                      <div>{{ item.chainName }}</div>
-                    </div>
-                    <div slot="reference" :key="index">
-                      {{ item.categoryDescribe }}
-                    </div>
-                  </el-popover>
+            <!-- 潜在店不显示经销商 -->
+            <template v-if="item.sfaStoreType.type != 'qzd'">
+              <!-- 分销店 -->
+              <template
+                v-if="
+                  item.sfaStoreType &&
+                  item.sfaStoreType.type == 'fxd' &&
+                  item.sfaStoreChainsContactList
+                ">
+                <div class="info" v-if="typeShow">
+                  经销商:
+                  <div class="TCFXListItem" v-for="(item, index) in item.sfaStoreChainsContactList">
+                    <el-popover
+                      popper-class="zpover zpoverStoreztype"
+                      placement="bottom-start"
+                      trigger="click">
+                      <div>
+                        <div>{{ item.chainCode }}</div>
+                        <div>{{ item.chainName }}</div>
+                      </div>
+                      <div slot="reference" :key="index">
+                        {{ item.categoryDescribe }}
+                      </div>
+                    </el-popover>
+                  </div>
                 </div>
                 </div>
-              </div>
-            </template>
-            <template v-else>
-              <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
+              </template>
+              <template v-else>
+                <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
+              </template>
             </template>
             </template>
             <!-- storeLonExist 门店是否存在经纬度 字段false=不显示导航和距离,true=显示 -->
             <!-- storeLonExist 门店是否存在经纬度 字段false=不显示导航和距离,true=显示 -->
             <div class="info" v-if="item.storeLonExist">距离:{{ Micrometer(item.distance) }}m</div>
             <div class="info" v-if="item.storeLonExist">距离:{{ Micrometer(item.distance) }}m</div>
@@ -1445,8 +1448,14 @@ export default {
         buryingPointName: '客户信息',
         buryingPointName: '客户信息',
         buryingPointPosition: '计划内',
         buryingPointPosition: '计划内',
       });
       });
-      // FSQ 仿石漆服务商
-      if (/^FSQ/.test(val.storeCode)) {
+      if (val.sfaStoreType.type == 'qzd') {
+        // 竞品店/潜在店
+        this.$router.push({
+          path: '/competingStoresDetail',
+          query: { id: val.storeId },
+        });
+      } else if (/^FSQ/.test(val.storeCode)) {
+        // FSQ 仿石漆服务商
         this.$router.push({
         this.$router.push({
           path: '/FSQStoreDetail',
           path: '/FSQStoreDetail',
           query: { id: val.storeId },
           query: { id: val.storeId },

+ 31 - 26
src/views/historicalVisit/historAllVisit.vue

@@ -101,33 +101,38 @@
                 <div class="info" v-if="item.dwellTime">拜访时长:{{ item.dwellTime }}</div>
                 <div class="info" v-if="item.dwellTime">拜访时长:{{ item.dwellTime }}</div>
                 <div class="info">地址:{{ item.addressLine }}</div>
                 <div class="info">地址:{{ item.addressLine }}</div>
               </div>
               </div>
-              <!-- 分销店 -->
-              <template
-                v-if="
-                  item.sfaStoreType &&
-                  item.sfaStoreType.type == 'fxd' &&
-                  item.sfaStoreChainsContactList
-                ">
-                <div class="info">
-                  经销商:
-                  <div class="TCFXListItem" v-for="(item, index) in item.sfaStoreChainsContactList">
-                    <el-popover
-                      popper-class="zpover zpoverStoreztype"
-                      placement="bottom-start"
-                      trigger="click">
-                      <div>
-                        <div>{{ item.chainCode }}</div>
-                        <div>{{ item.chainName }}</div>
-                      </div>
-                      <div slot="reference" :key="index">
-                        {{ item.categoryDescribe }}
-                      </div>
-                    </el-popover>
+              <!-- 潜在店不显示经销商 -->
+              <template v-if="item.sfaStoreType.type != 'qzd'">
+                <!-- 分销店 -->
+                <template
+                  v-if="
+                    item.sfaStoreType &&
+                    item.sfaStoreType.type == 'fxd' &&
+                    item.sfaStoreChainsContactList
+                  ">
+                  <div class="info">
+                    经销商:
+                    <div
+                      class="TCFXListItem"
+                      v-for="(item, index) in item.sfaStoreChainsContactList">
+                      <el-popover
+                        popper-class="zpover zpoverStoreztype"
+                        placement="bottom-start"
+                        trigger="click">
+                        <div>
+                          <div>{{ item.chainCode }}</div>
+                          <div>{{ item.chainName }}</div>
+                        </div>
+                        <div slot="reference" :key="index">
+                          {{ item.categoryDescribe }}
+                        </div>
+                      </el-popover>
+                    </div>
                   </div>
                   </div>
-                </div>
-              </template>
-              <template v-else>
-                <div class="info">经销商:{{ item.chainName }}</div>
+                </template>
+                <template v-else>
+                  <div class="info">经销商:{{ item.chainName }}</div>
+                </template>
               </template>
               </template>
             </van-cell>
             </van-cell>
             <div class="lineGrey"></div>
             <div class="lineGrey"></div>

+ 31 - 28
src/views/home/hintTabPage/unCreateStore.vue

@@ -229,35 +229,38 @@
                     </div>
                     </div>
                     <div class="info">联系电话:{{ item.telephone }}</div>
                     <div class="info">联系电话:{{ item.telephone }}</div>
                     <div class="info">地址:{{ item.addressLine }}</div>
                     <div class="info">地址:{{ item.addressLine }}</div>
-                    <!-- 分销店 -->
-                    <template
-                      v-if="
-                        item.sfaStoreType &&
-                        item.sfaStoreType.type == 'fxd' &&
-                        item.sfaStoreChainsContactList
-                      ">
-                      <div class="info">
-                        经销商:
-                        <div
-                          class="TCFXListItem"
-                          v-for="(item, index) in item.sfaStoreChainsContactList">
-                          <el-popover
-                            popper-class="zpover zpoverStoreztype"
-                            placement="bottom-start"
-                            trigger="click">
-                            <div>
-                              <div>{{ item.chainCode }}</div>
-                              <div>{{ item.chainName }}</div>
-                            </div>
-                            <div slot="reference" :key="index">
-                              {{ item.categoryDescribe }}
-                            </div>
-                          </el-popover>
+                    <!-- 潜在店不显示经销商 -->
+                    <template v-if="item.sfaStoreType.type != 'qzd'">
+                      <!-- 分销店 -->
+                      <template
+                        v-if="
+                          item.sfaStoreType &&
+                          item.sfaStoreType.type == 'fxd' &&
+                          item.sfaStoreChainsContactList
+                        ">
+                        <div class="info">
+                          经销商:
+                          <div
+                            class="TCFXListItem"
+                            v-for="(item, index) in item.sfaStoreChainsContactList">
+                            <el-popover
+                              popper-class="zpover zpoverStoreztype"
+                              placement="bottom-start"
+                              trigger="click">
+                              <div>
+                                <div>{{ item.chainCode }}</div>
+                                <div>{{ item.chainName }}</div>
+                              </div>
+                              <div slot="reference" :key="index">
+                                {{ item.categoryDescribe }}
+                              </div>
+                            </el-popover>
+                          </div>
                         </div>
                         </div>
-                      </div>
-                    </template>
-                    <template v-else>
-                      <div class="info">经销商:{{ item.chainName }}</div>
+                      </template>
+                      <template v-else>
+                        <div class="info">经销商:{{ item.chainName }}</div>
+                      </template>
                     </template>
                     </template>
                   </div>
                   </div>
                 </van-cell>
                 </van-cell>

+ 203 - 0
src/views/storeManagement/competingStoresDetail.vue

@@ -0,0 +1,203 @@
+<template>
+  <div class="FSQStoreDetail">
+    <div class="header">
+      <van-nav-bar class="navBar" title="客户详情" left-arrow @click-left="onClickLeft">
+      </van-nav-bar>
+    </div>
+    <div class="content">
+      <van-form ref="tabstoreVal" readonly :scroll-to-error="true" :show-error="false">
+        <van-field readonly :value="fromData.storeCode" label="门店代码">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          v-model="fromData.storeName"
+          label="门店名称"
+          placeholder="请输入门店名称"
+          rows="1"
+          autosize
+          type="textarea"
+          :rules="[
+            {
+              required: true,
+              message: '请输入门店名称',
+            },
+          ]">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          readonly
+          clickable
+          name="picker"
+          :value="fromData.storeCategoryName"
+          label="类型"
+          placeholder="点击选择类型">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          v-model="fromData.orgName"
+          label="销售部"
+          placeholder="请输入销售部"
+          :rules="[{ required: true, message: '请输入销售部' }]">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          readonly
+          clickable
+          name="picker"
+          :value="fromData.provinceName"
+          label="省(州)"
+          placeholder="点击选择省(州)">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          readonly
+          clickable
+          name="picker"
+          :value="fromData.cityName"
+          label="城市"
+          placeholder="点击选择城市">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          readonly
+          clickable
+          name="picker"
+          :value="fromData.districtName"
+          label="区(县)"
+          placeholder="点击选择区(县)">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <!-- <van-field
+          readonly
+          clickable
+          name="picker"
+          :value="fromData.townName"
+          label="街道"
+          placeholder="点击选择街道">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field> -->
+        <van-field
+          v-model="fromData.addressLine"
+          label="地址"
+          placeholder="请输入地址"
+          rows="1"
+          autosize
+          type="textarea"
+          :rules="[
+            {
+              required: true,
+              message: '请输入地址',
+            },
+          ]">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field readonly v-model="fromData.cityLevel" label="城市等级">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field readonly v-model="fromData.contactName" label="门店联系人">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field
+          type="tel"
+          v-model="fromData.telephone"
+          label="门店联系人电话"
+          placeholder="请输入门店联系人电话">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+        <van-field readonly v-model="fromData.salesmanName" label="销售员" placeholder="销售员">
+          <template #left-icon>
+            <span class="van-f-red"></span>
+          </template>
+        </van-field>
+      </van-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getById } from '@/api/index';
+export default {
+  data() {
+    return {
+      fromData: {
+        storeCode: '',
+        storeName: '',
+        telephone: '',
+        storeCategoryName: '',
+        provinceName: '',
+        cityName: '',
+        districtName: '',
+        addressLine: '',
+        orgName: '',
+        townName: '',
+        contactName: '',
+        salesmanName: '',
+        cityLevel: '',
+      },
+    };
+  },
+  activated() {
+    this.toastLoading(0, '加载中...', true);
+    // 获取详情
+    this.getDetail();
+  },
+  methods: {
+    editorFn() {
+      this.$router.push({
+        path: '/FSQStoreEdit',
+        query: { id: this.$route.query.id },
+      });
+    },
+    getDetail() {
+      getById({ storeId: this.$route.query.id }).then((res) => {
+        this.toastLoading().clear();
+        if (res.code == 200) {
+          this.fromData = res.data;
+        }
+      });
+    },
+    onClickLeft() {
+      this.$router.go(-1);
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.FSQStoreDetail {
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  height: 100%;
+  .header {
+    height: 46px;
+  }
+  .content {
+    flex: 1;
+    overflow-y: auto;
+  }
+}
+</style>

+ 39 - 28
src/views/storeManagement/index.vue

@@ -321,33 +321,38 @@
               </div>
               </div>
               <div class="info">联系电话:{{ item.telephone }}</div>
               <div class="info">联系电话:{{ item.telephone }}</div>
               <div class="info">地址:{{ item.addressLine }}</div>
               <div class="info">地址:{{ item.addressLine }}</div>
-              <!-- 分销店 -->
-              <template
-                v-if="
-                  item.sfaStoreType &&
-                  item.sfaStoreType.type == 'fxd' &&
-                  item.sfaStoreChainsContactList
-                ">
-                <div class="info" v-if="addShow1">
-                  经销商:
-                  <div class="TCFXListItem" v-for="(item, index) in item.sfaStoreChainsContactList">
-                    <el-popover
-                      popper-class="zpover zpoverStoreztype"
-                      placement="bottom-start"
-                      trigger="click">
-                      <div>
-                        <div>{{ item.chainCode }}</div>
-                        <div>{{ item.chainName }}</div>
-                      </div>
-                      <div slot="reference" :key="index">
-                        {{ item.categoryDescribe }}
-                      </div>
-                    </el-popover>
+              <!-- 潜在店不显示经销商 -->
+              <template v-if="item.sfaStoreType.type != 'qzd'">
+                <!-- 分销店 -->
+                <template
+                  v-if="
+                    item.sfaStoreType &&
+                    item.sfaStoreType.type == 'fxd' &&
+                    item.sfaStoreChainsContactList
+                  ">
+                  <div class="info" v-if="addShow1">
+                    经销商:
+                    <div
+                      class="TCFXListItem"
+                      v-for="(item, index) in item.sfaStoreChainsContactList">
+                      <el-popover
+                        popper-class="zpover zpoverStoreztype"
+                        placement="bottom-start"
+                        trigger="click">
+                        <div>
+                          <div>{{ item.chainCode }}</div>
+                          <div>{{ item.chainName }}</div>
+                        </div>
+                        <div slot="reference" :key="index">
+                          {{ item.categoryDescribe }}
+                        </div>
+                      </el-popover>
+                    </div>
                   </div>
                   </div>
-                </div>
-              </template>
-              <template v-else>
-                <div class="info" v-if="addShow1">经销商:{{ item.chainName }}</div>
+                </template>
+                <template v-else>
+                  <div class="info" v-if="addShow1">经销商:{{ item.chainName }}</div>
+                </template>
               </template>
               </template>
             </div>
             </div>
           </van-cell>
           </van-cell>
@@ -935,8 +940,14 @@ export default {
     },
     },
     storeDetailFn(item) {
     storeDetailFn(item) {
       localStorage.setItem('tabVal', this.tabVal);
       localStorage.setItem('tabVal', this.tabVal);
-      // FSQ 仿石漆服务商
-      if (item.storeCategory == 'FSQ01') {
+      if (item.sfaStoreType.type == 'qzd') {
+        // 竞品店/潜在店
+        this.$router.push({
+          path: '/competingStoresDetail',
+          query: { id: item.storeId },
+        });
+      } else if (item.storeCategory == 'FSQ01') {
+        // FSQ 仿石漆服务商
         this.$router.push({
         this.$router.push({
           path: '/FSQStoreDetail',
           path: '/FSQStoreDetail',
           query: { id: item.storeId },
           query: { id: item.storeId },