diff --git a/miniprogram/api/repair/repair.js b/miniprogram/api/repair/repair.js new file mode 100644 index 0000000..c99e804 --- /dev/null +++ b/miniprogram/api/repair/repair.js @@ -0,0 +1,38 @@ +import { + request +} from '../selfRequest'; + + +// 查询故障分类列表 +export function deviceTypeListRq() { + return request({ + url: '/repair/deviceTypeList', + method: "get", + }); +} + +// 根据故障分类查询故障设备列表 +export function deviceListRq(data) { + return request({ + url: '/repair/deviceList', + method: "get", + data + }); +} + +// 查询地区 +export function selectAddressListRq() { + return request({ + url: '/repair/selectAddressList', + method: "get", + }); +} + +// 查询楼层 +export function selectRoomListRq(data) { + return request({ + url: '/repair/selectRoomList', + method: "get", + data + }); +} \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/report/report.js b/miniprogram/pages/reportRepair/report/report.js index f0f58ca..b1b2aa0 100644 --- a/miniprogram/pages/reportRepair/report/report.js +++ b/miniprogram/pages/reportRepair/report/report.js @@ -7,10 +7,11 @@ import { } from "../../../utils/util.js" import { - visitorPersonRq, - selectVisitorRecordByIdRq, - updateVisitorPersonStatusRq -} from "../../../api/meeting/visitorIinvitation.js" + deviceTypeListRq, + deviceListRq, + selectAddressListRq, + selectRoomListRq, +} from "../../../api/repair/repair.js" Page({ @@ -27,33 +28,54 @@ Page({ voiceObj: {}, // 录音文件对象 innerAudioContext: null, // 音频对象 innerAudioContextIsPlay: false, // 音频对象-是否播放 - idcardTypeShow: false, - idcardTypeList: [{ - name: '居民身份证', + faultLevelShow: false, + faultLevelList: [{ + name: '一级', + }, { + name: '二级', + }, { + name: '三级', }, ], - visitTimeShow: false, // 到访时间show - visitTimeDate: new Date().getTime(), // 到访时间-当前 - visitTimeMinDate: new Date().getTime(), // 到访时间-最小 - leaveTimeShow: false, // 离开时间show - leaveTimeDate: new Date().getTime(), // 离开时间-当前 + failureDateShow: false, // 故障时间show + failureDate: new Date().getTime(), // 故障时间-当前 + failureMinDate: new Date().getTime(), // 故障时间-最小 + typeVisible: false, + typeName: '', + typeColumns: [{ + values: [], + className: 'column1', + }, + { + values: [], + className: 'column2', + }, + ], + addressVisible: false, + addressName: '', + addressColumns: [{ + values: [], + className: 'column1', + }, + { + values: [], + className: 'column2', + }, + ], fileList: [], // 上传文件 detail: { - customerId: null, //企业id - customerName: null, //企业名称 - userId: null, // 被访人id - userName: null, //被访人姓名 - userMobile: null, //被访人手机号 - intervieweeId: null, // 访客id - name: null, // 访客姓名 - phone: null, // 访客手机号 - cardType: '居民身份证', // 证件类型 - cardNo: null, // 证件号 - visitTime: null, // 到访时间 - leaveTime: null, // 离开时间 - visitContent: null, // 来访事由 - photo: null, // 头像-相对路径 - url: null, // 人脸设备图片-全路径 - voiceUrl: null, // 语音 + "repairName": "", //维修名称 + "repairLevel": "", //维修等级 + "failureDate": null, //故障时间 + "typeId" : null , //故障类型 + "repairDevice": null, //维修设备 + "name": "", //用户名 + "phone": "", //手机号码 + "addressId" : null ,// 地点id + "roomId" : null ,// 楼层id + "area": "", // 门牌号 + "content" : "", // 描述 + "repairVoice" : "", // 语音文件 + "repairImages" : '', //故障图片 }, }, @@ -78,91 +100,257 @@ Page({ // 初始化录音 _this.initRecording() + + // 查询设备类型 + _this.queryDeviceType() + + // 查询地点 + _this.queryAddress() }, - // 显示-身份证类型 - showIdcardType() { + + + // 显示-故障等级 + showFaultLevel() { let _this = this; _this.setData({ - idcardTypeShow: true + faultLevelShow: true }) }, - // 选择-身份证类型 - selectIdcardType(e) { - console.log('selectIdcardType', e); + // 选择-故障等级 + selectFaultLevel(e) { + console.log('selectFaultLevel', e); let _this = this; let detail = _this.data.detail; - detail.cardType = e.detail.name; + detail.repairLevel = e.detail.name; _this.setData({ - idcardTypeShow: false, + faultLevelShow: false, detail }) }, - // 关闭-身份证类型 - closeIdcardType() { + // 关闭-故障等级 + closeFaultLevel() { let _this = this; _this.setData({ - idcardTypeShow: false + faultLevelShow: false }) }, - // 显示-到访时间 - showVisitTime() { + // 显示-故障时间 + showFailureDate() { let _this = this; _this.setData({ - visitTimeShow: true + failureDateShow: true }) }, - // 关闭-到访时间 - closeVisitTime() { + // 关闭-故障时间 + hideFailureDate() { let _this = this; _this.setData({ - visitTimeShow: false + failureDateShow: false }) }, - // 确认-到访时间 - confirmVisitTime(e) { - console.log('confirmVisitTime', e); + // 确认-故障时间 + confirmFailureDate(e) { + console.log('confirmFailureDate', e); let _this = this; let detail = _this.data.detail; - detail.visitTime = selfFormatTimeYMDHMS(e.detail); + detail.failureDate = selfFormatTimeYMDHMS(e.detail); _this.setData({ - visitTimeShow: false, - visitTimeDate: e.detail, + failureDateShow: false, + failureDate: e.detail, detail }) }, - // 显示-离开时间 - showLeaveTime() { - let _this = this; - _this.setData({ - leaveTimeShow: true + showType() { + this.setData({ + typeVisible: true, }) }, - // 关闭-离开时间 - closeLeaveTime() { - let _this = this; - _this.setData({ - leaveTimeShow: false + hideType() { + this.setData({ + typeVisible: false, }) }, - // 确认-离开时间 - confirmLeaveTime(e) { - console.log('confirmLeaveTime111', e); - let _this = this; - let detail = _this.data.detail; - detail.leaveTime = selfFormatTimeYMDHMS(e.detail); + // 查询设备类型 + queryDeviceType() { + let _this = this + deviceTypeListRq().then(res => { + console.log('deviceTypeListRq', res); + let list = res.rows.map(item => { + return { + id: item.id, + text: item.name + } + }) + let typeColumns = _this.data.typeColumns + typeColumns[0].values = list + _this.setData({ + typeColumns + }) + // 查询设备 + _this.queryDevice(list[0].id) + }) + }, + + // 查询设备 + queryDevice(id) { + let _this = this + + deviceListRq({ + typeId: id + }).then(res => { + console.log('deviceListRq', res); + let list = res.rows.map(item => { + return { + id: item.id, + text: item.name + } + }) + let typeColumns = _this.data.typeColumns + typeColumns[1].values = list + _this.setData({ + typeColumns + }) + }) + }, + + // 选择设备类型 + typeColumnsChange(e) { + console.log('typeColumnsChange', e.detail); + let _this = this + const { + picker, + value, + index + } = e.detail; + if (index == 0) { // 选择类型 + let obj = value[index] + _this.queryDevice(obj.id) + + } else if (index == 1) { // 选择设备 + let obj = value[index] + } + }, + + // 确认设备 + typeColumnsConfirm(e){ + console.log('typeColumnsConfirm' , e.detail); + let _this = this + const { + picker, + value, + index + } = e.detail; + let detail = _this.data.detail + detail.typeId = value[0].id + detail.repairDevice = value[1].id + let typeName = value[0].text + '/' + value[1].text _this.setData({ - leaveTimeShow: false, - leaveTimeDate: e.detail, - detail + detail, + typeName, + typeVisible : false + }) + }, + + + showAddress() { + this.setData({ + addressVisible: true, + }) + }, + + hideAddress() { + this.setData({ + addressVisible: false, + }) + }, + + // 查询地点 + queryAddress(){ + let _this = this + selectAddressListRq().then(res=>{ + console.log('selectAddressListRq', res); + let list = res.rows.map(item => { + return { + id: item.id, + text: item.name + } + }) + let addressColumns = _this.data.addressColumns + addressColumns[0].values = list + _this.setData({ + addressColumns + }) + // 查询楼层 + _this.queryRoom(list[0].id) + }) + }, + + // 查询楼层 + queryRoom(id){ + let _this = this + + selectRoomListRq({ + addressId: id + }).then(res => { + console.log('selectRoomListRq', res); + let list = res.rows.map(item => { + return { + id: item.id, + text: item.name + } + }) + let addressColumns = _this.data.addressColumns + addressColumns[1].values = list + _this.setData({ + addressColumns + }) + }) + }, + + // 选择地点 + addressColumnsChange(e) { + console.log('addressColumnsChange', e.detail); + let _this = this + const { + picker, + value, + index + } = e.detail; + if (index == 0) { // 选择地点 + let obj = value[index] + _this.queryRoom(obj.id) + + } else if (index == 1) { // 选择楼层 + let obj = value[index] + } + }, + + // 确认地点 + addressColumnsConfirm(e){ + console.log('addressColumnsConfirm' , e.detail); + let _this = this + const { + picker, + value, + index + } = e.detail; + let detail = _this.data.detail + detail.addressId = value[0].id + detail.roomId = value[1].id + let addressName = value[0].text + '/' + value[1].text + _this.setData({ + detail, + addressName, + addressVisible : false }) }, @@ -174,6 +362,7 @@ Page({ }) recorderManager.onStop((res) => { console.log('recorder stop', res) + res.duration = parseInt(parseInt(res.duration) / 10) / 100 _this.setData({ voiceObj: res, innerAudioContext: null, // 音频对象 @@ -211,7 +400,9 @@ Page({ let innerAudioContextIsPlay = _this.data.innerAudioContextIsPlay if (!innerAudioContext) { // 全局设置播放声音 - wx.setInnerAudioOption({ obeyMuteSwitch: false }); + wx.setInnerAudioOption({ + obeyMuteSwitch: false + }); innerAudioContext = wx.createInnerAudioContext() // 设置音频文件的路径 innerAudioContext.src = _this.data.voiceObj.tempFilePath @@ -241,6 +432,15 @@ Page({ _this.data.innerAudioContext.stop() }, + // 清楚语音 + clearAudio(){ + this.setData({ + innerAudioContext: null, // 音频对象 + innerAudioContextIsPlay: false, // 音频对象-是否播放 + voiceObj: {}, // 录音文件对象 + }) + }, + // 图片-上传前校验 beforeRead(event) { // const { @@ -253,7 +453,7 @@ Page({ // 文件-上传后 fileAfterRead(event) { let _this = this; - console.log('fileAfterRead' ,event); + console.log('fileAfterRead', event); const { file } = event.detail; @@ -312,24 +512,26 @@ Page({ let _this = this; // 上传文件列表 let fileList = _this.data.fileList; + // 音频 + let voiceObj = _this.data.voiceObj; // 数据 let detail = _this.data.detail; // // 校验数据 // - // 被访单位 - if (!detail.customerId) { - _this.showErrMsg('请选择被访单位!') + // 报修名称 + if (!detail.repairName) { + _this.showErrMsg('输入报修名称!') return; } - // 被访人姓名 - if (!detail.userName) { - _this.showErrMsg('请输入被访人姓名!') + // 故障等级 + if (!detail.repairLevel) { + _this.showErrMsg('请选择故障等级!') return; } - // 被访人电话 - if (!detail.userMobile) { - _this.showErrMsg('请输入被访人电话!') + // 故障时间 + if (!detail.failureDate) { + _this.showErrMsg('请选择故障时间!') return; } // 访客姓名 diff --git a/miniprogram/pages/reportRepair/report/report.json b/miniprogram/pages/reportRepair/report/report.json index 404e3a5..068fd9a 100644 --- a/miniprogram/pages/reportRepair/report/report.json +++ b/miniprogram/pages/reportRepair/report/report.json @@ -8,6 +8,7 @@ "van-notify": "@vant/weapp/notify/index", "van-action-sheet": "@vant/weapp/action-sheet/index", "van-dialog": "@vant/weapp/dialog/index", - "van-icon": "@vant/weapp/icon/index" + "van-icon": "@vant/weapp/icon/index", + "van-picker": "@vant/weapp/picker/index" } } \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/report/report.wxml b/miniprogram/pages/reportRepair/report/report.wxml index 0ff051a..0fad946 100644 --- a/miniprogram/pages/reportRepair/report/report.wxml +++ b/miniprogram/pages/reportRepair/report/report.wxml @@ -2,40 +2,40 @@ 报修名称 - + 故障等级 - + - + 故障时间 - + 故障类型 - + - 联系电话 - + 联系电话 + - 报修人姓名 + 报修人姓名 故障地点 - + 门牌号 - + 故障描述 - + @@ -44,15 +44,15 @@ - 语音 - - - {{voiceObj.duration}}ms - + 语音 + + + {{voiceObj.duration}} s + - 故障图片 + 故障图片 @@ -67,15 +67,21 @@ - - + + - - - + + + - - - + + + + + + + + + \ No newline at end of file