|  | @@ -84,7 +84,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        <div class="card">
 | 
	
		
			
				|  |  |          <van-row>
 | 
	
		
			
				|  |  | -          <van-col span="16">
 | 
	
		
			
				|  |  | +          <van-col span="14">
 | 
	
		
			
				|  |  |              <van-cell @click="showDetail(0)">
 | 
	
		
			
				|  |  |                <template #title>
 | 
	
		
			
				|  |  |                  <span>NFC</span>
 | 
	
	
		
			
				|  | @@ -101,7 +101,7 @@
 | 
	
		
			
				|  |  |                </template>
 | 
	
		
			
				|  |  |              </van-cell>
 | 
	
		
			
				|  |  |            </van-col>
 | 
	
		
			
				|  |  | -          <van-col span="8">
 | 
	
		
			
				|  |  | +          <van-col span="10">
 | 
	
		
			
				|  |  |              <van-cell>
 | 
	
		
			
				|  |  |                <div class="okAll">
 | 
	
		
			
				|  |  |                  <!--                <van-button type="default" icon="checked" size="small" @click="changeSwitch">一键正常</van-button>-->
 | 
	
	
		
			
				|  | @@ -268,821 +268,821 @@
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import { ImagePreview, Dialog } from 'vant'
 | 
	
		
			
				|  |  | -import NavBar from '@/components/NavBar/index.vue'
 | 
	
		
			
				|  |  | -import Uploader from '@/components/upload/gxuploader.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/gxmore'
 | 
	
		
			
				|  |  | -import { imgUrl } from '@/utils'
 | 
	
		
			
				|  |  | -import dayjs from 'dayjs'
 | 
	
		
			
				|  |  | -import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | -import { ref } from 'vue'
 | 
	
		
			
				|  |  | -import { uploadBase64 } from '@/api/public'
 | 
	
		
			
				|  |  | +  import { ImagePreview, Dialog } from 'vant'
 | 
	
		
			
				|  |  | +  import NavBar from '@/components/NavBar/index.vue'
 | 
	
		
			
				|  |  | +  import Uploader from '@/components/upload/gxuploader.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/gxmore'
 | 
	
		
			
				|  |  | +  import { imgUrl } from '@/utils'
 | 
	
		
			
				|  |  | +  import dayjs from 'dayjs'
 | 
	
		
			
				|  |  | +  import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | +  import { ref } from 'vue'
 | 
	
		
			
				|  |  | +  import { uploadBase64 } from '@/api/public'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -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: [],
 | 
	
		
			
				|  |  | -      areasMap: {},
 | 
	
		
			
				|  |  | -      checks: [],
 | 
	
		
			
				|  |  | -      nfcs: [],
 | 
	
		
			
				|  |  | -      selectRadio: {},
 | 
	
		
			
				|  |  | -      total_show: false,
 | 
	
		
			
				|  |  | -      enable: false,
 | 
	
		
			
				|  |  | -      activeNames: [],
 | 
	
		
			
				|  |  | -      dayList: [15, 30, 90, 180],
 | 
	
		
			
				|  |  | -      yesList: [],
 | 
	
		
			
				|  |  | -      noList: [],
 | 
	
		
			
				|  |  | -      areaYesList: [],
 | 
	
		
			
				|  |  | -      areaNoList: [],
 | 
	
		
			
				|  |  | -      sheetYesList: [],
 | 
	
		
			
				|  |  | -      sheetNoList: [],
 | 
	
		
			
				|  |  | -      loading: false,
 | 
	
		
			
				|  |  | -      finished: false,
 | 
	
		
			
				|  |  | -      selectArea: null,
 | 
	
		
			
				|  |  | -      showButton: true,
 | 
	
		
			
				|  |  | -      preViewImages: {
 | 
	
		
			
				|  |  | -        images: [],
 | 
	
		
			
				|  |  | -        startPosition: 0
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      timer: null,
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  computed: {
 | 
	
		
			
				|  |  | -    ...mapGetters(['id']),
 | 
	
		
			
				|  |  | -    calcProgress() {
 | 
	
		
			
				|  |  | -      let p = (
 | 
	
		
			
				|  |  | -        ((this.resumptionData.yesPointNums + this.yesList.length) /
 | 
	
		
			
				|  |  | -          (this.resumptionData.yesPointNums + this.resumptionData.noPointNums + this.yesList.length + this.noList.length)) *
 | 
	
		
			
				|  |  | -        100
 | 
	
		
			
				|  |  | -      ).toFixed(2)
 | 
	
		
			
				|  |  | +  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: [],
 | 
	
		
			
				|  |  | +        areasMap: {},
 | 
	
		
			
				|  |  | +        checks: [],
 | 
	
		
			
				|  |  | +        nfcs: [],
 | 
	
		
			
				|  |  | +        selectRadio: {},
 | 
	
		
			
				|  |  | +        total_show: false,
 | 
	
		
			
				|  |  | +        enable: false,
 | 
	
		
			
				|  |  | +        activeNames: [],
 | 
	
		
			
				|  |  | +        dayList: [15, 30, 90, 180],
 | 
	
		
			
				|  |  | +        yesList: [],
 | 
	
		
			
				|  |  | +        noList: [],
 | 
	
		
			
				|  |  | +        areaYesList: [],
 | 
	
		
			
				|  |  | +        areaNoList: [],
 | 
	
		
			
				|  |  | +        sheetYesList: [],
 | 
	
		
			
				|  |  | +        sheetNoList: [],
 | 
	
		
			
				|  |  | +        loading: false,
 | 
	
		
			
				|  |  | +        finished: false,
 | 
	
		
			
				|  |  | +        selectArea: null,
 | 
	
		
			
				|  |  | +        showButton: true,
 | 
	
		
			
				|  |  | +        preViewImages: {
 | 
	
		
			
				|  |  | +          images: [],
 | 
	
		
			
				|  |  | +          startPosition: 0
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        timer: null,
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    computed: {
 | 
	
		
			
				|  |  | +      ...mapGetters(['id']),
 | 
	
		
			
				|  |  | +      calcProgress() {
 | 
	
		
			
				|  |  | +        let p = (
 | 
	
		
			
				|  |  | +          ((this.resumptionData.yesPointNums + this.yesList.length) /
 | 
	
		
			
				|  |  | +            (this.resumptionData.yesPointNums + this.resumptionData.noPointNums + this.yesList.length + this.noList.length)) *
 | 
	
		
			
				|  |  | +          100
 | 
	
		
			
				|  |  | +        ).toFixed(2)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      if (window.isNaN(p)) return 0
 | 
	
		
			
				|  |  | +        if (window.isNaN(p)) return 0
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      return p
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  mounted() {
 | 
	
		
			
				|  |  | -    this.getResumptionData()
 | 
	
		
			
				|  |  | -    window.openNFCScanCallBack = this.openNFCScanCallBack
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  created() {
 | 
	
		
			
				|  |  | -    getDict('rectification_deadline').then(res => {
 | 
	
		
			
				|  |  | -      let { data } = res
 | 
	
		
			
				|  |  | -      this.dayList = data
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  methods: {
 | 
	
		
			
				|  |  | -    showButtoFun(vel) {
 | 
	
		
			
				|  |  | -      if (val === 1) {
 | 
	
		
			
				|  |  | -        this.showButton = false
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      if (val === 2) {
 | 
	
		
			
				|  |  | -        this.showButton = true
 | 
	
		
			
				|  |  | +        return p
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    //长度校验
 | 
	
		
			
				|  |  | -    validator(val) {
 | 
	
		
			
				|  |  | -      let len = val.length
 | 
	
		
			
				|  |  | -      if (len > 200) {
 | 
	
		
			
				|  |  | -        this.$toast.fail('问题情况输入长度不能超过200')
 | 
	
		
			
				|  |  | -        return false
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        return true
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    mounted() {
 | 
	
		
			
				|  |  | +      this.getResumptionData()
 | 
	
		
			
				|  |  | +      window.openNFCScanCallBack = this.openNFCScanCallBack
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    checkNFC() {
 | 
	
		
			
				|  |  | -      this.useNFC()
 | 
	
		
			
				|  |  | -      this.$toast.loading({
 | 
	
		
			
				|  |  | -        duration: 0, // 持续展示 toast
 | 
	
		
			
				|  |  | -        position: 'top',
 | 
	
		
			
				|  |  | -        forbidClick: true,
 | 
	
		
			
				|  |  | -        message: '请靠近NFC标签,进行扫描!'
 | 
	
		
			
				|  |  | +    created() {
 | 
	
		
			
				|  |  | +      getDict('rectification_deadline').then(res => {
 | 
	
		
			
				|  |  | +        let { data } = res
 | 
	
		
			
				|  |  | +        this.dayList = data
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      let second = 15
 | 
	
		
			
				|  |  | -      this.timer = setInterval(() => {
 | 
	
		
			
				|  |  | -        second--
 | 
	
		
			
				|  |  | -        if (!second) {
 | 
	
		
			
				|  |  | -          this.$toast.clear()
 | 
	
		
			
				|  |  | -          clearInterval(this.timer)
 | 
	
		
			
				|  |  | -          this.$toast({
 | 
	
		
			
				|  |  | -            type: 'fail',
 | 
	
		
			
				|  |  | -            position: 'top',
 | 
	
		
			
				|  |  | -            message: '未扫描到任何信息!'
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      }, 1000)
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    openNFCScanCallBack(nfcStr) {
 | 
	
		
			
				|  |  | -      clearInterval(this.timer)
 | 
	
		
			
				|  |  | -      let nfcCode = ''
 | 
	
		
			
				|  |  | -      try {
 | 
	
		
			
				|  |  | -        let nfc = JSON.parse(nfcStr)
 | 
	
		
			
				|  |  | -        nfcCode = nfc.content
 | 
	
		
			
				|  |  | -      } catch (e) {
 | 
	
		
			
				|  |  | -        nfcCode = nfcStr.content
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.checkNfcFilter(nfcCode)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    checkNfcFilter(nfcCode) {
 | 
	
		
			
				|  |  | -      let areaId = null
 | 
	
		
			
				|  |  | -      let checkOk = false
 | 
	
		
			
				|  |  | -      this.nfcs.forEach(v => {
 | 
	
		
			
				|  |  | -        if (v.nfcCode === nfcCode) {
 | 
	
		
			
				|  |  | -          areaId = v.areaId
 | 
	
		
			
				|  |  | -          this.switchArea(areaId)
 | 
	
		
			
				|  |  | -          if (v.status === 1) {
 | 
	
		
			
				|  |  | -            // this.$toast.fail('NFC点位:' + v.nfcName + '已扫描,请勿重复扫描!');
 | 
	
		
			
				|  |  | +    methods: {
 | 
	
		
			
				|  |  | +      showButtoFun(vel) {
 | 
	
		
			
				|  |  | +        if (val === 1) {
 | 
	
		
			
				|  |  | +          this.showButton = false
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (val === 2) {
 | 
	
		
			
				|  |  | +          this.showButton = true
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      //长度校验
 | 
	
		
			
				|  |  | +      validator(val) {
 | 
	
		
			
				|  |  | +        let len = val.length
 | 
	
		
			
				|  |  | +        if (len > 200) {
 | 
	
		
			
				|  |  | +          this.$toast.fail('问题情况输入长度不能超过200')
 | 
	
		
			
				|  |  | +          return false
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          return true
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      checkNFC() {
 | 
	
		
			
				|  |  | +        this.useNFC()
 | 
	
		
			
				|  |  | +        this.$toast.loading({
 | 
	
		
			
				|  |  | +          duration: 0, // 持续展示 toast
 | 
	
		
			
				|  |  | +          position: 'top',
 | 
	
		
			
				|  |  | +          forbidClick: true,
 | 
	
		
			
				|  |  | +          message: '请靠近NFC标签,进行扫描!'
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let second = 15
 | 
	
		
			
				|  |  | +        this.timer = setInterval(() => {
 | 
	
		
			
				|  |  | +          second--
 | 
	
		
			
				|  |  | +          if (!second) {
 | 
	
		
			
				|  |  | +            this.$toast.clear()
 | 
	
		
			
				|  |  | +            clearInterval(this.timer)
 | 
	
		
			
				|  |  |              this.$toast({
 | 
	
		
			
				|  |  |                type: 'fail',
 | 
	
		
			
				|  |  | -              message: 'NFC点位:' + v.nfcName + '已扫描,请勿重复扫描!',
 | 
	
		
			
				|  |  | +              position: 'top',
 | 
	
		
			
				|  |  | +              message: '未扫描到任何信息!'
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }, 1000)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      openNFCScanCallBack(nfcStr) {
 | 
	
		
			
				|  |  | +        clearInterval(this.timer)
 | 
	
		
			
				|  |  | +        let nfcCode = ''
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +          let nfc = JSON.parse(nfcStr)
 | 
	
		
			
				|  |  | +          nfcCode = nfc.content
 | 
	
		
			
				|  |  | +        } catch (e) {
 | 
	
		
			
				|  |  | +          nfcCode = nfcStr.content
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.checkNfcFilter(nfcCode)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      checkNfcFilter(nfcCode) {
 | 
	
		
			
				|  |  | +        let areaId = null
 | 
	
		
			
				|  |  | +        let checkOk = false
 | 
	
		
			
				|  |  | +        this.nfcs.forEach(v => {
 | 
	
		
			
				|  |  | +          if (v.nfcCode === nfcCode) {
 | 
	
		
			
				|  |  | +            areaId = v.areaId
 | 
	
		
			
				|  |  | +            this.switchArea(areaId)
 | 
	
		
			
				|  |  | +            if (v.status === 1) {
 | 
	
		
			
				|  |  | +              // this.$toast.fail('NFC点位:' + v.nfcName + '已扫描,请勿重复扫描!');
 | 
	
		
			
				|  |  | +              this.$toast({
 | 
	
		
			
				|  |  | +                type: 'fail',
 | 
	
		
			
				|  |  | +                message: 'NFC点位:' + v.nfcName + '已扫描,请勿重复扫描!',
 | 
	
		
			
				|  |  | +                position: 'top'
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +              throw new Error('NFC点位:' + v.nfcName + '已扫描,请勿重复扫描!')
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            v.status = 1
 | 
	
		
			
				|  |  | +            v.scanMethod = 2
 | 
	
		
			
				|  |  | +            v.submitTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 | 
	
		
			
				|  |  | +            v.submitBy = this.id
 | 
	
		
			
				|  |  | +            // this.$toast.success('NFC点位:' + v.nfcName + '扫描成功!');
 | 
	
		
			
				|  |  | +            this.$toast({
 | 
	
		
			
				|  |  | +              type: 'success',
 | 
	
		
			
				|  |  | +              message: 'NFC点位:' + v.nfcName + '扫描成功!',
 | 
	
		
			
				|  |  |                position: 'top'
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            throw new Error('NFC点位:' + v.nfcName + '已扫描,请勿重复扫描!')
 | 
	
		
			
				|  |  | +            checkOk = true
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          v.status = 1
 | 
	
		
			
				|  |  | -          v.scanMethod = 2
 | 
	
		
			
				|  |  | -          v.submitTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 | 
	
		
			
				|  |  | -          v.submitBy = this.id
 | 
	
		
			
				|  |  | -          // this.$toast.success('NFC点位:' + v.nfcName + '扫描成功!');
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.updateNFC(1, nfcCode)
 | 
	
		
			
				|  |  | +        if (!checkOk) {
 | 
	
		
			
				|  |  | +          // this.$toast.fail(nfcCode + ",不在本次履职范围内!");
 | 
	
		
			
				|  |  |            this.$toast({
 | 
	
		
			
				|  |  | -            type: 'success',
 | 
	
		
			
				|  |  | -            message: 'NFC点位:' + v.nfcName + '扫描成功!',
 | 
	
		
			
				|  |  | +            type: 'fail',
 | 
	
		
			
				|  |  | +            message: '此NFC标签,不在本次履职范围内!',
 | 
	
		
			
				|  |  |              position: 'top'
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          checkOk = true
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      this.updateNFC(1, nfcCode)
 | 
	
		
			
				|  |  | -      if (!checkOk) {
 | 
	
		
			
				|  |  | -        // this.$toast.fail(nfcCode + ",不在本次履职范围内!");
 | 
	
		
			
				|  |  | -        this.$toast({
 | 
	
		
			
				|  |  | -          type: 'fail',
 | 
	
		
			
				|  |  | -          message: '此NFC标签,不在本次履职范围内!',
 | 
	
		
			
				|  |  | -          position: 'top'
 | 
	
		
			
				|  |  | +        this.validateArea(areaId)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      switchArea(areaId) {
 | 
	
		
			
				|  |  | +        this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | +          if (areaId === area.areaId) {
 | 
	
		
			
				|  |  | +            this.activeArea(area, i)
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.validateArea(areaId)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    switchArea(areaId) {
 | 
	
		
			
				|  |  | -      this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | -        if (areaId === area.areaId) {
 | 
	
		
			
				|  |  | -          this.activeArea(area, i)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      useNFC() {
 | 
	
		
			
				|  |  | +        let system = this.isAndroidOrIos()
 | 
	
		
			
				|  |  | +        const parms = {
 | 
	
		
			
				|  |  | +          iOS_SessionType: '0'
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    useNFC() {
 | 
	
		
			
				|  |  | -      let system = this.isAndroidOrIos()
 | 
	
		
			
				|  |  | -      const parms = {
 | 
	
		
			
				|  |  | -        iOS_SessionType: '0'
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      if (system === 1) {
 | 
	
		
			
				|  |  | -        //android
 | 
	
		
			
				|  |  | -        // 判断当前环境是是否存在 js桥 'sap'
 | 
	
		
			
				|  |  | -        const hasSap = window.hasOwnProperty('sap')
 | 
	
		
			
				|  |  | -        if (hasSap) {
 | 
	
		
			
				|  |  | -          // 判断是否存在方法 ?preview
 | 
	
		
			
				|  |  | -          const fun = sap.hasOwnProperty('openNFCScan')
 | 
	
		
			
				|  |  | -          if (fun) {
 | 
	
		
			
				|  |  | -            sap.openNFCScan(JSON.stringify(parms))
 | 
	
		
			
				|  |  | +        if (system === 1) {
 | 
	
		
			
				|  |  | +          //android
 | 
	
		
			
				|  |  | +          // 判断当前环境是是否存在 js桥 'sap'
 | 
	
		
			
				|  |  | +          const hasSap = window.hasOwnProperty('sap')
 | 
	
		
			
				|  |  | +          if (hasSap) {
 | 
	
		
			
				|  |  | +            // 判断是否存在方法 ?preview
 | 
	
		
			
				|  |  | +            const fun = sap.hasOwnProperty('openNFCScan')
 | 
	
		
			
				|  |  | +            if (fun) {
 | 
	
		
			
				|  |  | +              sap.openNFCScan(JSON.stringify(parms))
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      if (system === 2) {
 | 
	
		
			
				|  |  | -        //ios
 | 
	
		
			
				|  |  | -        // 判断 ios是否存在方法 preview
 | 
	
		
			
				|  |  | -        const fun = window.webkit.messageHandlers.hasOwnProperty('openNFCScan')
 | 
	
		
			
				|  |  | -        if (fun) {
 | 
	
		
			
				|  |  | -          window.webkit.messageHandlers.openNFCScan.postMessage(JSON.stringify(parms))
 | 
	
		
			
				|  |  | +        if (system === 2) {
 | 
	
		
			
				|  |  | +          //ios
 | 
	
		
			
				|  |  | +          // 判断 ios是否存在方法 preview
 | 
	
		
			
				|  |  | +          const fun = window.webkit.messageHandlers.hasOwnProperty('openNFCScan')
 | 
	
		
			
				|  |  | +          if (fun) {
 | 
	
		
			
				|  |  | +            window.webkit.messageHandlers.openNFCScan.postMessage(JSON.stringify(parms))
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    isAndroidOrIos() {
 | 
	
		
			
				|  |  | -      const urls = navigator.userAgent
 | 
	
		
			
				|  |  | -      let isAndroid = urls.indexOf('Android') > -1 || urls.indexOf('Linux') > -1
 | 
	
		
			
				|  |  | -      let isIos = !!urls.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
 | 
	
		
			
				|  |  | -      if (isAndroid) {
 | 
	
		
			
				|  |  | -        return 1
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      if (isIos) {
 | 
	
		
			
				|  |  | -        return 2
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    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
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      isAndroidOrIos() {
 | 
	
		
			
				|  |  | +        const urls = navigator.userAgent
 | 
	
		
			
				|  |  | +        let isAndroid = urls.indexOf('Android') > -1 || urls.indexOf('Linux') > -1
 | 
	
		
			
				|  |  | +        let isIos = !!urls.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
 | 
	
		
			
				|  |  | +        if (isAndroid) {
 | 
	
		
			
				|  |  | +          return 1
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (isIos) {
 | 
	
		
			
				|  |  | +          return 2
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      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
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        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
 | 
	
		
			
				|  |  | -        let obj = {}
 | 
	
		
			
				|  |  | -        let tts = {}
 | 
	
		
			
				|  |  | -        res.data.areas.forEach(function (v, i) {
 | 
	
		
			
				|  |  | -          obj[v.areaId] = v.areaName
 | 
	
		
			
				|  |  | -          tts[v.areaId] = 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
 | 
	
		
			
				|  |  | +          let obj = {}
 | 
	
		
			
				|  |  | +          let tts = {}
 | 
	
		
			
				|  |  | +          res.data.areas.forEach(function (v, i) {
 | 
	
		
			
				|  |  | +            obj[v.areaId] = v.areaName
 | 
	
		
			
				|  |  | +            tts[v.areaId] = 0
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          this.selectArea = tts
 | 
	
		
			
				|  |  | +          this.areasMap = obj
 | 
	
		
			
				|  |  | +          this.activeArea(this.areas[0], 0)
 | 
	
		
			
				|  |  | +          this.openCollapseItems()
 | 
	
		
			
				|  |  | +          this.updateNFC(0)
 | 
	
		
			
				|  |  | +          this.validateAreaAll()
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -        this.selectArea = tts
 | 
	
		
			
				|  |  | -        this.areasMap = obj
 | 
	
		
			
				|  |  | -        this.activeArea(this.areas[0], 0)
 | 
	
		
			
				|  |  | -        this.openCollapseItems()
 | 
	
		
			
				|  |  | -        this.updateNFC(0)
 | 
	
		
			
				|  |  | -        this.validateAreaAll()
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    openCollapseItems() {
 | 
	
		
			
				|  |  | -      let len = this.checks.length
 | 
	
		
			
				|  |  | -      for (let i = 0; i < len; i++) {
 | 
	
		
			
				|  |  | -        let title = this.checks[i].itemName
 | 
	
		
			
				|  |  | -        this.activeNames.push(title)
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    changeAreaSwitch(areaId) {
 | 
	
		
			
				|  |  | -      let num = 0
 | 
	
		
			
				|  |  | -      let total = 0
 | 
	
		
			
				|  |  | -      for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | -        total = total + this.checks[i].points.length
 | 
	
		
			
				|  |  | -        for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | -          if (this.checks[i].areaId === areaId) {
 | 
	
		
			
				|  |  | -            this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  | -            num++
 | 
	
		
			
				|  |  | -          } else {
 | 
	
		
			
				|  |  | -            if (this.checks[i].points[j].dataStatus === 2) {
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      openCollapseItems() {
 | 
	
		
			
				|  |  | +        let len = this.checks.length
 | 
	
		
			
				|  |  | +        for (let i = 0; i < len; i++) {
 | 
	
		
			
				|  |  | +          let title = this.checks[i].itemName
 | 
	
		
			
				|  |  | +          this.activeNames.push(title)
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      changeAreaSwitch(areaId) {
 | 
	
		
			
				|  |  | +        let num = 0
 | 
	
		
			
				|  |  | +        let total = 0
 | 
	
		
			
				|  |  | +        for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | +          total = total + this.checks[i].points.length
 | 
	
		
			
				|  |  | +          for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | +            if (this.checks[i].areaId === areaId) {
 | 
	
		
			
				|  |  | +              this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  |                num++
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              if (this.checks[i].points[j].dataStatus === 2) {
 | 
	
		
			
				|  |  | +                num++
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.resumptionData.yesPointNums = num
 | 
	
		
			
				|  |  | -      this.resumptionData.noPointNums = total - num
 | 
	
		
			
				|  |  | -      this.validateAreaAll()
 | 
	
		
			
				|  |  | -      this.openCollapseItems()
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    changeSwitch() {
 | 
	
		
			
				|  |  | -      let num = 0
 | 
	
		
			
				|  |  | -      let total = 0
 | 
	
		
			
				|  |  | -      for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | -        total = total + this.checks[i].points.length
 | 
	
		
			
				|  |  | -        for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | -          if (this.checks[i].areaId === this.areaId) {
 | 
	
		
			
				|  |  | -            this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  | -            num++
 | 
	
		
			
				|  |  | -          } else {
 | 
	
		
			
				|  |  | -            if (this.checks[i].points[j].dataStatus === 2) {
 | 
	
		
			
				|  |  | +        this.resumptionData.yesPointNums = num
 | 
	
		
			
				|  |  | +        this.resumptionData.noPointNums = total - num
 | 
	
		
			
				|  |  | +        this.validateAreaAll()
 | 
	
		
			
				|  |  | +        this.openCollapseItems()
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      changeSwitch() {
 | 
	
		
			
				|  |  | +        let num = 0
 | 
	
		
			
				|  |  | +        let total = 0
 | 
	
		
			
				|  |  | +        for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | +          total = total + this.checks[i].points.length
 | 
	
		
			
				|  |  | +          for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | +            if (this.checks[i].areaId === this.areaId) {
 | 
	
		
			
				|  |  | +              this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  |                num++
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              if (this.checks[i].points[j].dataStatus === 2) {
 | 
	
		
			
				|  |  | +                num++
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.resumptionData.yesPointNums = num
 | 
	
		
			
				|  |  | -      this.resumptionData.noPointNums = total - num
 | 
	
		
			
				|  |  | -      this.validateAreaAll()
 | 
	
		
			
				|  |  | -      this.openCollapseItems()
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    validateAreaAll() {
 | 
	
		
			
				|  |  | -      this.areas.forEach((item, index) => {
 | 
	
		
			
				|  |  | -        this.validateArea(item.areaId)
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    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
 | 
	
		
			
				|  |  | -      let loading = 0
 | 
	
		
			
				|  |  | -      //完成NFC扫描的数量
 | 
	
		
			
				|  |  | -      let nfc_num = 0
 | 
	
		
			
				|  |  | -      let nfc_no = 0
 | 
	
		
			
				|  |  | -      this.checks.forEach(item => {
 | 
	
		
			
				|  |  | -        let pointList = item.points
 | 
	
		
			
				|  |  | -        pointList.forEach(point => {
 | 
	
		
			
				|  |  | -          if (item.areaId === areaId) {
 | 
	
		
			
				|  |  | -            total++
 | 
	
		
			
				|  |  | -            if (point.dataStatus === 2) {
 | 
	
		
			
				|  |  | -              yes++
 | 
	
		
			
				|  |  | -              if (point.resValue === 1) {
 | 
	
		
			
				|  |  | -                if (point.resRemark === null || point.resRemark === '' || point.rectificationDeadline === null) {
 | 
	
		
			
				|  |  | -                  loading++
 | 
	
		
			
				|  |  | +        this.resumptionData.yesPointNums = num
 | 
	
		
			
				|  |  | +        this.resumptionData.noPointNums = total - num
 | 
	
		
			
				|  |  | +        this.validateAreaAll()
 | 
	
		
			
				|  |  | +        this.openCollapseItems()
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      validateAreaAll() {
 | 
	
		
			
				|  |  | +        this.areas.forEach((item, index) => {
 | 
	
		
			
				|  |  | +          this.validateArea(item.areaId)
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      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
 | 
	
		
			
				|  |  | +        let loading = 0
 | 
	
		
			
				|  |  | +        //完成NFC扫描的数量
 | 
	
		
			
				|  |  | +        let nfc_num = 0
 | 
	
		
			
				|  |  | +        let nfc_no = 0
 | 
	
		
			
				|  |  | +        this.checks.forEach(item => {
 | 
	
		
			
				|  |  | +          let pointList = item.points
 | 
	
		
			
				|  |  | +          pointList.forEach(point => {
 | 
	
		
			
				|  |  | +            if (item.areaId === areaId) {
 | 
	
		
			
				|  |  | +              total++
 | 
	
		
			
				|  |  | +              if (point.dataStatus === 2) {
 | 
	
		
			
				|  |  | +                yes++
 | 
	
		
			
				|  |  | +                if (point.resValue === 1) {
 | 
	
		
			
				|  |  | +                  if (point.resRemark === null || point.resRemark === '' || point.rectificationDeadline === null) {
 | 
	
		
			
				|  |  | +                    loading++
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        this.nfcs.forEach(nfc => {
 | 
	
		
			
				|  |  | -          if (areaId === nfc.areaId) {
 | 
	
		
			
				|  |  | -            nfc_num++
 | 
	
		
			
				|  |  | -            if (nfc.status === 0) {
 | 
	
		
			
				|  |  | -              nfc_no++
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          this.nfcs.forEach(nfc => {
 | 
	
		
			
				|  |  | +            if (areaId === nfc.areaId) {
 | 
	
		
			
				|  |  | +              nfc_num++
 | 
	
		
			
				|  |  | +              if (nfc.status === 0) {
 | 
	
		
			
				|  |  | +                nfc_no++
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      // 0:未开始,2:进行中,1已完成
 | 
	
		
			
				|  |  | -      let areaStatus = '0'
 | 
	
		
			
				|  |  | -      if (total === yes && nfc_no === 0) {
 | 
	
		
			
				|  |  | -        //检查项完成检查,nfc完成扫描,或者没有nfc扫描
 | 
	
		
			
				|  |  | -        areaStatus = '1'
 | 
	
		
			
				|  |  | -        if (loading > 0) {
 | 
	
		
			
				|  |  | +        // 0:未开始,2:进行中,1已完成
 | 
	
		
			
				|  |  | +        let areaStatus = '0'
 | 
	
		
			
				|  |  | +        if (total === yes && nfc_no === 0) {
 | 
	
		
			
				|  |  | +          //检查项完成检查,nfc完成扫描,或者没有nfc扫描
 | 
	
		
			
				|  |  | +          areaStatus = '1'
 | 
	
		
			
				|  |  | +          if (loading > 0) {
 | 
	
		
			
				|  |  | +            areaStatus = '2'
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        } else if (yes === 0 && nfc_no === nfc_num) {
 | 
	
		
			
				|  |  | +          //检查项完成检查项为0,nfc也没动
 | 
	
		
			
				|  |  | +          areaStatus = '0'
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  |            areaStatus = '2'
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      } else if (yes === 0 && nfc_no === nfc_num) {
 | 
	
		
			
				|  |  | -        //检查项完成检查项为0,nfc也没动
 | 
	
		
			
				|  |  | -        areaStatus = '0'
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        areaStatus = '2'
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      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.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
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      if (arr.length > 0) {
 | 
	
		
			
				|  |  | -        let nfcs = []
 | 
	
		
			
				|  |  | -        for (const nfc of arr) {
 | 
	
		
			
				|  |  | -          let pro = {}
 | 
	
		
			
				|  |  | -          pro.checkName = nfc.nfcName
 | 
	
		
			
				|  |  | -          pro.nfccdoe = nfc.nfcCode
 | 
	
		
			
				|  |  | -          nfcs.push(pro)
 | 
	
		
			
				|  |  | +        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)
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          this.$toast.fail({
 | 
	
		
			
				|  |  | +            message: '该区域没有需要扫描的NFC!',
 | 
	
		
			
				|  |  | +            position: 'top'
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        this.$refs.NfcPopup.show(nfcs)
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        this.$toast.fail({
 | 
	
		
			
				|  |  | -          message: '该区域没有需要扫描的NFC!',
 | 
	
		
			
				|  |  | -          position: 'top'
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    cancelImg(imgItem) {
 | 
	
		
			
				|  |  | -      this.updateNFC(2, imgItem.nfcCode, imgItem)
 | 
	
		
			
				|  |  | -      this.validateArea(this.areaId)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    changeNfcImg(imgItem) {
 | 
	
		
			
				|  |  | -      this.updateNFC(1, imgItem.nfcCode, imgItem)
 | 
	
		
			
				|  |  | -      this.validateArea(this.areaId)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    updateNFC(type, nfcCode, imgItem) {
 | 
	
		
			
				|  |  | -      //type 1 表示新增加扫描的数据,2 表示新增未扫描的数量,0 未做任何操作
 | 
	
		
			
				|  |  | -      //nfcCode 代表扫描和减少的nfc数据。
 | 
	
		
			
				|  |  | -      //更新全局nfc已扫描 和未扫描
 | 
	
		
			
				|  |  | -      this.yesList = []
 | 
	
		
			
				|  |  | -      this.noList = []
 | 
	
		
			
				|  |  | -      this.areaYesList = []
 | 
	
		
			
				|  |  | -      this.areaNoList = []
 | 
	
		
			
				|  |  | -      this.nfcs.forEach(item => {
 | 
	
		
			
				|  |  | -        if (type === 1) {
 | 
	
		
			
				|  |  | -          //新增扫描到的标签
 | 
	
		
			
				|  |  | -          if (nfcCode === item.nfcCode) {
 | 
	
		
			
				|  |  | -            item.status = 1
 | 
	
		
			
				|  |  | -            item.submitTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 | 
	
		
			
				|  |  | -            item.submitBy = this.id
 | 
	
		
			
				|  |  | -            if (imgItem) {
 | 
	
		
			
				|  |  | -              item.scanMethod = 1
 | 
	
		
			
				|  |  | -              //拍照NFC特殊处理
 | 
	
		
			
				|  |  | -              item.img = imgItem.url
 | 
	
		
			
				|  |  | -              this.currentImgNFC.push(item)
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -              item.scanMethod = 0
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      cancelImg(imgItem) {
 | 
	
		
			
				|  |  | +        this.updateNFC(2, imgItem.nfcCode, imgItem)
 | 
	
		
			
				|  |  | +        this.validateArea(this.areaId)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      changeNfcImg(imgItem) {
 | 
	
		
			
				|  |  | +        this.updateNFC(1, imgItem.nfcCode, imgItem)
 | 
	
		
			
				|  |  | +        this.validateArea(this.areaId)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      updateNFC(type, nfcCode, imgItem) {
 | 
	
		
			
				|  |  | +        //type 1 表示新增加扫描的数据,2 表示新增未扫描的数量,0 未做任何操作
 | 
	
		
			
				|  |  | +        //nfcCode 代表扫描和减少的nfc数据。
 | 
	
		
			
				|  |  | +        //更新全局nfc已扫描 和未扫描
 | 
	
		
			
				|  |  | +        this.yesList = []
 | 
	
		
			
				|  |  | +        this.noList = []
 | 
	
		
			
				|  |  | +        this.areaYesList = []
 | 
	
		
			
				|  |  | +        this.areaNoList = []
 | 
	
		
			
				|  |  | +        this.nfcs.forEach(item => {
 | 
	
		
			
				|  |  | +          if (type === 1) {
 | 
	
		
			
				|  |  | +            //新增扫描到的标签
 | 
	
		
			
				|  |  | +            if (nfcCode === item.nfcCode) {
 | 
	
		
			
				|  |  | +              item.status = 1
 | 
	
		
			
				|  |  | +              item.submitTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 | 
	
		
			
				|  |  | +              item.submitBy = this.id
 | 
	
		
			
				|  |  | +              if (imgItem) {
 | 
	
		
			
				|  |  | +                item.scanMethod = 1
 | 
	
		
			
				|  |  | +                //拍照NFC特殊处理
 | 
	
		
			
				|  |  | +                item.img = imgItem.url
 | 
	
		
			
				|  |  | +                this.currentImgNFC.push(item)
 | 
	
		
			
				|  |  | +              } else {
 | 
	
		
			
				|  |  | +                item.scanMethod = 0
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (type === 2) {
 | 
	
		
			
				|  |  | -          //新增未扫描的标签
 | 
	
		
			
				|  |  | -          if (nfcCode === item.nfcCode) {
 | 
	
		
			
				|  |  | -            item.status = 0
 | 
	
		
			
				|  |  | -            item.scanMethod = null
 | 
	
		
			
				|  |  | -            item.submitTime = null
 | 
	
		
			
				|  |  | -            item.submitBy = null
 | 
	
		
			
				|  |  | -            if (item.img) {
 | 
	
		
			
				|  |  | -              //拍照NFC特殊处理
 | 
	
		
			
				|  |  | -              item.img = null
 | 
	
		
			
				|  |  | -              this.currentImgNFC = this.currentImgNFC.filter(v => {
 | 
	
		
			
				|  |  | -                return v.nfcCode !== item.nfcCode
 | 
	
		
			
				|  |  | -              })
 | 
	
		
			
				|  |  | +          if (type === 2) {
 | 
	
		
			
				|  |  | +            //新增未扫描的标签
 | 
	
		
			
				|  |  | +            if (nfcCode === item.nfcCode) {
 | 
	
		
			
				|  |  | +              item.status = 0
 | 
	
		
			
				|  |  | +              item.scanMethod = null
 | 
	
		
			
				|  |  | +              item.submitTime = null
 | 
	
		
			
				|  |  | +              item.submitBy = null
 | 
	
		
			
				|  |  | +              if (item.img) {
 | 
	
		
			
				|  |  | +                //拍照NFC特殊处理
 | 
	
		
			
				|  |  | +                item.img = null
 | 
	
		
			
				|  |  | +                this.currentImgNFC = this.currentImgNFC.filter(v => {
 | 
	
		
			
				|  |  | +                  return v.nfcCode !== item.nfcCode
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        //扫描到nfc
 | 
	
		
			
				|  |  | -        if (item.status === 1) {
 | 
	
		
			
				|  |  | -          this.yesList.push(item)
 | 
	
		
			
				|  |  | -          if (this.areaId === item.areaId) {
 | 
	
		
			
				|  |  | -            this.areaYesList.push(item)
 | 
	
		
			
				|  |  | +          //扫描到nfc
 | 
	
		
			
				|  |  | +          if (item.status === 1) {
 | 
	
		
			
				|  |  | +            this.yesList.push(item)
 | 
	
		
			
				|  |  | +            if (this.areaId === item.areaId) {
 | 
	
		
			
				|  |  | +              this.areaYesList.push(item)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            this.noList.push(item)
 | 
	
		
			
				|  |  | +            if (this.areaId === item.areaId) {
 | 
	
		
			
				|  |  | +              this.areaNoList.push(item)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      showDetail(data) {
 | 
	
		
			
				|  |  | +        if (data === 1) {
 | 
	
		
			
				|  |  | +          this.sheetYesList = this.yesList
 | 
	
		
			
				|  |  | +          this.sheetNoList = this.noList
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -          this.noList.push(item)
 | 
	
		
			
				|  |  | -          if (this.areaId === item.areaId) {
 | 
	
		
			
				|  |  | -            this.areaNoList.push(item)
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +          this.sheetNoList = this.areaNoList
 | 
	
		
			
				|  |  | +          this.sheetYesList = this.areaYesList
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    showDetail(data) {
 | 
	
		
			
				|  |  | -      if (data === 1) {
 | 
	
		
			
				|  |  | -        this.sheetYesList = this.yesList
 | 
	
		
			
				|  |  | -        this.sheetNoList = this.noList
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        this.sheetNoList = this.areaNoList
 | 
	
		
			
				|  |  | -        this.sheetYesList = this.areaYesList
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.total_show = true
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    onLoad() {},
 | 
	
		
			
				|  |  | -    //点击区域
 | 
	
		
			
				|  |  | -    clickArea(area, index) {
 | 
	
		
			
				|  |  | -      this.activeArea(area, index)
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //选中区域时数据变更
 | 
	
		
			
				|  |  | -    activeArea(area, index) {
 | 
	
		
			
				|  |  | -      //获取当前选中区域
 | 
	
		
			
				|  |  | -      this.areaId = area.areaId
 | 
	
		
			
				|  |  | -      this.updateNFC(0)
 | 
	
		
			
				|  |  | -      //设置选中样式
 | 
	
		
			
				|  |  | -      this.$nextTick(() => {
 | 
	
		
			
				|  |  | -        let doms = document.getElementsByClassName('check-area')
 | 
	
		
			
				|  |  | -        Array.prototype.forEach.call(doms, item => {
 | 
	
		
			
				|  |  | -          item.classList.remove('active')
 | 
	
		
			
				|  |  | +        this.total_show = true
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      onLoad() {},
 | 
	
		
			
				|  |  | +      //点击区域
 | 
	
		
			
				|  |  | +      clickArea(area, index) {
 | 
	
		
			
				|  |  | +        this.activeArea(area, index)
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      //选中区域时数据变更
 | 
	
		
			
				|  |  | +      activeArea(area, index) {
 | 
	
		
			
				|  |  | +        //获取当前选中区域
 | 
	
		
			
				|  |  | +        this.areaId = area.areaId
 | 
	
		
			
				|  |  | +        this.updateNFC(0)
 | 
	
		
			
				|  |  | +        //设置选中样式
 | 
	
		
			
				|  |  | +        this.$nextTick(() => {
 | 
	
		
			
				|  |  | +          let doms = document.getElementsByClassName('check-area')
 | 
	
		
			
				|  |  | +          Array.prototype.forEach.call(doms, item => {
 | 
	
		
			
				|  |  | +            item.classList.remove('active')
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          doms[index].classList.add('active')
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -        doms[index].classList.add('active')
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      let nfcs = 0
 | 
	
		
			
				|  |  | -      let current = []
 | 
	
		
			
				|  |  | -      let yesNum = 0
 | 
	
		
			
				|  |  | -      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) {
 | 
	
		
			
				|  |  | -            yesNum++
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          if (nfc.img) {
 | 
	
		
			
				|  |  | -            current.push(nfc)
 | 
	
		
			
				|  |  | +        let nfcs = 0
 | 
	
		
			
				|  |  | +        let current = []
 | 
	
		
			
				|  |  | +        let yesNum = 0
 | 
	
		
			
				|  |  | +        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) {
 | 
	
		
			
				|  |  | +              yesNum++
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (nfc.img) {
 | 
	
		
			
				|  |  | +              current.push(nfc)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.currentImgNFC = current
 | 
	
		
			
				|  |  | -      this.yesNFCnums = yesNum
 | 
	
		
			
				|  |  | -      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('保存成功')
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    submitResumptionData() {
 | 
	
		
			
				|  |  | -      //备份数据
 | 
	
		
			
				|  |  | -      let bakNfcs = this.nfcs
 | 
	
		
			
				|  |  | -      let bakChecks = this.checks
 | 
	
		
			
				|  |  | -      try {
 | 
	
		
			
				|  |  | -        //验证数据
 | 
	
		
			
				|  |  | -        let subNFCS = []
 | 
	
		
			
				|  |  | -        let noNfc = this.nfcs.filter((item, index) => {
 | 
	
		
			
				|  |  | -          if (item.status === 1) {
 | 
	
		
			
				|  |  | -            subNFCS.push(item)
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          if (item.status === 0 && item.pointScan === 1) {
 | 
	
		
			
				|  |  | -            return true
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +        this.currentImgNFC = current
 | 
	
		
			
				|  |  | +        this.yesNFCnums = yesNum
 | 
	
		
			
				|  |  | +        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('保存成功')
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -        if (noNfc.length > 0) {
 | 
	
		
			
				|  |  | -          Dialog.alert({
 | 
	
		
			
				|  |  | -            message: 'NFC标签还未扫描完成,请完成后提交!'
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      submitResumptionData() {
 | 
	
		
			
				|  |  | +        //备份数据
 | 
	
		
			
				|  |  | +        let bakNfcs = this.nfcs
 | 
	
		
			
				|  |  | +        let bakChecks = this.checks
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +          //验证数据
 | 
	
		
			
				|  |  | +          let subNFCS = []
 | 
	
		
			
				|  |  | +          let noNfc = this.nfcs.filter((item, index) => {
 | 
	
		
			
				|  |  | +            if (item.status === 1) {
 | 
	
		
			
				|  |  | +              subNFCS.push(item)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (item.status === 0 && item.pointScan === 1) {
 | 
	
		
			
				|  |  | +              return true
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  | -          throw new Error('NFC标签还未扫描完成,请完成后提交!')
 | 
	
		
			
				|  |  | -          return
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +          if (noNfc.length > 0) {
 | 
	
		
			
				|  |  | +            Dialog.alert({
 | 
	
		
			
				|  |  | +              message: 'NFC标签还未扫描完成,请完成后提交!'
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            throw new Error('NFC标签还未扫描完成,请完成后提交!')
 | 
	
		
			
				|  |  | +            return
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | -          for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | -            let point = this.checks[i].points[j]
 | 
	
		
			
				|  |  | -            let item = this.checks[i]
 | 
	
		
			
				|  |  | -            if (point.resValue === 0) {
 | 
	
		
			
				|  |  | -              this.checks[i].points[j].rectificationDeadline = null
 | 
	
		
			
				|  |  | -              //this.checks[i].points[j].imgs = [];
 | 
	
		
			
				|  |  | -              this.checks[i].points[j].resRemark = null
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (point.dataStatus === 1) {
 | 
	
		
			
				|  |  | -              if (point.required === 0) {
 | 
	
		
			
				|  |  | -                //如果不是必填内容
 | 
	
		
			
				|  |  | -                this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  | -                this.checks[i].points[j].resValue = 0
 | 
	
		
			
				|  |  | -              } else {
 | 
	
		
			
				|  |  | -                Dialog.alert({
 | 
	
		
			
				|  |  | -                  message: '存在未编辑完成履职项,无法提交!'
 | 
	
		
			
				|  |  | -                })
 | 
	
		
			
				|  |  | -                throw new Error('还有未完成的内容,请先完成再提交')
 | 
	
		
			
				|  |  | +          for (let i = 0; i < this.checks.length; i++) {
 | 
	
		
			
				|  |  | +            for (let j = 0; j < this.checks[i].points.length; j++) {
 | 
	
		
			
				|  |  | +              let point = this.checks[i].points[j]
 | 
	
		
			
				|  |  | +              let item = this.checks[i]
 | 
	
		
			
				|  |  | +              if (point.resValue === 0) {
 | 
	
		
			
				|  |  | +                this.checks[i].points[j].rectificationDeadline = null
 | 
	
		
			
				|  |  | +                //this.checks[i].points[j].imgs = [];
 | 
	
		
			
				|  |  | +                this.checks[i].points[j].resRemark = null
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -              if (point.resValue === 1) {
 | 
	
		
			
				|  |  | -                if (!point.rectificationDeadline) {
 | 
	
		
			
				|  |  | -                  this.changeSwitch()
 | 
	
		
			
				|  |  | -                  this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | -                    if (area.areaId === item.areaId) {
 | 
	
		
			
				|  |  | -                      this.activeArea(area, i)
 | 
	
		
			
				|  |  | -                      //切换后验证表单
 | 
	
		
			
				|  |  | -                      this.$refs.resumption_form.validate()
 | 
	
		
			
				|  |  | -                      this.$toast.fail({
 | 
	
		
			
				|  |  | -                        message: '请选择整改期限!',
 | 
	
		
			
				|  |  | -                        position: 'top'
 | 
	
		
			
				|  |  | -                      })
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | +              if (point.dataStatus === 1) {
 | 
	
		
			
				|  |  | +                if (point.required === 0) {
 | 
	
		
			
				|  |  | +                  //如果不是必填内容
 | 
	
		
			
				|  |  | +                  this.checks[i].points[j].dataStatus = 2
 | 
	
		
			
				|  |  | +                  this.checks[i].points[j].resValue = 0
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                  Dialog.alert({
 | 
	
		
			
				|  |  | +                    message: '存在未编辑完成履职项,无法提交!'
 | 
	
		
			
				|  |  |                    })
 | 
	
		
			
				|  |  | -                  throw new Error('存在未编辑完成履职项,无法提交')
 | 
	
		
			
				|  |  | +                  throw new Error('还有未完成的内容,请先完成再提交')
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if (!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.fail({
 | 
	
		
			
				|  |  | -                        message: '请完成异常情况的信息填写!',
 | 
	
		
			
				|  |  | -                        position: 'top'
 | 
	
		
			
				|  |  | -                      })
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                  })
 | 
	
		
			
				|  |  | -                  throw new Error('存在未编辑完成履职项,无法提交')
 | 
	
		
			
				|  |  | +              } else {
 | 
	
		
			
				|  |  | +                if (point.resValue === 1) {
 | 
	
		
			
				|  |  | +                  if (!point.rectificationDeadline) {
 | 
	
		
			
				|  |  | +                    this.changeSwitch()
 | 
	
		
			
				|  |  | +                    this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | +                      if (area.areaId === item.areaId) {
 | 
	
		
			
				|  |  | +                        this.activeArea(area, i)
 | 
	
		
			
				|  |  | +                        //切换后验证表单
 | 
	
		
			
				|  |  | +                        this.$refs.resumption_form.validate()
 | 
	
		
			
				|  |  | +                        this.$toast.fail({
 | 
	
		
			
				|  |  | +                          message: '请选择整改期限!',
 | 
	
		
			
				|  |  | +                          position: 'top'
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                      }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    throw new Error('存在未编辑完成履职项,无法提交')
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  | +                  if (!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.fail({
 | 
	
		
			
				|  |  | +                          message: '请完成异常情况的信息填写!',
 | 
	
		
			
				|  |  | +                          position: 'top'
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                      }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    throw new Error('存在未编辑完成履职项,无法提交')
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  | +                  // if(point.imgs.length < 1){
 | 
	
		
			
				|  |  | +                  //   this.changeSwitch()
 | 
	
		
			
				|  |  | +                  //   this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | +                  //     if (area.areaId === item.areaId) {
 | 
	
		
			
				|  |  | +                  //       this.activeArea(area, i)
 | 
	
		
			
				|  |  | +                  //       //切换后验证表单
 | 
	
		
			
				|  |  | +                  //       this.$refs.resumption_form.validate()
 | 
	
		
			
				|  |  | +                  //       this.$toast.fail({
 | 
	
		
			
				|  |  | +                  //         message: '请拍照上传异常图片!',
 | 
	
		
			
				|  |  | +                  //         position: 'top'
 | 
	
		
			
				|  |  | +                  //       })
 | 
	
		
			
				|  |  | +                  //       throw new Error('请上传异常图片!');
 | 
	
		
			
				|  |  | +                  //     }
 | 
	
		
			
				|  |  | +                  //   })
 | 
	
		
			
				|  |  | +                  // }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                // if(point.imgs.length < 1){
 | 
	
		
			
				|  |  | -                //   this.changeSwitch()
 | 
	
		
			
				|  |  | -                //   this.areas.forEach((area, i) => {
 | 
	
		
			
				|  |  | -                //     if (area.areaId === item.areaId) {
 | 
	
		
			
				|  |  | -                //       this.activeArea(area, i)
 | 
	
		
			
				|  |  | -                //       //切换后验证表单
 | 
	
		
			
				|  |  | -                //       this.$refs.resumption_form.validate()
 | 
	
		
			
				|  |  | -                //       this.$toast.fail({
 | 
	
		
			
				|  |  | -                //         message: '请拍照上传异常图片!',
 | 
	
		
			
				|  |  | -                //         position: 'top'
 | 
	
		
			
				|  |  | -                //       })
 | 
	
		
			
				|  |  | -                //       throw new Error('请上传异常图片!');
 | 
	
		
			
				|  |  | -                //     }
 | 
	
		
			
				|  |  | -                //   })
 | 
	
		
			
				|  |  | -                // }
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        let data = {}
 | 
	
		
			
				|  |  | -        data.taskId = this.resumptionData.taskId
 | 
	
		
			
				|  |  | -        data.checks = this.checks
 | 
	
		
			
				|  |  | -        data.nfcs = subNFCS
 | 
	
		
			
				|  |  | -        data.subType = 2
 | 
	
		
			
				|  |  | +          let data = {}
 | 
	
		
			
				|  |  | +          data.taskId = this.resumptionData.taskId
 | 
	
		
			
				|  |  | +          data.checks = this.checks
 | 
	
		
			
				|  |  | +          data.nfcs = subNFCS
 | 
	
		
			
				|  |  | +          data.subType = 2
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        saveTask(data).then(res => {
 | 
	
		
			
				|  |  | -          this.$toast('提交成功')
 | 
	
		
			
				|  |  | -          /*this.$router.replace({
 | 
	
		
			
				|  |  | -              path: '/resumption',
 | 
	
		
			
				|  |  | -              name: 'resumption',
 | 
	
		
			
				|  |  | -              params:{event:'refresh'}
 | 
	
		
			
				|  |  | -            });*/
 | 
	
		
			
				|  |  | -          this.$router.go(-1)
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -      } catch (e) {
 | 
	
		
			
				|  |  | -        this.nfcs = bakNfcs
 | 
	
		
			
				|  |  | -        this.checks = bakChecks
 | 
	
		
			
				|  |  | +          saveTask(data).then(res => {
 | 
	
		
			
				|  |  | +            this.$toast('提交成功')
 | 
	
		
			
				|  |  | +            /*this.$router.replace({
 | 
	
		
			
				|  |  | +                path: '/resumption',
 | 
	
		
			
				|  |  | +                name: 'resumption',
 | 
	
		
			
				|  |  | +                params:{event:'refresh'}
 | 
	
		
			
				|  |  | +              });*/
 | 
	
		
			
				|  |  | +            this.$router.go(-1)
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        } catch (e) {
 | 
	
		
			
				|  |  | +          this.nfcs = bakNfcs
 | 
	
		
			
				|  |  | +          this.checks = bakChecks
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  </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;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .van-progress {
 | 
	
		
			
				|  |  | +    z-index: 999;
 | 
	
		
			
				|  |  | +    width: 98%;
 | 
	
		
			
				|  |  | +    left: 6px;
 | 
	
		
			
				|  |  | +    right: 6px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.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;
 | 
	
		
			
				|  |  | +  .page_box {
 | 
	
		
			
				|  |  | +    height: calc(100vh - 60px);
 | 
	
		
			
				|  |  | +    overflow: scroll;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  .van-cell__title {
 | 
	
		
			
				|  |  | -    font-weight: bold;
 | 
	
		
			
				|  |  | +  .content {
 | 
	
		
			
				|  |  | +    padding: 16px 16px 10px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.soc_resumption .van-cell__title {
 | 
	
		
			
				|  |  | -  min-width: 80% !important;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -.van-cell__title span {
 | 
	
		
			
				|  |  | -  text-align: left;
 | 
	
		
			
				|  |  | -  word-break: break-all;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .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;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.total_panel {
 | 
	
		
			
				|  |  | -  text-align: center;
 | 
	
		
			
				|  |  | +    .van-cell__title {
 | 
	
		
			
				|  |  | +      font-weight: bold;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  .title {
 | 
	
		
			
				|  |  | -    padding-top: 10px;
 | 
	
		
			
				|  |  | +  .soc_resumption .van-cell__title {
 | 
	
		
			
				|  |  | +    min-width: 80% !important;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  .van-cell__title span {
 | 
	
		
			
				|  |  | +    text-align: left;
 | 
	
		
			
				|  |  | +    word-break: break-all;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  .content {
 | 
	
		
			
				|  |  | -    padding-top: 10px;
 | 
	
		
			
				|  |  | -    padding-bottom: 10px;
 | 
	
		
			
				|  |  | +  .total_panel {
 | 
	
		
			
				|  |  | +    text-align: center;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .con_num {
 | 
	
		
			
				|  |  | -      padding: 15px;
 | 
	
		
			
				|  |  | +    .title {
 | 
	
		
			
				|  |  | +      padding-top: 10px;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .ok {
 | 
	
		
			
				|  |  | -      color: #26850c;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    .content {
 | 
	
		
			
				|  |  | +      padding-top: 10px;
 | 
	
		
			
				|  |  | +      padding-bottom: 10px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .con_num {
 | 
	
		
			
				|  |  | +        padding: 15px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .no {
 | 
	
		
			
				|  |  | -      color: #98632d;
 | 
	
		
			
				|  |  | +      .ok {
 | 
	
		
			
				|  |  | +        color: #26850c;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .no {
 | 
	
		
			
				|  |  | +        color: #98632d;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.card {
 | 
	
		
			
				|  |  | -  box-shadow: 0 10px 10px #eaeaea;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .card {
 | 
	
		
			
				|  |  | +    box-shadow: 0 10px 10px #eaeaea;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.van-popup {
 | 
	
		
			
				|  |  | -  height: 50%;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .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;
 | 
	
		
			
				|  |  | -  height: 80px;
 | 
	
		
			
				|  |  | -  display: flex;
 | 
	
		
			
				|  |  | -  justify-content: center;
 | 
	
		
			
				|  |  | -  align-items: center;
 | 
	
		
			
				|  |  | -  .ysj {
 | 
	
		
			
				|  |  | -    position: absolute;
 | 
	
		
			
				|  |  | -    right: 5px;
 | 
	
		
			
				|  |  | -    top: 5px;
 | 
	
		
			
				|  |  | +  .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;
 | 
	
		
			
				|  |  | +    height: 80px;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    justify-content: center;
 | 
	
		
			
				|  |  | +    align-items: center;
 | 
	
		
			
				|  |  | +    .ysj {
 | 
	
		
			
				|  |  | +      position: absolute;
 | 
	
		
			
				|  |  | +      right: 5px;
 | 
	
		
			
				|  |  | +      top: 5px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.active {
 | 
	
		
			
				|  |  | -  background-color: #bdbdbd;
 | 
	
		
			
				|  |  | -  color: #333;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .active {
 | 
	
		
			
				|  |  | +    background-color: #bdbdbd;
 | 
	
		
			
				|  |  | +    color: #333;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.complete {
 | 
	
		
			
				|  |  | -  color: #fff;
 | 
	
		
			
				|  |  | -  background-color: #1989fa;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .complete {
 | 
	
		
			
				|  |  | +    color: #fff;
 | 
	
		
			
				|  |  | +    background-color: #1989fa;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.nfc-icon {
 | 
	
		
			
				|  |  | -  width: 50px;
 | 
	
		
			
				|  |  | -  height: 50px;
 | 
	
		
			
				|  |  | -  margin-left: 20px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .nfc-icon {
 | 
	
		
			
				|  |  | +    width: 50px;
 | 
	
		
			
				|  |  | +    height: 50px;
 | 
	
		
			
				|  |  | +    margin-left: 20px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.bottomClass {
 | 
	
		
			
				|  |  | -  position: fixed;
 | 
	
		
			
				|  |  | -  width: 100%;
 | 
	
		
			
				|  |  | -  bottom: 0;
 | 
	
		
			
				|  |  | -  z-index: 999;
 | 
	
		
			
				|  |  | -  background: #ebedf0;
 | 
	
		
			
				|  |  | -  text-align: center;
 | 
	
		
			
				|  |  | +  .bottomClass {
 | 
	
		
			
				|  |  | +    position: fixed;
 | 
	
		
			
				|  |  | +    width: 100%;
 | 
	
		
			
				|  |  | +    bottom: 0;
 | 
	
		
			
				|  |  | +    z-index: 999;
 | 
	
		
			
				|  |  | +    background: #ebedf0;
 | 
	
		
			
				|  |  | +    text-align: center;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  .van-button {
 | 
	
		
			
				|  |  | -    width: 95%;
 | 
	
		
			
				|  |  | -    margin-top: 10px;
 | 
	
		
			
				|  |  | +    .van-button {
 | 
	
		
			
				|  |  | +      width: 95%;
 | 
	
		
			
				|  |  | +      margin-top: 10px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.okAll {
 | 
	
		
			
				|  |  | -  background-color: #fff;
 | 
	
		
			
				|  |  | -  display: flex;
 | 
	
		
			
				|  |  | -  justify-content: center;
 | 
	
		
			
				|  |  | -  align-items: center;
 | 
	
		
			
				|  |  | -  height: 50px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  .okAll {
 | 
	
		
			
				|  |  | +    background-color: #fff;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    justify-content: center;
 | 
	
		
			
				|  |  | +    align-items: center;
 | 
	
		
			
				|  |  | +    height: 7vw;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.nfc-img {
 | 
	
		
			
				|  |  | -  display: inline-block;
 | 
	
		
			
				|  |  | -  width: 160px;
 | 
	
		
			
				|  |  | -  height: 160px;
 | 
	
		
			
				|  |  | -  margin: 0 10px;
 | 
	
		
			
				|  |  | -  position: relative;
 | 
	
		
			
				|  |  | +  .nfc-img {
 | 
	
		
			
				|  |  | +    display: inline-block;
 | 
	
		
			
				|  |  | +    width: 160px;
 | 
	
		
			
				|  |  | +    height: 160px;
 | 
	
		
			
				|  |  | +    margin: 0 10px;
 | 
	
		
			
				|  |  | +    position: relative;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  > img {
 | 
	
		
			
				|  |  | -    width: 100%;
 | 
	
		
			
				|  |  | -    height: 100%;
 | 
	
		
			
				|  |  | -    border: none;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +    > 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;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +    > 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;
 | 
	
		
			
				|  |  | +    .cancel_icon {
 | 
	
		
			
				|  |  | +      position: absolute;
 | 
	
		
			
				|  |  | +      font-size: 30px;
 | 
	
		
			
				|  |  | +      right: 5px;
 | 
	
		
			
				|  |  | +      top: 2px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  </style>
 |