<template>
  <div class="bgcolor deviceOutside">
    <div class="navBarTOP">
      <!--        顶部条-->
      <van-nav-bar class="navBar" title="计划外">
        <template #right>
          <span @click="searchFn">筛选<van-icon name="arrow-down" /></span>
        </template>
      </van-nav-bar>
      <div class="searchDiv">
        <van-search
          v-model="storeName"
          left-icon="search"
          show-action
          placeholder="搜索名称/编号/地址"
          @clear="clearFn">
          <template #action>
            <div @click="onSearchm">搜索</div>
          </template>
        </van-search>
      </div>
      <van-tabs class="myTab" type="card" v-model="tabVal" color="#0057ba" @change="tabChange">
        <van-tab title="销售部" name="0" :disabled="disabled"></van-tab>
        <van-tab title="我的" name="1" :disabled="disabled"></van-tab>
      </van-tabs>
    </div>
    <!--        主体内容-->
    <div class="container content" style="margin-top: 144px" @touchmove="handleTouch">
      <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>
                      <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>
                  </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>
                    </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>
              </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>
                      <!-- 完美门店报告生成 -->
                      <template v-if="item.wanmeiStore">
                        <!-- <template v-if="false"> -->
                        <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>
                      </template>
                      <!-- 完美门店报告生成中 -->
                      <template v-else>
                        <aiGenerating
                          style="
                            width: 100px;
                            position: absolute;
                            left: -40px;
                            top: 31px;
                          "></aiGenerating>
                      </template>
                    </div>
                  </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>
      </van-pull-refresh>
    </div>
    <van-popup v-model="showPicker" position="bottom" class="textsize">
      <van-row
        style="
          /* position: fixed; */
          /* top: 0; */
          width: 100%;
          z-index: 998;
          background-color: #fff;
          border-bottom: 1px solid #ccc;
          height: 50px;
        ">
        <van-col span="3" style="text-align: center; margin: 14px 0" @click="showPicker = false">
          <van-icon name="cross" size="20" color="#909399" />
        </van-col>
        <van-col span="13"> </van-col>
        <van-col span="4" style="text-align: center; line-height: 36px" @click="onConfirm">
          <div style="color: #0057ba">
            <van-button type="info" size="small" color="#0057ba">筛选</van-button>
          </div></van-col
        >
        <van-col span="4" style="text-align: center; line-height: 36px" @click="onsets">
          <van-button type="default" size="small" style="height: 28px">重置</van-button>
        </van-col>
      </van-row>
      <!-- <div style="height: 48px; width: 100%"></div> -->
      <div class="searchcheck" @touchmove="handleTouch">
        <p class="searchchecktitle">&nbsp;经销商</p>
        <van-row>
          <van-col span="24">
            <div @click="moreTypeShowFn">
              <van-field
                style="
                  margin-top: -6px;
                  border-radius: 6px;
                  border: 1px solid #ccc;
                  overflow: hidden;
                "
                readonly
                v-model="chainName"
                label=""
                placeholder="请选择经销商" />
            </div>
          </van-col>
        </van-row>
        <p class="searchchecktitle" @click="otherbqShow = !otherbqShow">
          &nbsp;门店标签<van-icon name="arrow-down" style="float: right" />
        </p>
        <van-checkbox-group v-model="storeLabelTypes" direction="horizontal">
          <div v-if="otherbqShow" style="width: 100%">
            <div class="checkbox" v-for="(item, index) in storeLabelsRegular" :key="index">
              <van-checkbox :name="item.dictValue">{{ item.dictLabel }}</van-checkbox>
            </div>
            <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
          </div>
        </van-checkbox-group>
        <p class="searchchecktitle" @click="otherjpdShow = !otherjpdShow">
          &nbsp;门店等级<van-icon name="arrow-down" style="float: right" />
        </p>
        <van-checkbox-group v-model="jpdStoreLevelTypes" direction="horizontal">
          <div v-if="otherjpdShow" style="width: 100%">
            <div class="checkbox" v-for="(item, index) in jpdStoreLevels" :key="'jpd' + index">
              <van-checkbox :name="item.dictValue">{{ item.dictLabel }}</van-checkbox>
            </div>
            <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
          </div>
        </van-checkbox-group>
        <van-checkbox-group v-model="result" direction="horizontal">
          <p class="searchchecktitle" @click="otherkkdShow = !otherkkdShow">
            &nbsp;可控店<van-icon name="arrow-down" style="float: right" />
          </p>
          <div v-if="otherkkdShow">
            <div v-for="(item, index) in storeTypeLists" :key="index" class="checkbox1">
              <div v-if="item.groupType == 'kkd'" class="child">
                <van-checkbox :name="item.dictValue">{{ item.dictLabel }}</van-checkbox>
              </div>
            </div>
          </div>
          <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
          <p class="searchchecktitle" @click="otherfxdShow = !otherfxdShow">
            &nbsp;分销店<van-icon name="arrow-down" style="float: right" />
          </p>
          <div v-if="otherfxdShow" style="margin: 0 14px; width: 100%">
            <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
            <p class="searchchecktitle1" @click="otherfxdShow1 = !otherfxdShow1">
              金牌店<van-icon name="arrow-down" style="float: right" />
            </p>
            <div v-if="otherfxdShow1">
              <div v-for="(item1, index1) in storeTypeLists" :key="200 + index1" class="checkbox1">
                <div v-if="item1.groupType == 'fxd' && item1.remark == 'jp'" class="child">
                  <van-checkbox :name="item1.dictValue">{{ item1.dictLabel }}</van-checkbox>
                </div>
              </div>
              <div style="height: 2px; background-color: #f5f5f5; width: 100%; clear: both"></div>
            </div>
            <p class="searchchecktitle1" @click="otherfxdShow2 = !otherfxdShow2">
              同城分销店<van-icon name="arrow-down" style="float: right" />
            </p>
            <div v-if="otherfxdShow2">
              <div
                v-for="(itemlj, indexlj) in storeTypeLists"
                :key="400 + indexlj"
                class="checkbox1">
                <div v-if="itemlj.groupType == 'fxd' && itemlj.remark == 'tcfx'" class="child">
                  <van-checkbox :name="itemlj.dictValue">{{ itemlj.dictLabel }}</van-checkbox>
                </div>
              </div>
              <div style="clear: both"></div>
            </div>
          </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">
            &nbsp;其他 <van-icon name="arrow-down" style="float: right" />
          </p>
          <div v-if="otherShow">
            <div v-for="(item2, index2) in storeTypeLists" :key="100 + index2" class="checkbox1">
              <div v-if="item2.groupType == 'other'" class="child">
                <van-checkbox :name="item2.dictValue">{{ item2.dictLabel }}</van-checkbox>
              </div>
            </div>
          </div>
        </van-checkbox-group>
      </div>
    </van-popup>
    <van-popup v-model="moreTypeShow" position="bottom" style="height: 80%">
      <van-row style="background-color: #f5f5f5">
        <van-col span="20">
          <van-field
            left-icon="search"
            style="margin-top: 2px; border-radius: 6px; overflow: hidden"
            v-model="CustomerName"
            label=""
            placeholder="请输入关键词"
            clearable />
        </van-col>
        <van-col span="4" style="text-align: center; line-height: 48px" @click="getCustomer">
          <div style="background-color: #0057ba; color: #fff">搜索</div></van-col
        >
      </van-row>
      <van-picker
        show-toolbar
        :columns="chainsData"
        value-key="chainName"
        @confirm="onConfirmChainsList"
        @cancel="moreTypeShow = false"
        visible-item-count="10" />
    </van-popup>
    <tab-bar tabBarActive="outsidelist"></tab-bar>
    <div class="positionContent" @click="rangeStoreFn()" v-if="mapShows">
      <van-icon class="img" :name="mpimg" size="50" />
    </div>
  </div>
</template>

<script>
import tabBar from '@/components/tabBar';
import {
  getUserOutPlaList,
  getUserOrgStoreList,
  stopVisit,
  checkVisit,
  addVisitsPosition,
  mobileReposition,
  getStoreyslTypeList,
  getStoreTypeListlp,
  joinInPlan,
  getStoreLabels,
  getCustomerList,
  buryingPoint,
  ProductItemImge,
} from '@/api/index';
import times from '@/assets/Icon/times.png';
import order60 from '@/assets/order60.png';
import targetOne from '@/assets/targetOne.png';
import Network from '@/assets/Network.png';
import WiFi from '@/assets/WiFi.png';
import ord from '@/assets/ord.png';
import timeico from '@/assets/Icon/datatims.png';
import location from '@/assets/location.png';
import paste from '@/assets/paste.png';
import visitTimes from '@/assets/visitTimes.png';
import mpimg from '@/assets/mpimg.png';
import axios from 'axios';
import mapmarker from '@/components/mapMarkerDouble';
import order from '@/assets/order.png';
import sbpmdh from '@/assets/sbpmdh.png';
import request from '@/utils/request';
import call from '@/assets/call.png';
import jiarujihua from '@/assets/jiarujihua.png';
import kehuxinxi from '@/assets/kehuxinxi-2.png';
import xiadan from '@/assets/xiadan.png';
import yichang from '@/assets/yichang.png';
import bfxx from '@/assets/bfxx.png';
import xmgj from '@/assets/xmgj.png';
import { getOrderUrlByStoreId } from '@/api/inventory';
import { checkStoreAddressByStoreCode } from '@/api/visitstore';
import { getPosition, getMapPoi, getkeywordPoi, getTicketFun } from '@/utils/TXApiFun';
import aiGenerating from '@/components/aiGenerating';
export default {
  name: 'outsidelist',
  components: { tabBar, mapmarker, aiGenerating },
  data() {
    return {
      yichang: yichang,
      xmgj: xmgj,
      bfxx: bfxx,
      xiadan: xiadan,
      kehuxinxi: kehuxinxi,
      jiarujihua: jiarujihua,
      call: call,
      times: times,
      searchShows: false,
      paste: paste,
      visitTimess: visitTimes,
      sbpmdh: sbpmdh,
      typeShow: false,
      mpimg: mpimg,
      order: order,
      ord: ord,
      mapShow: false,
      otherShow: false,
      Network: Network,
      WiFi: WiFi,
      order60: order60,
      targetOne: targetOne,
      chainName: '',
      chainCode: '',
      mapShows: false,
      activeNames: '1',
      showPopover: false,
      moreTypeShow: false,
      showPopoverVNUM: [],
      showPopoverC: [],
      showPopoverZ: [],
      zyssl: [],
      chtczj: [],
      noVisit: [],
      noOrder: [],
      fxNoOrder: [],
      storeLabelTypes: [],
      // showPopover:false,
      location: location,
      timeico: timeico,
      disabled: false,
      timer: null,
      flag: true,
      show: false,
      tabVal: '1',
      list: [],
      cont: 0,
      loading: false,
      showPicker: false,
      finished: false,
      otherbqShow: true,
      otherkkdShow: true,
      otherfxdShow: true,
      otherfxdShow2: true,
      otherfxdShow1: true,
      typeName: '搜索',
      visitEndId: '',
      pageSize: 12,
      pageNum: 1,
      listActive: null,
      query: '',
      storeName: '',
      genDate: '',
      storeType: '',
      endShow: false,
      storeCategory: '',
      fromValue: {},
      storeTypeList: [],
      storeTypeLists: [],
      chainsData: [],
      serachstype: '',
      addShow1: false,
      storeCategoryList: '',
      result: [],
      StoreLabels: [],
      storeLabelsRegular: [],
      jpdStoreLevels: [],
      jpdStoreLevelTypes: [],
      otherjpdShow: true,
      CustomerName: '',
      lat: '',
      lon: '',
      timeData: '',
      customerVisits: true,
      isCompetingStores: true,
      postType: '',
      refreshing: false,
    };
  },
  watch: {
    $route(to, from) {
      if (from.path == '/deviceWithin/index') {
        localStorage.setItem('outvstoreName', '');
        localStorage.setItem('outvchainName', '');
        localStorage.removeItem('outvstoreLabelTypes');
        localStorage.removeItem('outvjpdStoreLevelTypes');
        localStorage.removeItem('outvstoreCategoryList');
        localStorage.setItem('outvchainCode', '');
        localStorage.setItem('outvsortType', '');
        localStorage.setItem('outsortParam', '');
        localStorage.setItem('lat', '');
        localStorage.setItem('lon', '');
      }
      this.storeName = localStorage.getItem('outvstoreName');
      if (
        localStorage.getItem('outvchainName') &&
        localStorage.getItem('outvchainName') != 'null'
      ) {
        this.chainName = localStorage.getItem('outvchainName');
      } else {
        this.chainName = '';
      }
      if (localStorage.getItem('lat') != null) {
        this.lat = localStorage.getItem('lat');
        this.lon = localStorage.getItem('lon');
      } else {
        this.lat = '';
        this.lon = '';
      }
      const storedStoreLabels = localStorage.getItem('outvstoreLabelTypes');
      if (storedStoreLabels != null && storedStoreLabels !== '') {
        this.storeLabelTypes = storedStoreLabels
          .split(',')
          .map((it) => it.trim())
          .filter((it) => it);
      } else {
        this.storeLabelTypes = [];
      }

      const storedJpdStoreLevels = localStorage.getItem('outvjpdStoreLevelTypes');
      if (storedJpdStoreLevels != null && storedJpdStoreLevels !== '') {
        this.jpdStoreLevelTypes = storedJpdStoreLevels
          .split(',')
          .map((it) => it.trim())
          .filter((it) => it);
      } else {
        this.jpdStoreLevelTypes = [];
      }

      if (localStorage.getItem('outvstoreCategoryList') != null) {
        this.result = localStorage.getItem('outvstoreCategoryList').split(',');
        this.storeCategoryList = this.result.join(',');
      } else {
        this.result = [];
        this.storeCategoryList = this.result.join(',');
      }
      this.chainCode = localStorage.getItem('outvchainCode') || '';
      this.storeName = localStorage.getItem('outvstoreName') || '';
      if (
        (from.path == '/My/index' && to.path == '/outsidelist/index') ||
        (from.path == '/home' && to.path == '/outsidelist/index') ||
        (from.path == '/deviceWithin/index' && to.path == '/outsidelist/index') ||
        (from.path == '/storemanagement/index' && to.path == '/outsidelist/index')
      ) {
        this.tabVal = '1';
      } else {
        if (localStorage.getItem('tabVal') != null) {
          this.tabVal = localStorage.getItem('tabVal');
        }
      }
      if (
        (from.path == '/storeDetail' && to.path == '/outsidelist/index') ||
        (from.path == '/storeGroup' && to.path == '/outsidelist/index') ||
        (from.path == '/suishenbangOutstoreVisit' && to.path == '/outsidelist/index') ||
        (from.path == '/outabnormalVisit' && to.path == '/outsidelist/index') ||
        (from.path == '/home' && to.path == '/outsidelist/index') ||
        (from.path == '/deviceWithin/index' && to.path == '/outsidelist/index') ||
        (from.path == '/storemanagement/index' && to.path == '/outsidelist/index') ||
        (from.path == '/My/index' && to.path == '/outsidelist/index')
      ) {
        this.onSearch();
      }
      this.postType = localStorage.getItem('postType');
      if (this.postType == 'GZ') {
        this.addShow1 = false;
        this.otherShow = true;
      } else {
        this.addShow1 = true;
        this.otherShow = false;
      }
      if (localStorage.getItem('postType') == 'JZ' || localStorage.getItem('postType') == 'GZ') {
        this.mapShows = false;
      } else {
        this.mapShows = true;
      }
      this.getMonth();
    },
  },
  created() {
    this.storeName = localStorage.getItem('outvstoreName');
    if (localStorage.getItem('outvchainName') && localStorage.getItem('outvchainName') != 'null') {
      this.chainName = localStorage.getItem('outvchainName');
    }
    const storedStoreLabels = localStorage.getItem('outvstoreLabelTypes');
    if (storedStoreLabels != null && storedStoreLabels !== '') {
      this.storeLabelTypes = storedStoreLabels
        .split(',')
        .map((it) => it.trim())
        .filter((it) => it);
    } else {
      this.storeLabelTypes = [];
    }

    const storedJpdStoreLevels = localStorage.getItem('outvjpdStoreLevelTypes');
    if (storedJpdStoreLevels != null && storedJpdStoreLevels !== '') {
      this.jpdStoreLevelTypes = storedJpdStoreLevels
        .split(',')
        .map((it) => it.trim())
        .filter((it) => it);
    } else {
      this.jpdStoreLevelTypes = [];
    }
    if (localStorage.getItem('outvstoreCategoryList') != null) {
      this.result = localStorage.getItem('outvstoreCategoryList').split(',');
      this.storeCategoryList = this.result.join(',');
    } else {
      this.result = [];
      this.storeCategoryList = this.result.join(',');
    }
    this.chainCode = localStorage.getItem('outvchainCode') || '';
    this.storeName = localStorage.getItem('outvstoreName') || '';
    if (localStorage.getItem('tabVal') == null || this.$route.query.info != 'y') {
      if (this.$route.query.info != undefined) {
        if (this.$route.query.info.indexOf('y') != -1) {
          this.tabVal = localStorage.getItem('tabVal');
        } else {
          this.tabVal = '1';
        }
      } else {
        this.tabVal = localStorage.getItem('tabVal');
      }
    } else {
      this.tabVal = localStorage.getItem('tabVal');
    }
    if (localStorage.getItem('postType') == 'JZ' || localStorage.getItem('postType') == 'GZ') {
      this.mapShows = false;
    } else {
      this.mapShows = true;
    }
    this.query = this.$route.query;
    localStorage.removeItem('visitId');
    this.getStoreTypeList();
    this.getStoreLabels();
    this.postType = localStorage.getItem('postType');
    if (this.postType == 'GZ') {
      this.addShow1 = false;
      this.otherShow = true;
    } else {
      this.addShow1 = true;
      this.otherShow = false;
    }
    this.getMonth();
  },
  mounted() {
    // 上拉边界下拉出现白色空白
    let node = document.getElementsByClassName('deviceOutside')[0];
    node.addEventListener(
      'touchmove',
      (e) => {
        if (e._isScroller) return;
        e.preventDefault();
      },
      {
        passive: false,
      },
    );
  },
  methods: {
    onRefresh() {
      this.pageNum = 1;
      // 清空列表数据
      this.finished = false;

      // 重新加载数据
      // 将 loading 设置为 true，表示处于加载状态
      this.loading = true;
      this.list = [];
      this.onLoad();
    },
    handleTouch(e) {
      e._isScroller = true;
    },
    setStroeNameStyle(item) {
      // 家装或工装 approvalStatus:是否结案 0：未结案，1：已结案
      if (
        (item.sfaStoreType && (item.sfaStoreType.jz || item.sfaStoreType.gz)) ||
        item.approvalStatus == null ||
        item.approvalStatus == 0
      ) {
        return {};
      } else {
        return { color: '#0057ba', 'text-decoration': 'underline' };
      }
    },
    clearFn() {
      this.storeName = '';
      localStorage.setItem('outvstoreName', '');
    },
    linkapp(val) {
      var poind = this.gcj02BD(val.lat, val.lon);
      let url = window.location.href;
      let that = this;
      let wx = this.wx;
      let qiyeData;
      const instance = axios.create();
      instance.defaults.headers.common['userId'] = localStorage.getItem('loginName');
      instance
        .get(process.env.VUE_APP_BASE_API + 'mobile/wx/ticket', {
          params: {
            url: url,
            agent: 1,
          },
        })
        .then((response) => {
          if (response.status == 200) {
            qiyeData = response.data.data;
            wx.agentConfig({
              corpid: qiyeData.appId, // 必填，企业微信的corpid，必须与当前登录的企业一致
              agentid: qiyeData.agentId, // 必填，企业微信的应用id （e.g. 1000247）
              timestamp: qiyeData.timestamp, // 必填，生成签名的时间戳
              nonceStr: qiyeData.nonceStr, // 必填，生成签名的随机串
              signature: qiyeData.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
              jsApiList: ['launchMiniprogram'], //必填，传入需要使用的接口名称
              success: function (res) {
                wx.invoke(
                  'launchMiniprogram',
                  {
                    appid: 'wx238bbb5f6d958414',
                    path:
                      'pages/relayStation/relayStation?latitude=' +
                      poind.lat +
                      '&longitude=' +
                      poind.lon +
                      '&name=' +
                      val.addressLine,
                  },
                  function (res) {
                    if (res.err_msg == 'launchMiniprogram:ok') {
                    } else {
                    }
                  },
                );
              },
              fail: function (res) {
                if (res.errMsg.indexOf('function not exist') > -1) {
                  alert('版本过低请升级');
                }
              },
            });
          }
        });
    },
    orderFn(val) {
      this.buryingPoint({
        systemModel: '计划外',
        buryingPointType: 1,
        buryingPointValue: val.storeName + '(' + val.storeCode + ')',
        buryingPointName: '去下单',
        buryingPointPosition: this.tabVal == 1 ? '我的' : '销售部',
      });
      getOrderUrlByStoreId({
        storeId: val.storeId,
        from: 'outPlan',
      }).then((res) => {
        if (res.code == 200 && res.data) {
          window.location.href = res.data;
        } else {
          this.Toast({
            message: res.msg,
            duration: 5000,
          });
        }
      });
    },
    linkList(val) {
      this.buryingPoint({
        systemModel: '计划外',
        buryingPointType: 1,
        buryingPointValue: val.storeName + '(' + val.storeCode + ')',
        buryingPointName: '推荐下单',
        buryingPointPosition: this.tabVal == 1 ? '我的' : '销售部',
      });
      this.$router.push({
        path: '/pItem',
        query: {
          id: val.storeId,
          detilId: 'a',
          from: 'outPlan',
          storeCode: val.storeCode,
          storeName: val.storeName,
          showOrderButton: val.showOrderButton,
        },
      });
    },
    linkimg(val) {
      ProductItemImge({ storeId: val.storeId }).then((response) => {
        if (response.code == 200) {
          if (response.data != undefined) {
            window.open(response.data);
          } else {
            this.$toast(response.msg);
          }
        } else {
          this.$toast(res.msg);
        }
      });
    },
    getMonth() {
      // 获取当前日期
      var currentDate = new Date();

      // 获取当前月份
      var currentMonth = currentDate.getMonth();

      // 获取当前年份
      // var currentYear = currentDate.getFullYear();

      var previousMonthDate1 = new Date();
      if (currentDate.getDate() == 1) {
        previousMonthDate1.setMonth(currentMonth - 1);
      } else {
      }
      var previousMonth1 = previousMonthDate1.getMonth();
      var previousYear1 = previousMonthDate1.getFullYear();

      // 计算前三个月的年份和月份
      var previousMonthDate = new Date();
      if (currentDate.getDate() == 1) {
        previousMonthDate.setMonth(currentMonth - 3);
      } else {
        previousMonthDate.setMonth(currentMonth - 2);
      }
      1;
      var previousMonth = previousMonthDate.getMonth();
      var previousYear = previousMonthDate.getFullYear();

      //前三个月
      if (previousYear1 == previousYear) {
        var formattedPreviousMonth1 = previousYear1 + '-' + (previousMonth1 + 1);
        // 格式化年份和月份
        var formattedPreviousMonth = previousYear + '-' + (previousMonth + 1);
        this.timeData =
          formattedPreviousMonth.split('-')[1] + '-' + formattedPreviousMonth1.split('-')[1] + '月';
      } else {
        var formattedPreviousMonth1 = previousYear1 + '年' + (previousMonth1 + 1) + '月';
        // .toString().padStart(2, '0');
        // 格式化年份和月份
        var formattedPreviousMonth = previousYear + '年' + (previousMonth + 1) + '月';
        this.timeData = formattedPreviousMonth + '-' + formattedPreviousMonth1;
      }
    },
    moreTypeShowFn() {
      this.moreTypeShow = true;
      // this.CustomerName=""
      // this.chainsData=[]
      this.getCustomer();
    },
    buryingPoint(val) {
      buryingPoint(val);
    },
    getCustomer() {
      var name = '';
      if (this.tabVal != 1) {
        name = 'org';
      } else {
        name = 'my';
      }
      getCustomerList({ name: this.CustomerName, from: name }).then((request) => {
        this.chainsData = request.data;
        this.chainsData.push({});
        this.chainsData.pop();
      });
    },
    onConfirmChainsList(value) {
      if (value.chainName != undefined) {
        this.chainName = value.chainName;
        this.chainCode = value.chainCode;
      }
      this.showPickerChainsList = false;
      this.moreTypeShow = false;
    },
    getStoreLabels() {
      getStoreLabels().then((res) => {
        this.StoreLabels = res.data || [];
        this.storeLabelsRegular = this.StoreLabels.filter((item) => item.ifJpdStoreLevel != '1');
        this.jpdStoreLevels = this.StoreLabels.filter((item) => item.ifJpdStoreLevel == '1');
      });
    },
    searchType(val) {
      this.storeTypeLists = [];
      if (val != '') {
        let filterArr = this.storeTypeList.filter((item) => {
          return item.dictLabel.toLowerCase().includes(val.toLowerCase());
        });
        this.storeTypeLists = filterArr;
      } else {
        this.storeTypeLists = this.storeTypeList;
      }
    },
    onConfirm(value) {
      this.storeCategoryList = this.result.join(',');
      // this.typeName=value.dictLabel
      this.showPicker = false;
      this.onSearchm();
    },
    moreTypeShowclearableFn() {
      this.chainName = '';
      this.chainCode = '';
      this.chainsData = [];
    },
    onsets() {
      this.result = [];
      this.zyssl = [];
      this.chtczj = [];
      this.noVisit = [];
      this.noOrder = [];
      this.fxNoOrder = [];
      this.storeLabelTypes = [];
      this.jpdStoreLevelTypes = [];
      this.storeCategoryList = this.result.join(',');
      this.chainName = '';
      this.chainCode = '';
      // this.typeName=value.dictLabel
      this.onSearch();
    },
    getStoreTypeList() {
      getStoreTypeListlp({}).then((res) => {
        this.storeTypeLists = res.data;
        this.storeTypeList = res.data;
      });
    },
    buryingPointFn(val) {
      this.buryingPoint({
        systemModel: '计划外',
        buryingPointType: 1,
        buryingPointValue: val.telephone,
        buryingPointName: '点击电话',
        buryingPointPosition: val.storeName + '(' + val.storeCode + ')',
      });
    },
    // 范围
    rangeStoreFn() {
      localStorage.setItem('tabVal', this.tabVal);
      getPosition()
        .then((res) => {
          let { TXisBD } = res;
          this.lat = TXisBD.lat;
          this.lon = TXisBD.lon;
          let name = this.tabVal != 1 ? '销售部' : '我的';
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 3,
            buryingPointValue: name,
            buryingPointName: '计划外',
            buryingPointPosition: '进入地图',
          });
          this.$router.push({
            path: '/rangeStore',
            query: {
              lat: '',
              lon: '',
              tabVal: this.tabVal,
            },
          });
        })
        .catch((error) => {
          this.$dialog.alert({
            message: error,
          });
        });
    },
    //取消搜索
    cancelSearch() {
      this.$refs.item.toggle();
    },
    storeJoinVisit(val) {
      joinInPlan({ storeId: val.storeId }).then((res) => {
        if (res.code == 200) {
          this.onSearch();
        } else {
          this.$dialog.alert({
            title: '系统提示',
            message: res.msg,
          });
        }
      });
    },
    searchFn() {
      this.showPicker = true;
      this.CustomerName = '';
    },
    moreSearch() {
      this.onSearch();
      this.$refs.item.toggle();
    },
    getUserOrgStoreList() {
      this.storeType = localStorage.getItem('storeType');
      this.endShow = false;
      var that = this;
      this.disabled = true;
      this.toastLoading(0, '加载中...', true);
      getUserOrgStoreList({
        lat: that.lat,
        lon: that.lon,
        chainCode: this.chainCode ? this.chainCode : '',
        storeLabelTypes: [
          ...new Set([...(this.storeLabelTypes || []), ...(this.jpdStoreLevelTypes || [])]),
        ].join(','),
        pageNum: this.pageNum,
        storeCategoryList: this.storeCategoryList,
        pageSize: this.pageSize,
        storeName: this.storeName.trim(),
        genDate: this.genDate,
      }).then((res) => {
        this.disabled = false;
        if (this.refreshing) {
          this.refreshing = false;
        }
        this.toastLoading().clear();
        if (res.code == 200) {
          this.loading = false;
          if (this.pageNum == '1') {
            this.list = [];
          }

          this.list = this.list.concat(res.rows);
          if (this.list.length >= res.total) {
            this.finished = true;
          } else {
            this.finished = false;
          }
          this.pageNum = this.pageNum + 1;
          this.list.forEach((item) => {
            if (item.stateString.indexOf('拜访中') != -1) {
              this.endShow = true;
              this.visitEndId = item.visitId;
              return;
            }
          });
          res.rows.forEach((item) => {
            this.showPopoverVNUM.push({ showPopover: false });
            this.showPopoverC.push({ showPopover: false });
            this.showPopoverZ.push({ showPopover: false });
          });
        } else {
          this.list = [];
          this.$toast(res.msg);
        }
      });
    },
    positionFn(val) {
      getPosition(true)
        .then((res) => {
          let { TXisBD } = res;
          this.lat = TXisBD.lat;
          this.lon = TXisBD.lon;
          if (val == 1) {
            if (this.tabVal == 1) {
              this.getUserOutPlaListFun();
            } else {
              this.getUserOrgStoreList();
            }
          } else {
            this.getUserOutPlaListFun();
          }
        })
        .catch((error) => {
          this.$dialog.alert({
            message: error,
          });
        });
    },
    getUserOutPlaListFun() {
      this.storeType = localStorage.getItem('storeType');
      var that = this;
      this.disabled = true;
      let loading3 = this.$toast.loading({
        duration: 0,
        message: '加载中...',
        forbidClick: true,
      });
      this.endShow = false;
      getUserOutPlaList({
        lat: that.lat,
        lon: that.lon,
        chainCode: this.chainCode ? this.chainCode : '',
        storeLabelTypes: [
          ...new Set([...(this.storeLabelTypes || []), ...(this.jpdStoreLevelTypes || [])]),
        ].join(','),
        pageNum: this.pageNum,
        storeCategoryList: this.storeCategoryList,
        pageSize: this.pageSize,
        storeName: this.storeName.trim(),
        genDate: this.genDate,
      }).then((res) => {
        this.disabled = false;
        if (this.refreshing) {
          this.refreshing = false;
        }
        if (res.code == 200) {
          loading3.clear();
          this.loading = false;
          this.list = this.list.concat(res.rows);
          if (this.list.length >= res.total) {
            this.finished = true;
          } else {
            this.finished = false;
          }
          this.pageNum = this.pageNum + 1;
          this.list.forEach((item) => {
            if (item.stateString.indexOf('拜访中') != -1) {
              this.endShow = true;
              this.visitEndId = item.visitId;
              return;
            }
          });
          res.rows.forEach(() => {
            this.showPopoverVNUM.push({ showPopover: false });
            this.showPopoverC.push({ showPopover: false });
            this.showPopoverZ.push({ showPopover: false });
          });
        } else {
          this.list = [];
          this.$toast(res.msg);
        }
      });
    },
    storeVisit(val) {
      if (val.visitSource && val.visitSource == 2) {
        this.$toast('请先取消异常拜访后再进入正常拜访！');
        return;
      }
      localStorage.setItem('tabVal', this.tabVal);
      localStorage.removeItem('visitId');
      checkVisit({ storeId: val.storeId }).then((res) => {
        // if (this.tabVal == 1) {
        //   this.buryingPoint({
        //     systemModel: '计划外',
        //     buryingPointType: 1,
        //     buryingPointValue: val.storeName + '(' + val.storeCode + ')',
        //     buryingPointName: '进店拜访',
        //     buryingPointPosition: '我的',
        //   });
        // } else {
        //   this.buryingPoint({
        //     systemModel: '计划外',
        //     buryingPointType: 1,
        //     buryingPointValue: val.storeName + '(' + val.storeCode + ')',
        //     buryingPointName: '进店拜访',
        //     buryingPointPosition: '销售部',
        //   });
        // }
        localStorage.setItem('getRequestFlage', 'true');
        if (res.code == 200 || val.stateString.indexOf('拜访中') != -1) {
          if (localStorage.getItem('loginType') == 'cs') {
            var lat = '';
            var lon = '';
            if (val.lat == '' || val.lat == null) {
              lat = '31.2517820000';
              lon = '120.5593090000';
            } else {
              lat = val.lat;
              lon = val.lon;
            }
            this.$router.push({
              path: '/suishenbangOutstoreVisit',
              query: {
                storeId: val.storeId,
                rdId: val.rdId,
                lat: lat,
                lon: lon,
                visitId: val.visitId,
                pageType: 'out',
                addressLine: val.addressLine,
                storeCategory: val.storeCategory,
                storeName: val.storeName,
                hisTime: val.hisTime,
                contactName: val.contactName,
                storeCode: val.storeCode,
                tabVal: this.tabVal,
                visitModel: '1',
                latNew: '31.2517820000',
                lonNew: '120.5593090000',
                PointSum: 0,
                marklat: lat,
                marklon: lon,
                from: 'outPlan',
              },
            });
            localStorage.setItem('startTime', new Date());
            localStorage.setItem('ORGName', val.deptName);
            localStorage.setItem('chainNameR', val.storeName);
          } else {
            if (this.flag) {
              this.flag = false;
              this.timer = null;
              let that = this;
              this.timer = setTimeout(() => {
                this.flag = true;
              }, 2000);
              if (val.stateString.indexOf('拜访中') != -1) {
                localStorage.setItem('startTime', new Date());
                localStorage.setItem('ORGName', val.deptName);
                localStorage.setItem('chainNameR', val.storeName);
                that.$router.push({
                  path: '/suishenbangOutstoreVisit',
                  query: {
                    storeId: val.storeId,
                    rdId: val.rdId,
                    lat: val.lat,
                    lon: val.lon,
                    visitId: val.visitId,
                    pageType: 'out',
                    addressLine: val.addressLine,
                    storeCategory: val.storeCategory,
                    storeName: val.storeName,
                    hisTime: val.hisTime,
                    contactName: val.contactName,
                    storeCode: val.storeCode,
                    tabVal: that.tabVal,
                    visitModel: '1',
                    latNew: val.lat,
                    lonNew: val.lon,
                    PointSum: '0',
                    marklat: val.lat,
                    marklon: val.lon,
                    from: 'outPlan',
                  },
                });
              } else {
                getPosition()
                  .then((res) => {
                    let { TXisBD, resData } = res;
                    this.lat = TXisBD.lat;
                    this.lon = TXisBD.lon;
                    localStorage.setItem('lat', this.lat);
                    localStorage.setItem('lon', this.lon);
                    // var location = this.CJ02BD(res.latitude, res.longitude);
                    this.checkStoreAddressByStoreCodeFun(val, TXisBD, resData);
                  })
                  .catch((error) => {
                    this.$dialog.alert({
                      message: error,
                    });
                  });
              }
            }
          }
        } else {
          this.$dialog.alert({
            message: res.msg,
          });
        }
      });
    },
    checkStoreAddressByStoreCodeFun(val, location, res) {
      checkStoreAddressByStoreCode({
        storeCode: val.storeCode,
        lon: location.lon,
        lat: location.lat,
      }).then((response) => {
        // loading1.clear();
        if (val.lat == '' || val.lat == null) {
          this.lat = location.lat;
          this.lon = location.lon;
        }
        // let PointSum = this.twoPointSum(this.lat, this.lon, location.lat, location.lon).toFixed(2);
        let PointSumval = this.twoPointSum(
          location.lat,
          location.lon,
          location.lat,
          location.lon,
        ).toFixed(2);
        // GZ:工装店铺 直接进入拜访
        if (localStorage.getItem('postType') == 'GZ' || /^FSQ/.test(val.storeCode)) {
          localStorage.setItem('startTime', new Date());
          localStorage.setItem('ORGName', val.deptName);
          localStorage.setItem('chainNameR', val.storeName);
          this.toSuishenbangOutstoreVisit(res, val, location, PointSumval);
          return;
        }
        // 门店校验 地址不通过
        if (response.code != 200) {
          // updateAddress : ，1：同城AB+金牌,去修改地址;2:非金牌店铺，非同城店铺偏差过大不允许拜访，可以重置定位;0非金牌店铺，非同城店铺 位置信息不存在 可以继续拜访
          if (response.data.updateAddress == 0) {
            // 非金牌店铺，非同城店铺 位置信息不存在 可以继续拜访
            this.$dialog
              .confirm({
                confirmButtonText: '确定拜访',
                cancelButtonText: '取消拜访',
                title: '系统提示',
                message:
                  '该客户没有经纬度，此次拜访会保存定位点作为客户经纬度，下次拜访时判断是否偏差过大。',
                closeOnClickOverlay: true,
              })
              .then(() => {
                this.toSuishenbangOutstoreVisit(res, val, location, PointSumval);
              });
          } else if (response.data.updateAddress == 1) {
            // 同城AB+金牌,去修改地址
            // addressUpdateTimesOver: true=已经达到最大次数，不让修改; false=没有达到可以修改
            if (!response.data.addressUpdateTimesOver) {
              this.$dialog
                .confirm({
                  title: '系统提示',
                  message: response.msg + '请立即修改后再拜访',
                  messageAlign: 'left',
                  confirmButtonText: '立即修改',
                  cancelButtonText: '取消',
                })
                .then(() => {
                  this.$router.push({
                    path: '/storeDetail',
                    query: {
                      id: val.storeId,
                      type: 'address',
                      storeAddressId: val.storeAddressId,
                    },
                  });
                });
            } else {
              this.$dialog.confirm({
                title: '系统提示',
                message: '已经达到最大修改次数',
                messageAlign: 'left',
                confirmButtonText: '确定',
              });
            }
          } else if (response.data.updateAddress == 2) {
            // 1.非金牌店铺，非同城店铺 位置偏差过大 重置经纬度
            this.resetCoord(res, val, location, PointSumval);
            return;
          }
        } else {
          // 门店编码校验门店地址通过 进入拜访
          this.toSuishenbangOutstoreVisit(res, val, location, PointSumval);
        }
      });
    },
    // 重置经纬度
    resetCoord(res, val, location, PointSumval) {
      this.$dialog
        .confirm({
          confirmButtonText: '初始化定位',
          cancelButtonText: '取消拜访',
          title: '系统提示',
          message: '偏差过大，不允许拜访。可修改本店定位.',
          closeOnClickOverlay: true,
        })
        .then(() => {
          mobileReposition({
            storeId: val.storeId,
            lat: location.lat,
            lon: location.lon,
          }).then((response) => {
            if (response.code == 200) {
              this.$dialog
                .alert({
                  title: '系统提示',
                  message: '本信息定位已更新成功!',
                })
                .then(() => {
                  this.toSuishenbangOutstoreVisit(res, val, location, PointSumval);
                });
              localStorage.setItem('startTime', new Date());
              localStorage.setItem('ORGName', val.deptName);
              localStorage.setItem('chainNameR', val.storeName);
            } else {
              this.$toast(response.msg);
            }
          });
        });
    },
    // 进入拜访 router.push
    toSuishenbangOutstoreVisit(res, val, location, PointSumval) {
      addVisitsPosition({
        storeId: val.storeId,
        visitsId: '',
        lon: res.longitude,
        lat: res.latitude,
        sourceLon: location.lon,
        sourceLat: location.lat,
        positionDesc: '',
        accuracy: res.accuracy,
      });
      this.$router.push({
        path: '/suishenbangOutstoreVisit',
        query: {
          storeId: val.storeId,
          rdId: val.rdId,
          lat: location.lat,
          lon: location.lon,
          visitId: val.visitId,
          pageType: 'out',
          addressLine: val.addressLine,
          storeCategory: val.storeCategory,
          storeName: val.storeName,
          hisTime: val.hisTime,
          contactName: val.contactName,
          storeCode: val.storeCode,
          tabVal: this.tabVal,
          visitModel: '1',
          latNew: location.lat,
          lonNew: location.lon,
          PointSum: PointSumval,
          marklat: res.latitude,
          marklon: res.longitude,
          from: 'outPlan',
        },
      });
    },
    projectOutVisit(val) {
      localStorage.setItem('tabVal', this.tabVal);
      localStorage.removeItem('visitId');
      // checkVisit({storeId:val.storeId}).then(res=>{
      //   if(res.code==200||val.stateString.indexOf("拜访中")!=-1){
      if (localStorage.getItem('loginType') == 'cs') {
        var lat = '';
        var lon = '';
        if (val.lat == '' || val.lat == null) {
          lat = '31.2517820000';
          lon = '120.5593090000';
        } else {
          lat = val.lat;
          lon = val.lon;
        }
        this.$router.push({
          path: '/storeGroup',
          query: {
            storeId: val.storeId,
            rdId: val.rdId,
            lat: lat,
            lon: lon,
            visitId: val.visitId,
            pageType: 'out',
            addressLine: val.addressLine,
            storeCategory: val.storeCategory,
            storeName: val.storeName,
            hisTime: val.hisTime,
            contactName: val.contactName,
            storeCode: val.storeCode,
            tabVal: this.tabVal,
            visitModel: '1',
            latNew: '31.2517820000',
            lonNew: '120.5593090000',
            PointSum: 0,
            marklat: lat,
            marklon: lon,
          },
        });
        localStorage.setItem('startTime', new Date());
        localStorage.setItem('ORGName', val.deptName);
        localStorage.setItem('chainNameR', val.storeName);
      } else {
        if (this.flag) {
          this.flag = false;
          this.timer = null;
          let that = this;
          this.timer = setTimeout(() => {
            this.flag = true;
          }, 2000);
          if (val.stateString.indexOf('拜访中') != -1) {
            localStorage.setItem('startTime', new Date());
            localStorage.setItem('ORGName', val.deptName);
            localStorage.setItem('chainNameR', val.storeName);
            that.$router.push({
              path: '/storeGroup',
              query: {
                storeId: val.storeId,
                rdId: val.rdId,
                lat: val.lat,
                lon: val.lon,
                visitId: val.visitId,
                pageType: 'out',
                addressLine: val.addressLine,
                storeCategory: val.storeCategory,
                storeName: val.storeName,
                hisTime: val.hisTime,
                contactName: val.contactName,
                storeCode: val.storeCode,
                tabVal: that.tabVal,
                visitModel: '1',
                latNew: val.lat,
                lonNew: val.lon,
                PointSum: '0',
                marklat: val.lat,
                marklon: val.lon,
              },
            });
          } else {
            let loading1 = this.$toast.loading({
              duration: 0,
              message: '加载中...',
              forbidClick: true,
            });
            let url = window.location.href;
            let wx = this.wx;
            let qiyeData;
            const instance = axios.create();
            instance.defaults.headers.common['userId'] = localStorage.getItem('loginName');
            instance
              .get(process.env.VUE_APP_BASE_API + 'mobile/wx/ticket', {
                params: {
                  url: url,
                },
              })
              .then((response) => {
                if (response.status == 200) {
                  this.cont = 3;
                  var flat = true;
                  var times = setInterval(() => {
                    this.cont--;
                    if (this.cont == '0') {
                      if (flat) {
                        loading1.clear();
                        clearInterval(times);
                        that.$dialog
                          .alert({
                            message: '定位失败，请开启企微定位权限',
                          })
                          .then(() => {});
                      } else {
                        clearInterval(times);
                      }
                    }
                  }, 1000);
                  qiyeData = response.data.data;
                  wx.config({
                    beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
                    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                    appId: qiyeData.appId, // 必填，企业微信的corpID
                    timestamp: qiyeData.timestamp, // 必填，生成签名的时间戳
                    nonceStr: qiyeData.nonceStr, // 必填，生成签名的随机串
                    signature: qiyeData.signature, // 必填，签名，见 附录-JS-SDK使用权限签名算法
                    jsApiList: ['ready', 'getLocation'], // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来
                  });
                  wx.ready(function () {
                    wx.getLocation({
                      type: 'gcj02',
                      success: function (res) {
                        flat = false;
                        loading1.clear();
                        var location = that.CJ02BD(res.latitude, res.longitude);
                        if (val.lat == '' || val.lat == null) {
                          that.lat = location.lat;
                          that.lon = location.lon;
                        }
                        let PointSum = that
                          .twoPointSum(that.lat, that.lon, location.lat, location.lon)
                          .toFixed(2);
                        if (val.lat == '' || val.lat == null) {
                          if (localStorage.getItem('postType') != 'GZ') {
                            that.$dialog
                              .confirm({
                                confirmButtonText: '确定拜访',
                                cancelButtonText: '取消拜访',
                                title: '系统提示',
                                message:
                                  '该信息没有经纬度，此次拜访会保存定位点作为信息经纬度，下次拜访时判断是否偏差过大。',
                                closeOnClickOverlay: true,
                              })
                              .then(() => {
                                that.$router.push({
                                  path: '/storeGroup',
                                  query: {
                                    storeId: val.storeId,
                                    rdId: val.rdId,
                                    lat: that.lat,
                                    lon: that.lon,
                                    visitId: val.visitId,
                                    pageType: 'out',
                                    addressLine: val.addressLine,
                                    storeCategory: val.storeCategory,
                                    storeName: val.storeName,
                                    contactName: val.contactName,
                                    hisTime: val.hisTime,
                                    storeCode: val.storeCode,
                                    tabVal: that.tabVal,
                                    visitModel: '1',
                                    latNew: location.lat,
                                    lonNew: location.lon,
                                    PointSum: PointSum,
                                    marklat: res.latitude,
                                    marklon: res.longitude,
                                  },
                                });
                              });
                          } else {
                            that.$router.push({
                              path: '/storeGroup',
                              query: {
                                storeId: val.storeId,
                                rdId: val.rdId,
                                lat: that.lat,
                                lon: that.lon,
                                visitId: val.visitId,
                                pageType: 'out',
                                addressLine: val.addressLine,
                                storeCategory: val.storeCategory,
                                storeName: val.storeName,
                                contactName: val.contactName,
                                hisTime: val.hisTime,
                                storeCode: val.storeCode,
                                tabVal: that.tabVal,
                                visitModel: '1',
                                latNew: location.lat,
                                lonNew: location.lon,
                                PointSum: PointSum,
                                marklat: res.latitude,
                                marklon: res.longitude,
                              },
                            });
                          }
                        } else {
                          that.$router.push({
                            path: '/storeGroup',
                            query: {
                              storeId: val.storeId,
                              rdId: val.rdId,
                              lat: that.lat,
                              lon: that.lon,
                              visitId: val.visitId,
                              pageType: 'out',
                              addressLine: val.addressLine,
                              storeCategory: val.storeCategory,
                              storeName: val.storeName,
                              contactName: val.contactName,
                              hisTime: val.hisTime,
                              storeCode: val.storeCode,
                              tabVal: that.tabVal,
                              visitModel: '1',
                              latNew: location.lat,
                              lonNew: location.lon,
                              PointSum: PointSum,
                              marklat: res.latitude,
                              marklon: res.longitude,
                            },
                          });
                        }
                        localStorage.setItem('startTime', new Date());
                        localStorage.setItem('ORGName', val.deptName);
                        localStorage.setItem('chainNameR', val.storeName);
                        addVisitsPosition({
                          storeId: val.storeId,
                          visitsId: '',
                          lon: res.longitude,
                          lat: res.latitude,
                          sourceLon: location.lon,
                          sourceLat: location.lat,
                          positionDesc: '',
                          accuracy: res.accuracy,
                        });
                      },
                      fail: function () {
                        loading1.clear();
                        that.$dialog.alert({
                          message: 'GPS未开启',
                        });
                      },
                    });
                  });
                  wx.error(function (res) {
                    loading1.clear();
                    that.$dialog
                      .alert({
                        message: '定位失败，请开启企微定位权限',
                      })
                      .then(() => {});
                  });
                }
              });
          }
        }
      }
      // }
      // })
    },
    abnormalVisit(val) {
      localStorage.removeItem('visitId');
      localStorage.setItem('tabVal', this.tabVal);
      checkVisit({ storeId: val.storeId }).then((res) => {
        this.buryingPoint({
          systemModel: '计划外',
          buryingPointType: 1,
          buryingPointValue: val.storeName + '(' + val.storeCode + ')',
          buryingPointName: '异常拜访',
          buryingPointPosition: this.tabVal == 1 ? '我的' : '销售部',
        });
        if (res.code == 200 || val.stateString.indexOf('拜访中') != -1) {
          if (localStorage.getItem('loginType') == 'cs') {
            var lat = '';
            var lon = '';
            if (val.lat == '' || val.lat == null) {
              lat = '31.2517820000';
              lon = '120.5593090000';
            } else {
              lat = val.lat;
              lon = val.lon;
            }
            this.$router.push({
              path: '/outabnormalVisit',
              query: {
                storeId: val.storeId,
                rdId: val.rdId,
                lat: lat,
                lon: lon,
                visitId: val.visitId,
                pageType: 'out',
                addressLine: val.addressLine,
                storeCategory: val.storeCategory,
                storeName: val.storeName,
                hisTime: val.hisTime,
                contactName: val.contactName,
                storeCode: val.storeCode,
                tabVal: this.tabVal,
                visitModel: '3',
                latNew: '31.2517820000',
                lonNew: '120.5593090000',
                PointSum: 0,
                marklat: lat,
                marklon: lon,
              },
            });
            localStorage.setItem('startTime', new Date());
            localStorage.setItem('ORGName', val.deptName);
            localStorage.setItem('chainNameR', val.storeName);
          } else {
            if (this.flag) {
              this.flag = false;
              this.timer = null;
              this.timer = setTimeout(() => {
                this.flag = true;
              }, 2000);

              let loading1 = this.$toast.loading({
                duration: 0,
                message: '加载中...',
                forbidClick: true,
              });
              let url = window.location.href;
              let that = this;
              let wx = this.wx;
              let qiyeData;
              const instance = axios.create();
              instance.defaults.headers.common['userId'] = localStorage.getItem('loginName');
              instance
                .get(process.env.VUE_APP_BASE_API + 'mobile/wx/ticket', {
                  params: {
                    url: url,
                  },
                })
                .then((response) => {
                  if (response.status == 200) {
                    this.cont = 3;
                    var flat = true;
                    var times = setInterval(() => {
                      this.cont--;
                      if (this.cont == '0') {
                        if (flat) {
                          loading1.clear();
                          clearInterval(times);
                          that.$dialog
                            .alert({
                              message: '定位失败，请开启企微定位权限',
                            })
                            .then(() => {
                              // this.$router.go(-1);
                            });
                        } else {
                          clearInterval(times);
                        }
                      }
                    }, 1000);
                    qiyeData = response.data.data;
                    wx.config({
                      beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
                      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                      appId: qiyeData.appId, // 必填，企业微信的corpID
                      timestamp: qiyeData.timestamp, // 必填，生成签名的时间戳
                      nonceStr: qiyeData.nonceStr, // 必填，生成签名的随机串
                      signature: qiyeData.signature, // 必填，签名，见 附录-JS-SDK使用权限签名算法
                      jsApiList: ['ready', 'getLocation'], // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来
                    });
                    wx.ready(function () {
                      wx.getLocation({
                        type: 'gcj02',
                        success: function (res) {
                          flat = false;
                          loading1.clear();
                          var location = that.CJ02BD(res.latitude, res.longitude);
                          if (val.lat == '' || val.lat == null) {
                            that.lat = location.lat;
                            that.lon = location.lon;
                          }
                          let PointSum = that
                            .twoPointSum(that.lat, that.lon, location.lat, location.lon)
                            .toFixed(2);
                          // 工装和仿石漆不用校验定位
                          if (
                            localStorage.getItem('postType') == 'GZ' ||
                            /^FSQ/.test(val.storeCode)
                          ) {
                            that.$router.push({
                              path: '/outabnormalVisit',
                              query: {
                                storeId: val.storeId,
                                rdId: val.rdId,
                                lat: that.lat,
                                lon: that.lon,
                                visitId: val.visitId,
                                pageType: 'out',
                                visitModel: '3',
                                storeCode: val.storeCode,
                                tabVal: that.tabVal,
                                latNew: location.lat,
                                lonNew: location.lon,
                                PointSum: PointSum,
                                marklat: res.latitude,
                                marklon: res.longitude,
                              },
                            });
                            localStorage.setItem('startTime', new Date());
                            localStorage.setItem('ORGName', val.deptName);
                            localStorage.setItem('chainNameR', val.storeName);
                          } else {
                            if (PointSum > 500) {
                              that.$dialog
                                .confirm({
                                  confirmButtonText: '确定',
                                  cancelButtonText: '取消',
                                  title: '系统提示',
                                  message: '定位距离偏差大',
                                  closeOnClickOverlay: true,
                                })
                                .then(() => {
                                  that.$router.push({
                                    path: '/outabnormalVisit',
                                    query: {
                                      storeId: val.storeId,
                                      rdId: val.rdId,
                                      lat: that.lat,
                                      lon: that.lon,
                                      visitId: val.visitId,
                                      pageType: 'out',
                                      visitModel: '5',
                                      storeCode: val.storeCode,
                                      tabVal: that.tabVal,
                                      latNew: location.lat,
                                      lonNew: location.lon,
                                      PointSum: PointSum,
                                      marklat: res.latitude,
                                      marklon: res.longitude,
                                    },
                                  });
                                  localStorage.setItem('startTime', new Date());
                                  localStorage.setItem('ORGName', val.deptName);
                                  localStorage.setItem('chainNameR', val.storeName);
                                })
                                .catch(() => {
                                  // that.abnormalVisit(val)
                                });
                            } else {
                              that.$router.push({
                                path: '/outabnormalVisit',
                                query: {
                                  storeId: val.storeId,
                                  rdId: val.rdId,
                                  lat: that.lat,
                                  lon: that.lon,
                                  visitId: val.visitId,
                                  pageType: 'out',
                                  visitModel: '3',
                                  storeCode: val.storeCode,
                                  tabVal: that.tabVal,
                                  latNew: location.lat,
                                  lonNew: location.lon,
                                  PointSum: PointSum,
                                  marklat: res.latitude,
                                  marklon: res.longitude,
                                },
                              });
                              localStorage.setItem('startTime', new Date());
                              localStorage.setItem('ORGName', val.deptName);
                              localStorage.setItem('chainNameR', val.storeName);
                            }
                          }
                          addVisitsPosition({
                            storeId: val.storeId,
                            visitsId: '',
                            lon: res.longitude,
                            lat: res.latitude,
                            sourceLon: location.lon,
                            sourceLat: location.lat,
                            positionDesc: '',
                            accuracy: res.accuracy,
                          });
                        },
                        fail: function () {
                          loading1.clear();
                          that.$dialog
                            .alert({
                              message: 'GPS未开启',
                            })
                            .then(() => {
                              // that.abnormalVisit(val)
                            });
                        },
                      });
                    });
                    wx.error(function (res) {
                      loading1.clear();
                      that.$dialog
                        .alert({
                          message: '定位失败，请开启企微定位权限',
                        })
                        .then(() => {});
                    });
                  } else {
                    loading1.clear();
                    this.$toast.fail(dataList.msg);
                  }
                });
              localStorage.setItem('startTime', new Date());
              localStorage.setItem('ORGName', val.deptName);
              localStorage.setItem('chainNameR', val.storeName);
            }
          }
        } else {
          this.$dialog.alert({
            title: '系统提示',
            message: res.msg,
          });
        }
      });
    },
    visitFn(val) {
      this.buryingPoint({
        systemModel: '计划外',
        buryingPointType: 1,
        buryingPointValue: val.storeName + '(' + val.storeCode + ')',
        buryingPointName: '客户信息',
        buryingPointPosition: this.tabVal == 1 ? '我的' : '销售部',
      });
      if (val.sfaStoreType.type == 'qzd') {
        // 竞品店/潜在店
        this.$router.push({
          path: '/competingStoresDetail',
          query: { id: val.storeId },
        });
      } else if (/^FSQ/.test(val.storeCode)) {
        // FSQ 仿石漆服务商
        this.$router.push({
          path: '/FSQStoreDetail',
          query: { id: val.storeId },
        });
        return;
      } else if (val.designerStore) {
        // designerStore 是否为设计师招募门店，true-是，false-否
        this.$router.push({
          path: '/addDesignerDetail',
          query: { id: val.storeId },
        });
        return;
      } else {
        this.$router.push({
          path: '/storeDetail',
          query: { id: val.storeId, detilId: 'a' },
        });
      }
    },
    // 大客户签约
    signAdd(val) {
      this.$router.push({
        path: '/sign',
        query: { id: val.storeId, detilId: 'a' },
      });
    },
    Visit(val) {
      if ((val.jinpaiStore || val.fenxiaoStore || val.kekongStore) && val.visitSource == 1) {
        // 金牌店+同城分销店+可控店 -完美门店
        this.$router.push({
          path: '/perfectStore',
          query: {
            visitId: val.visitId,
            storeId: val.storeId,
            storeCode: val.storeCode,
          },
        });
      } else {
        this.$router.push({
          path: '/historicalDetails',
          query: {
            visitId: val.visitId,
            storeId: val.storeId,
            storeCode: val.storeCode,
          },
        });
      }
    },
    onClickLeft() {
      this.$router.go(-1);
    },
    onSearch() {
      window.scrollTo(0, 0);
      this.pageNum = 1;
      this.list = [];
      this.finished = true;
      var postType = localStorage.getItem('postType');
      this.customerVisits = localStorage.getItem('customerVisits');
      if (postType == 'GZ') {
        this.typeShow = false;
      } else {
        this.typeShow = true;
      }
      this.onLoad();
    },
    onSearchm() {
      var postType = localStorage.getItem('postType');

      if (postType == 'GZ') {
        this.typeShow = false;
      } else {
        this.typeShow = true;
      }
      var StoreLabelsArr = [];
      for (var k = 0; k < this.storeLabelTypes.length; k++) {
        for (var k1 = 0; k1 < this.storeLabelsRegular.length; k1++) {
          if (this.storeLabelsRegular[k1].dictValue == this.storeLabelTypes[k]) {
            StoreLabelsArr.push(this.storeLabelsRegular[k1].dictLabel);
          }
        }
      }
      var jpdStoreLabelsArr = [];
      for (var k = 0; k < this.jpdStoreLevelTypes.length; k++) {
        for (var k1 = 0; k1 < this.jpdStoreLevels.length; k1++) {
          if (this.jpdStoreLevels[k1].dictValue == this.jpdStoreLevelTypes[k]) {
            jpdStoreLabelsArr.push(this.jpdStoreLevels[k1].dictLabel);
          }
        }
      }
      var storeCategoryList = [];
      for (var q = 0; q < this.result.length; q++) {
        for (var q1 = 0; q1 < this.storeTypeLists.length; q1++) {
          if (this.storeTypeLists[q1].dictValue == this.result[q]) {
            storeCategoryList.push(this.storeTypeLists[q1].dictLabel);
          }
        }
      }
      if (this.tabVal == 1) {
        if (StoreLabelsArr.length > 0) {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: StoreLabelsArr.join(','),
            buryingPointName: '标签',
            buryingPointPosition: '我的筛选',
          });
        }
        if (jpdStoreLabelsArr.length > 0) {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: jpdStoreLabelsArr.join(','),
            buryingPointName: '金牌店等级',
            buryingPointPosition: '我的筛选',
          });
        }
        if (this.storeCategoryList.length > 0) {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: storeCategoryList.join(','),
            buryingPointName: '类型',
            buryingPointPosition: '我的筛选',
          });
        }
        if (this.chainName != '' && this.chainName != 'null') {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: this.chainName,
            buryingPointName: '经销商筛选',
            buryingPointPosition: '我的筛选',
          });
        }
        // if (this.storeName != '') {
        //   this.buryingPoint({
        //     systemModel: '计划外',
        //     buryingPointType: 1,
        //     buryingPointValue: this.storeName,
        //     buryingPointName: '搜索名称/编号/地址',
        //     buryingPointPosition: '我的筛选',
        //   });
        // }
      } else {
        if (StoreLabelsArr.length > 0) {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: StoreLabelsArr.join(','),
            buryingPointName: '标签',
            buryingPointPosition: '销售部的门店筛选',
          });
        }
        if (jpdStoreLabelsArr.length > 0) {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: jpdStoreLabelsArr.join(','),
            buryingPointName: '金牌店等级',
            buryingPointPosition: '销售部的门店筛选',
          });
        }
        if (this.storeCategoryList != '') {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: storeCategoryList.join(','),
            buryingPointName: '类型',
            buryingPointPosition: '销售部的门店筛选',
          });
        }
        if (this.chainName != '' && this.chainName != 'null') {
          this.buryingPoint({
            systemModel: '计划外',
            buryingPointType: 1,
            buryingPointValue: this.chainName,
            buryingPointName: '经销商筛选',
            buryingPointPosition: '销售部的门店筛选',
          });
        }
        // if (this.storeName != '') {
        //   this.buryingPoint({
        //     systemModel: '计划外',
        //     buryingPointType: 1,
        //     buryingPointValue: this.storeName,
        //     buryingPointName: '搜索名称/编号/地址',
        //     buryingPointPosition: '销售部的门店筛选',
        //   });
        // }
      }
      localStorage.setItem('outvstoreName', this.storeName);
      localStorage.setItem('outvchainName', this.chainName);
      localStorage.setItem('outvstoreLabelTypes', this.storeLabelTypes);
      localStorage.setItem('outvjpdStoreLevelTypes', this.jpdStoreLevelTypes);
      localStorage.setItem('outvstoreCategoryList', this.result);
      localStorage.setItem('outvchainCode', this.chainCode == 'null' ? '' : this.chainCode);
      this.onSearch();
    },
    tabChange(name) {
      window.scrollTo(0, 0);
      this.finished = true;

      this.pageNum = 1;
      this.list = [];
      this.tabVal = name;
      localStorage.setItem('tabVal', name);
      this.onLoad();
    },
    // 滚动条与底部距离小于 offset 时触发 初始化会触发
    onLoad() {
      // 授权
      getTicketFun()
        .then(() => {
          var postType = localStorage.getItem('postType');
          if (postType == 'GZ') {
            this.typeShow = false;
          } else {
            this.typeShow = true;
          }
          if (this.lon == '' && this.tabVal != 1) {
            this.positionFn(1);
          } else {
            if (this.tabVal == 1) {
              this.positionFn();
              // this.getUserOutPlaListFun();
            } else {
              this.getUserOrgStoreList();
            }
          }
        })
        .catch(() => {
          this.finished = true;
        });
    },
    // 跳转好帮手门店详情
    goOtherSystem(item) {
      // 家装或工装 approvalStatus:是否结案 0：未结案，1：已结案
      if (
        (item.sfaStoreType && (item.sfaStoreType.jz || item.sfaStoreType.gz)) ||
        item.approvalStatus == null ||
        item.approvalStatus == 0
      ) {
        return false;
      }
      if (item.storeCode) {
        window.location.href =
          process.env.VUE_APP_SSB_LINK + '/order/storeDetail/index?shopCode=' + item.storeCode;
      } else {
        this.$dialog.alert({
          message: '缺少门店code',
        });
      }
    },
    // 完美门店
    openPerfectStore(val) {
      this.$router.push({
        path: '/perfectStore',
        query: {
          visitId: val.visitId,
          storeId: val.storeId,
          storeCode: val.storeCode,
        },
      });
    },
  },
};
</script>
<style lang="scss">
.van-dialog__confirm,
.van-dialog__confirm:active {
  color: #0057ba;
}
.searchDiv {
  .van-search {
    background: #fff;
  }
  .van-search__action {
    font-size: 14px;
    color: #0057ba;
    font-weight: bold;
    background: #f1f1f1;
    border-bottom-right-radius: 60px;
    border-top-right-radius: 60px;
    border: 1px solid #ccc;
    padding: 0 20px;
  }
  .van-search--show-action {
    padding-right: 12px;
  }
  .van-search__content {
    border: 1px solid #ccc;
    border-bottom-left-radius: 60px;
    border-top-left-radius: 60px;
    background: #f1f1f1;
    border-right: 0;
  }
}
.myTab {
  .van-tabs__nav--card {
    margin: 0 !important;
    border-left: 0;
    border-right: 0;
  }
  .van-tabs__wrap,
  .van-tabs__nav--card {
    height: 39px;
  }
  .van-tab {
    line-height: 40px;
  }
}
.myList {
  .van-cell {
    padding: 0;
    &:after {
      border-bottom: none;
    }
  }
}
</style>
<style lang="scss" scoped>
.bgcolor {
  background-color: #f5f5f5;
}
.container {
  padding-bottom: 50px;
}
.card {
  padding: 10px 16px;
  box-sizing: border-box;
}
.card .title {
  font-size: 15px;
  font-weight: bold;
  color: #333;
  line-height: 28px;
  padding-right: 55px;
  .JPABC {
    width: 20px;
    position: relative;
    top: 4px;
    margin-right: 3px;
  }
  .statusIcon {
    padding: 3px;
    font-size: 12px;
    margin: 0 3px;
    color: #fff;
    display: inline-block;
    height: 20px;
    line-height: 16px;
    vertical-align: -1px;
  }
  .submit {
    background: #ffba13;
  }
  .noSubmit {
    background: #f11818;
  }
}
.card .info {
  font-size: 14px;
  color: #909090;
  line-height: 26px;
}
.btnbox {
  padding-top: 14px;
  border-top: 1px solid #eee;
  margin: 0 10px;
}
.navBarTOP {
  position: fixed;
  width: 100%;
  z-index: 2;
  top: 0;
}
.cellcontent {
  user-select: text;
  -webkit-user-select: text;
}
.cellcontent .centerBtn {
  margin: 0 auto 10px;
  display: block;
  width: 92%;
  color: #0057ba;
  border-radius: 5px;
  padding: 0 2px;
}
.cellcontent .centerBtn1 {
  background-color: #0057ba;
  color: #fff;
  border-color: #0057ba;
}
.cellcontent .centerBtn2 {
  margin: 0 auto 10px;
  display: block;
  width: 92%;
  color: #0057ba;
  border-radius: 5px;
  padding: 0;
}
.statstext {
  background-color: #0057ba;
  position: absolute;
  right: 0;
  top: 11px;
  padding: 2px 6px 2px 12px;
  border-bottom-left-radius: 60px;
  border-top-left-radius: 60px;
  color: #fff;
}
.cellcontent .van-cell {
  padding: 10px 0;
}
.statstext .van-icon__image {
  height: 0.7em;
}
.statstextIcon {
  width: 121px;
  position: absolute;
  left: -62px;
  top: 31px;
  border-radius: 15px 0 0 15px;
}
.tipsTitle {
  padding: 5px 0;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
}
.deviceOutside {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  .content {
    flex: 1;
    overflow-y: auto;
  }
  .tabBar {
    height: 50px;
  }
  .JPVisitNum {
    position: relative;
    top: -26px;
    font-size: 10px;
  }
}
</style>
<style lang="scss">
.van-tabs__nav--card .van-tab.van-tab--active {
  background-color: #0057ba !important;
}
.visitSearch {
  width: 68px;
  color: #0057ba;
  font-size: 14px;
}
.visitSearch .van-dropdown-menu__bar {
  box-shadow: 0 0 0 #fff;
  height: 52px;
}
.visitSearch .van-dropdown-menu__item {
  justify-content: normal;
}
.visitSearch .van-dropdown-menu__title {
  border-left: 1px solid #ccc;
}
.visitSearch .van-cell {
  border: 1px solid #ccc;
  border-radius: 5px;
  padding: 6px;
}
.positionContent {
  position: fixed;
  color: #666;
  display: inline-block;
  box-shadow: 0px 2px 7px -5px #000;
  border-radius: 100px;
  overflow: hidden;
  right: 14px;
  cursor: pointer;
  bottom: 96px;
  background-color: white;
}
.positionContent .img {
  border-radius: 100px;
  float: left;
}
.positionContent .img .van-icon__image {
  border-radius: 100px;
}
.zDialog .van-dialog__header {
  padding: 10px;
  border-bottom: 1px solid #f5f5f5;
}
.zDialog .infoText {
  margin: 10px;
  font-size: 14px;
  color: #909090;
  width: 98%;
}
.visitStoreIco {
  float: left;
  float: left;
  width: 26px;
  text-align: center;
  background-color: #ffba13;
  color: #fff;
  border-radius: 100%;
  margin-left: 14px;
  line-height: 26px;
  height: 26px;
}
.searchcheck {
  padding: 0 10px 10px;
}
.searchcheck .van-checkbox {
  /*width: 44%;*/
  padding-bottom: 10px;
}
.searchcheck .checkbox {
  font-size: 14px;
  display: inline-block;
  width: 50%;
  line-height: 28px;
}
.searchcheck .checkbox .van-checkbox {
  margin-bottom: 2px;
}
.searchcheck .checkbox1 {
  font-size: 14px;
  float: left;
  line-height: 28px;
  width: 50%;
}
.searchcheck .checkbox1 .child {
  width: 100%;
}
.searchcheck {
  /* height: 93vh;
  overflow-y: auto; */
}
.searchchecktitle {
  width: 100%;
  margin: 20px 0;
  font-size: 16px;
  border-left: 3px solid #0057ba;
  line-height: 18px;
}
.searchchecktitle1 {
  width: 100%;
  margin: 20px 0;
  font-size: 16px;
  line-height: 18px;
}
.textsize {
  font-size: 14px;
  /* overflow: hidden; */
  display: flex;
  flex-direction: column;
  .searchcheck {
    flex: 1;
    overflow-y: auto;
    margin-bottom: 50px;
  }
}
.deviceOutside {
  .TCFXListItem {
    display: inline-block;
    border: 1px solid #ccc;
    padding: 3px 5px;
    margin: 0 5px;
    border-radius: 6px;
  }
}
</style>
