|  | @@ -10,8 +10,8 @@
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |            <div class="panel-box">
 | 
	
		
			
				|  |  |              <van-cell title="来访人员" :value="selectedUser.userName"></van-cell>
 | 
	
		
			
				|  |  | -            <van-cell title="介绍信类型" :value="getDictLabel(selectedUser.type,'out_in_type')"></van-cell>
 | 
	
		
			
				|  |  | -            <van-cell title="来访事由" :value="selectedUser.reasons"></van-cell>
 | 
	
		
			
				|  |  | +            <van-cell title="介绍信类型" :value="getDictLabel(selectedUser.letterType,'out_in_type')"></van-cell>
 | 
	
		
			
				|  |  | +            <van-cell title="来访事由" :value="selectedUser.letterReasons"></van-cell>
 | 
	
		
			
				|  |  |              <van-cell title="来访单位" :value="selectedUser.companyName"></van-cell>
 | 
	
		
			
				|  |  |              <van-cell title="证件类型" :value="getDictLabel(selectedUser.idType,'letter_id_type')"></van-cell>
 | 
	
		
			
				|  |  |              <van-cell title="证件号码" :value="selectedUser.idCard"></van-cell>
 | 
	
	
		
			
				|  | @@ -49,12 +49,44 @@
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  |                </van-cell>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  | -            <van-cell title="陪同人员" :value="selectedUser.accompanyingPerson"></van-cell>
 | 
	
		
			
				|  |  | +            <div class="upload-box" v-if="canRecord() && !selectedUser.departureTime && !selectedUser.checkImage">
 | 
	
		
			
				|  |  | +              <span class="required">核验结果</span>
 | 
	
		
			
				|  |  | +              <van-cell>
 | 
	
		
			
				|  |  | +                <uploader :maxCount="2" v-model="formData.checkImage"/>
 | 
	
		
			
				|  |  | +              </van-cell>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <van-cell v-if="selectedUser.accompanyingPerson" title="陪同人员" :value="selectedUser.accompanyingPerson"></van-cell>
 | 
	
		
			
				|  |  | +            <!-- <date-cell v-if="selectedUser.approveStatus==1 && !selectedUser.accompanyingPerson" required title="到达时间" :max-date="maxData" :min-date='minDate' :is-row="true"  v-model="formData.arrivalTime" date-type="datetime" /> -->
 | 
	
		
			
				|  |  | +            <van-field
 | 
	
		
			
				|  |  | +              v-if="canRecord() && !selectedUser.accompanyingPerson"
 | 
	
		
			
				|  |  | +              v-model="formData.accompanyingPerson"
 | 
	
		
			
				|  |  | +              rows="1"
 | 
	
		
			
				|  |  | +              autosize
 | 
	
		
			
				|  |  | +              required
 | 
	
		
			
				|  |  | +              :maxlength="200"
 | 
	
		
			
				|  |  | +              placeholder="请输入陪同人员姓名"
 | 
	
		
			
				|  |  | +              label="陪同人员"></van-field>
 | 
	
		
			
				|  |  |              <van-cell title="到达时间" v-if="selectedUser.arrivalTime" :value="dayjs(selectedUser.arrivalTime).format('YYYY-DD-MM HH:mm')"></van-cell>
 | 
	
		
			
				|  |  |              <van-cell title="离开时间" v-if="selectedUser.departureTime" :value="dayjs(selectedUser.departureTime).format('YYYY-DD-MM HH:mm')"></van-cell>
 | 
	
		
			
				|  |  | -            <date-cell v-else required title="离开时间" :max-date="maxData" :min-date='minDate' :is-row="true"  v-model="formData.departureTime" date-type="datetime" />
 | 
	
		
			
				|  |  | +            <div class="upload-box" v-if="selectedUser.submitSign">
 | 
	
		
			
				|  |  | +              <span>登记签名</span>
 | 
	
		
			
				|  |  | +              <van-cell >
 | 
	
		
			
				|  |  | +                <div
 | 
	
		
			
				|  |  | +                  class="nfc-img van-hairline--surround"
 | 
	
		
			
				|  |  | +                  :key="selectedUser.submitSign"
 | 
	
		
			
				|  |  | +                  @click="preView(selectedUser.submitSign)">
 | 
	
		
			
				|  |  | +                  <img :src="imgUrl(selectedUser.submitSign)" alt="" />
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </van-cell>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <date-cell v-if="canRecord() && !selectedUser.arrivalTime" required title="到达时间" :max-date="maxData" :min-date='minDate' :is-row="true"  v-model="formData.arrivalTime" date-type="datetime" />
 | 
	
		
			
				|  |  | +            <date-cell v-if="canRecord() && selectedUser.arrivalTime && !selectedUser.departureTime" required title="离开时间" :max-date="maxData" :min-date='minDate' :is-row="true"  v-model="formData.departureTime" date-type="datetime" />
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  | -          <div v-if="!selectedUser.departureTime" class="big-btn-box" >
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  | +          <van-action-sheet v-model="showSign" title="签署名字" class="sheet">
 | 
	
		
			
				|  |  | +            <writingPad ref="esign" @resultImg="resultImg"></writingPad>
 | 
	
		
			
				|  |  | +          </van-action-sheet>
 | 
	
		
			
				|  |  | +          <div v-if="canRecord() &&!selectedUser.departureTime" class="big-btn-box" >
 | 
	
		
			
				|  |  |              <van-button  type="info" size="large" @click="onSubmit">确认登记</van-button>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |          </van-panel>
 | 
	
	
		
			
				|  | @@ -72,10 +104,14 @@ import {formatDate} from "@/filters/filter";
 | 
	
		
			
				|  |  |  import {mapGetters} from "vuex";
 | 
	
		
			
				|  |  |  import {imgUrl} from "@/utils";
 | 
	
		
			
				|  |  |  import { ImagePreview } from 'vant'
 | 
	
		
			
				|  |  | +import writingPad from '@/components/writingPad/index.vue'
 | 
	
		
			
				|  |  | +import imgCom from '@/components/imgCom/index.vue'
 | 
	
		
			
				|  |  | +import { base64ToBlob } from '@/utils/base64TurnImg.js'
 | 
	
		
			
				|  |  | +import { upload } from '@/api/public'
 | 
	
		
			
				|  |  |  import {userDetails, userDepart} from './api'
 | 
	
		
			
				|  |  |  import dayjs from 'dayjs'
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  | -  components: {Uploader, DateCell},
 | 
	
		
			
				|  |  | +  components: {Uploader, DateCell,writingPad,imgCom},
 | 
	
		
			
				|  |  |    data(){
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  |        maxData:new Date(),
 | 
	
	
		
			
				|  | @@ -83,6 +119,7 @@ export default {
 | 
	
		
			
				|  |  |        visitId:null,
 | 
	
		
			
				|  |  |        userList:[],
 | 
	
		
			
				|  |  |        selectedUser:{},
 | 
	
		
			
				|  |  | +      showSign:false,
 | 
	
		
			
				|  |  |        prop:{
 | 
	
		
			
				|  |  |          label:'userName',
 | 
	
		
			
				|  |  |          value:'id'
 | 
	
	
		
			
				|  | @@ -90,6 +127,8 @@ export default {
 | 
	
		
			
				|  |  |        formData:{
 | 
	
		
			
				|  |  |          arrivalTime:null,
 | 
	
		
			
				|  |  |          departureTime:null,
 | 
	
		
			
				|  |  | +        checkImage:null,
 | 
	
		
			
				|  |  | +        accompanyingPerson:null,
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        dicts:['out_in_approve_status','out_in_type','letter_id_type']
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -103,30 +142,109 @@ export default {
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods:{
 | 
	
		
			
				|  |  |      imgUrl,formatDate,
 | 
	
		
			
				|  |  | +    canRecord(){
 | 
	
		
			
				|  |  | +      return this.selectedUser.approveStatus==1 && this.selectedUser.status!=3
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      onSubmit(){
 | 
	
		
			
				|  |  | -      let {departureTime} = this.formData;
 | 
	
		
			
				|  |  | -      if(!departureTime){
 | 
	
		
			
				|  |  | +      let {arrivalTime,departureTime,accompanyingPerson,checkImage} = this.formData;
 | 
	
		
			
				|  |  | +      if(!this.selectedUser.checkImage && !checkImage){
 | 
	
		
			
				|  |  | +        this.$toast('请上传审核结果');
 | 
	
		
			
				|  |  | +        return
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if(!this.selectedUser.accompanyingPerson && !accompanyingPerson){
 | 
	
		
			
				|  |  | +        this.$toast('请输入陪同人员姓名');
 | 
	
		
			
				|  |  | +        return
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if(!this.selectedUser.arrivalTime && !arrivalTime){
 | 
	
		
			
				|  |  | +        this.$toast('请选择到达时间');
 | 
	
		
			
				|  |  | +        return
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if(this.selectedUser.arrivalTime && !this.selectedUser.departureTime && !departureTime){
 | 
	
		
			
				|  |  |          this.$toast('请选择离开时间');
 | 
	
		
			
				|  |  |          return
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      let data = {
 | 
	
		
			
				|  |  | -        id:this.selectedUser.id,
 | 
	
		
			
				|  |  | -        arrivalTime:this.selectedUser.arrivalTime,
 | 
	
		
			
				|  |  | -        departureTime,
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      if(departureTime){
 | 
	
		
			
				|  |  | +        this.signatureHandler();
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      //alert(JSON.stringify(data))
 | 
	
		
			
				|  |  | -      userDepart(data).then(res=>{
 | 
	
		
			
				|  |  | -        this.$toast.success('提交成功');
 | 
	
		
			
				|  |  | -        this.$router.replace({
 | 
	
		
			
				|  |  | -          name:'visitRecord',
 | 
	
		
			
				|  |  | -          path:'/visitRecord',
 | 
	
		
			
				|  |  | -          params:{event:'refresh'},
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | +      else{
 | 
	
		
			
				|  |  | +        this.submitRecordData(arrivalTime,departureTime,accompanyingPerson,checkImage);
 | 
	
		
			
				|  |  | +      }      
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    submitRecordData(arrivalTime,departureTime,accompanyingPerson,checkImage,signImgUrl)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        let data = {
 | 
	
		
			
				|  |  | +          id:this.selectedUser.id,
 | 
	
		
			
				|  |  | +          // accompanyingPerson:this.selectedUser.accompanyingPerson?this.selectedUser.accompanyingPerson:accompanyingPerson,
 | 
	
		
			
				|  |  | +          // arrivalTime: this.selectedUser.arrivalTime ? this.selectedUser.arrivalTime:arrivalTime,
 | 
	
		
			
				|  |  | +          // departureTime,
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(arrivalTime)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          data.arrivalTime=arrivalTime;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(departureTime)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          data.departureTime=departureTime;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(accompanyingPerson)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          data.accompanyingPerson=accompanyingPerson;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(checkImage)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          data.checkImage=checkImage;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(signImgUrl)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          data.submitSign=signImgUrl;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //alert(JSON.stringify(data))
 | 
	
		
			
				|  |  | +        userDepart(data).then(res=>{
 | 
	
		
			
				|  |  | +          this.$toast.success('提交成功');
 | 
	
		
			
				|  |  | +          this.$router.replace({
 | 
	
		
			
				|  |  | +            name:'visitRecord',
 | 
	
		
			
				|  |  | +            path:'/visitRecord',
 | 
	
		
			
				|  |  | +            params:{event:'refresh'},
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    signatureHandler() {
 | 
	
		
			
				|  |  | +      this.showSign = true
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    //上传签名图到服务器
 | 
	
		
			
				|  |  | +    resultImg(img) {
 | 
	
		
			
				|  |  | +      let obj = base64ToBlob(img)
 | 
	
		
			
				|  |  | +      let formData = new FormData()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      obj.name = '签名.jpg'
 | 
	
		
			
				|  |  | +      formData.append('file', base64ToBlob(img))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      upload(formData, 'image')
 | 
	
		
			
				|  |  | +        .then(res => {
 | 
	
		
			
				|  |  | +          console.log(process.env.NODE_ENV)
 | 
	
		
			
				|  |  | +          /*上传成功*/
 | 
	
		
			
				|  |  | +          let signImgUrl = process.env.NODE_ENV === 'development' ? res.data.url : res.data.url
 | 
	
		
			
				|  |  | +          // this.submitSign(imgUrl)
 | 
	
		
			
				|  |  | +          let {arrivalTime,departureTime,accompanyingPerson,checkImage} = this.formData;
 | 
	
		
			
				|  |  | +          this.submitRecordData(arrivalTime,departureTime,accompanyingPerson,checkImage,signImgUrl);
 | 
	
		
			
				|  |  | +          // this.$emit("imgUrl", res.data.url);
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch(err => {
 | 
	
		
			
				|  |  | +          /*上传失败*/
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      getUserInfo(){
 | 
	
		
			
				|  |  |        userDetails(this.visitId).then(res=>{
 | 
	
		
			
				|  |  | -        let checkImage = res.data.checkImage.split(',');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let checkImage = "";
 | 
	
		
			
				|  |  | +        if(res.data.checkImage)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          checkImage= res.data.checkImage.split(',')
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          let imgFile = res.data.imgFile.split(',');
 | 
	
		
			
				|  |  |          let letterFile = [];
 | 
	
		
			
				|  |  |          if(res.data.letterFile && res.data.letterFile.length > 0){
 | 
	
	
		
			
				|  | @@ -304,4 +422,7 @@ export default {
 | 
	
		
			
				|  |  |      height: 30px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +.sheet {
 | 
	
		
			
				|  |  | +  height: 45%;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  </style>
 |