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