|
|
@@ -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>
|