let app = getApp(); import Notify from '@vant/weapp/notify/notify'; import { selfFormatTimeYMDHMS } from "../../../../utils/util.js" import { visitorPersonRq, selectVisitorRecordByIdRq } from "../../../../api/meeting/visitorIinvitation.js" Page({ /** * 页面的初始数据 */ data: { IMG_NAME: app.IMG_NAME, id: null, title: null, type: null, userDetail: {}, idcardTypeShow: false, idcardTypeList: [{ name: '居民身份证', }, ], visitTimeShow: false, // 到访时间show visitTimeDate: new Date().getTime(), // 到访时间-当前 visitTimeMinDate: new Date().getTime(), // 到访时间-最小 leaveTimeShow: false, // 离开时间show leaveTimeDate: new Date().getTime(), // 离开时间-当前 fileList: [], // 上传文件 detail: { customerId: null, //企业id customerName: null, //企业名称 userId: null, // 被访人id username: null, //被访人姓名 mobile: null, //被访人手机号 intervieweeId: null, // 访客id name: null, // 访客姓名 phone: null, // 访客手机号 cardType: '居民身份证', // 证件类型 cardNo: null, // 证件号 visitTime: null, // 到访时间 leaveTime: null, // 离开时间 visitContent: null, // 来访事由 photo: null, // 头像-相对路径 url: null, // 人脸设备图片-全路径 } }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { console.log('onLoad', options) let _this = this; let userDetail = wx.getStorageSync('user') // let detail = _this.data.detail; // 添加 默认设置访客信息 if (options.type == 'add') { detail.intervieweeId = userDetail.id // 访客id detail.name = userDetail.username // 访客姓名 detail.phone = userDetail.mobile // 访客手机号 } _this.setData({ ...options, userDetail, detail }) // 页面初始化 options为页面跳转所带来的参数 wx.setNavigationBarTitle({ title: options.title }) // 有id查询详情 if (options.id) { // 获取详情 _this.getDetail() } }, // 获取详情 getDetail() { let _this = this; selectVisitorRecordByIdRq(_this.data.id).then(res => { console.log('selectVisitorRecordByIdRq', res); let detail = res.data; _this.setData({ detail, fileList: [{ relativeUrl: detail.photo, url: app.IMG_NAME + detail.photo, name: detail.photo, deletable: false, }] }) }) }, // 跳转-索引栏(单位、人员) jumpIndexBar(e) { console.log('jumpIndexBar', e); let _this = this; let title = e.currentTarget.dataset.title // 校验是否选择“被访单位” 后 ,再选择被访人信息 if (title == '人员' && !_this.data.detail.customerId) { // 错误消息提示 _this.showErrMsg('请先选择被访单位!') return; } // url 参数 let param = '?title=' + title; if (title == '人员') { param = param + '&id=' + _this.data.detail.customerId; } wx.navigateTo({ url: '/pages/meeting/visitorIinvitation/indexBar/indexBar' + param, }) }, // 显示-身份证类型 showIdcardType() { let _this = this; _this.setData({ idcardTypeShow: true }) }, // 选择-身份证类型 selectIdcardType(e) { console.log('selectIdcardType', e); let _this = this; let detail = _this.data.detail; detail.cardType = e.detail.name; _this.setData({ idcardTypeShow: false, detail }) }, // 关闭-身份证类型 closeIdcardType() { let _this = this; _this.setData({ idcardTypeShow: false }) }, // 显示-到访时间 showVisitTime() { let _this = this; _this.setData({ visitTimeShow: true }) }, // 关闭-到访时间 closeVisitTime() { let _this = this; _this.setData({ visitTimeShow: false }) }, // 确认-到访时间 confirmVisitTime(e) { console.log('confirmVisitTime', e); let _this = this; let detail = _this.data.detail; detail.visitTime = selfFormatTimeYMDHMS(e.detail); _this.setData({ visitTimeShow: false, visitTimeDate: e.detail, detail }) }, // 显示-离开时间 showLeaveTime() { let _this = this; _this.setData({ leaveTimeShow: true }) }, // 关闭-离开时间 closeLeaveTime() { let _this = this; _this.setData({ leaveTimeShow: false }) }, // 确认-离开时间 confirmLeaveTime(e) { console.log('confirmLeaveTime111', e); let _this = this; let detail = _this.data.detail; detail.leaveTime = selfFormatTimeYMDHMS(e.detail); _this.setData({ leaveTimeShow: false, leaveTimeDate: e.detail, detail }) }, // 图片-上传前校验 beforeRead(event) { const { file, callback } = event.detail; callback(file.type === 'image'); }, // 图片-上传后 afterRead(event) { let _this = this; const { file } = event.detail; // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 wx.uploadFile({ url: app.DOMAIN_NAME + '/api/dfs/upload', filePath: file.url, name: 'file', formData: {}, success(res) { console.log('upload file ', res); let fileData = JSON.parse(res.data) // 上传完成需要更新 fileList let fileList = _this.data.fileList; fileList.push({ relativeUrl: fileData.fileName, url: app.IMG_NAME + fileData.fileName, name: fileData.fileName, deletable: true, }) _this.setData({ fileList }) }, }); }, // 删除图片 deleteImg(event) { console.log('deleteImg', event); let _this = this; let fileList = _this.data.fileList; fileList.splice(event.detail.index, 1); _this.setData({ fileList }) }, // input输入内容监听 fieldInput(e) { console.log('fieldInput', e); let _this = this; let detail = _this.data.detail; detail[e.currentTarget.dataset.name] = e.detail _this.setData({ detail }) }, // 提交数据 submitData() { let _this = this; // 上传文件列表 let fileList = _this.data.fileList; // 数据 let detail = _this.data.detail; // // 校验数据 // // 被访单位 if (!detail.customerId) { _this.showErrMsg('请选择被访单位!') return; } // 被访人姓名、电话 if (!detail.userId) { _this.showErrMsg('请选择被访人姓名、电话!') return; } // 访客姓名 if (!detail.name) { _this.showErrMsg('请填写访客姓名!') return; } // 访客手机号 if (!detail.phone) { _this.showErrMsg('请填写访客手机号!') return; } // 证件号 if (!detail.cardNo) { _this.showErrMsg('请填写证件号!') return; } // 到访时间 if (!detail.visitTime) { _this.showErrMsg('请选择到访时间!') return; } // 离开时间 if (!detail.leaveTime) { _this.showErrMsg('请选择离开时间!') return; } // 来访事由 if (!detail.visitContent) { _this.showErrMsg('请填写来访事由!') return; } // 图片上传 if (fileList && fileList.length > 0) { detail.photo = fileList[0].relativeUrl // 头像-相对路径 detail.url = fileList[0].url // 人脸设备图片-全路径 } else { _this.showErrMsg('请上传照片!') return; } // // 添加数据 visitorPersonRq(detail).then(res => { console.log('visitorPersonRq', res); if (res.code == 0) { wx.navigateBack() } else { _this.showErrMsg(res.msg) } }) }, // 显示错误消息 showErrMsg(msg) { Notify({ type: 'danger', message: msg }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })