// pages/problemReport/proRep.js import { GetManagementClass, GetCompany } from '../../utils/network' var util = require('../../utils/network'); const DatePickerUtil = require('../../utils/DatePicker') const app = getApp() Page({ /** * 页面的初始数据 */ data: { imageUrl: [], form: { deviceId: undefined, address: '',//地址 appointmentTime: '',//预约时间 remark: '',//备注 erectoId: -1,//安装工 userName: '', //用户信息,联系人 userPhone: '',//用户信息联系电话 erectoName: '未指派', state: 0 }, deviceIndex: 0, erectoIndex: 0, erectoList1: [], erectoList2: [], deviceList1: [], deviceList2: [], imgUrl: '/images/img.png', time: '选择预约时间', multiArray: [],//piker的item项 multiIndex: [],//当前选择列的下标 year: '',//选择的年 month: '',//选择的月 day: '',//选择的日 hour: '',//选择的时 minute: '',//选择的分 showDate: false, selectDate: '', paramsInfo: {}, showJD: false, view:false, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { if (options && options.info) { let info = JSON.parse(options.info) console.log(info); this.setData({ showJD: true, paramsInfo: info, form: info, time: info.appointmentTime, deviceIndex: 0, deviceList2: [info.device.deviceName], // erectoIndex: 0, // erectoList2: [info.erectoName], view:info.imgUrl?true:false }) wx.setNavigationBarTitle({ title:'ID'+this.data.form.id+' | '+this.data.form.device.deviceName }) } this.getErectoList() this.getDeviceList() }, changeUserName(e) { this.data.form.userName = e.detail.value }, changePhone(e) { this.data.form.userPhone = e.detail.value }, changeaddress(e) { this.data.form.address = e.detail.value }, changeRemark(e) { this.data.form.remark = e.detail.value }, Cancel() { wx.navigateBack() }, Yes() { console.log(this.data.form); // return false if (this.data.form.state == 3) { if (!this.data.form.imgUrl) { wx.showToast({ title: '请上传图片', icon: 'none' }); return } this.data.form.orderType='2' if (this.data.form.appointmentTime) { this.data.form.appointmentTime += ':00' } console.log(this.data.form); wx.request({ url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder`, method: "put", header: { "Access-Control-Allow-Headers": 'token', Authorization: `Bearer ${wx.getStorageSync('token')}` }, data: this.data.form, success: (res, header) => { if (res.data.code != 200) { wx.showToast({ title: res.data.msg, icon: 'none' }); } else { wx.navigateBack() } } }) } else if (Object.keys(this.data.paramsInfo).length > 0 && this.data.form.state != 3) { console.log(this.data.form); let phoneReg = /^1[3456789]\d{9}$/; if (!this.data.form.userName) { wx.showToast({ title: '请输入用户名', icon: 'none' }) return } else if (!phoneReg.test(this.data.form.userPhone)) { wx.showToast({ title: '请输入正确手机号', icon: 'none' }) return } else if (!this.data.form.address) { wx.showToast({ title: '请输入安装地址', icon: 'none' }) return } this.data.form.orderType='2' if (this.data.form.appointmentTime) { this.data.form.appointmentTime += ':00' } console.log(this.data.form); wx.request({ url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder`, method: "put", header: { "Access-Control-Allow-Headers": 'token', Authorization: `Bearer ${wx.getStorageSync('token')}` }, data: this.data.form, success: (res, header) => { if (res.data.code != 200) { wx.showToast({ title: res.data.msg, icon: 'none' }); } else { wx.navigateBack() } } }) } else { console.log(this.data.form); let phoneReg = /^1[3456789]\d{9}$/; if (!this.data.form.userName) { wx.showToast({ title: '请输入用户名', icon: 'none' }) return } else if (!phoneReg.test(this.data.form.userPhone)) { wx.showToast({ title: '请输入正确手机号', icon: 'none' }) return } else if (!this.data.form.address) { wx.showToast({ title: '请输入安装地址', icon: 'none' }) return } if (this.data.form.appointmentTime) { this.data.form.appointmentTime += ':00' } this.data.form.orderType='2' this.data.form.repairFlag=1, console.log(this.data.form); wx.request({ url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder`, method: "post", header: { "Access-Control-Allow-Headers": 'token', Authorization: `Bearer ${wx.getStorageSync('token')}` }, data: this.data.form, success: (res, header) => { console.log(res); if (res.data.code != 200) { wx.showToast({ title: res.data.msg, icon: 'none' }); } else { wx.navigateTo({ url: '/pages/problemListwx/problemListwx', }) } } }) } }, chooseimage() { var that = this; // 将当前页面的上下文赋值给 that 变量 // 在某个事件处理函数中调用以下代码 wx.chooseImage({ count: 1, // 最多可以选择的图片数量,这里设为1 sourceType: ['album'], // 从相册选择 success: function (res) { // 选择成功后,res.tempFilePaths 是选定的图片的本地文件路径列表 const tempFilePath = res.tempFilePaths; wx.compressImage({ src: tempFilePath[0], quality: 80, // 设置压缩质量,范围为 0-100 success: function (res) { const compressedFilePath = res.tempFilePath; console.log(compressedFilePath, 'compressedFilePath'); // 压缩后的图片路径进行的后续操作 try { let data = compressedFilePath wx.uploadFile({ // 上传接口路径 url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/profile/avatar`, filePath: data, name: 'avatarfile', // 上传文件对应的 key 名称 method: 'post', header: { 'content-type': 'application/form-data', "Access-Control-Allow-Headers": 'token', Authorization: `Bearer ${wx.getStorageSync('token')}` }, // data: data success: function (res) { console.log(res.data); // 上传成功后的处理逻辑 that.setData({ imgUrl: 'https://puyue.yhupai.com/prod-api' + JSON.parse(res.data).imgUrl // 将选择的图片路径设置为页面数据的某个属性 }); console.log(that.data.imgUrl); that.data.form.imgUrl = that.data.imgUrl }, fail: function (res) { // 上传失败后的处理逻辑 console.log(res, '上传失败后的处理逻辑'); } }) } catch (e) { } }, fail: function (err) { // 压缩失败的处理 console.error(err); } }); } }); }, getDeviceList() { let data = { repairFlag: 0 } wx.request({ url: 'https://puyue.yhupai.com/prod-api/iot/device/shortList', method: "GET", header: { "Access-Control-Allow-Headers": 'token', Authorization: `Bearer ${wx.getStorageSync('token')}` }, data: data, success: (res, header) => { if (res.data.code != 200) { wx.showToast({ title: res.data.msg, icon: 'none' }); } else { let data = [] for (let i = 0; i < res.data.rows.length; i++) { data.push(res.data.rows[i].deviceName) } this.setData({ deviceList1: res.data.rows, deviceList2: data }) this.data.form.deviceId = res.data.rows[0].deviceId this.data.form.deviceName = res.data.rows[0].deviceName } } }) }, getErectoList() { let data = { pageNum: 1, pageSize: 10000, deptId: wx.getStorageSync('deptId'), isAuthentication: 1 } wx.request({ url: 'https://puyue.yhupai.com/prod-api/system/user/list', method: "GET", header: { "Access-Control-Allow-Headers": 'token', Authorization: `Bearer ${wx.getStorageSync('token')}` }, data: data, success: (res, header) => { if (res.data.code != 200) { wx.showToast({ title: res.data.msg, icon: 'none' }); } else { console.log(res); res.data.rows.unshift({ nickName:'未指派', erectoId:-1 }) let data1 = [] for (let i = 0; i < res.data.rows.length; i++) { data1.push(res.data.rows[i].nickName) } this.setData({ erectoList1: res.data.rows, erectoList2: data1 }) if (this.data.showJD) { console.log(11111111111); for (let i = 0; i < this.data.erectoList1.length; i++) { if (this.data.erectoList1[i].userId == this.data.paramsInfo.erectoId) { console.log(i); this.setData({ erectoIndex: i, }) } } } else { this.data.form.erectoId = -1 this.data.form.erectoName = '未指派' } } } }) }, bindPicker(e) { console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ deviceIndex: e.detail.value }) this.data.form.deviceId = this.data.deviceList1[e.detail.value].deviceId this.data.form.deviceName = this.data.deviceList1[e.detail.value].deviceName console.log(this.data.form, this.data.deviceList1); }, bindPicker2(e) { this.setData({ erectoIndex: e.detail.value }) if (this.data.erectoIndex == 0) { let item = JSON.parse(JSON.stringify(this.data.form)) item.state = 0 this.setData({ form: item }) // this.data.form.state = 0 this.data.form.erectoId = -1 this.data.form.erectoName = '未指派' } else { let item = JSON.parse(JSON.stringify(this.data.form)) item.state = 1 this.setData({ form: item }) this.data.form.erectoId = this.data.erectoList1[Number(e.detail.value)].userId this.data.form.erectoName = this.data.erectoList1[Number(e.detail.value)].nickName } }, openShowDate() { this.setData({ showDate: true }) }, bindMultiPickerChange: function (e) { //时间日期picker选择改变后,点击确定 // console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ multiIndex: e.detail.value }) const index = this.data.multiIndex; // 当前选择列的下标 const year = this.data.multiArray[0][index[0]]; const month = this.data.multiArray[1][index[1]]; const day = this.data.multiArray[2][index[2]]; const hour = this.data.multiArray[3][index[3]]; const minute = this.data.multiArray[4][index[4]]; // console.log(`${year}-${month}-${day} ${hour}:${minute}`); this.setData({ time: (year + month + day + ' ' + hour.replace('时', '') + ':' + minute.replace('分', '')).replace('年', '-').replace('月', '-').replace('日', ''), year: year, //记录选择的年 month: month, //记录选择的月 day: day, //记录选择的日 hour: hour, //记录选择的时 minute: minute, //记录选择的分 }) this.data.form.appointmentTime = this.data.time }, bindMultiPickerColumnChange: function (e) { //监听picker的滚动事件 // console.log('修改的列为', e.detail.column, ',值为', e.detail.value); let getCurrentDate = DatePickerUtil.getCurrentDate();//获取现在时间 let currentYear = parseInt(getCurrentDate.substring(0, 4)); let currentMonth = parseInt(getCurrentDate.substring(5, 7)); let currentDay = parseInt(getCurrentDate.substring(8, 10)); let currentHour = parseInt(getCurrentDate.substring(11, 13)); let currentMinute = parseInt(getCurrentDate.substring(14, 16)); if (e.detail.column == 0) {//修改年份列 let yearSelected = parseInt(this.data.multiArray[e.detail.column][e.detail.value]);//当前选择的年份 this.setData({ multiIndex: [0, 0, 0, 0, 0],//设置pickerIndex year: yearSelected //当前选择的年份 }); if (yearSelected == currentYear) {//当前选择的年份==当前年份 var loadPickerData = DatePickerUtil.loadPickerData(); this.setData({ multiArray: loadPickerData,//picker数组赋值 multiIndex: [0, 0, 0, 0, 0] //设置pickerIndex }); } else { // 选择的年份!=当前年份 // 处理月份 let monthArr = DatePickerUtil.loadMonths(1, 12) // 处理日期 let dayArr = DatePickerUtil.loadDays(currentYear, currentMonth, 1) // 处理hour let hourArr = DatePickerUtil.loadHours(0, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) // 给每列赋值回去 this.setData({ ['multiArray[1]']: monthArr, ['multiArray[2]']: dayArr, ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }); } } if (e.detail.column == 1) {//修改月份列 let mon = parseInt(this.data.multiArray[e.detail.column][e.detail.value]); //当前选择的月份 this.setData({ month: mon // 记录当前列 }) if (mon == currentMonth) {//选择的月份==当前月份 if (this.data.year == currentYear) { // 处理日期 let dayArr = DatePickerUtil.loadDays(currentYear, mon, currentDay) // 处理hour let hourArr = DatePickerUtil.loadHours(currentHour, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(currentMinute, 60) this.setData({ ['multiArray[2]']: dayArr, ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }) } else { // 处理日期 let dayArr = DatePickerUtil.loadDays(currentYear, mon, 1) // 处理hour let hourArr = DatePickerUtil.loadHours(0, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) this.setData({ ['multiArray[2]']: dayArr, ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }); } } else { // 选择的月份!=当前月份 // 处理日期 let dayArr = DatePickerUtil.loadDays(currentYear, mon, 1) // 传入当前年份,当前选择的月份去计算日 // 处理hour let hourArr = DatePickerUtil.loadHours(0, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) this.setData({ ['multiArray[2]']: dayArr, ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }); } } if (e.detail.column == 2) {//修改日 let dd = parseInt(this.data.multiArray[e.detail.column][e.detail.value]);//当前选择的日 this.setData({ day: dd }) if (dd == currentDay) {//选择的日==当前日 if (this.data.year == currentYear && this.data.month == currentMonth) {//选择的是今天 // 处理hour let hourArr = DatePickerUtil.loadHours(currentHour, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(currentMinute, 60) this.setData({ ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }); } else { //选择的不是今天 // 处理hour let hourArr = DatePickerUtil.loadHours(0, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) this.setData({ ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }); } } else { // 选择的日!=当前日 // 处理hour let hourArr = DatePickerUtil.loadHours(0, 24); // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) this.setData({ ['multiArray[3]']: hourArr, ['multiArray[4]']: minuteArr }); } } if (e.detail.column == 3) {//修改时 let hh = parseInt(this.data.multiArray[e.detail.column][e.detail.value]); //当前选择的时 this.setData({ hour: hh }) if (hh == currentHour) {//选择的时==当前时 if (this.data.year == currentYear && this.data.month == currentMonth && this.data.month == currentMonth) { // 选择的是今天 // 处理minute let minuteArr = DatePickerUtil.loadMinutes(currentMinute, 60) this.setData({ ['multiArray[4]']: minuteArr }); } else { // 选择的不是今天 // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) this.setData({ ['multiArray[4]']: minuteArr }); } } else {//选择的时!=当前时 // 处理minute let minuteArr = DatePickerUtil.loadMinutes(0, 60) this.setData({ ['multiArray[4]']: minuteArr }); } } var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; // console.log('修改的列为', e.detail.column, ',值为', e.detail.value); data.multiIndex[e.detail.column] = e.detail.value; //将值赋回去 this.setData(data); //将值赋回去 }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { if (this.data.form && this.data.form.appointmentTime) { var loadPickerData = DatePickerUtil.loadPickerData() // var getCurrentDate = DatePickerUtil.getCurrentDate() var GetMultiIndex = DatePickerUtil.GetMultiIndex() //这里写的是为了记录当前时间 let year = parseInt(this.data.form.appointmentTime.substring(0, 4)); let month = parseInt(this.data.form.appointmentTime.substring(5, 7)); let day = parseInt(this.data.form.appointmentTime.substring(8, 10)); let hour = parseInt(this.data.form.appointmentTime.substring(11, 13)); let minute = parseInt(this.data.form.appointmentTime.substring(14, 16)); this.setData({ multiArray: loadPickerData,//picker数组赋值,格式 [years, months, days, hours, minutes] multiIndex: GetMultiIndex,//设置pickerIndex,[0,0,0,0,0] time: year + '-' + month + '-' + day + ' ' + hour + ':' + minute, //设置当前时间 ,currentYears+'-'+mm+'-'+dd+' '+hh+':'+min year: year,//记录选择的年 month: month,//记录选择的月 day: day,//记录选择的日 hour: hour,//记录选择的时 minute: minute,//记录选择的分 }); } else { var loadPickerData = DatePickerUtil.loadPickerData() var getCurrentDate = DatePickerUtil.getCurrentDate() var GetMultiIndex = DatePickerUtil.GetMultiIndex() //这里写的是为了记录当前时间 let year = parseInt(getCurrentDate.substring(0, 4)); let month = parseInt(getCurrentDate.substring(5, 7)); let day = parseInt(getCurrentDate.substring(8, 10)); let hour = parseInt(getCurrentDate.substring(11, 13)); let minute = parseInt(getCurrentDate.substring(14, 16)); this.setData({ multiArray: loadPickerData,//picker数组赋值,格式 [years, months, days, hours, minutes] multiIndex: GetMultiIndex,//设置pickerIndex,[0,0,0,0,0] time: getCurrentDate.replace('年', '-').replace('月', '-').replace('日', ' '), //设置当前时间 ,currentYears+'-'+mm+'-'+dd+' '+hh+':'+min year: year,//记录选择的年 month: month,//记录选择的月 day: day,//记录选择的日 hour: hour,//记录选择的时 minute: minute,//记录选择的分 }); } }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })