|  | @@ -1,35 +1,36 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="page_box">
 | 
	
		
			
				|  |  | -    <div class="panel">
 | 
	
		
			
				|  |  | -      <NavBar :go="{ type: 'push', path: '/resumption' }" />
 | 
	
		
			
				|  |  | -      <van-panel :title="resumptionData.taskName">
 | 
	
		
			
				|  |  | -        <div class="tts">
 | 
	
		
			
				|  |  | -          <van-row>
 | 
	
		
			
				|  |  | -            <van-col span="12">
 | 
	
		
			
				|  |  | -              <div class="total_panel">
 | 
	
		
			
				|  |  | -                <div class="title">履职项</div>
 | 
	
		
			
				|  |  | -                <div class="content">
 | 
	
		
			
				|  |  | -                  <span class="con_num ok">已查 {{ resumptionData.yesPointNums }}</span>
 | 
	
		
			
				|  |  | -                  <span class="con_num no">未查 {{ resumptionData.noPointNums }}</span>
 | 
	
		
			
				|  |  | +    <van-form ref="resumption_form">
 | 
	
		
			
				|  |  | +      <div class="panel">
 | 
	
		
			
				|  |  | +        <NavBar :go="{ type: 'push', path: '/resumption' }"/>
 | 
	
		
			
				|  |  | +        <van-panel :title="resumptionData.taskName">
 | 
	
		
			
				|  |  | +          <div class="tts">
 | 
	
		
			
				|  |  | +            <van-row>
 | 
	
		
			
				|  |  | +              <van-col span="12">
 | 
	
		
			
				|  |  | +                <div class="total_panel">
 | 
	
		
			
				|  |  | +                  <div class="title">履职项</div>
 | 
	
		
			
				|  |  | +                  <div class="content">
 | 
	
		
			
				|  |  | +                    <span class="con_num ok">已查 {{ resumptionData.yesPointNums }}</span>
 | 
	
		
			
				|  |  | +                    <span class="con_num no">未查 {{ resumptionData.noPointNums }}</span>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | -            </van-col>
 | 
	
		
			
				|  |  | -            <van-col span="12">
 | 
	
		
			
				|  |  | -              <div class="total_panel" @click="showDetail()">
 | 
	
		
			
				|  |  | -                <div class="title">NFC</div>
 | 
	
		
			
				|  |  | -                <div class="content">
 | 
	
		
			
				|  |  | -                  <span class="con_num ok">已扫 {{ resumptionData.yesNFCNums }}</span>
 | 
	
		
			
				|  |  | -                  <span class="con_num no">未扫 {{ resumptionData.noNFCNums }}</span>
 | 
	
		
			
				|  |  | +              </van-col>
 | 
	
		
			
				|  |  | +              <van-col span="12">
 | 
	
		
			
				|  |  | +                <div class="total_panel" @click="showDetail()">
 | 
	
		
			
				|  |  | +                  <div class="title">NFC</div>
 | 
	
		
			
				|  |  | +                  <div class="content">
 | 
	
		
			
				|  |  | +                    <span class="con_num ok">已扫 {{ resumptionData.yesNFCNums }}</span>
 | 
	
		
			
				|  |  | +                    <span class="con_num no">未扫 {{ resumptionData.noNFCNums }}</span>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | -            </van-col>
 | 
	
		
			
				|  |  | -          </van-row>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -      </van-panel>
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -    <div class="progress">
 | 
	
		
			
				|  |  | -      <van-progress
 | 
	
		
			
				|  |  | -        :percentage="
 | 
	
		
			
				|  |  | +              </van-col>
 | 
	
		
			
				|  |  | +            </van-row>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </van-panel>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      <div class="progress">
 | 
	
		
			
				|  |  | +        <van-progress
 | 
	
		
			
				|  |  | +          :percentage="
 | 
	
		
			
				|  |  |            (
 | 
	
		
			
				|  |  |              ((resumptionData.yesPointNums + resumptionData.yesNFCNums) /
 | 
	
		
			
				|  |  |                (resumptionData.yesPointNums +
 | 
	
	
		
			
				|  | @@ -39,668 +40,693 @@
 | 
	
		
			
				|  |  |              100
 | 
	
		
			
				|  |  |            ).toFixed(2)
 | 
	
		
			
				|  |  |          "
 | 
	
		
			
				|  |  | -      />
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -    <!--   检查区域   -->
 | 
	
		
			
				|  |  | -    <div class="card">
 | 
	
		
			
				|  |  | -      <van-panel title="巡检区域">
 | 
	
		
			
				|  |  | -        <div style="padding: 5px">
 | 
	
		
			
				|  |  | -          <van-row>
 | 
	
		
			
				|  |  | -            <van-col span="8" v-for="(va, i) in areas" :key="va.areaId">
 | 
	
		
			
				|  |  | -              <div :class="{ active: i === 0 }" class="check-area" @click="clickArea(va, i)">
 | 
	
		
			
				|  |  | -                <div class="ysj">
 | 
	
		
			
				|  |  | -                  <van-icon name="checked" :color="areaColor.complete" v-if="va.areaStatus === '1'" />
 | 
	
		
			
				|  |  | -                  <van-icon name="info" :color="areaColor.loading" v-if="va.areaStatus === '2'" />
 | 
	
		
			
				|  |  | -                  <van-icon name="info" :color="areaColor.noOpen" v-if="va.areaStatus === '0'" />
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      <!--   检查区域   -->
 | 
	
		
			
				|  |  | +      <div class="card">
 | 
	
		
			
				|  |  | +        <van-panel title="巡检区域">
 | 
	
		
			
				|  |  | +          <div style="padding: 5px">
 | 
	
		
			
				|  |  | +            <van-row>
 | 
	
		
			
				|  |  | +              <van-col span="8" v-for="(va, i) in areas" :key="va.areaId">
 | 
	
		
			
				|  |  | +                <div :class="{ active: i === 0 }" class="check-area" @click="clickArea(va, i)">
 | 
	
		
			
				|  |  | +                  <div class="ysj">
 | 
	
		
			
				|  |  | +                    <van-icon name="checked" :color="areaColor.complete" v-if="va.areaStatus === '1'"/>
 | 
	
		
			
				|  |  | +                    <van-icon name="info" :color="areaColor.loading" v-if="va.areaStatus === '2'"/>
 | 
	
		
			
				|  |  | +                    <van-icon name="info" :color="areaColor.noOpen" v-if="va.areaStatus === '0'"/>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                  {{ va.areaName }}
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  | -                {{ va.areaName }}
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | -            </van-col>
 | 
	
		
			
				|  |  | -          </van-row>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -      </van-panel>
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -    <van-action-sheet v-model="total_show">
 | 
	
		
			
				|  |  | -      <div class="content">
 | 
	
		
			
				|  |  | -        <van-tabs>
 | 
	
		
			
				|  |  | -          <van-tab title="已扫描" name="a">
 | 
	
		
			
				|  |  | -            <van-list finished-text="没有更多了" @load="onLoad">
 | 
	
		
			
				|  |  | -              <van-cell v-for="item in yesList" :key="item.nfcCode" :title="item.nfcName"> </van-cell>
 | 
	
		
			
				|  |  | -            </van-list>
 | 
	
		
			
				|  |  | -          </van-tab>
 | 
	
		
			
				|  |  | -          <van-tab title="未扫描" name="b">
 | 
	
		
			
				|  |  | -            <van-list finished-text="没有更多了" @load="onLoad">
 | 
	
		
			
				|  |  | -              <van-cell v-for="item in noList" :key="item.nfcCode" :title="item.nfcName">
 | 
	
		
			
				|  |  | -                <!-- <img :src="require('../../../assets/svg/NFC.svg')" class="nfc-icon"/>-->
 | 
	
		
			
				|  |  | -              </van-cell>
 | 
	
		
			
				|  |  | -            </van-list>
 | 
	
		
			
				|  |  | -          </van-tab>
 | 
	
		
			
				|  |  | -        </van-tabs>
 | 
	
		
			
				|  |  | +              </van-col>
 | 
	
		
			
				|  |  | +            </van-row>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </van-panel>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  | -    </van-action-sheet>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    <div class="card">
 | 
	
		
			
				|  |  | -      <van-row>
 | 
	
		
			
				|  |  | -        <van-col span="16">
 | 
	
		
			
				|  |  | -          <van-cell>
 | 
	
		
			
				|  |  | -            <template #title>
 | 
	
		
			
				|  |  | -              <span>NFC</span>
 | 
	
		
			
				|  |  | -            </template>
 | 
	
		
			
				|  |  | -            <template #extra>
 | 
	
		
			
				|  |  | -              <span style="display: inline-block; color: #26850c">{{ yesNFCnums }}</span>
 | 
	
		
			
				|  |  | -              <span style="display: inline-block; color: #0e0e0e">/</span>
 | 
	
		
			
				|  |  | -              <span style="display: inline-block; color: #0e0e0e">{{ NFCnums }}</span>
 | 
	
		
			
				|  |  | -              <img :src="require('../../../assets/svg/NFC.svg')" class="nfc-icon" @click="clickNFC" />
 | 
	
		
			
				|  |  | -            </template>
 | 
	
		
			
				|  |  | -          </van-cell>
 | 
	
		
			
				|  |  | -        </van-col>
 | 
	
		
			
				|  |  | -        <van-col span="8">
 | 
	
		
			
				|  |  | -          <van-cell>
 | 
	
		
			
				|  |  | -            <div class="okAll">
 | 
	
		
			
				|  |  | -              <van-radio-group v-if="enable" v-model="selectRadio" @change="changeSwitch">
 | 
	
		
			
				|  |  | -                <van-radio name="1" icon-size="20px">一键填充</van-radio>
 | 
	
		
			
				|  |  | -              </van-radio-group>
 | 
	
		
			
				|  |  | -            </div>
 | 
	
		
			
				|  |  | -          </van-cell>
 | 
	
		
			
				|  |  | -        </van-col>
 | 
	
		
			
				|  |  | -      </van-row>
 | 
	
		
			
				|  |  | -      <van-row>
 | 
	
		
			
				|  |  | -        <van-col span="24">
 | 
	
		
			
				|  |  | -          <van-cell v-show="currentImgNFC.length > 0" :border="false">
 | 
	
		
			
				|  |  | -            <div
 | 
	
		
			
				|  |  | -              v-if="v.areaId === areaId && v.img"
 | 
	
		
			
				|  |  | -              class="nfc-img"
 | 
	
		
			
				|  |  | -              v-for="(v, i) in nfcs"
 | 
	
		
			
				|  |  | -              :key="v.img"
 | 
	
		
			
				|  |  | -              @click="preViewNFC(i)"
 | 
	
		
			
				|  |  | -            >
 | 
	
		
			
				|  |  | -              <img :src="imgUrl(v.img)" alt="" />
 | 
	
		
			
				|  |  | -              <span>{{ v.nfcName }}</span>
 | 
	
		
			
				|  |  | -              <div v-if="enable" class="cancel_icon" @click="cancelImg(v)">
 | 
	
		
			
				|  |  | -                <van-icon name="clear" />
 | 
	
		
			
				|  |  | +      <van-action-sheet v-model="total_show">
 | 
	
		
			
				|  |  | +        <div class="content">
 | 
	
		
			
				|  |  | +          <van-tabs>
 | 
	
		
			
				|  |  | +            <van-tab title="已扫描" name="a">
 | 
	
		
			
				|  |  | +              <van-list finished-text="没有更多了" @load="onLoad">
 | 
	
		
			
				|  |  | +                <van-cell v-for="item in yesList" :key="item.nfcCode" :title="item.nfcName"></van-cell>
 | 
	
		
			
				|  |  | +              </van-list>
 | 
	
		
			
				|  |  | +            </van-tab>
 | 
	
		
			
				|  |  | +            <van-tab title="未扫描" name="b">
 | 
	
		
			
				|  |  | +              <van-list finished-text="没有更多了" @load="onLoad">
 | 
	
		
			
				|  |  | +                <van-cell v-for="item in noList" :key="item.nfcCode" :title="item.nfcName">
 | 
	
		
			
				|  |  | +                  <!-- <img :src="require('../../../assets/svg/NFC.svg')" class="nfc-icon"/>-->
 | 
	
		
			
				|  |  | +                </van-cell>
 | 
	
		
			
				|  |  | +              </van-list>
 | 
	
		
			
				|  |  | +            </van-tab>
 | 
	
		
			
				|  |  | +          </van-tabs>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </van-action-sheet>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <div class="card">
 | 
	
		
			
				|  |  | +        <van-row>
 | 
	
		
			
				|  |  | +          <van-col span="16">
 | 
	
		
			
				|  |  | +            <van-cell>
 | 
	
		
			
				|  |  | +              <template #title>
 | 
	
		
			
				|  |  | +                <span>NFC</span>
 | 
	
		
			
				|  |  | +              </template>
 | 
	
		
			
				|  |  | +              <template #extra>
 | 
	
		
			
				|  |  | +                <span style="display: inline-block; color: #26850c">{{ yesNFCnums }}</span>
 | 
	
		
			
				|  |  | +                <span style="display: inline-block; color: #0e0e0e">/</span>
 | 
	
		
			
				|  |  | +                <span style="display: inline-block; color: #0e0e0e">{{ NFCnums }}</span>
 | 
	
		
			
				|  |  | +                <img :src="require('../../../assets/svg/NFC.svg')" class="nfc-icon" @click="clickNFC"/>
 | 
	
		
			
				|  |  | +              </template>
 | 
	
		
			
				|  |  | +            </van-cell>
 | 
	
		
			
				|  |  | +          </van-col>
 | 
	
		
			
				|  |  | +          <van-col span="8">
 | 
	
		
			
				|  |  | +            <van-cell>
 | 
	
		
			
				|  |  | +              <div class="okAll">
 | 
	
		
			
				|  |  | +                <van-radio-group v-if="enable" v-model="selectRadio" @change="changeSwitch">
 | 
	
		
			
				|  |  | +                  <van-radio name="1" icon-size="20px">一键填充</van-radio>
 | 
	
		
			
				|  |  | +                </van-radio-group>
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  | -            </div>
 | 
	
		
			
				|  |  | -          </van-cell>
 | 
	
		
			
				|  |  | -        </van-col>
 | 
	
		
			
				|  |  | -      </van-row>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      <van-collapse v-model="activeNames">
 | 
	
		
			
				|  |  | -        <van-collapse-item
 | 
	
		
			
				|  |  | -          v-show="areaId === item.areaId"
 | 
	
		
			
				|  |  | -          v-for="item in checks"
 | 
	
		
			
				|  |  | -          :title="item.itemName + '(' + item.points.length + ')'"
 | 
	
		
			
				|  |  | -          :name="item.itemName"
 | 
	
		
			
				|  |  | -          :key="item.areaId"
 | 
	
		
			
				|  |  | -        >
 | 
	
		
			
				|  |  | -          <div v-for="(point, index) in item.points">
 | 
	
		
			
				|  |  | -            <van-cell :title="point.pointName">
 | 
	
		
			
				|  |  | -              <template #right-icon>
 | 
	
		
			
				|  |  | -                <van-switch
 | 
	
		
			
				|  |  | -                  style="margin-left: 10px"
 | 
	
		
			
				|  |  | -                  v-model="point.resValue"
 | 
	
		
			
				|  |  | -                  v-show="point.dataStatus === 2"
 | 
	
		
			
				|  |  | -                  v-if="enable"
 | 
	
		
			
				|  |  | -                  :active-value="1"
 | 
	
		
			
				|  |  | -                  :inactive-value="0"
 | 
	
		
			
				|  |  | -                  inactive-color="#4fc08d"
 | 
	
		
			
				|  |  | -                  active-color="#ee0a24"
 | 
	
		
			
				|  |  | -                  size="18"
 | 
	
		
			
				|  |  | -                />
 | 
	
		
			
				|  |  | -                <span v-else>
 | 
	
		
			
				|  |  | +            </van-cell>
 | 
	
		
			
				|  |  | +          </van-col>
 | 
	
		
			
				|  |  | +        </van-row>
 | 
	
		
			
				|  |  | +        <van-row>
 | 
	
		
			
				|  |  | +          <van-col span="24">
 | 
	
		
			
				|  |  | +            <van-cell v-show="currentImgNFC.length > 0" :border="false">
 | 
	
		
			
				|  |  | +              <div
 | 
	
		
			
				|  |  | +                v-if="v.areaId === areaId && v.img"
 | 
	
		
			
				|  |  | +                class="nfc-img"
 | 
	
		
			
				|  |  | +                v-for="(v, i) in nfcs"
 | 
	
		
			
				|  |  | +                :key="v.img"
 | 
	
		
			
				|  |  | +                @click="preViewNFC(i)"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                <img :src="imgUrl(v.img)" alt=""/>
 | 
	
		
			
				|  |  | +                <span>{{ v.nfcName }}</span>
 | 
	
		
			
				|  |  | +                <div v-if="enable" class="cancel_icon" @click="cancelImg(v)">
 | 
	
		
			
				|  |  | +                  <van-icon name="clear"/>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </van-cell>
 | 
	
		
			
				|  |  | +          </van-col>
 | 
	
		
			
				|  |  | +        </van-row>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <van-collapse v-model="activeNames">
 | 
	
		
			
				|  |  | +          <van-collapse-item
 | 
	
		
			
				|  |  | +            v-show="areaId === item.areaId"
 | 
	
		
			
				|  |  | +            v-for="item in checks"
 | 
	
		
			
				|  |  | +            :title="item.itemName + '(' + item.points.length + ')'"
 | 
	
		
			
				|  |  | +            :name="item.itemName"
 | 
	
		
			
				|  |  | +            :key="item.areaId"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <div v-for="(point, index) in item.points">
 | 
	
		
			
				|  |  | +              <van-cell :title="point.pointName">
 | 
	
		
			
				|  |  | +                <template #right-icon>
 | 
	
		
			
				|  |  | +                  <van-switch
 | 
	
		
			
				|  |  | +                    style="margin-left: 10px"
 | 
	
		
			
				|  |  | +                    v-model="point.resValue"
 | 
	
		
			
				|  |  | +                    v-show="point.dataStatus === 2"
 | 
	
		
			
				|  |  | +                    v-if="enable"
 | 
	
		
			
				|  |  | +                    :active-value="1"
 | 
	
		
			
				|  |  | +                    :inactive-value="0"
 | 
	
		
			
				|  |  | +                    inactive-color="#4fc08d"
 | 
	
		
			
				|  |  | +                    active-color="#ee0a24"
 | 
	
		
			
				|  |  | +                    size="18"
 | 
	
		
			
				|  |  | +                  />
 | 
	
		
			
				|  |  | +                  <span v-else>
 | 
	
		
			
				|  |  |                    <van-tag v-if="point.resValue === 1" type="warning">异常</van-tag>
 | 
	
		
			
				|  |  |                    <van-tag v-else type="success">正常</van-tag>
 | 
	
		
			
				|  |  |                  </span>
 | 
	
		
			
				|  |  | -                <van-switch
 | 
	
		
			
				|  |  | -                  style="margin-left: 10px"
 | 
	
		
			
				|  |  | -                  v-model="point.dataStatus"
 | 
	
		
			
				|  |  | -                  v-show="point.dataStatus === 1"
 | 
	
		
			
				|  |  | -                  :active-value="2"
 | 
	
		
			
				|  |  | -                  :inactive-value="1"
 | 
	
		
			
				|  |  | -                  inactive-color="#fcfcfc"
 | 
	
		
			
				|  |  | -                  active-color="#ee0a24"
 | 
	
		
			
				|  |  | -                  size="18"
 | 
	
		
			
				|  |  | -                  @change="changeCurrentSwitch(item.areaId)"
 | 
	
		
			
				|  |  | +                  <van-switch
 | 
	
		
			
				|  |  | +                    style="margin-left: 10px"
 | 
	
		
			
				|  |  | +                    v-model="point.dataStatus"
 | 
	
		
			
				|  |  | +                    v-show="point.dataStatus === 1"
 | 
	
		
			
				|  |  | +                    :active-value="2"
 | 
	
		
			
				|  |  | +                    :inactive-value="1"
 | 
	
		
			
				|  |  | +                    inactive-color="#fcfcfc"
 | 
	
		
			
				|  |  | +                    active-color="#ee0a24"
 | 
	
		
			
				|  |  | +                    size="18"
 | 
	
		
			
				|  |  | +                    @change="changeCurrentSwitch(item.areaId)"
 | 
	
		
			
				|  |  | +                  />
 | 
	
		
			
				|  |  | +                </template>
 | 
	
		
			
				|  |  | +              </van-cell>
 | 
	
		
			
				|  |  | +              <van-cell-group v-show="point.resValue">
 | 
	
		
			
				|  |  | +                <select-cell
 | 
	
		
			
				|  |  | +                  :required="enable"
 | 
	
		
			
				|  |  | +                  :disabled="!enable"
 | 
	
		
			
				|  |  | +                  title="整改期限"
 | 
	
		
			
				|  |  | +                  name="rectificationDeadline"
 | 
	
		
			
				|  |  | +                  v-model="point.rectificationDeadline"
 | 
	
		
			
				|  |  | +                  :data-list="dayList"
 | 
	
		
			
				|  |  |                  />
 | 
	
		
			
				|  |  | -              </template>
 | 
	
		
			
				|  |  | -            </van-cell>
 | 
	
		
			
				|  |  | -            <van-cell-group v-show="point.resValue">
 | 
	
		
			
				|  |  | -              <select-cell
 | 
	
		
			
				|  |  | -                :required="enable"
 | 
	
		
			
				|  |  | -                :disabled="!enable"
 | 
	
		
			
				|  |  | -                title="整改期限"
 | 
	
		
			
				|  |  | -                v-model="point.rectificationDeadline"
 | 
	
		
			
				|  |  | -                :data-list="dayList"
 | 
	
		
			
				|  |  | -              />
 | 
	
		
			
				|  |  | -              <van-field
 | 
	
		
			
				|  |  | -                :required="enable"
 | 
	
		
			
				|  |  | -                v-model="point.resRemark"
 | 
	
		
			
				|  |  | -                rows="1"
 | 
	
		
			
				|  |  | -                autosize
 | 
	
		
			
				|  |  | -                label="情况描述:"
 | 
	
		
			
				|  |  | -                type="textarea"
 | 
	
		
			
				|  |  | -                placeholder="请输入"
 | 
	
		
			
				|  |  | -              />
 | 
	
		
			
				|  |  | -              <div class="upload-box">
 | 
	
		
			
				|  |  | -                <uploader :maxCount="5" v-if="enable" v-model="point.imgs" />
 | 
	
		
			
				|  |  | -                <van-cell v-else>
 | 
	
		
			
				|  |  | -                  <div
 | 
	
		
			
				|  |  | -                    class="nfc-img van-hairline--surround"
 | 
	
		
			
				|  |  | -                    v-for="(v, i) in point.imgs"
 | 
	
		
			
				|  |  | -                    :key="v.imgPath"
 | 
	
		
			
				|  |  | -                    @click="clickWarnImage(point.imgs, i)"
 | 
	
		
			
				|  |  | -                  >
 | 
	
		
			
				|  |  | -                    <img :src="imgUrl(v.imgPath)" alt="" />
 | 
	
		
			
				|  |  | -                    <span>{{ v.checkName }}</span>
 | 
	
		
			
				|  |  | -                  </div>
 | 
	
		
			
				|  |  | -                </van-cell>
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | -            </van-cell-group>
 | 
	
		
			
				|  |  | -          </div>
 | 
	
		
			
				|  |  | -        </van-collapse-item>
 | 
	
		
			
				|  |  | -      </van-collapse>
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    <div class="bottomClass" v-if="enable">
 | 
	
		
			
				|  |  | -      <van-row>
 | 
	
		
			
				|  |  | -        <van-col span="12">
 | 
	
		
			
				|  |  | -          <van-button type="default" @click="resumptionDataSave">保存</van-button>
 | 
	
		
			
				|  |  | -        </van-col>
 | 
	
		
			
				|  |  | -        <van-col span="12">
 | 
	
		
			
				|  |  | -          <van-button type="info" @click="submitResumptionData">提交</van-button>
 | 
	
		
			
				|  |  | -        </van-col>
 | 
	
		
			
				|  |  | -      </van-row>
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -    <!--  nfc弹窗  -->
 | 
	
		
			
				|  |  | -    <nfc-popup v-if="enable" ref="NfcPopup" @change="changeNfcImg"></nfc-popup>
 | 
	
		
			
				|  |  | +                <van-field
 | 
	
		
			
				|  |  | +                  :rules="[{ required: enable, message: '请输入情况描述' }]"
 | 
	
		
			
				|  |  | +                  :required="enable"
 | 
	
		
			
				|  |  | +                  v-model="point.resRemark"
 | 
	
		
			
				|  |  | +                  :readonly="!enable"
 | 
	
		
			
				|  |  | +                  rows="1"
 | 
	
		
			
				|  |  | +                  name="resRemark"
 | 
	
		
			
				|  |  | +                  autosize
 | 
	
		
			
				|  |  | +                  label="情况描述"
 | 
	
		
			
				|  |  | +                  type="textarea"
 | 
	
		
			
				|  |  | +                  placeholder="请输入情况描述"
 | 
	
		
			
				|  |  | +                />
 | 
	
		
			
				|  |  | +                <div class="upload-box">
 | 
	
		
			
				|  |  | +                  <uploader :maxCount="5" v-if="enable" v-model="point.imgs"/>
 | 
	
		
			
				|  |  | +                  <van-cell v-else>
 | 
	
		
			
				|  |  | +                    <div
 | 
	
		
			
				|  |  | +                      class="nfc-img van-hairline--surround"
 | 
	
		
			
				|  |  | +                      v-for="(v, i) in point.imgs"
 | 
	
		
			
				|  |  | +                      :key="v.imgPath"
 | 
	
		
			
				|  |  | +                      @click="clickWarnImage(point.imgs, i)"
 | 
	
		
			
				|  |  | +                    >
 | 
	
		
			
				|  |  | +                      <img :src="imgUrl(v.imgPath)" alt=""/>
 | 
	
		
			
				|  |  | +                      <span>{{ v.checkName }}</span>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                  </van-cell>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </van-cell-group>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </van-collapse-item>
 | 
	
		
			
				|  |  | +        </van-collapse>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <div class="bottomClass" v-if="enable">
 | 
	
		
			
				|  |  | +        <van-row>
 | 
	
		
			
				|  |  | +          <van-col span="12">
 | 
	
		
			
				|  |  | +            <van-button type="default" @click="resumptionDataSave">保存</van-button>
 | 
	
		
			
				|  |  | +          </van-col>
 | 
	
		
			
				|  |  | +          <van-col span="12">
 | 
	
		
			
				|  |  | +            <van-button type="info" @click="submitResumptionData">提交</van-button>
 | 
	
		
			
				|  |  | +          </van-col>
 | 
	
		
			
				|  |  | +        </van-row>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      <!--  nfc弹窗  -->
 | 
	
		
			
				|  |  | +      <nfc-popup v-if="enable" ref="NfcPopup" @change="changeNfcImg"></nfc-popup>
 | 
	
		
			
				|  |  | +    </van-form>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import { ImagePreview, Dialog } from 'vant'
 | 
	
		
			
				|  |  | -import NavBar from '@/components/NavBar/index.vue'
 | 
	
		
			
				|  |  | -import Uploader from '@/components/upload/uploader.vue'
 | 
	
		
			
				|  |  | -import SelectCell from '@/components/selectCell/index.vue'
 | 
	
		
			
				|  |  | -import { getDict } from '@/api/toConsult'
 | 
	
		
			
				|  |  | -import { saveTask, taskDetail } from '@/views/menu/resumption/api'
 | 
	
		
			
				|  |  | -import NfcPopup from '@/components/nfcPopup/more'
 | 
	
		
			
				|  |  | -import { imgUrl } from '@/utils'
 | 
	
		
			
				|  |  | -import dayjs from 'dayjs'
 | 
	
		
			
				|  |  | -import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -export default {
 | 
	
		
			
				|  |  | -  components: {
 | 
	
		
			
				|  |  | -    SelectCell,
 | 
	
		
			
				|  |  | -    Uploader,
 | 
	
		
			
				|  |  | -    NavBar,
 | 
	
		
			
				|  |  | -    NfcPopup,
 | 
	
		
			
				|  |  | -    imgUrl,
 | 
	
		
			
				|  |  | -    [Dialog.Component.name]: Dialog.Component
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  data() {
 | 
	
		
			
				|  |  | -    return {
 | 
	
		
			
				|  |  | -      areaColor: {
 | 
	
		
			
				|  |  | -        // 已完成
 | 
	
		
			
				|  |  | -        complete: '#26850c',
 | 
	
		
			
				|  |  | -        // 未开始
 | 
	
		
			
				|  |  | -        noOpen: '#1989fa',
 | 
	
		
			
				|  |  | -        // 进行中
 | 
	
		
			
				|  |  | -        loading: '#ffa500'
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      NFCnums: 0,
 | 
	
		
			
				|  |  | -      yesNFCnums: 0,
 | 
	
		
			
				|  |  | -      currentImgNFC: [],
 | 
	
		
			
				|  |  | -      areaId: null,
 | 
	
		
			
				|  |  | -      resumptionData: {},
 | 
	
		
			
				|  |  | -      areas: [],
 | 
	
		
			
				|  |  | -      checks: [],
 | 
	
		
			
				|  |  | -      nfcs: [],
 | 
	
		
			
				|  |  | -      selectRadio: 0,
 | 
	
		
			
				|  |  | -      total_show: false,
 | 
	
		
			
				|  |  | -      enable: false,
 | 
	
		
			
				|  |  | -      activeNames: [],
 | 
	
		
			
				|  |  | -      dayList: [15, 30, 90, 180],
 | 
	
		
			
				|  |  | -      yesList: [],
 | 
	
		
			
				|  |  | -      noList: [],
 | 
	
		
			
				|  |  | -      loading: false,
 | 
	
		
			
				|  |  | -      finished: false,
 | 
	
		
			
				|  |  | -      selectArea: null,
 | 
	
		
			
				|  |  | -      preViewImages: {
 | 
	
		
			
				|  |  | -        images: [],
 | 
	
		
			
				|  |  | -        startPosition: 0
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  computed: {
 | 
	
		
			
				|  |  | -    ...mapGetters(['id'])
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  mounted() {
 | 
	
		
			
				|  |  | -    this.getResumptionData()
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  created() {
 | 
	
		
			
				|  |  | -    getDict('rectification_deadline').then(res => {
 | 
	
		
			
				|  |  | -      let { data } = res
 | 
	
		
			
				|  |  | -      this.dayList = data
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  methods: {
 | 
	
		
			
				|  |  | -    preViewNFC(i) {
 | 
	
		
			
				|  |  | -      this.preViewImages.images = this.currentImgNFC.map(v => imgUrl(v.img))
 | 
	
		
			
				|  |  | -      this.preViewImages.startPosition = i
 | 
	
		
			
				|  |  | -      ImagePreview(this.preViewImages)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    clickWarnImage(arr,i){
 | 
	
		
			
				|  |  | -      this.preViewImages.images = arr.map(v=>imgUrl(v.imgPath));
 | 
	
		
			
				|  |  | -      this.preViewImages.startPosition = i;
 | 
	
		
			
				|  |  | -      ImagePreview(this.preViewImages)
 | 
	
		
			
				|  |  | +  import { ImagePreview, Dialog } from 'vant'
 | 
	
		
			
				|  |  | +  import NavBar from '@/components/NavBar/index.vue'
 | 
	
		
			
				|  |  | +  import Uploader from '@/components/upload/uploader.vue'
 | 
	
		
			
				|  |  | +  import SelectCell from '@/components/selectCell/index.vue'
 | 
	
		
			
				|  |  | +  import { getDict } from '@/api/toConsult'
 | 
	
		
			
				|  |  | +  import { saveTask, taskDetail } from '@/views/menu/resumption/api'
 | 
	
		
			
				|  |  | +  import NfcPopup from '@/components/nfcPopup/more'
 | 
	
		
			
				|  |  | +  import { imgUrl } from '@/utils'
 | 
	
		
			
				|  |  | +  import dayjs from 'dayjs'
 | 
	
		
			
				|  |  | +  import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | +  import {ref} from 'vue'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  export default {
 | 
	
		
			
				|  |  | +    components: {
 | 
	
		
			
				|  |  | +      SelectCell,
 | 
	
		
			
				|  |  | +      Uploader,
 | 
	
		
			
				|  |  | +      NavBar,
 | 
	
		
			
				|  |  | +      NfcPopup,
 | 
	
		
			
				|  |  | +      imgUrl,
 | 
	
		
			
				|  |  | +      [Dialog.Component.name]: Dialog.Component
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getResumptionData() {
 | 
	
		
			
				|  |  | -      let data = {
 | 
	
		
			
				|  |  | -        taskId: this.$route.query.id,
 | 
	
		
			
				|  |  | -        taskDate: this.$route.query.taskDate
 | 
	
		
			
				|  |  | +    data() {
 | 
	
		
			
				|  |  | +      return {
 | 
	
		
			
				|  |  | +        areaColor: {
 | 
	
		
			
				|  |  | +          // 已完成
 | 
	
		
			
				|  |  | +          complete: '#26850c',
 | 
	
		
			
				|  |  | +          // 未开始
 | 
	
		
			
				|  |  | +          noOpen: '#1989fa',
 | 
	
		
			
				|  |  | +          // 进行中
 | 
	
		
			
				|  |  | +          loading: '#ffa500'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        NFCnums: 0,
 | 
	
		
			
				|  |  | +        yesNFCnums: 0,
 | 
	
		
			
				|  |  | +        currentImgNFC: [],
 | 
	
		
			
				|  |  | +        areaId: null,
 | 
	
		
			
				|  |  | +        resumptionData: {},
 | 
	
		
			
				|  |  | +        areas: [],
 | 
	
		
			
				|  |  | +        checks: [],
 | 
	
		
			
				|  |  | +        nfcs: [],
 | 
	
		
			
				|  |  | +        selectRadio: 0,
 | 
	
		
			
				|  |  | +        total_show: false,
 | 
	
		
			
				|  |  | +        enable: false,
 | 
	
		
			
				|  |  | +        activeNames: [],
 | 
	
		
			
				|  |  | +        dayList: [15, 30, 90, 180],
 | 
	
		
			
				|  |  | +        yesList: [],
 | 
	
		
			
				|  |  | +        noList: [],
 | 
	
		
			
				|  |  | +        loading: false,
 | 
	
		
			
				|  |  | +        finished: false,
 | 
	
		
			
				|  |  | +        selectArea: null,
 | 
	
		
			
				|  |  | +        preViewImages: {
 | 
	
		
			
				|  |  | +          images: [],
 | 
	
		
			
				|  |  | +          startPosition: 0
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      taskDetail(data).then(res => {
 | 
	
		
			
				|  |  | -        let { taskId, taskName, yesPointNums, noPointNums, yesNFCNums, noNFCNums, status } = res.data
 | 
	
		
			
				|  |  | -        this.resumptionData = {
 | 
	
		
			
				|  |  | -          taskId,
 | 
	
		
			
				|  |  | -          taskName,
 | 
	
		
			
				|  |  | -          yesPointNums,
 | 
	
		
			
				|  |  | -          noPointNums,
 | 
	
		
			
				|  |  | -          yesNFCNums,
 | 
	
		
			
				|  |  | -          noNFCNums,
 | 
	
		
			
				|  |  | -          status
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        this.enable = this.resumptionData.status === 1 || this.resumptionData.status === 2
 | 
	
		
			
				|  |  | -        this.checks = res.data.checks
 | 
	
		
			
				|  |  | -        this.nfcs = res.data.nfcs
 | 
	
		
			
				|  |  | -        this.areas = res.data.areas
 | 
	
		
			
				|  |  | -        this.activeArea(this.areas[0], 0)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (!this.enable) {
 | 
	
		
			
				|  |  | -          this.openCollapseItems()
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    openCollapseItems() {
 | 
	
		
			
				|  |  | -      let len = this.checks.length
 | 
	
		
			
				|  |  | -      for (let i = 0; i < len; i++) {
 | 
	
		
			
				|  |  | -        let title = this.checks[i].itemName
 | 
	
		
			
				|  |  | -        this.activeNames.push(title)
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    computed: {
 | 
	
		
			
				|  |  | +      ...mapGetters(['id'])
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    changeSwitch() {
 | 
	
		
			
				|  |  | -      let num = 0
 | 
	
		
			
				|  |  | -      for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | -        for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | -          this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  | -          num++
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.resumptionData.yesPointNums = num
 | 
	
		
			
				|  |  | -      this.resumptionData.noPointNums = 0
 | 
	
		
			
				|  |  | -      this.areas.forEach((item, index) => {
 | 
	
		
			
				|  |  | -        this.validateArea(item.areaId)
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      this.openCollapseItems()
 | 
	
		
			
				|  |  | +    mounted() {
 | 
	
		
			
				|  |  | +      this.getResumptionData()
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    changeCurrentSwitch(areaId) {
 | 
	
		
			
				|  |  | -      this.resumptionData.yesPointNums = this.resumptionData.yesPointNums + 1
 | 
	
		
			
				|  |  | -      this.resumptionData.noPointNums = this.resumptionData.noPointNums - 1
 | 
	
		
			
				|  |  | -      this.validateArea(areaId)
 | 
	
		
			
				|  |  | +    created() {
 | 
	
		
			
				|  |  | +      getDict('rectification_deadline').then(res => {
 | 
	
		
			
				|  |  | +        let { data } = res
 | 
	
		
			
				|  |  | +        this.dayList = data
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    validateArea(areaId) {
 | 
	
		
			
				|  |  | -      let total = 0
 | 
	
		
			
				|  |  | -      let yes = 0
 | 
	
		
			
				|  |  | -      this.checks.forEach(item => {
 | 
	
		
			
				|  |  | -        let pointList = item.points
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        pointList.forEach(point => {
 | 
	
		
			
				|  |  | -          if (item.areaId === areaId) {
 | 
	
		
			
				|  |  | -            total++
 | 
	
		
			
				|  |  | -            if (point.dataStatus === 2) {
 | 
	
		
			
				|  |  | -              yes++
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +    methods: {
 | 
	
		
			
				|  |  | +      preViewNFC(i) {
 | 
	
		
			
				|  |  | +        this.preViewImages.images = this.currentImgNFC.map(v => imgUrl(v.img))
 | 
	
		
			
				|  |  | +        this.preViewImages.startPosition = i
 | 
	
		
			
				|  |  | +        ImagePreview(this.preViewImages)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      clickWarnImage(arr, i) {
 | 
	
		
			
				|  |  | +        this.preViewImages.images = arr.map(v => imgUrl(v.imgPath))
 | 
	
		
			
				|  |  | +        this.preViewImages.startPosition = i
 | 
	
		
			
				|  |  | +        ImagePreview(this.preViewImages)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      getResumptionData() {
 | 
	
		
			
				|  |  | +        let data = {
 | 
	
		
			
				|  |  | +          taskId: this.$route.query.id,
 | 
	
		
			
				|  |  | +          taskDate: this.$route.query.taskDate
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        taskDetail(data).then(res => {
 | 
	
		
			
				|  |  | +          let { taskId, taskName, yesPointNums, noPointNums, yesNFCNums, noNFCNums, status } = res.data
 | 
	
		
			
				|  |  | +          this.resumptionData = {
 | 
	
		
			
				|  |  | +            taskId,
 | 
	
		
			
				|  |  | +            taskName,
 | 
	
		
			
				|  |  | +            yesPointNums,
 | 
	
		
			
				|  |  | +            noPointNums,
 | 
	
		
			
				|  |  | +            yesNFCNums,
 | 
	
		
			
				|  |  | +            noNFCNums,
 | 
	
		
			
				|  |  | +            status
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          this.enable = this.resumptionData.status === 1 || this.resumptionData.status === 2
 | 
	
		
			
				|  |  | +          this.checks = res.data.checks
 | 
	
		
			
				|  |  | +          this.nfcs = res.data.nfcs
 | 
	
		
			
				|  |  | +          this.areas = res.data.areas
 | 
	
		
			
				|  |  | +          this.activeArea(this.areas[0], 0)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          if (!this.enable) {
 | 
	
		
			
				|  |  | +            this.openCollapseItems()
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      let noNfc = this.nfcs.filter((item, index) => {
 | 
	
		
			
				|  |  | -        return item.areaId === areaId && item.status === 0
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      openCollapseItems() {
 | 
	
		
			
				|  |  | +        let len = this.checks.length
 | 
	
		
			
				|  |  | +        for (let i = 0; i < len; i++) {
 | 
	
		
			
				|  |  | +          let title = this.checks[i].itemName
 | 
	
		
			
				|  |  | +          this.activeNames.push(title)
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      changeSwitch() {
 | 
	
		
			
				|  |  | +        let num = 0
 | 
	
		
			
				|  |  | +        for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | +          for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | +            this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  | +            num++
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.resumptionData.yesPointNums = num
 | 
	
		
			
				|  |  | +        this.resumptionData.noPointNums = 0
 | 
	
		
			
				|  |  | +        this.areas.forEach((item, index) => {
 | 
	
		
			
				|  |  | +          this.validateArea(item.areaId)
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.openCollapseItems()
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      changeCurrentSwitch(areaId) {
 | 
	
		
			
				|  |  | +        this.resumptionData.yesPointNums = this.resumptionData.yesPointNums + 1
 | 
	
		
			
				|  |  | +        this.resumptionData.noPointNums = this.resumptionData.noPointNums - 1
 | 
	
		
			
				|  |  | +        this.validateArea(areaId)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      validateArea(areaId) {
 | 
	
		
			
				|  |  | +        let total = 0
 | 
	
		
			
				|  |  | +        let yes = 0
 | 
	
		
			
				|  |  | +        this.checks.forEach(item => {
 | 
	
		
			
				|  |  | +          let pointList = item.points
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          pointList.forEach(point => {
 | 
	
		
			
				|  |  | +            if (item.areaId === areaId) {
 | 
	
		
			
				|  |  | +              total++
 | 
	
		
			
				|  |  | +              if (point.dataStatus === 2) {
 | 
	
		
			
				|  |  | +                yes++
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      let areaStatus = '0'
 | 
	
		
			
				|  |  | -      if (total === yes && noNfc.length === 0) {
 | 
	
		
			
				|  |  | -        areaStatus = '1'
 | 
	
		
			
				|  |  | -      } else if (yes === 0 && noNfc.length === this.NFCnums) {
 | 
	
		
			
				|  |  | -        areaStatus = '0'
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        areaStatus = '2'
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +        let noNfc = this.nfcs.filter((item, index) => {
 | 
	
		
			
				|  |  | +          return item.areaId === areaId && item.status === 0
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      this.areas.forEach((item, index) => {
 | 
	
		
			
				|  |  | -        if (item.areaId === areaId) {
 | 
	
		
			
				|  |  | -          this.areas[index].areaStatus = areaStatus
 | 
	
		
			
				|  |  | +        let areaStatus = '0'
 | 
	
		
			
				|  |  | +        if (total === yes && noNfc.length === 0) {
 | 
	
		
			
				|  |  | +          areaStatus = '1'
 | 
	
		
			
				|  |  | +        } else if (yes === 0 && noNfc.length === this.NFCnums) {
 | 
	
		
			
				|  |  | +          areaStatus = '0'
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          areaStatus = '2'
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    clickNFC() {
 | 
	
		
			
				|  |  | -      let arr = this.nfcs.filter(item => {
 | 
	
		
			
				|  |  | -        return item.areaId === this.areaId && item.status === 0
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      if (arr.length > 0) {
 | 
	
		
			
				|  |  | -        let nfcs = []
 | 
	
		
			
				|  |  | -        for (const nfc of arr) {
 | 
	
		
			
				|  |  | -          let pro = {}
 | 
	
		
			
				|  |  | -          pro.checkName = nfc.nfcName
 | 
	
		
			
				|  |  | -          pro.nfccdoe = nfc.nfcCode
 | 
	
		
			
				|  |  | -          nfcs.push(pro)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        this.$refs.NfcPopup.show(nfcs)
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    cancelImg(imgItem) {
 | 
	
		
			
				|  |  | -      let areaId = null
 | 
	
		
			
				|  |  | -      this.nfcs.forEach(v => {
 | 
	
		
			
				|  |  | -        if (v.nfcCode === imgItem.nfcCode) {
 | 
	
		
			
				|  |  | -          areaId = v.areaId
 | 
	
		
			
				|  |  | -          v.img = imgItem.url
 | 
	
		
			
				|  |  | -          v.status = 0
 | 
	
		
			
				|  |  | -          v.scanMethod = null
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      let now = this.currentImgNFC.filter(v => {
 | 
	
		
			
				|  |  | -        return v.nfcCode !== imgItem.nfcCode
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      this.currentImgNFC = now
 | 
	
		
			
				|  |  | +        this.areas.forEach((item, index) => {
 | 
	
		
			
				|  |  | +          if (item.areaId === areaId) {
 | 
	
		
			
				|  |  | +            this.areas[index].areaStatus = areaStatus
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      clickNFC() {
 | 
	
		
			
				|  |  | +        let arr = this.nfcs.filter(item => {
 | 
	
		
			
				|  |  | +          return item.areaId === this.areaId && item.status === 0
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      this.yesNFCnums--
 | 
	
		
			
				|  |  | -      this.resumptionData.yesNFCNums--
 | 
	
		
			
				|  |  | -      this.resumptionData.noNFCNums++
 | 
	
		
			
				|  |  | -      this.validateArea(areaId)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    changeNfcImg(imgItem) {
 | 
	
		
			
				|  |  | -      let areaId = null
 | 
	
		
			
				|  |  | -      this.nfcs.forEach(v => {
 | 
	
		
			
				|  |  | -        if (v.nfcCode === imgItem.nfcCode) {
 | 
	
		
			
				|  |  | -          areaId = v.areaId
 | 
	
		
			
				|  |  | -          v.img = imgItem.url
 | 
	
		
			
				|  |  | -          v.status = 1
 | 
	
		
			
				|  |  | -          v.scanMethod = 1
 | 
	
		
			
				|  |  | -          v.submitTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 | 
	
		
			
				|  |  | -          v.submitBy = this.id
 | 
	
		
			
				|  |  | -          this.currentImgNFC.push(v)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      this.yesNFCnums++
 | 
	
		
			
				|  |  | -      this.resumptionData.yesNFCNums++
 | 
	
		
			
				|  |  | -      this.resumptionData.noNFCNums--
 | 
	
		
			
				|  |  | -      this.validateArea(areaId)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    showDetail() {
 | 
	
		
			
				|  |  | -      this.total_show = true
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    onLoad() {
 | 
	
		
			
				|  |  | -      // 异步更新数据
 | 
	
		
			
				|  |  | -      // setTimeout 仅做示例,真实场景中一般为 ajax 请求
 | 
	
		
			
				|  |  | -      this.yesList = []
 | 
	
		
			
				|  |  | -      this.noList = []
 | 
	
		
			
				|  |  | -      this.nfcs.forEach((item, index) => {
 | 
	
		
			
				|  |  | -        if (item.status === 1) {
 | 
	
		
			
				|  |  | -          this.yesList.push(item)
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          this.noList.push(item)
 | 
	
		
			
				|  |  | +        if (arr.length > 0) {
 | 
	
		
			
				|  |  | +          let nfcs = []
 | 
	
		
			
				|  |  | +          for (const nfc of arr) {
 | 
	
		
			
				|  |  | +            let pro = {}
 | 
	
		
			
				|  |  | +            pro.checkName = nfc.nfcName
 | 
	
		
			
				|  |  | +            pro.nfccdoe = nfc.nfcCode
 | 
	
		
			
				|  |  | +            nfcs.push(pro)
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          this.$refs.NfcPopup.show(nfcs)
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //点击区域
 | 
	
		
			
				|  |  | -    clickArea(area, index) {
 | 
	
		
			
				|  |  | -      this.activeArea(area, index)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //选中区域时数据变更
 | 
	
		
			
				|  |  | -    activeArea(area, index) {
 | 
	
		
			
				|  |  | -      //获取当前选中区域
 | 
	
		
			
				|  |  | -      this.areaId = area.areaId
 | 
	
		
			
				|  |  | -      //设置选中样式
 | 
	
		
			
				|  |  | -      this.$nextTick(() => {
 | 
	
		
			
				|  |  | -        let doms = document.getElementsByClassName('check-area')
 | 
	
		
			
				|  |  | -        Array.prototype.forEach.call(doms, item => {
 | 
	
		
			
				|  |  | -          item.classList.remove('active')
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      cancelImg(imgItem) {
 | 
	
		
			
				|  |  | +        let areaId = null
 | 
	
		
			
				|  |  | +        this.nfcs.forEach(v => {
 | 
	
		
			
				|  |  | +          if (v.nfcCode === imgItem.nfcCode) {
 | 
	
		
			
				|  |  | +            areaId = v.areaId
 | 
	
		
			
				|  |  | +            v.img = imgItem.url
 | 
	
		
			
				|  |  | +            v.status = 0
 | 
	
		
			
				|  |  | +            v.scanMethod = null
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -        doms[index].classList.add('active')
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      let nfcs = 0
 | 
	
		
			
				|  |  | -      let yesNfc = 0
 | 
	
		
			
				|  |  | -      let current = []
 | 
	
		
			
				|  |  | -      for (let i = 0; i < this.nfcs.length; i++) {
 | 
	
		
			
				|  |  | -        let nfc = this.nfcs[i]
 | 
	
		
			
				|  |  | -        let areaId = nfc.areaId
 | 
	
		
			
				|  |  | -        if (areaId === area.areaId) {
 | 
	
		
			
				|  |  | -          nfcs++
 | 
	
		
			
				|  |  | -          if (nfc.status === 1) {
 | 
	
		
			
				|  |  | -            yesNfc++
 | 
	
		
			
				|  |  | +        let now = this.currentImgNFC.filter(v => {
 | 
	
		
			
				|  |  | +          return v.nfcCode !== imgItem.nfcCode
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.currentImgNFC = now
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        this.yesNFCnums--
 | 
	
		
			
				|  |  | +        this.resumptionData.yesNFCNums--
 | 
	
		
			
				|  |  | +        this.resumptionData.noNFCNums++
 | 
	
		
			
				|  |  | +        this.validateArea(areaId)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      changeNfcImg(imgItem) {
 | 
	
		
			
				|  |  | +        let areaId = null
 | 
	
		
			
				|  |  | +        this.nfcs.forEach(v => {
 | 
	
		
			
				|  |  | +          if (v.nfcCode === imgItem.nfcCode) {
 | 
	
		
			
				|  |  | +            areaId = v.areaId
 | 
	
		
			
				|  |  | +            v.img = imgItem.url
 | 
	
		
			
				|  |  | +            v.status = 1
 | 
	
		
			
				|  |  | +            v.scanMethod = 1
 | 
	
		
			
				|  |  | +            v.submitTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 | 
	
		
			
				|  |  | +            v.submitBy = this.id
 | 
	
		
			
				|  |  | +            this.currentImgNFC.push(v)
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          if (nfc.img) {
 | 
	
		
			
				|  |  | -            current.push(nfc)
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.yesNFCnums++
 | 
	
		
			
				|  |  | +        this.resumptionData.yesNFCNums++
 | 
	
		
			
				|  |  | +        this.resumptionData.noNFCNums--
 | 
	
		
			
				|  |  | +        this.validateArea(areaId)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      showDetail() {
 | 
	
		
			
				|  |  | +        this.total_show = true
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      onLoad() {
 | 
	
		
			
				|  |  | +        // 异步更新数据
 | 
	
		
			
				|  |  | +        // setTimeout 仅做示例,真实场景中一般为 ajax 请求
 | 
	
		
			
				|  |  | +        this.yesList = []
 | 
	
		
			
				|  |  | +        this.noList = []
 | 
	
		
			
				|  |  | +        this.nfcs.forEach((item, index) => {
 | 
	
		
			
				|  |  | +          if (item.status === 1) {
 | 
	
		
			
				|  |  | +            this.yesList.push(item)
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            this.noList.push(item)
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.currentImgNFC = current
 | 
	
		
			
				|  |  | -      this.yesNFCnums = yesNfc
 | 
	
		
			
				|  |  | -      this.NFCnums = nfcs
 | 
	
		
			
				|  |  | -      this.selectArea = area
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //保存数据
 | 
	
		
			
				|  |  | -    resumptionDataSave() {
 | 
	
		
			
				|  |  | -      //组装数据
 | 
	
		
			
				|  |  | -      let data = {}
 | 
	
		
			
				|  |  | -      data.taskId = this.resumptionData.taskId
 | 
	
		
			
				|  |  | -      data.checks = this.checks
 | 
	
		
			
				|  |  | -      data.nfcs = this.nfcs
 | 
	
		
			
				|  |  | -      data.subType = 1
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      saveTask(data).then(res => {
 | 
	
		
			
				|  |  | -        this.$toast('保存成功')
 | 
	
		
			
				|  |  | -        this.$router.go(-1)
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    submitResumptionData() {
 | 
	
		
			
				|  |  | -      //验证数据
 | 
	
		
			
				|  |  | -      let noNfc = this.nfcs.filter((item, index) => {
 | 
	
		
			
				|  |  | -        return item.status === 0
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      if (noNfc.length > 0) {
 | 
	
		
			
				|  |  | -        Dialog.alert({
 | 
	
		
			
				|  |  | -          message: 'NFC标签还未扫描完成,请完成后提交!'
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      let isOk = true
 | 
	
		
			
				|  |  | -      this.checks.forEach(item => {
 | 
	
		
			
				|  |  | -        let pointList = item.points
 | 
	
		
			
				|  |  | -        pointList.forEach(point => {
 | 
	
		
			
				|  |  | -          if (point.dataStatus === 1) {
 | 
	
		
			
				|  |  | -            isOk = false
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      //点击区域
 | 
	
		
			
				|  |  | +      clickArea(area, index) {
 | 
	
		
			
				|  |  | +        this.activeArea(area, index)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      //选中区域时数据变更
 | 
	
		
			
				|  |  | +      activeArea(area, index) {
 | 
	
		
			
				|  |  | +        //获取当前选中区域
 | 
	
		
			
				|  |  | +        this.areaId = area.areaId
 | 
	
		
			
				|  |  | +        //设置选中样式
 | 
	
		
			
				|  |  | +        this.$nextTick(() => {
 | 
	
		
			
				|  |  | +          let doms = document.getElementsByClassName('check-area')
 | 
	
		
			
				|  |  | +          Array.prototype.forEach.call(doms, item => {
 | 
	
		
			
				|  |  | +            item.classList.remove('active')
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          doms[index].classList.add('active')
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        let nfcs = 0
 | 
	
		
			
				|  |  | +        let yesNfc = 0
 | 
	
		
			
				|  |  | +        let current = []
 | 
	
		
			
				|  |  | +        for (let i = 0; i < this.nfcs.length; i++) {
 | 
	
		
			
				|  |  | +          let nfc = this.nfcs[i]
 | 
	
		
			
				|  |  | +          let areaId = nfc.areaId
 | 
	
		
			
				|  |  | +          if (areaId === area.areaId) {
 | 
	
		
			
				|  |  | +            nfcs++
 | 
	
		
			
				|  |  | +            if (nfc.status === 1) {
 | 
	
		
			
				|  |  | +              yesNfc++
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (nfc.img) {
 | 
	
		
			
				|  |  | +              current.push(nfc)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.currentImgNFC = current
 | 
	
		
			
				|  |  | +        this.yesNFCnums = yesNfc
 | 
	
		
			
				|  |  | +        this.NFCnums = nfcs
 | 
	
		
			
				|  |  | +        this.selectArea = area
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      //保存数据
 | 
	
		
			
				|  |  | +      resumptionDataSave() {
 | 
	
		
			
				|  |  | +        //组装数据
 | 
	
		
			
				|  |  | +        let data = {}
 | 
	
		
			
				|  |  | +        data.taskId = this.resumptionData.taskId
 | 
	
		
			
				|  |  | +        data.checks = this.checks
 | 
	
		
			
				|  |  | +        data.nfcs = this.nfcs
 | 
	
		
			
				|  |  | +        data.subType = 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        saveTask(data).then(res => {
 | 
	
		
			
				|  |  | +          this.$toast('保存成功')
 | 
	
		
			
				|  |  | +          this.$router.go(-1)
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      submitResumptionData() {
 | 
	
		
			
				|  |  | +        //验证数据
 | 
	
		
			
				|  |  | +        let noNfc = this.nfcs.filter((item, index) => {
 | 
	
		
			
				|  |  | +          return item.status === 0
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        if (noNfc.length > 0) {
 | 
	
		
			
				|  |  | +          Dialog.alert({
 | 
	
		
			
				|  |  | +            message: 'NFC标签还未扫描完成,请完成后提交!'
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          return false
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let isOk = true
 | 
	
		
			
				|  |  | +        this.checks.forEach(item => {
 | 
	
		
			
				|  |  | +          let pointList = item.points
 | 
	
		
			
				|  |  | +          pointList.forEach(point => {
 | 
	
		
			
				|  |  | +            if (point.dataStatus === 1) {
 | 
	
		
			
				|  |  | +              Dialog.alert({
 | 
	
		
			
				|  |  | +                message: '还有未完成的内容,请先完成再提交?'
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +              throw new Error('有项目未完成')
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              if (point.resValue === 1) {
 | 
	
		
			
				|  |  | +                if (!point.rectificationDeadline || !point.resRemark) {
 | 
	
		
			
				|  |  | +                  this.changeSwitch();
 | 
	
		
			
				|  |  | +                  this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | +                    if (area.areaId === item.areaId) {
 | 
	
		
			
				|  |  | +                      this.activeArea(area, i);
 | 
	
		
			
				|  |  | +                      //切换后验证表单
 | 
	
		
			
				|  |  | +                      this.$refs.resumption_form.validate();
 | 
	
		
			
				|  |  | +                      this.$toast({
 | 
	
		
			
				|  |  | +                        message: '请完成异常情况的信息填写!',
 | 
	
		
			
				|  |  | +                        position: 'top',
 | 
	
		
			
				|  |  | +                      });
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                  })
 | 
	
		
			
				|  |  | +                  throw new Error('有异常项目未完成')
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let data = {}
 | 
	
		
			
				|  |  | +        data.taskId = this.resumptionData.taskId
 | 
	
		
			
				|  |  | +        data.checks = this.checks
 | 
	
		
			
				|  |  | +        data.nfcs = this.nfcs
 | 
	
		
			
				|  |  | +        data.subType = 2
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      let data = {}
 | 
	
		
			
				|  |  | -      data.taskId = this.resumptionData.taskId
 | 
	
		
			
				|  |  | -      data.checks = this.checks
 | 
	
		
			
				|  |  | -      data.nfcs = this.nfcs
 | 
	
		
			
				|  |  | -      data.subType = 2
 | 
	
		
			
				|  |  | -      if (!isOk) {
 | 
	
		
			
				|  |  | -        Dialog.alert({
 | 
	
		
			
				|  |  | -          message: '还有未完成的内容,请先完成再提交?'
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  |          saveTask(data).then(res => {
 | 
	
		
			
				|  |  |            this.$toast('提交成功')
 | 
	
		
			
				|  |  |            this.$router.go(-1)
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <style lang="scss" scoped>
 | 
	
		
			
				|  |  | -.van-progress {
 | 
	
		
			
				|  |  | -  z-index: 999;
 | 
	
		
			
				|  |  | -  width: 98%;
 | 
	
		
			
				|  |  | -  left: 6px;
 | 
	
		
			
				|  |  | -  right: 6px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.page_box {
 | 
	
		
			
				|  |  | -  height: calc(100vh - 60px);
 | 
	
		
			
				|  |  | -  overflow: scroll;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.content {
 | 
	
		
			
				|  |  | -  padding: 16px 16px 10px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.panel {
 | 
	
		
			
				|  |  | -  background-color: white;
 | 
	
		
			
				|  |  | -  border-radius: 10px;
 | 
	
		
			
				|  |  | -  border: 1px solid #ffffff;
 | 
	
		
			
				|  |  | -  display: flex;
 | 
	
		
			
				|  |  | -  flex-direction: column;
 | 
	
		
			
				|  |  | -  box-shadow: 0 8px 12px #ebedf0;
 | 
	
		
			
				|  |  | -  margin-bottom: 10px;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  .van-cell__title {
 | 
	
		
			
				|  |  | -    font-weight: bold;
 | 
	
		
			
				|  |  | +  .van-progress {
 | 
	
		
			
				|  |  | +    z-index: 999;
 | 
	
		
			
				|  |  | +    width: 98%;
 | 
	
		
			
				|  |  | +    left: 6px;
 | 
	
		
			
				|  |  | +    right: 6px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.total_panel {
 | 
	
		
			
				|  |  | -  text-align: center;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  .title {
 | 
	
		
			
				|  |  | -    padding-top: 10px;
 | 
	
		
			
				|  |  | +  .page_box {
 | 
	
		
			
				|  |  | +    height: calc(100vh - 60px);
 | 
	
		
			
				|  |  | +    overflow: scroll;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    .content {
 | 
	
		
			
				|  |  | -    padding-top: 10px;
 | 
	
		
			
				|  |  | -    padding-bottom: 10px;
 | 
	
		
			
				|  |  | +    padding: 16px 16px 10px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .con_num {
 | 
	
		
			
				|  |  | -      padding: 15px;
 | 
	
		
			
				|  |  | +  .panel {
 | 
	
		
			
				|  |  | +    background-color: white;
 | 
	
		
			
				|  |  | +    border-radius: 10px;
 | 
	
		
			
				|  |  | +    border: 1px solid #ffffff;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    flex-direction: column;
 | 
	
		
			
				|  |  | +    box-shadow: 0 8px 12px #ebedf0;
 | 
	
		
			
				|  |  | +    margin-bottom: 10px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .van-cell__title {
 | 
	
		
			
				|  |  | +      font-weight: bold;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .total_panel {
 | 
	
		
			
				|  |  | +    text-align: center;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .ok {
 | 
	
		
			
				|  |  | -      color: #26850c;
 | 
	
		
			
				|  |  | +    .title {
 | 
	
		
			
				|  |  | +      padding-top: 10px;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .no {
 | 
	
		
			
				|  |  | -      color: #98632d;
 | 
	
		
			
				|  |  | +    .content {
 | 
	
		
			
				|  |  | +      padding-top: 10px;
 | 
	
		
			
				|  |  | +      padding-bottom: 10px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .con_num {
 | 
	
		
			
				|  |  | +        padding: 15px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .ok {
 | 
	
		
			
				|  |  | +        color: #26850c;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .no {
 | 
	
		
			
				|  |  | +        color: #98632d;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.card {
 | 
	
		
			
				|  |  | -  box-shadow: 0 10px 10px #eaeaea;
 | 
	
		
			
				|  |  | -  height: 50px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.van-popup {
 | 
	
		
			
				|  |  | -  height: 50%;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.check-area {
 | 
	
		
			
				|  |  | -  //background-color: #f1f1f1;
 | 
	
		
			
				|  |  | -  text-align: center;
 | 
	
		
			
				|  |  | -  margin: 10px;
 | 
	
		
			
				|  |  | -  padding: 20px;
 | 
	
		
			
				|  |  | -  //color: #aaa;
 | 
	
		
			
				|  |  | -  border-radius: 6px;
 | 
	
		
			
				|  |  | -  justify-content: space-between;
 | 
	
		
			
				|  |  | -  align-items: center;
 | 
	
		
			
				|  |  | -  box-shadow: 0 2px 6px #ddd;
 | 
	
		
			
				|  |  | -  position: relative;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  .ysj {
 | 
	
		
			
				|  |  | -    position: absolute;
 | 
	
		
			
				|  |  | -    right: 5px;
 | 
	
		
			
				|  |  | -    top: 5px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .card {
 | 
	
		
			
				|  |  | +    box-shadow: 0 10px 10px #eaeaea;
 | 
	
		
			
				|  |  | +    height: 50px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.active {
 | 
	
		
			
				|  |  | -  background-color: #bdbdbd;
 | 
	
		
			
				|  |  | -  color: #333;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.complete {
 | 
	
		
			
				|  |  | -  color: #fff;
 | 
	
		
			
				|  |  | -  background-color: #1989fa;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.nfc-icon {
 | 
	
		
			
				|  |  | -  width: 50px;
 | 
	
		
			
				|  |  | -  height: 50px;
 | 
	
		
			
				|  |  | -  margin-left: 20px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.bottomClass {
 | 
	
		
			
				|  |  | -  position: fixed;
 | 
	
		
			
				|  |  | -  width: 100%;
 | 
	
		
			
				|  |  | -  bottom: 0;
 | 
	
		
			
				|  |  | -  z-index: 999;
 | 
	
		
			
				|  |  | -  background: #ebedf0;
 | 
	
		
			
				|  |  | -  text-align: center;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  .van-button {
 | 
	
		
			
				|  |  | -    width: 95%;
 | 
	
		
			
				|  |  | -    margin-top: 10px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .van-popup {
 | 
	
		
			
				|  |  | +    height: 50%;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.okAll {
 | 
	
		
			
				|  |  | -  background-color: #fff;
 | 
	
		
			
				|  |  | -  display: flex;
 | 
	
		
			
				|  |  | -  justify-content: center;
 | 
	
		
			
				|  |  | -  align-items: center;
 | 
	
		
			
				|  |  | -  height: 50px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.nfc-img {
 | 
	
		
			
				|  |  | -  display: inline-block;
 | 
	
		
			
				|  |  | -  width: 160px;
 | 
	
		
			
				|  |  | -  height: 160px;
 | 
	
		
			
				|  |  | -  margin: 0 10px;
 | 
	
		
			
				|  |  | -  position: relative;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  > img {
 | 
	
		
			
				|  |  | -    width: 100%;
 | 
	
		
			
				|  |  | -    height: 100%;
 | 
	
		
			
				|  |  | -    border: none;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .check-area {
 | 
	
		
			
				|  |  | +    //background-color: #f1f1f1;
 | 
	
		
			
				|  |  | +    text-align: center;
 | 
	
		
			
				|  |  | +    margin: 10px;
 | 
	
		
			
				|  |  | +    padding: 20px;
 | 
	
		
			
				|  |  | +    //color: #aaa;
 | 
	
		
			
				|  |  | +    border-radius: 6px;
 | 
	
		
			
				|  |  | +    justify-content: space-between;
 | 
	
		
			
				|  |  | +    align-items: center;
 | 
	
		
			
				|  |  | +    box-shadow: 0 2px 6px #ddd;
 | 
	
		
			
				|  |  | +    position: relative;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .ysj {
 | 
	
		
			
				|  |  | +      position: absolute;
 | 
	
		
			
				|  |  | +      right: 5px;
 | 
	
		
			
				|  |  | +      top: 5px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  > span {
 | 
	
		
			
				|  |  | -    position: absolute;
 | 
	
		
			
				|  |  | -    padding: 0 10px;
 | 
	
		
			
				|  |  | -    bottom: 0;
 | 
	
		
			
				|  |  | -    left: 0;
 | 
	
		
			
				|  |  | -    display: block;
 | 
	
		
			
				|  |  | +  .active {
 | 
	
		
			
				|  |  | +    background-color: #bdbdbd;
 | 
	
		
			
				|  |  | +    color: #333;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .complete {
 | 
	
		
			
				|  |  | +    color: #fff;
 | 
	
		
			
				|  |  | +    background-color: #1989fa;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .nfc-icon {
 | 
	
		
			
				|  |  | +    width: 50px;
 | 
	
		
			
				|  |  | +    height: 50px;
 | 
	
		
			
				|  |  | +    margin-left: 20px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .bottomClass {
 | 
	
		
			
				|  |  | +    position: fixed;
 | 
	
		
			
				|  |  |      width: 100%;
 | 
	
		
			
				|  |  | -    background-color: rgba(0, 0, 0, 0.2);
 | 
	
		
			
				|  |  | -    color: #eaeaea;
 | 
	
		
			
				|  |  | -    font-size: 5px;
 | 
	
		
			
				|  |  | -    overflow: hidden;
 | 
	
		
			
				|  |  | -    text-overflow: ellipsis;
 | 
	
		
			
				|  |  | -    line-height: 30px;
 | 
	
		
			
				|  |  | -    white-space: break-spaces;
 | 
	
		
			
				|  |  | -    height: 30px;
 | 
	
		
			
				|  |  | +    bottom: 0;
 | 
	
		
			
				|  |  | +    z-index: 999;
 | 
	
		
			
				|  |  | +    background: #ebedf0;
 | 
	
		
			
				|  |  | +    text-align: center;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .van-button {
 | 
	
		
			
				|  |  | +      width: 95%;
 | 
	
		
			
				|  |  | +      margin-top: 10px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .okAll {
 | 
	
		
			
				|  |  | +    background-color: #fff;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    justify-content: center;
 | 
	
		
			
				|  |  | +    align-items: center;
 | 
	
		
			
				|  |  | +    height: 50px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  .cancel_icon {
 | 
	
		
			
				|  |  | -    position: absolute;
 | 
	
		
			
				|  |  | -    font-size: 30px;
 | 
	
		
			
				|  |  | -    right: 5px;
 | 
	
		
			
				|  |  | -    top: 2px;
 | 
	
		
			
				|  |  | +  .nfc-img {
 | 
	
		
			
				|  |  | +    display: inline-block;
 | 
	
		
			
				|  |  | +    width: 160px;
 | 
	
		
			
				|  |  | +    height: 160px;
 | 
	
		
			
				|  |  | +    margin: 0 10px;
 | 
	
		
			
				|  |  | +    position: relative;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    > img {
 | 
	
		
			
				|  |  | +      width: 100%;
 | 
	
		
			
				|  |  | +      height: 100%;
 | 
	
		
			
				|  |  | +      border: none;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    > span {
 | 
	
		
			
				|  |  | +      position: absolute;
 | 
	
		
			
				|  |  | +      padding: 0 10px;
 | 
	
		
			
				|  |  | +      bottom: 0;
 | 
	
		
			
				|  |  | +      left: 0;
 | 
	
		
			
				|  |  | +      display: block;
 | 
	
		
			
				|  |  | +      width: 100%;
 | 
	
		
			
				|  |  | +      background-color: rgba(0, 0, 0, 0.2);
 | 
	
		
			
				|  |  | +      color: #eaeaea;
 | 
	
		
			
				|  |  | +      font-size: 5px;
 | 
	
		
			
				|  |  | +      overflow: hidden;
 | 
	
		
			
				|  |  | +      text-overflow: ellipsis;
 | 
	
		
			
				|  |  | +      line-height: 30px;
 | 
	
		
			
				|  |  | +      white-space: break-spaces;
 | 
	
		
			
				|  |  | +      height: 30px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .cancel_icon {
 | 
	
		
			
				|  |  | +      position: absolute;
 | 
	
		
			
				|  |  | +      font-size: 30px;
 | 
	
		
			
				|  |  | +      right: 5px;
 | 
	
		
			
				|  |  | +      top: 2px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  </style>
 |