diff --git a/miniprogram/app.json b/miniprogram/app.json index 8cec87b..ff3850c 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -63,6 +63,7 @@ "pages/meeting/reservationRecord/meetingRecord/meetingDetail/meetingDetail", "pages/meeting/invite/invite", "pages/meeting/visitorIinvitation/list/list", + "pages/meeting/visitorIinvitation/add/add", "pages/meeting/visitorIinvitation/detail/detail", "pages/meeting/visitorIinvitation/indexBar/indexBar" ], diff --git a/miniprogram/pages/meeting/visitorIinvitation/add/add.js b/miniprogram/pages/meeting/visitorIinvitation/add/add.js new file mode 100644 index 0000000..d56134f --- /dev/null +++ b/miniprogram/pages/meeting/visitorIinvitation/add/add.js @@ -0,0 +1,382 @@ +let app = getApp(); + +import Notify from '@vant/weapp/notify/notify'; + +import { + selfFormatTimeYMDHMS +} from "../../../../utils/util.js" + +import { + visitorPersonRq, + selectVisitorRecordByIdRq, + updateVisitorPersonStatusRq +} from "../../../../api/meeting/visitorIinvitation.js" + + +Page({ + + /** + * 页面的初始数据 + */ + data: { + IMG_NAME: app.IMG_NAME, + id: null, + title: 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; + // 添加 默认设置访客信息 + detail.intervieweeId = userDetail.id // 访客id + detail.name = userDetail.username // 访客姓名 + detail.phone = userDetail.mobile // 访客手机号 + _this.setData({ + ...options, + userDetail, + detail + }) + // 页面初始化 options为页面跳转所带来的参数 + wx.setNavigationBarTitle({ + title: options.title + }) + }, + + // 跳转-索引栏(单位、人员) + 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); + // 刷新上个页面参数 + let pages = getCurrentPages(); //获取page + let prevPage = pages[pages.length - 2]; //上一个页面(父页面) + prevPage.setData({ + changeData: true + }) + // + 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 () { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/meeting/visitorIinvitation/add/add.json b/miniprogram/pages/meeting/visitorIinvitation/add/add.json new file mode 100644 index 0000000..e6ab339 --- /dev/null +++ b/miniprogram/pages/meeting/visitorIinvitation/add/add.json @@ -0,0 +1,14 @@ +{ + "navigationBarTitleText": "详情", + "usingComponents": { + "van-field": "@vant/weapp/field/index", + "van-popup": "@vant/weapp/popup/index", + "van-uploader": "@vant/weapp/uploader/index", + "van-datetime-picker": "@vant/weapp/datetime-picker/index", + "van-notify": "@vant/weapp/notify/index", + "van-action-sheet": "@vant/weapp/action-sheet/index", + "van-dialog": "@vant/weapp/dialog/index" + + } + +} \ No newline at end of file diff --git a/miniprogram/pages/meeting/visitorIinvitation/add/add.wxml b/miniprogram/pages/meeting/visitorIinvitation/add/add.wxml new file mode 100644 index 0000000..83c1e04 --- /dev/null +++ b/miniprogram/pages/meeting/visitorIinvitation/add/add.wxml @@ -0,0 +1,78 @@ + + + 预约信息 + + + + 被访单位 + + + + 被访人姓名 + + + + 被访人电话 + + + + 访客姓名 + + + + 手机号码 + + + + 身份证类型 + + + + 身份证号 + + + + 到访时间 + + + + 离开时间 + + + + + 来访事由 + + + + 访客照片 + + + + + + + + 提示:请保持五官清晰,以方便系统精准识 + + + + 提交 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/meeting/visitorIinvitation/add/add.wxss b/miniprogram/pages/meeting/visitorIinvitation/add/add.wxss new file mode 100644 index 0000000..2404f97 --- /dev/null +++ b/miniprogram/pages/meeting/visitorIinvitation/add/add.wxss @@ -0,0 +1,119 @@ +.containerView.public { + height: auto; +} + +.headView { + padding: 30rpx 20rpx; + background: #f6f6f6; +} + +.contentView {} + +.contentView .rowView.self { + padding: 28rpx 28rpx 28rpx 30rpx; + align-items: flex-start; +} + +.contentView .rowView { + display: flex; + justify-content: space-between; + align-items: center; + padding: 2rpx 0 2rpx 30rpx; + border-bottom: 1px solid rgb(126, 126, 126, 0.2); +} + +.contentView .rowView:last-of-type { + border-bottom: none; +} + +.contentView .rowView .label { + position: relative; + font-size: 30rpx; + color: #000000; + min-width: 120rpx; + margin-right: 30rpx; +} + +.contentView .rowView .label.must::after { + content: '*'; + display: block; + position: absolute; + left: 100%; + top: 6rpx; + margin-left: 10rpx; + color: red; +} + +.input { + font-size: 30rpx; +} + + +.uploadImgView { + padding: 0 40rpx; + background-color: #ffffff; + font-size: 28rpx; + color: #646566; +} + +.uploadImgView .tipsView { + text-align: center; +} + +.submitBtnView { + width: 600rpx; + padding: 20rpx; + background: #4e96f8; + color: white; + font-size: 30rpx; + text-align: center; + border-radius: 10rpx; + margin: 60rpx auto; +} + +.submitBtn { + box-sizing: border-box; + position: fixed; + z-index: 10; + width: 600rpx; + left: 50%; + transform: translateX(-50%); + bottom: 120rpx; + border-radius: 10rpx; + padding: 20rpx; + background: #4e96f8; + color: white; + font-size: 30rpx; + text-align: center; +} + + +.textarea { + height: 300rpx !important; + border: 1px solid rgb(126, 126, 126, 0.2) !important; + padding: 20rpx !important; +} + +.dialogBtnView { + display: flex; + justify-content: space-between; + align-items: center; + border-top: 1px solid rgb(126, 126, 126, 0.2); +} + +.dialogBtnView .rejectBtn, +.dialogBtnView .successBtn { + width: 50%; + text-align: center; + padding: 30rpx 0; + font-size: 32rpx; +} + +.dialogBtnView .rejectBtn { + border-right: 1px solid rgb(126, 126, 126, 0.2); + color: red; +} + +.dialogBtnView .successBtn { + color: #4e96f8; +} \ No newline at end of file diff --git a/miniprogram/pages/meeting/visitorIinvitation/detail/detail.js b/miniprogram/pages/meeting/visitorIinvitation/detail/detail.js index 8084b01..f698020 100644 --- a/miniprogram/pages/meeting/visitorIinvitation/detail/detail.js +++ b/miniprogram/pages/meeting/visitorIinvitation/detail/detail.js @@ -23,18 +23,8 @@ Page({ id: null, title: null, type: null, - submitShow: false, verifyShow: false, 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 @@ -68,12 +58,6 @@ Page({ 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, @@ -83,16 +67,6 @@ Page({ wx.setNavigationBarTitle({ title: options.title }) - // 根据类型 判断显示 - if (options.type == 'add') { - _this.setData({ - submitShow: true - }) - } else if (options.type == 'verify') { - - } else if (options.type == 'detail') { - - } // 有id查询详情 if (options.id) { // 获取详情 @@ -135,113 +109,6 @@ Page({ }) }, - // 跳转-索引栏(单位、人员) - 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) { @@ -293,93 +160,6 @@ Page({ }) }, - // 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); - // 刷新上个页面参数 - let pages = getCurrentPages(); //获取page - let prevPage = pages[pages.length - 2]; //上一个页面(父页面) - prevPage.setData({ - changeData: true - }) - // - if (res.code == 0) { - wx.navigateBack() - } else { - _this.showErrMsg(res.msg) - } - }) - }, // 显示-弹出框 showDialog(e) { diff --git a/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxml b/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxml index 8af7374..d315395 100644 --- a/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxml +++ b/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxml @@ -5,56 +5,55 @@ 被访单位 - + {{detail.customerName}} 被访人姓名 - + {{detail.username}} 被访人电话 - + {{detail.mobile}} 访客姓名 - + {{detail.name}} 手机号码 - + {{detail.phone}} 身份证类型 - + {{detail.cardType}} 身份证号 - + {{detail.cardNo }} 到访时间 - + {{detail.visitTime}} 离开时间 - + {{detail.leaveTime}} 来访事由 - + {{detail.visitContent}} - + 审核状态 {{detail.statusName}} - + 审核内容 {{detail.rejectContent ? detail.rejectContent : ''}} 访客照片 - @@ -64,8 +63,6 @@ 提示:请保持五官清晰,以方便系统精准识 - - 提交 审核 @@ -74,19 +71,6 @@ - - - - - - - - - - - - - diff --git a/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxss b/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxss index 2404f97..53109f5 100644 --- a/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxss +++ b/miniprogram/pages/meeting/visitorIinvitation/detail/detail.wxss @@ -9,21 +9,16 @@ .contentView {} -.contentView .rowView.self { - padding: 28rpx 28rpx 28rpx 30rpx; - align-items: flex-start; -} - .contentView .rowView { display: flex; justify-content: space-between; - align-items: center; - padding: 2rpx 0 2rpx 30rpx; + align-items: flex-start; + padding: 28rpx 28rpx 28rpx 30rpx; border-bottom: 1px solid rgb(126, 126, 126, 0.2); } .contentView .rowView:last-of-type { - border-bottom: none; + border-bottom: 1px solid transparent; } .contentView .rowView .label { @@ -31,7 +26,7 @@ font-size: 30rpx; color: #000000; min-width: 120rpx; - margin-right: 30rpx; + margin-right: 60rpx; } .contentView .rowView .label.must::after { diff --git a/miniprogram/pages/meeting/visitorIinvitation/list/list.js b/miniprogram/pages/meeting/visitorIinvitation/list/list.js index 5260392..3bac762 100644 --- a/miniprogram/pages/meeting/visitorIinvitation/list/list.js +++ b/miniprogram/pages/meeting/visitorIinvitation/list/list.js @@ -220,14 +220,20 @@ Page({ }) }, + // 跳转-添加 + goAdd() { + wx.navigateTo({ + url: '/pages/meeting/visitorIinvitation/add/add?title=预约', + }) + }, + + // 跳转-详情、修改 goDetail(e) { console.log('goDetail', e); let id = e.currentTarget.dataset.id let type = e.currentTarget.dataset.type let urlParam = "?type=" + type; - if (type == 'add') { - urlParam = urlParam + "&title=预约" - } else if (type == 'verify') { + if (type == 'verify') { urlParam = urlParam + "&title=审核" + "&id=" + id } else if (type == 'detail') { urlParam = urlParam + "&title=详情" + "&id=" + id diff --git a/miniprogram/pages/meeting/visitorIinvitation/list/list.wxml b/miniprogram/pages/meeting/visitorIinvitation/list/list.wxml index 94f8923..8733457 100644 --- a/miniprogram/pages/meeting/visitorIinvitation/list/list.wxml +++ b/miniprogram/pages/meeting/visitorIinvitation/list/list.wxml @@ -45,7 +45,7 @@ - 立即预约 + 立即预约