Browse Source

Merge branch 'feature_20260401_完美门店入口修改' into release

# Conflicts:
#	src/views/deviceOutside/index.vue
#	src/views/deviceWithin/index.vue
zhujindu 12 giờ trước cách đây
mục cha
commit
a74ab8680d

+ 442 - 428
src/views/deviceOutside/index.vue

@@ -26,443 +26,445 @@
     </div>
     <!--        主体内容-->
     <div class="container content" style="margin-top: 144px" @touchmove="handleTouch">
-      <van-list
-        class="myList"
-        v-model="loading"
-        :finished="finished"
-        finished-text="--已经到底了--"
-        @load="onLoad">
-        <div class="cellcontent" v-for="(item, index) in list" :key="index">
-          <van-cell>
-            <div class="card">
-              <div class="title titlero">
-                <template v-if="item.storeLabels">
-                  <!-- 金牌店ABC -->
-                  <img
-                    class="JPABC"
-                    :src="require('@/assets/Icon/storeA.png')"
-                    v-if="item.storeLabels.storeA" />
-                  <img
-                    class="JPABC"
-                    :src="require('@/assets/Icon/storeB.png')"
-                    v-if="item.storeLabels.storeB" />
-                  <img
-                    class="JPABC"
-                    :src="require('@/assets/Icon/storeC.png')"
-                    v-if="item.storeLabels.storeC" />
-                  <img
-                    class="JPABC"
-                    :src="require('@/assets/Icon/storeD.png')"
-                    v-if="item.storeLabels.storeD" />
-                  <img
-                    class="JPABC"
-                    :src="require('@/assets/Icon/storeE.png')"
-                    v-if="item.storeLabels.storeE" />
-                  <img
-                    class="JPABC"
-                    :src="require('@/assets/Icon/storeS.png')"
-                    v-if="item.storeLabels.storeS" />
-                </template>
-                <span @click="goOtherSystem(item)" :style="setStroeNameStyle(item)">
-                  <span>{{ item.storeName }}</span>
-                  (<span>{{ item.storeCode }}</span
-                  >)
-                </span>
-                <span class="btn" :data-clipboard-text="item.storeCode">
-                  <van-icon
-                    :name="paste"
-                    color="#ee0a24"
-                    size="20"
-                    style="top: 6px; margin-left: 4px" />
-                </span>
-                <!-- "approvalStatus": 1:已结案;0:未结案, -->
-                <!-- "processApprovalStatus": 审批状态(0=未提交,1=已提交待审核,2=审批通过,3=审批拒绝) -->
-                <template v-if="item.approvalStatus == 0">
-                  <span class="statusIcon submit" v-if="item.processApprovalStatus == 1"
-                    >已提交</span
-                  >
-                  <span class="statusIcon noSubmit" v-if="item.processApprovalStatus == 0"
-                    >未提交</span
-                  >
-                </template>
-              </div>
-              <div class="info" style="position: relative">联系人:{{ item.contactName }}</div>
-              <div class="info">类型:{{ item.storeCategory }}&nbsp;</div>
-              <div class="info" style="position: relative" @click="buryingPointFn(item)">
-                联系电话:<a
-                  v-if="item.telephone"
-                  style="color: #0057ba; font-weight: bold; text-decoration: underline"
-                  :href="'tel:' + item.telephone"
-                  >{{ item.telephone }}<van-icon name="phone"
-                /></a>
-                <div style="position: absolute; bottom: 0px; right: 0px">
-                  <!-- 凤凰客户 -->
-                  <el-popover
-                    popper-class="zpover"
-                    placement="bottom"
-                    width="120"
-                    trigger="click"
-                    content="该客户为凤凰客户">
-                    <div
-                      v-if="item.storeLabels.fhCustomer"
-                      class="visitStoreIco"
-                      style="background-color: #fff"
-                      slot="reference">
-                      <van-icon :name="require('@/assets/Icon/fenghuangjihua.png')" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover zpover6"
-                    placement="bottom-start"
-                    trigger="click">
-                    <div>
-                      <p>
-                        本店{{ timeData }}下单SKU数:<a
-                          @click="linkList(item)"
-                          style="text-decoration: underline"
-                          >点击查看详情</a
-                        >
-                      </p>
-                    </div>
-                    <div
-                      class="visitStoreIco"
-                      v-if="item.storeLabels.zysslNums !== false"
-                      style="background-color: #fff; position: relative"
-                      slot="reference">
-                      <p
-                        style="
-                          width: 100%;
-                          position: absolute;
-                          z-index: 1;
-                          top: 0.2px;
-                          width: 22px;
-                          margin: 0;
-                          margin-left: 3.6px;
-                          text-align: center;
-                          font-size: 12px;
-                        ">
-                        {{ item.storeLabels.zysslNums }}
-                      </p>
-                      <van-icon :name="ord" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover zpover5"
-                    placement="bottom"
-                    width="200"
-                    trigger="click">
-                    <div v-if="item.storeLabels">
-                      <p>{{ timeData }}未通过的陈列任务:</p>
-                      <p v-for="(tt, ind) in (item.storeLabels.targetOne + '').split(';')">
-                        <template v-if="tt"> {{ ind + 1 }}、{{ tt }};</template>
+      <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
+        <van-list
+          class="myList"
+          v-model="loading"
+          :finished="finished"
+          finished-text="--已经到底了--"
+          @load="onLoad">
+          <div class="cellcontent" v-for="(item, index) in list" :key="index">
+            <van-cell>
+              <div class="card">
+                <div class="title titlero">
+                  <template v-if="item.storeLabels">
+                    <!-- 金牌店ABC -->
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/storeA.png')"
+                      v-if="item.storeLabels.storeA" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/storeB.png')"
+                      v-if="item.storeLabels.storeB" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/storeC.png')"
+                      v-if="item.storeLabels.storeC" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/storeD.png')"
+                      v-if="item.storeLabels.storeD" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/storeE.png')"
+                      v-if="item.storeLabels.storeE" />
+                    <img
+                      class="JPABC"
+                      :src="require('@/assets/Icon/storeS.png')"
+                      v-if="item.storeLabels.storeS" />
+                  </template>
+                  <span @click="goOtherSystem(item)" :style="setStroeNameStyle(item)">
+                    <span>{{ item.storeName }}</span>
+                    (<span>{{ item.storeCode }}</span
+                    >)
+                  </span>
+                  <span class="btn" :data-clipboard-text="item.storeCode">
+                    <van-icon
+                      :name="paste"
+                      color="#ee0a24"
+                      size="20"
+                      style="top: 6px; margin-left: 4px" />
+                  </span>
+                  <!-- "approvalStatus": 1:已结案;0:未结案, -->
+                  <!-- "processApprovalStatus": 审批状态(0=未提交,1=已提交待审核,2=审批通过,3=审批拒绝) -->
+                  <template v-if="item.approvalStatus == 0">
+                    <span class="statusIcon submit" v-if="item.processApprovalStatus == 1"
+                      >已提交</span
+                    >
+                    <span class="statusIcon noSubmit" v-if="item.processApprovalStatus == 0"
+                      >未提交</span
+                    >
+                  </template>
+                </div>
+                <div class="info" style="position: relative">联系人:{{ item.contactName }}</div>
+                <div class="info">类型:{{ item.storeCategory }}&nbsp;</div>
+                <div class="info" style="position: relative" @click="buryingPointFn(item)">
+                  联系电话:<a
+                    v-if="item.telephone"
+                    style="color: #0057ba; font-weight: bold; text-decoration: underline"
+                    :href="'tel:' + item.telephone"
+                    >{{ item.telephone }}<van-icon name="phone"
+                  /></a>
+                  <div style="position: absolute; bottom: 0px; right: 0px">
+                    <!-- 凤凰客户 -->
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="120"
+                      trigger="click"
+                      content="该客户为凤凰客户">
+                      <div
+                        v-if="item.storeLabels.fhCustomer"
+                        class="visitStoreIco"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="require('@/assets/Icon/fenghuangjihua.png')" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover zpover6"
+                      placement="bottom-start"
+                      trigger="click">
+                      <div>
+                        <p>
+                          本店{{ timeData }}下单SKU数:<a
+                            @click="linkList(item)"
+                            style="text-decoration: underline"
+                            >点击查看详情</a
+                          >
+                        </p>
+                      </div>
+                      <div
+                        class="visitStoreIco"
+                        v-if="item.storeLabels.zysslNums !== false"
+                        style="background-color: #fff; position: relative"
+                        slot="reference">
+                        <p
+                          style="
+                            width: 100%;
+                            position: absolute;
+                            z-index: 1;
+                            top: 0.2px;
+                            width: 22px;
+                            margin: 0;
+                            margin-left: 3.6px;
+                            text-align: center;
+                            font-size: 12px;
+                          ">
+                          {{ item.storeLabels.zysslNums }}
+                        </p>
+                        <van-icon :name="ord" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover zpover5"
+                      placement="bottom"
+                      width="200"
+                      trigger="click">
+                      <div v-if="item.storeLabels">
+                        <p>已参加:</p>
+                        <p v-for="tt in (item.storeLabels.targetOne + '').split(';')">
+                          {{ tt }}
+                        </p>
+                      </div>
+                      <div
+                        class="visitStoreIco"
+                        v-if="item.storeLabels.targetOne"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="targetOne" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="120"
+                      trigger="click"
+                      content="调色机7天未调色">
+                      <div
+                        v-if="item.storeLabels.stopColorMixerSeven"
+                        class="visitStoreIco"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="Network" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="120"
+                      trigger="click"
+                      content="调色机当月未调色">
+                      <div
+                        v-if="item.storeLabels.stopColorMixerMonth"
+                        class="visitStoreIco"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="WiFi" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="200"
+                      trigger="click"
+                      content="同城店近60天未下单">
+                      <div
+                        v-if="item.storeLabels.fxNoOrder"
+                        class="visitStoreIco"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="order60" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="200"
+                      trigger="click"
+                      content="金牌店近30天未下单">
+                      <div
+                        v-if="item.storeLabels.noOrder"
+                        class="visitStoreIco"
+                        style="background-color: #fff"
+                        slot="reference">
+                        <van-icon :name="order" size="26" />
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover"
+                      placement="bottom"
+                      width="200"
+                      trigger="click"
+                      content="本店本月进过专业时时丽">
+                      <div
+                        class="visitStoreIco"
+                        v-if="item.storeLabels.zyssl"
+                        style="background-color: #ed5c68"
+                        slot="reference">
+                        专
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      popper-class="zpover zpover1"
+                      placement="bottom"
+                      width="200"
+                      trigger="click"
+                      content="本店本月进过超好贴">
+                      <div
+                        v-if="item.storeLabels.chtczj"
+                        class="visitStoreIco"
+                        style="background-color: #0057ba"
+                        slot="reference">
+                        超
+                      </div>
+                    </el-popover>
+                    <el-popover
+                      placement="bottom"
+                      popper-class="zpover zpover1 zpover1sb"
+                      :disabled="!item.userVisitTimesMap"
+                      trigger="click">
+                      <div
+                        v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                        class="visitStoreIco"
+                        slot="reference"
+                        style="background-color: #fff; position: relative">
+                        <p
+                          style="
+                            width: 100%;
+                            position: absolute;
+                            z-index: 10;
+                            top: -2px;
+                            margin: 0;
+                            text-align: center;
+                            font-size: 12px;
+                          ">
+                          {{ item.storeLabels.visitTimes }}
+                        </p>
+                        <!-- A级金牌店拜访次数少于needVisitNum 需要拜访的次数 -->
+                        <van-icon
+                          :name="require('@/assets/ordernumRed.png')"
+                          size="26"
+                          v-if="
+                            (item.storeLabels.storeA || item.storeLabels.storeS) &&
+                            item.needVisitNum &&
+                            item.storeLabels.visitTimes < item.needVisitNum
+                          " />
+                        <!-- 其他门店拜访 -->
+                        <van-icon :name="require('@/assets/ordernum.png')" size="26" v-else />
+                      </div>
+                      <p style="text-align: center; background: #fff; color: #000; padding: 5px 0">
+                        本店本月已拜访过{{ item.storeLabels.visitTimes }}次
                       </p>
-                    </div>
-                    <div
-                      class="visitStoreIco"
-                      v-if="item.storeLabels.targetOne"
-                      style="background-color: #fff"
-                      slot="reference">
-                      <van-icon :name="targetOne" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover"
-                    placement="bottom"
-                    width="120"
-                    trigger="click"
-                    content="调色机7天未调色">
-                    <div
-                      v-if="item.storeLabels.stopColorMixerSeven"
-                      class="visitStoreIco"
-                      style="background-color: #fff"
-                      slot="reference">
-                      <van-icon :name="Network" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover"
-                    placement="bottom"
-                    width="120"
-                    trigger="click"
-                    content="调色机当月未调色">
-                    <div
-                      v-if="item.storeLabels.stopColorMixerMonth"
-                      class="visitStoreIco"
-                      style="background-color: #fff"
-                      slot="reference">
-                      <van-icon :name="WiFi" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover"
-                    placement="bottom"
-                    width="200"
-                    trigger="click"
-                    content="同城店近60天未下单">
-                    <div
-                      v-if="item.storeLabels.fxNoOrder"
-                      class="visitStoreIco"
-                      style="background-color: #fff"
-                      slot="reference">
-                      <van-icon :name="order60" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover"
-                    placement="bottom"
-                    width="200"
-                    trigger="click"
-                    content="金牌店近30天未下单">
-                    <div
-                      v-if="item.storeLabels.noOrder"
-                      class="visitStoreIco"
-                      style="background-color: #fff"
-                      slot="reference">
-                      <van-icon :name="order" size="26" />
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover"
-                    placement="bottom"
-                    width="200"
-                    trigger="click"
-                    content="本店本月进过专业时时丽">
-                    <div
-                      class="visitStoreIco"
-                      v-if="item.storeLabels.zyssl"
-                      style="background-color: #ed5c68"
-                      slot="reference">
-                      专
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    popper-class="zpover zpover1"
-                    placement="bottom"
-                    width="200"
-                    trigger="click"
-                    content="本店本月进过超好贴">
-                    <div
-                      v-if="item.storeLabels.chtczj"
-                      class="visitStoreIco"
-                      style="background-color: #0057ba"
-                      slot="reference">
-                      超
-                    </div>
-                  </el-popover>
-                  <el-popover
-                    placement="bottom"
-                    popper-class="zpover zpover1 zpover1sb"
-                    :disabled="!item.userVisitTimesMap"
-                    trigger="click">
-                    <div
-                      v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
-                      class="visitStoreIco"
-                      slot="reference"
-                      style="background-color: #fff; position: relative">
                       <p
-                        style="
-                          width: 100%;
-                          position: absolute;
-                          z-index: 10;
-                          top: -2px;
-                          margin: 0;
-                          text-align: center;
-                          font-size: 12px;
-                        ">
-                        {{ item.storeLabels.visitTimes }}
-                      </p>
-                      <!-- A级金牌店拜访次数少于needVisitNum 需要拜访的次数 -->
-                      <van-icon
-                        :name="require('@/assets/ordernumRed.png')"
-                        size="26"
                         v-if="
-                          (item.storeLabels.storeA || item.storeLabels.storeS) &&
-                          item.needVisitNum &&
-                          item.storeLabels.visitTimes < item.needVisitNum
-                        " />
-                      <!-- 其他门店拜访 -->
-                      <van-icon :name="require('@/assets/ordernum.png')" size="26" v-else />
-                    </div>
-                    <p style="text-align: center; background: #fff; color: #000; padding: 5px 0">
-                      本店本月已拜访过{{ item.storeLabels.visitTimes }}次
-                    </p>
-                    <p
-                      v-if="
-                        (item.storeLabels.storeA || item.storeLabels.storeS) && item.needVisitNum
-                      "
-                      style="text-align: center; background: #fff; color: red; padding: 5px 0">
-                      <span v-if="item.storeLabels.storeA">A</span>
-                      <span v-if="item.storeLabels.storeS">S</span>
-                      级金牌店拜访标准:1月{{ item.needVisitNum }}次
-                    </p>
-                    <el-table :data="item.userVisitTimesMap" border max-height="180px">
-                      <el-table-column label="业务员" prop="userName" />
-                      <el-table-column label="拜访次数" prop="visitTimes" width="110px" />
-                    </el-table>
-                  </el-popover>
+                          (item.storeLabels.storeA || item.storeLabels.storeS) && item.needVisitNum
+                        "
+                        style="text-align: center; background: #fff; color: red; padding: 5px 0">
+                        <span v-if="item.storeLabels.storeA">A</span>
+                        <span v-if="item.storeLabels.storeS">S</span>
+                        级金牌店拜访标准:1月{{ item.needVisitNum }}次
+                      </p>
+                      <el-table :data="item.userVisitTimesMap" border max-height="180px">
+                        <el-table-column label="业务员" prop="userName" />
+                        <el-table-column label="拜访次数" prop="visitTimes" width="110px" />
+                      </el-table>
+                    </el-popover>
+                  </div>
                 </div>
-              </div>
-              <div class="info">
-                地址:{{ item.addressLine }}
-                <img
-                  v-if="item.storeLonExist"
-                  style="width: 36px"
-                  :src="sbpmdh"
-                  @click="linkapp(item)" />
-              </div>
-              <!-- 潜在店不显示经销商 -->
-              <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 class="info">
+                  地址:{{ item.addressLine }}
+                  <img
+                    v-if="item.storeLonExist"
+                    style="width: 36px"
+                    :src="sbpmdh"
+                    @click="linkapp(item)" />
+                </div>
+                <!-- 潜在店不显示经销商 -->
+                <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>
+                  </template>
+                  <template v-else>
+                    <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
+                  </template>
                 </template>
-                <template v-else>
-                  <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
-                </template>
-              </template>
-              <!-- storeLonExist 门店是否存在经纬度 字段false=不显示导航和距离,true=显示 -->
-              <div class="info" v-if="item.storeLonExist">
-                距离:{{ Micrometer(item.distance) }}m
+                <!-- 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="info" v-if="item.cntOrderAmtYear">
-                门店销额(全年累计):{{ Micrometer(item.cntOrderAmtYear) }}元
+              <div
+                class="statstext"
+                v-if="item.stateString == '未拜访'"
+                style="background-color: #ed5c68">
+                未拜访
               </div>
-            </div>
-            <div
-              class="statstext"
-              v-if="item.stateString == '未拜访'"
-              style="background-color: #ed5c68">
-              未拜访
-            </div>
-            <div
-              class="statstext"
-              v-if="item.stateString == '拜访中'"
-              style="background-color: white">
-              <van-icon :name="times" color="#ee0a24" size="32" />
-            </div>
-            <template v-if="item.stateString == '已拜访'">
-              <template v-if="item.visitSource == 1">
-                <!-- 金牌店+同城分销店+可控店 -->
-                <template v-if="item.jinpaiStore || item.fenxiaoStore || item.kekongStore">
-                  <div class="statstext" style="background-color: #e3f0fe">
-                    <span style="color: #387bca">已拜访</span>
-                    <div
-                      class="statstextIcon"
-                      style="background-color: #0057ba"
-                      @click="openPerfectStore(item)">
-                      <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
+                class="statstext"
+                v-if="item.stateString == '拜访中'"
+                style="background-color: white">
+                <van-icon :name="times" color="#ee0a24" size="32" />
+              </div>
+              <template v-if="item.stateString == '已拜访'">
+                <template v-if="item.visitSource == 1">
+                  <!-- 金牌店+同城分销店+可控店 -->
+                  <template v-if="item.jinpaiStore || item.fenxiaoStore || item.kekongStore">
+                    <div class="statstext" style="background-color: #e3f0fe">
+                      <span style="color: #387bca">已拜访</span>
+                      <div
+                        class="statstextIcon"
+                        style="background-color: #0057ba"
+                        @click="openPerfectStore(item)">
+                        <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>
-                  </div>
+                  </template>
+                  <template v-else>
+                    <div class="statstext">
+                      <span>已拜访</span>
+                    </div>
+                  </template>
                 </template>
                 <template v-else>
+                  <!-- 异常拜访 -->
                   <div class="statstext">
                     <span>已拜访</span>
                   </div>
                 </template>
               </template>
-              <template v-else>
-                <!-- 异常拜访 -->
-                <div class="statstext">
-                  <span>已拜访</span>
-                </div>
-              </template>
-            </template>
-            <div class="btnbox">
-              <van-row>
-                <van-col
-                  span="4"
-                  v-if="item.stateString != '已拜访' && customerVisits"
-                  @click="storeVisit(item)">
-                  <img :src="call" style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; font-size: 11px">进入拜访</p>
-                </van-col>
-                <van-col
-                  span="4"
-                  v-if="item.storeCategory == '公装经销商'"
-                  @click="projectOutVisit(item)">
-                  <img :src="xmgj" style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; font-size: 11px">项目跟进</p>
-                </van-col>
-                <van-col
-                  span="4"
-                  v-if="
-                    item.stateString != '已拜访' &&
-                    item.storeCategory != '公装经销商' &&
-                    customerVisits
-                  "
-                  @click="abnormalVisit(item)">
-                  <img :src="yichang" style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                    异常拜访
-                  </p>
-                </van-col>
-                <van-col
-                  span="4"
-                  v-if="item.storeLabels.zysslNums !== false"
-                  @click="linkList(item)">
-                  <img
-                    :src="require('@/assets/recommendicon.png')"
-                    style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                    推荐下单
-                  </p>
-                </van-col>
-                <van-col span="4" v-else-if="item.showOrderButton" @click="orderFn(item)">
-                  <img :src="xiadan" style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                    去下单
-                  </p>
-                </van-col>
-                <van-col span="4" v-if="item.stateString == '已拜访'" @click="Visit(item)">
-                  <img :src="bfxx" style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                    拜访信息
-                  </p>
-                </van-col>
-                <van-col span="4" @click="visitFn(item)">
-                  <img :src="kehuxinxi" style="margin: 0 auto; width: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                    客户信息
-                  </p>
-                </van-col>
-                <van-col span="4" v-if="tabVal == 1" @click="storeJoinVisit(item)">
-                  <img :src="jiarujihua" style="margin: 0 auto; height: 15px; display: block" />
-                  <p style="text-align: center; margin: 0; font-size: 11px">加入计划内</p>
-                </van-col>
-              </van-row>
-            </div>
-          </van-cell>
-          <div class="lineGrey"></div>
-        </div>
-        <van-empty v-if="list.length == 0" />
-      </van-list>
+              <div class="btnbox">
+                <van-row>
+                  <van-col
+                    span="4"
+                    v-if="item.stateString != '已拜访' && customerVisits"
+                    @click="storeVisit(item)">
+                    <img :src="call" style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; font-size: 11px">进入拜访</p>
+                  </van-col>
+                  <van-col
+                    span="4"
+                    v-if="item.storeCategory == '公装经销商'"
+                    @click="projectOutVisit(item)">
+                    <img :src="xmgj" style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; font-size: 11px">项目跟进</p>
+                  </van-col>
+                  <van-col
+                    span="4"
+                    v-if="
+                      item.stateString != '已拜访' &&
+                      item.storeCategory != '公装经销商' &&
+                      customerVisits
+                    "
+                    @click="abnormalVisit(item)">
+                    <img :src="yichang" style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                      异常拜访
+                    </p>
+                  </van-col>
+                  <van-col
+                    span="4"
+                    v-if="item.storeLabels.zysslNums !== false"
+                    @click="linkList(item)">
+                    <img
+                      :src="require('@/assets/recommendicon.png')"
+                      style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                      推荐下单
+                    </p>
+                  </van-col>
+                  <van-col span="4" v-else-if="item.showOrderButton" @click="orderFn(item)">
+                    <img :src="xiadan" style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                      去下单
+                    </p>
+                  </van-col>
+                  <van-col span="4" v-if="item.stateString == '已拜访'" @click="Visit(item)">
+                    <img :src="bfxx" style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                      拜访信息
+                    </p>
+                  </van-col>
+                  <van-col span="4" @click="visitFn(item)">
+                    <img :src="kehuxinxi" style="margin: 0 auto; width: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                      客户信息
+                    </p>
+                  </van-col>
+                  <van-col span="4" v-if="tabVal == 1" @click="storeJoinVisit(item)">
+                    <img :src="jiarujihua" style="margin: 0 auto; height: 15px; display: block" />
+                    <p style="text-align: center; margin: 0; font-size: 11px">加入计划内</p>
+                  </van-col>
+                </van-row>
+              </div>
+            </van-cell>
+            <div class="lineGrey"></div>
+          </div>
+          <van-empty v-if="list.length == 0" />
+        </van-list>
+      </van-pull-refresh>
     </div>
     <van-popup v-model="showPicker" position="bottom" class="textsize">
       <van-row
@@ -769,6 +771,7 @@ export default {
       customerVisits: true,
       isCompetingStores: true,
       postType: '',
+      refreshing: false,
     };
   },
   watch: {
@@ -950,6 +953,17 @@ export default {
     );
   },
   methods: {
+    onRefresh() {
+      this.pageNum = 1;
+      // 清空列表数据
+      this.finished = false;
+
+      // 重新加载数据
+      // 将 loading 设置为 true,表示处于加载状态
+      this.loading = true;
+      this.list = [];
+      this.onLoad();
+    },
     handleTouch(e) {
       e._isScroller = true;
     },
@@ -1269,10 +1283,6 @@ export default {
     getUserOrgStoreList() {
       this.storeType = localStorage.getItem('storeType');
       this.endShow = false;
-      if (this.refreshing) {
-        this.list = [];
-        this.refreshing = false;
-      }
       var that = this;
       this.disabled = true;
       this.toastLoading(0, '加载中...', true);
@@ -1290,6 +1300,9 @@ export default {
         genDate: this.genDate,
       }).then((res) => {
         this.disabled = false;
+        if (this.refreshing) {
+          this.refreshing = false;
+        }
         this.toastLoading().clear();
         if (res.code == 200) {
           this.loading = false;
@@ -1317,6 +1330,7 @@ export default {
             this.showPopoverZ.push({ showPopover: false });
           });
         } else {
+          this.list = [];
           this.$toast(res.msg);
         }
       });
@@ -1353,10 +1367,6 @@ export default {
         forbidClick: true,
       });
       this.endShow = false;
-      if (this.refreshing) {
-        this.list = [];
-        this.refreshing = false;
-      }
       getUserOutPlaList({
         lat: that.lat,
         lon: that.lon,
@@ -1371,6 +1381,9 @@ export default {
         genDate: this.genDate,
       }).then((res) => {
         this.disabled = false;
+        if (this.refreshing) {
+          this.refreshing = false;
+        }
         if (res.code == 200) {
           loading3.clear();
           this.loading = false;
@@ -1394,6 +1407,7 @@ export default {
             this.showPopoverZ.push({ showPopover: false });
           });
         } else {
+          this.list = [];
           this.$toast(res.msg);
         }
       });

+ 431 - 401
src/views/deviceWithin/index.vue

@@ -51,62 +51,65 @@
     </div>
     <!--        主体内容-->
     <div class="container content" style="margin-top: 145px" @touchmove="handleTouch">
-      <div class="cellcontent" v-for="(item, index) in list" :key="index">
-        <van-cell>
-          <div class="card">
-            <div class="title">
-              <template v-if="item.storeLabels">
-                <!-- 金牌店ABC -->
-                <img
-                  class="JPABC"
-                  :src="require('@/assets/Icon/storeA.png')"
-                  v-if="item.storeLabels.storeA" />
-                <img
-                  class="JPABC"
-                  :src="require('@/assets/Icon/storeB.png')"
-                  v-if="item.storeLabels.storeB" />
-                <img
-                  class="JPABC"
-                  :src="require('@/assets/Icon/storeC.png')"
-                  v-if="item.storeLabels.storeC" />
-                <img
-                  class="JPABC"
-                  :src="require('@/assets/Icon/storeD.png')"
-                  v-if="item.storeLabels.storeD" />
-                <img
-                  class="JPABC"
-                  :src="require('@/assets/Icon/storeE.png')"
-                  v-if="item.storeLabels.storeE" />
-                <img
-                  class="JPABC"
-                  :src="require('@/assets/Icon/storeS.png')"
-                  v-if="item.storeLabels.storeS" />
-              </template>
-              <span @click="goOtherSystem(item)" :style="setStroeNameStyle(item)">
-                <span>{{ item.storeName }}</span>
-                (<span>{{ item.storeCode }}</span
-                >)
-              </span>
-              <span class="btn" :data-clipboard-text="item.storeCode">
-                <van-icon
-                  :name="paste"
-                  color="#ee0a24"
-                  size="20"
-                  style="top: 6px; margin-left: 4px" />
-              </span>
-              <!-- "approvalStatus": 1:已结案;0:未结案, -->
-              <!-- "processApprovalStatus": 审批状态(0=未提交,1=已提交待审核,2=审批通过,3=审批拒绝) -->
-              <template v-if="item.approvalStatus == 0">
-                <span class="statusIcon submit" v-if="item.processApprovalStatus == 1">已提交</span>
-                <span class="statusIcon noSubmit" v-if="item.processApprovalStatus == 0"
-                  >未提交</span
-                >
-              </template>
-            </div>
-            <div class="info" style="position: relative">联系人:{{ item.contactName }}</div>
-            <div class="info">
-              类型:{{ item.storeCategory }} &nbsp;
-              <!-- <el-popover popper-class="zpover zpover6" placement="bottom-start" trigger="click">
+      <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
+        <div class="cellcontent" v-for="(item, index) in list" :key="index">
+          <van-cell>
+            <div class="card">
+              <div class="title">
+                <template v-if="item.storeLabels">
+                  <!-- 金牌店ABC -->
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/storeA.png')"
+                    v-if="item.storeLabels.storeA" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/storeB.png')"
+                    v-if="item.storeLabels.storeB" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/storeC.png')"
+                    v-if="item.storeLabels.storeC" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/storeD.png')"
+                    v-if="item.storeLabels.storeD" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/storeE.png')"
+                    v-if="item.storeLabels.storeE" />
+                  <img
+                    class="JPABC"
+                    :src="require('@/assets/Icon/storeS.png')"
+                    v-if="item.storeLabels.storeS" />
+                </template>
+                <span @click="goOtherSystem(item)" :style="setStroeNameStyle(item)">
+                  <span>{{ item.storeName }}</span>
+                  (<span>{{ item.storeCode }}</span
+                  >)
+                </span>
+                <span class="btn" :data-clipboard-text="item.storeCode">
+                  <van-icon
+                    :name="paste"
+                    color="#ee0a24"
+                    size="20"
+                    style="top: 6px; margin-left: 4px" />
+                </span>
+                <!-- "approvalStatus": 1:已结案;0:未结案, -->
+                <!-- "processApprovalStatus": 审批状态(0=未提交,1=已提交待审核,2=审批通过,3=审批拒绝) -->
+                <template v-if="item.approvalStatus == 0">
+                  <span class="statusIcon submit" v-if="item.processApprovalStatus == 1"
+                    >已提交</span
+                  >
+                  <span class="statusIcon noSubmit" v-if="item.processApprovalStatus == 0"
+                    >未提交</span
+                  >
+                </template>
+              </div>
+              <div class="info" style="position: relative">联系人:{{ item.contactName }}</div>
+              <div class="info">
+                类型:{{ item.storeCategory }} &nbsp;
+                <!-- <el-popover popper-class="zpover zpover6" placement="bottom-start" trigger="click">
                 <div>
                   <p>
                     本店经营品项指导:
@@ -115,365 +118,375 @@
                 </div>
                 <van-icon name="question-o" size="18" slot="reference" />
               </el-popover> -->
-            </div>
-            <div class="info" style="position: relative" @click="buryingPointFn(item)">
-              联系电话:<a
-                v-if="item.telephone"
-                style="color: #0057ba; font-weight: bold; text-decoration: underline"
-                :href="'tel:' + item.telephone"
-                >{{ item.telephone }}<van-icon name="phone"
-              /></a>
-              <div style="position: absolute; bottom: 0; right: 14px">
-                <el-popover
-                  popper-class="zpover"
-                  placement="bottom"
-                  width="120"
-                  trigger="click"
-                  content="该客户为凤凰客户">
-                  <div
-                    v-if="item.storeLabels.fhCustomer"
-                    class="visitStoreIco"
-                    style="background-color: #fff"
-                    slot="reference">
-                    <van-icon :name="require('@/assets/Icon/fenghuangjihua.png')" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover popper-class="zpover zpover6" placement="bottom-start" trigger="click">
-                  <div>
-                    <p>
-                      本店{{ timeData1 }}下单SKU数:<a
-                        @click="linkList(item)"
-                        style="text-decoration: underline"
-                        >点击查看详情</a
-                      >
-                    </p>
-                  </div>
-                  <div
-                    class="visitStoreIco"
-                    v-if="item.storeLabels.zysslNums !== false"
-                    style="background-color: #fff; position: relative"
-                    slot="reference">
-                    <p
-                      style="
-                        width: 100%;
-                        position: absolute;
-                        z-index: 1;
-                        top: 0.2px;
-                        width: 22px;
-                        margin: 0;
-                        margin-left: 3.6px;
-                        text-align: center;
-                        font-size: 12px;
-                      ">
-                      {{ item.storeLabels.zysslNums }}
-                    </p>
-                    <van-icon :name="ord" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover zpover5"
-                  placement="bottom"
-                  width="200"
-                  trigger="click">
-                  <div v-if="item.storeLabels">
-                    <p>{{ timeData }}未通过的陈列任务:</p>
-                    <p v-for="(tt, ind) in (item.storeLabels.targetOne + '').split(';')">
-                      <template v-if="tt"> {{ ind + 1 }}、{{ tt }};</template>
+              </div>
+              <div class="info" style="position: relative" @click="buryingPointFn(item)">
+                联系电话:
+                <a
+                  v-if="item.telephone"
+                  style="color: #0057ba; font-weight: bold; text-decoration: underline"
+                  :href="'tel:' + item.telephone"
+                  >{{ item.telephone }}<van-icon name="phone"
+                /></a>
+                <div style="position: absolute; bottom: 0; right: 14px">
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="120"
+                    trigger="click"
+                    content="该客户为凤凰客户">
+                    <div
+                      v-if="item.storeLabels.fhCustomer"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="require('@/assets/Icon/fenghuangjihua.png')" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover zpover6"
+                    placement="bottom-start"
+                    trigger="click">
+                    <div>
+                      <p>
+                        本店{{ timeData1 }}下单SKU数:<a
+                          @click="linkList(item)"
+                          style="text-decoration: underline"
+                          >点击查看详情</a
+                        >
+                      </p>
+                    </div>
+                    <div
+                      class="visitStoreIco"
+                      v-if="item.storeLabels.zysslNums !== false"
+                      style="background-color: #fff; position: relative"
+                      slot="reference">
+                      <p
+                        style="
+                          width: 100%;
+                          position: absolute;
+                          z-index: 1;
+                          top: 0.2px;
+                          width: 22px;
+                          margin: 0;
+                          margin-left: 3.6px;
+                          text-align: center;
+                          font-size: 12px;
+                        ">
+                        {{ item.storeLabels.zysslNums }}
+                      </p>
+                      <van-icon :name="ord" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover popper-class="zpover" placement="bottom" width="200" trigger="click">
+                    <div v-if="item.storeLabels">
+                      <p>已参加:</p>
+                      <p v-for="tt in (item.storeLabels.targetOne + '').split(';')">
+                        {{ tt }}
+                      </p>
+                    </div>
+                    <div
+                      class="visitStoreIco"
+                      v-if="item.storeLabels.targetOne"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="targetOne" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="120"
+                    trigger="click"
+                    content="调色机7天未调色">
+                    <div
+                      v-if="item.storeLabels.stopColorMixerSeven"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="Network" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="120"
+                    trigger="click"
+                    content="调色机当月未调色">
+                    <div
+                      v-if="item.storeLabels.stopColorMixerMonth"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="WiFi" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="200"
+                    trigger="click"
+                    content="同城店近60天未下单">
+                    <div
+                      v-if="item.storeLabels.fxNoOrder"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="order60" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="200"
+                    trigger="click"
+                    content="金牌店近30天未下单">
+                    <div
+                      v-if="item.storeLabels.noOrder"
+                      class="visitStoreIco"
+                      style="background-color: #fff"
+                      slot="reference">
+                      <van-icon :name="order" size="26" />
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover"
+                    placement="bottom"
+                    width="200"
+                    trigger="click"
+                    content="本店本月进过专业时时丽">
+                    <div
+                      v-if="item.storeLabels.zyssl"
+                      class="visitStoreIco"
+                      style="background-color: #ed5c68"
+                      slot="reference">
+                      专
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    popper-class="zpover zpover1"
+                    placement="bottom"
+                    width="200"
+                    trigger="click"
+                    content="本店本月进过超好贴">
+                    <div
+                      v-if="item.storeLabels.chtczj"
+                      class="visitStoreIco"
+                      style="background-color: #0057ba"
+                      slot="reference">
+                      超
+                    </div>
+                  </el-popover>
+                  <el-popover
+                    placement="bottom"
+                    popper-class="zpover zpover1 zpover1sb"
+                    trigger="click"
+                    :disabled="!item.userVisitTimesMap"
+                    :content="'本店本月已拜访过' + item.storeLabels.visitTimes + '次'">
+                    <div
+                      v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
+                      class="visitStoreIco"
+                      slot="reference"
+                      style="background-color: #fff; position: relative">
+                      <p
+                        style="
+                          width: 100%;
+                          position: absolute;
+                          z-index: 10;
+                          top: -2px;
+                          margin: 0;
+                          text-align: center;
+                          font-size: 12px;
+                        ">
+                        {{ item.storeLabels.visitTimes }}
+                      </p>
+                      <!-- A级金牌店拜访次数少于2 -->
+                      <van-icon
+                        :name="require('@/assets/ordernumRed.png')"
+                        size="26"
+                        v-if="
+                          (item.storeLabels.storeA || item.storeLabels.storeS) &&
+                          item.needVisitNum &&
+                          item.storeLabels.visitTimes < item.needVisitNum
+                        " />
+                      <van-icon :name="require('@/assets/ordernum.png')" size="26" v-else />
+                    </div>
+                    <p style="text-align: center; background: #fff; color: #000; padding: 5px 0">
+                      本店本月已拜访过{{ item.storeLabels.visitTimes }}次
                     </p>
-                  </div>
-                  <div
-                    class="visitStoreIco"
-                    v-if="item.storeLabels.targetOne"
-                    style="background-color: #fff"
-                    slot="reference">
-                    <van-icon :name="targetOne" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover"
-                  placement="bottom"
-                  width="120"
-                  trigger="click"
-                  content="调色机7天未调色">
-                  <div
-                    v-if="item.storeLabels.stopColorMixerSeven"
-                    class="visitStoreIco"
-                    style="background-color: #fff"
-                    slot="reference">
-                    <van-icon :name="Network" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover"
-                  placement="bottom"
-                  width="120"
-                  trigger="click"
-                  content="调色机当月未调色">
-                  <div
-                    v-if="item.storeLabels.stopColorMixerMonth"
-                    class="visitStoreIco"
-                    style="background-color: #fff"
-                    slot="reference">
-                    <van-icon :name="WiFi" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover"
-                  placement="bottom"
-                  width="200"
-                  trigger="click"
-                  content="同城店近60天未下单">
-                  <div
-                    v-if="item.storeLabels.fxNoOrder"
-                    class="visitStoreIco"
-                    style="background-color: #fff"
-                    slot="reference">
-                    <van-icon :name="order60" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover"
-                  placement="bottom"
-                  width="200"
-                  trigger="click"
-                  content="金牌店近30天未下单">
-                  <div
-                    v-if="item.storeLabels.noOrder"
-                    class="visitStoreIco"
-                    style="background-color: #fff"
-                    slot="reference">
-                    <van-icon :name="order" size="26" />
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover"
-                  placement="bottom"
-                  width="200"
-                  trigger="click"
-                  content="本店本月进过专业时时丽">
-                  <div
-                    v-if="item.storeLabels.zyssl"
-                    class="visitStoreIco"
-                    style="background-color: #ed5c68"
-                    slot="reference">
-                    专
-                  </div>
-                </el-popover>
-                <el-popover
-                  popper-class="zpover zpover1"
-                  placement="bottom"
-                  width="200"
-                  trigger="click"
-                  content="本店本月进过超好贴">
-                  <div
-                    v-if="item.storeLabels.chtczj"
-                    class="visitStoreIco"
-                    style="background-color: #0057ba"
-                    slot="reference">
-                    超
-                  </div>
-                </el-popover>
-                <el-popover
-                  placement="bottom"
-                  popper-class="zpover zpover1 zpover1sb"
-                  trigger="click"
-                  :disabled="!item.userVisitTimesMap"
-                  :content="'本店本月已拜访过' + item.storeLabels.visitTimes + '次'">
-                  <div
-                    v-if="item.storeLabels.visitTimes && item.storeLabels.visitTimes > 0"
-                    class="visitStoreIco"
-                    slot="reference"
-                    style="background-color: #fff; position: relative">
                     <p
-                      style="
-                        width: 100%;
-                        position: absolute;
-                        z-index: 10;
-                        top: -2px;
-                        margin: 0;
-                        text-align: center;
-                        font-size: 12px;
-                      ">
-                      {{ item.storeLabels.visitTimes }}
-                    </p>
-                    <!-- A级金牌店拜访次数少于2 -->
-                    <van-icon
-                      :name="require('@/assets/ordernumRed.png')"
-                      size="26"
                       v-if="
-                        (item.storeLabels.storeA || item.storeLabels.storeS) &&
-                        item.needVisitNum &&
-                        item.storeLabels.visitTimes < item.needVisitNum
-                      " />
-                    <van-icon :name="require('@/assets/ordernum.png')" size="26" v-else />
+                        (item.storeLabels.storeA || item.storeLabels.storeS) && item.needVisitNum
+                      "
+                      style="text-align: center; background: #fff; color: red; padding: 5px 0">
+                      <span v-if="item.storeLabels.storeA">A</span>
+                      <span v-if="item.storeLabels.storeS">S</span>
+                      级金牌店拜访标准:1月{{ item.needVisitNum }}次
+                    </p>
+                    <el-table :data="item.userVisitTimesMap" border max-height="180px">
+                      <el-table-column label="业务员" prop="userName" />
+                      <el-table-column label="拜访次数" prop="visitTimes" width="110px" />
+                    </el-table>
+                  </el-popover>
+                </div>
+              </div>
+              <div class="info" v-if="item.addressLine">
+                地址:{{ item.addressLine
+                }}<img
+                  v-if="item.storeLonExist"
+                  style="width: 36px"
+                  :src="sbpmdh"
+                  @click="linkapp(item)" />
+              </div>
+              <!-- 潜在店不显示经销商 -->
+              <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>
-                  <p style="text-align: center; background: #fff; color: #000; padding: 5px 0">
-                    本店本月已拜访过{{ item.storeLabels.visitTimes }}次
-                  </p>
-                  <p
-                    v-if="(item.storeLabels.storeA || item.storeLabels.storeS) && item.needVisitNum"
-                    style="text-align: center; background: #fff; color: red; padding: 5px 0">
-                    <span v-if="item.storeLabels.storeA">A</span>
-                    <span v-if="item.storeLabels.storeS">S</span>
-                    级金牌店拜访标准:1月{{ item.needVisitNum }}次
-                  </p>
-                  <el-table :data="item.userVisitTimesMap" border max-height="180px">
-                    <el-table-column label="业务员" prop="userName" />
-                    <el-table-column label="拜访次数" prop="visitTimes" width="110px" />
-                  </el-table>
-                </el-popover>
+                </template>
+                <template v-else>
+                  <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
+                </template>
+              </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="info" v-if="item.addressLine">
-              地址:{{ item.addressLine
-              }}<img
-                v-if="item.storeLonExist"
-                style="width: 36px"
-                :src="sbpmdh"
-                @click="linkapp(item)" />
+            <div
+              class="statstext"
+              v-if="item.stateString == '未拜访'"
+              style="background-color: #ed5c68">
+              未拜访
             </div>
-            <!-- 潜在店不显示经销商 -->
-            <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>
-              </template>
-              <template v-else>
-                <div class="info" v-if="typeShow">经销商:{{ item.chainName }}</div>
-              </template>
-            </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
+              class="statstext"
+              v-if="item.stateString == '拜访中'"
+              style="background-color: white">
+              <van-icon :name="times" color="#ee0a24" size="32" />
             </div>
-          </div>
-          <div
-            class="statstext"
-            v-if="item.stateString == '未拜访'"
-            style="background-color: #ed5c68">
-            未拜访
-          </div>
-          <div
-            class="statstext"
-            v-if="item.stateString == '拜访中'"
-            style="background-color: white">
-            <van-icon :name="times" color="#ee0a24" size="32" />
-          </div>
-          <template v-if="item.stateString == '已拜访'">
-            <!-- 正常拜访 -->
-            <template v-if="item.visitSource == 1">
-              <!-- 金牌店+同城分销店+可控店 -->
-              <template v-if="item.jinpaiStore || item.fenxiaoStore || item.kekongStore">
-                <div class="statstext" style="background-color: #e3f0fe">
-                  <span style="color: #387bca">已拜访</span>
-                  <div
-                    class="statstextIcon"
-                    style="background-color: #0057ba"
-                    @click="openPerfectStore(item)">
-                    <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')" />完美门店报告
+            <template v-if="item.stateString == '已拜访'">
+              <!-- 正常拜访 -->
+              <template v-if="item.visitSource == 1">
+                <!-- 金牌店+同城分销店+可控店 -->
+                <template v-if="item.jinpaiStore || item.fenxiaoStore || item.kekongStore">
+                  <div class="statstext" style="background-color: #e3f0fe">
+                    <span style="color: #387bca">已拜访</span>
+                    <div
+                      class="statstextIcon"
+                      style="background-color: #0057ba"
+                      @click="openPerfectStore(item)">
+                      <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>
-                </div>
+                </template>
+                <template v-else>
+                  <div class="statstext">
+                    <span>已拜访</span>
+                  </div>
+                </template>
               </template>
               <template v-else>
+                <!-- 异常拜访 -->
                 <div class="statstext">
                   <span>已拜访</span>
                 </div>
               </template>
             </template>
-            <template v-else>
-              <!-- 异常拜访 -->
-              <div class="statstext">
-                <span>已拜访</span>
-              </div>
-            </template>
-          </template>
-          <div class="btnbox">
-            <van-row>
-              <van-col
-                span="4"
-                v-if="item.stateString != '已拜访' && item.visitAble && customerVisits"
-                @click="storeVisit(item)">
-                <img :src="call" style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; font-size: 11px">进入拜访</p>
-              </van-col>
-              <van-col
-                span="4"
-                v-if="item.storeCategory == '公装经销商'"
-                @click="projectOutVisit(item)">
-                <img :src="xmgj" style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; font-size: 11px">项目跟进</p>
-              </van-col>
-              <van-col
-                span="4"
-                v-if="
-                  item.stateString != '已拜访' &&
-                  item.visitAble &&
-                  item.storeCategory != '公装经销商' &&
-                  customerVisits
-                "
-                @click="abnormalVisit(item)">
-                <img :src="yichang" style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                  异常拜访
-                </p>
-              </van-col>
-              <van-col span="4" v-if="item.storeLabels.zysslNums !== false" @click="linkList(item)">
-                <img
-                  :src="require('@/assets/recommendicon.png')"
-                  style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                  推荐下单
-                </p>
-              </van-col>
-              <van-col span="4" v-else-if="item.showOrderButton" @click="orderFn(item)">
-                <img :src="xiadan" style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                  去下单
-                </p>
-              </van-col>
-              <van-col span="4" v-if="item.stateString == '已拜访'" @click="Visit(item)">
-                <img :src="bfxx" style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                  拜访信息
-                </p>
-              </van-col>
-              <van-col span="4" @click="visitFn(item)">
-                <img :src="kehuxinxi" style="margin: 0 auto; height: 15px; display: block" />
-                <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
-                  客户信息
-                </p>
-              </van-col>
-            </van-row>
-          </div>
-        </van-cell>
-        <div class="lineGrey"></div>
-      </div>
+            <div class="btnbox">
+              <van-row>
+                <van-col
+                  span="4"
+                  v-if="item.stateString != '已拜访' && item.visitAble && customerVisits"
+                  @click="storeVisit(item)">
+                  <img :src="call" style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; font-size: 11px">进入拜访</p>
+                </van-col>
+                <van-col
+                  span="4"
+                  v-if="item.storeCategory == '公装经销商'"
+                  @click="projectOutVisit(item)">
+                  <img :src="xmgj" style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; font-size: 11px">项目跟进</p>
+                </van-col>
+                <van-col
+                  span="4"
+                  v-if="
+                    item.stateString != '已拜访' &&
+                    item.visitAble &&
+                    item.storeCategory != '公装经销商' &&
+                    customerVisits
+                  "
+                  @click="abnormalVisit(item)">
+                  <img :src="yichang" style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                    异常拜访
+                  </p>
+                </van-col>
+                <van-col
+                  span="4"
+                  v-if="item.storeLabels.zysslNums !== false"
+                  @click="linkList(item)">
+                  <img
+                    :src="require('@/assets/recommendicon.png')"
+                    style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                    推荐下单
+                  </p>
+                </van-col>
+                <van-col span="4" v-else-if="item.showOrderButton" @click="orderFn(item)">
+                  <img :src="xiadan" style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                    去下单
+                  </p>
+                </van-col>
+                <van-col span="4" v-if="item.stateString == '已拜访'" @click="Visit(item)">
+                  <img :src="bfxx" style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                    拜访信息
+                  </p>
+                </van-col>
+                <van-col span="4" @click="visitFn(item)">
+                  <img :src="kehuxinxi" style="margin: 0 auto; height: 15px; display: block" />
+                  <p style="text-align: center; margin: 0; margin-top: 1px; font-size: 11px">
+                    客户信息
+                  </p>
+                </van-col>
+              </van-row>
+            </div>
+          </van-cell>
+          <div class="lineGrey"></div>
+        </div>
+      </van-pull-refresh>
       <p style="text-align: center; color: #888a8e" v-if="list.length > 0">--已经到底了--</p>
       <br />
       <van-empty description="暂无数据" v-if="list.length == 0" />
@@ -571,7 +584,6 @@ export default {
       tabVal: 'insidePlan',
       list: [],
       loading: false,
-      finished: false,
       mapShows: false,
       typeShow: false,
       storeName: '',
@@ -588,6 +600,7 @@ export default {
       // 筛选模块
       showFilter: false,
       filterParams: {},
+      refreshing: false,
     };
   },
   computed: {
@@ -650,6 +663,10 @@ export default {
     );
   },
   methods: {
+    onRefresh() {
+      this.list = [];
+      this.getUserInPlanList();
+    },
     closePopup(flag, filterParams) {
       this.showFilter = false;
       if (flag) {
@@ -849,7 +866,16 @@ export default {
       });
     },
     getUserInPlanList() {
-      this.list = [];
+      localStorage.setItem('outvstoreName', '');
+      localStorage.setItem('outvchainName', '');
+      localStorage.removeItem('outvstoreLabelTypes');
+      localStorage.removeItem('outvstoreCategoryList');
+      localStorage.setItem('outvchainCode', '');
+      localStorage.setItem('outvstoreName', '');
+      localStorage.setItem('outvsortType', '');
+      localStorage.setItem('outsortParam', '');
+      localStorage.setItem('lat', '');
+      localStorage.setItem('lon', '');
       var postType = localStorage.getItem('postType');
       this.customerVisits = localStorage.getItem('customerVisits');
       if (localStorage.getItem('postType') == 'JZ' || localStorage.getItem('postType') == 'GZ') {
@@ -864,7 +890,6 @@ export default {
       }
       this.storeType = localStorage.getItem('storeType');
       this.endShow = false;
-      this.toastLoading(0, '加载中...', true);
       localStorage.removeItem('visitId');
       getPosition(true, true)
         .then((res) => {
@@ -879,6 +904,7 @@ export default {
         });
     },
     getUserInPlanListFun(TXisBD) {
+      this.toastLoading(0, '加载中...', true);
       getUserInPlanList({
         storeName: this.storeName.trim(),
         genDate: this.genDate,
@@ -887,6 +913,9 @@ export default {
         ...this.filterParams,
       }).then((res) => {
         this.toastLoading().clear();
+        if (this.refreshing) {
+          this.refreshing = false;
+        }
         if (res.code == 200) {
           this.list = res.data;
           this.list.forEach((item) => {
@@ -897,6 +926,7 @@ export default {
             }
           });
         } else {
+          this.list = [];
           this.$toast.fail(res.msg);
         }
       });

+ 6 - 5
src/views/deviceWithin/taskPhotoTaking.vue

@@ -75,12 +75,13 @@
           </div>
           <div class="itemBottom" v-if="insert == 'false'">
             <img
+              v-if="item.taskPhotoConditionPassed == 1"
               @click="openDialog(item)"
-              :src="
-                item.taskPhotoConditionPassed == 1
-                  ? require('@/assets/taskPhotoSu.png')
-                  : require('@/assets/taskPhotoErr.png')
-              " />
+              :src="require('@/assets/taskPhotoSu.png')" />
+            <img
+              v-if="item.taskPhotoConditionPassed == 0"
+              @click="openDialog(item)"
+              :src="require('@/assets/taskPhotoErr.png')" />
           </div>
         </div>
       </div>

+ 5 - 2
src/views/historicalVisit/hisvistdeils.vue

@@ -278,8 +278,11 @@
     <div class="identifyResult" v-if="taskPhotoRecognitionResult" style="padding: 0 10px">
       <div style="font-weight: bold; padding: 10px; font-size: 16px">
         <span>识别结果:</span>
-        <span style="color: red">{{
-          activatedSfaTask.taskPhotoConditionPassed == '1' ? 'AI识别通过' : 'AI识别不通过'
+        <span v-if="activatedSfaTask.taskPhotoConditionPassed == '1'" style="color: red">{{
+          'AI识别通过'
+        }}</span>
+        <span v-if="activatedSfaTask.taskPhotoConditionPassed == '0'" style="color: red">{{
+          'AI识别不通过'
         }}</span>
       </div>
       <div class="resultContent">

+ 10 - 6
src/views/historicalVisit/perfectStore.vue

@@ -103,7 +103,9 @@
               <van-button round type="primary" v-if="shopSignDetail.qualifiedState == '1'"
                 >通过</van-button
               >
-              <van-button round type="danger" v-else>不通过</van-button>
+              <van-button round type="danger" v-if="shopSignDetail.qualifiedState == '0'"
+                >不通过</van-button
+              >
               <div class="jiantou">
                 <van-icon name="arrow" />
               </div>
@@ -120,7 +122,9 @@
               <van-button round type="primary" v-if="tiaoSJDetail.qualifiedState == '1'"
                 >通过</van-button
               >
-              <van-button round type="danger" v-else>不通过</van-button>
+              <van-button round type="danger" v-if="tiaoSJDetail.qualifiedState == '0'"
+                >不通过</van-button
+              >
               <div class="jiantou">
                 <van-icon name="arrow" />
               </div>
@@ -145,9 +149,7 @@
         </div>
       </div>
       <!-- 目前陈列任务 -->
-      <div
-        class="TSJBox specialTask"
-        v-if="list.isSku == '是' && taskTypeArr && taskTypeArr.length">
+      <div class="TSJBox specialTask" v-if="taskTypeArr && taskTypeArr.length">
         <div class="specialTaskLeft">
           <div class="SignText">AI 陈列任务识别</div>
         </div>
@@ -163,7 +165,9 @@
               <van-button round type="primary" v-if="value.taskPhotoConditionPassed == 1"
                 >通过</van-button
               >
-              <van-button round type="danger" v-else>不通过</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">

+ 6 - 2
src/views/historicalVisit/perfectStoreSign.vue

@@ -14,7 +14,9 @@
                   v-if="shopSignDetail.qualifiedState == '1'" />
                 <van-icon name="warning" color="#ee0a24" v-else />
               </div>
-              <div :style="{ color: shopSignDetail.qualifiedState == '1' ? '#07c160' : '#ee0a24' }">
+              <div
+                v-if="shopSignDetail.qualifiedState != null"
+                :style="{ color: shopSignDetail.qualifiedState == '1' ? '#07c160' : '#ee0a24' }">
                 {{
                   shopSignDetail.qualifiedState == '1'
                     ? '店招完整,授权号正确'
@@ -27,7 +29,9 @@
                 <van-button round type="primary" v-if="shopSignDetail.qualifiedState == '1'"
                   >通过</van-button
                 >
-                <van-button round type="danger" v-else>不通过</van-button>
+                <van-button round type="danger" v-if="shopSignDetail.qualifiedState == '0'"
+                  >不通过</van-button
+                >
               </div>
             </div>
           </div>

+ 7 - 9
src/views/historicalVisit/perfectStoreTask.vue

@@ -96,9 +96,12 @@
             width="50"></el-table-column>
           <el-table-column label="要求" prop="conditionIdentifyNum" align="center" width="60px">
             <template slot-scope="scope">
-              <span :style="{ color: scope.row.meetTheStandard == 1 ? '#07c160' : 'red' }">
+              <span
+                v-if="scope.row.meetTheStandard != null"
+                :style="{ color: scope.row.meetTheStandard == 1 ? '#07c160' : 'red' }">
                 {{ scope.row.conditionIdentifyNum }}
               </span>
+              <span v-else>{{ scope.row.conditionIdentifyNum }}</span>
             </template>
           </el-table-column>
         </el-table>
@@ -119,14 +122,9 @@
             <van-button round type="primary" v-if="item.taskPhotoConditionPassed == 1"
               >通过</van-button
             >
-            <van-button round type="danger" v-else>不通过</van-button>
-            <!-- <img
-              @click="openDialog"
-              :src="
-                item.taskPhotoConditionPassed == 1
-                  ? require('@/assets/taskPhotoSu.png')
-                  : require('@/assets/taskPhotoErr.png')
-              " /> -->
+            <van-button round type="danger" v-if="item.taskPhotoConditionPassed == 0"
+              >不通过</van-button
+            >
           </div>
         </div>
       </div>