| | |
| | | "pages/personSet/personSet", |
| | | "pages/changePsw/changePSW", |
| | | "pages/notice/notice", |
| | | "pages/noticeDetail/noticeDetail" |
| | | "pages/noticeDetail/noticeDetail", |
| | | "pages/rate/rate", |
| | | "pages/yetWX/yetWX" |
| | | ], |
| | | "permission": { |
| | | "scope.userLocation": { |
| | |
| | | let mapInfo = res.data.data |
| | | // console.log(res.data.data); |
| | | var marker = [{ |
| | | id:0, |
| | | latitude: mapInfo.latitude, |
| | | longitude: mapInfo.longitude, |
| | | iconPath: '../../images/ProRep/weizhi.png', |
| | |
| | | wx.navigateTo({ |
| | | url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint |
| | | }); |
| | | |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | |
| | | }) |
| | | }, |
| | | getShortList() { |
| | | this.setData({ |
| | | manageList:[] |
| | | }) |
| | | // let data = { |
| | | // status:3 |
| | | // repairFlag: 0 |
| | | // } |
| | | wx.request({ |
| | | url: 'https://puyue.yhupai.com/prod-api/iot/device/shortList', |
| | |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | // params: data, |
| | | // data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code != 200) { |
| | | wx.showToast({ |
| | |
| | | padding: 0 5px; |
| | | border-top-left-radius: 5px; |
| | | border-top-right-radius: 5px; |
| | | white-space:nowrap; |
| | | } |
| | | |
| | | .list .item .content { |
| | |
| | | // pages/login/logn.js |
| | | import { loginRequest } from '../../utils/network.js' |
| | | // md5 password加密 |
| | | import { hexMD5 } from "../../utils/md5.js" |
| | | |
| | | const app = getApp() |
| | | Page({ |
| | | |
| | |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | userName: 'admin', |
| | | psw: 'admin123', |
| | | // userName: 'admin', |
| | | // psw: 'admin123', |
| | | userName: 'wumei-t1', |
| | | psw: '123456', |
| | | codeNum: '', |
| | | loginImg: '/images/login.png', |
| | | uuid: '', |
| | |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | if (wx.getStorageSync('user')) { |
| | | app.setUser(wx.getStorageSync('user')) |
| | | wx.switchTab({ |
| | | url: '/pages/home/home', |
| | | }) |
| | | } |
| | | // if (wx.getStorageSync('user')) { |
| | | // app.setUser(wx.getStorageSync('user')) |
| | | // wx.switchTab({ |
| | | // url: '/pages/home/home', |
| | | // }) |
| | | // } |
| | | // this.getImg() |
| | | }, |
| | | // 绑定用户名 |
| New file |
| | |
| | | Component({ |
| | | /** |
| | | * 组件的属性列表 |
| | | */ |
| | | properties: { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 组件的初始数据 |
| | | */ |
| | | data: { |
| | | test: [ |
| | | [], |
| | | [], |
| | | [], |
| | | [], |
| | | [], |
| | | ], |
| | | selectvalue: [1, 2, 3, 4, 5], |
| | | date: '', |
| | | time:'01-01' |
| | | }, |
| | | |
| | | /** |
| | | * 组件的方法列表 |
| | | */ |
| | | methods: { |
| | | formatNumber(n){ |
| | | n = n.toString() |
| | | return n[1] ? n : '0' + n |
| | | }, |
| | | formatDate(date){ |
| | | const year = date.getFullYear() |
| | | const month = date.getMonth() + 1 |
| | | const day = date.getDate() |
| | | return [year, month, day].map(this.formatNumber).map(this.formatNumber).join('-') |
| | | }, |
| | | // 可以封装为获取某年某月的天数 |
| | | mGetDate(year, month) { |
| | | let d = new Date(year, month, 0); |
| | | return d.getDate(); |
| | | }, |
| | | //多列滚动选择器滚动时触发事件 |
| | | bindcolumnchange(e) { |
| | | let column = e.detail.column |
| | | let temp = this.data.selectvalue |
| | | switch (column) { |
| | | case 0: |
| | | temp[0] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }, () => { |
| | | let day = this.mGetDate(this.data.selectvalue[0], this.data.selectvalue[1]) |
| | | let days = [] |
| | | for (let i = 1; i <= day; i++) { |
| | | days.push(i + '日') |
| | | } |
| | | let temp_1 = this.data.test |
| | | temp_1[2] = days |
| | | this.setData({ |
| | | test: temp_1 |
| | | }) |
| | | }) |
| | | break; |
| | | case 1: |
| | | temp[1] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }, () => { |
| | | let day = this.mGetDate((this.data.selectvalue[0] + 1), (this.data.selectvalue[1] + 1)) |
| | | let days = [] |
| | | for (let i = 1; i <= day; i++) { |
| | | days.push(i + '日') |
| | | } |
| | | let temp_1 = this.data.test |
| | | temp_1[2] = days |
| | | this.setData({ |
| | | test: temp_1 |
| | | }) |
| | | }) |
| | | break; |
| | | case 2: |
| | | temp[2] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }) |
| | | break; |
| | | case 3: |
| | | temp[3] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }) |
| | | break; |
| | | case 4: |
| | | temp[4] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }) |
| | | break; |
| | | } |
| | | |
| | | // console.log("第" + e.detail.column + "列", "第" + e.detail.value + "个") |
| | | }, |
| | | // 确定选择日期 |
| | | bindchange() { |
| | | let temp = this.data.selectvalue |
| | | let year = (this.data.test[0][temp[0]]).substr(0, (this.data.test[0][temp[0]]).length - 1) |
| | | year = this.addzero(year) |
| | | let month = (this.data.test[1][temp[1]]).substr(0, (this.data.test[1][temp[1]]).length - 1) |
| | | month = this.addzero(month) |
| | | let day = this.data.test[2][temp[2]].substr(0, (this.data.test[2][temp[2]]).length - 1) |
| | | day = this.addzero(day) |
| | | let hour = this.data.test[3][temp[3]].substr(0, (this.data.test[3][temp[3]]).length - 1) |
| | | hour = this.addzero(hour) |
| | | let minute = this.data.test[4][temp[4]].substr(0, (this.data.test[4][temp[4]]).length - 1) |
| | | minute = this.addzero(minute) |
| | | this.setData({ |
| | | date: year + "-" + month + "-" + day, |
| | | time: hour + ":" + minute, |
| | | all: year + "-" + month + "-" + day + '' + hour + ":" + minute, |
| | | }, _ => { |
| | | this.triggerEvent("pConfirm", { |
| | | date: year + "-" + month + "-" + day, |
| | | time: hour + ":" + minute, |
| | | all: year + "-" + month + "-" + day + '' + hour + ":" + minute, |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | //+0 |
| | | addzero(str){ |
| | | if(str.length==1){ |
| | | return "0"+str |
| | | }else { |
| | | return str |
| | | } |
| | | }, |
| | | }, |
| | | ready() { |
| | | // 获取当前日期(年,月,日) |
| | | let DATE = (this.formatDate(new Date())).split('-') |
| | | let year = parseInt(DATE[0]) |
| | | let month = parseInt(DATE[1]) |
| | | let day_1 = parseInt(DATE[2]) |
| | | this.setData({ |
| | | selectvalue: [0, month - 1, day_1 - 1, 0, 0], |
| | | date: year + "-" + month + "-" + day_1 |
| | | }) |
| | | let years = [] |
| | | let months = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] |
| | | let days = [] |
| | | let hours = [] |
| | | let minutes = [] |
| | | //判断当前月份天数 |
| | | let day = this.mGetDate(year, month) |
| | | for (let i = 1; i <= day; i++) { |
| | | days.push(i + '日') |
| | | } |
| | | for (let i = 0; i < 30; i++) { |
| | | years.push(year + i + '年') |
| | | } |
| | | for (let i = 1; i < 25; i++) { |
| | | hours.push(i + "点") |
| | | } |
| | | for (let i = 0; i < 61; i++) { |
| | | minutes.push(i + "分") |
| | | } |
| | | this.setData({ |
| | | test: [years, months, days, hours, minutes] |
| | | }) |
| | | } |
| | | }) |
| | | |
| New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | |
| | | } |
| | | } |
| New file |
| | |
| | | <!--pages/repairTicketDetail/datePicker.wxml--> |
| | | <!-- 组件 --> |
| | | <view> |
| | | <picker range="{{test}}" mode="multiSelector" bindcolumnchange='bindcolumnchange' value="{{selectvalue}}" bindchange="bindchange"> |
| | | {{date}} {{time}} |
| | | </picker> |
| | | </view> |
| | | |
| New file |
| | |
| | | /* pages/repairTicketDetail/datePicker.wxss */ |
| New file |
| | |
| | | // pages/rate/rate.js |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | params: {}, |
| | | value: 0, |
| | | comment: '', |
| | | isRate:0 |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | // this.data.params =JSON.parse(options.params) |
| | | this.setData({ |
| | | params:JSON.parse(options.params), |
| | | isRate:JSON.parse(options.params).isRate |
| | | }) |
| | | if(this.data.isRate){ |
| | | this.setData({ |
| | | value:this.data.params.score, |
| | | comment:this.data.params.evaluate |
| | | }) |
| | | } |
| | | }, |
| | | onChange(event) { |
| | | this.setData({ |
| | | value: event.detail, |
| | | }); |
| | | }, |
| | | handleInput(e) { |
| | | this.setData({ |
| | | comment: e.detail.value |
| | | }); |
| | | }, |
| | | handleSubmit() { |
| | | if (this.data.value == 0) { |
| | | wx.showToast({ |
| | | title: '请选择您对本次服务的评价', |
| | | icon: 'none' |
| | | }) |
| | | return false |
| | | } |
| | | let data = { |
| | | id: this.data.params.id, |
| | | userId: this.data.params.userId, |
| | | orderType: this.data.params.orderType, |
| | | score: this.data.value, |
| | | evaluate: this.data.comment |
| | | } |
| | | wx.request({ |
| | | url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/editDeviceOrderScore?id=${data.id}&userId=${data.userId}&orderType=${data.orderType}&score=${data.score}&evaluate=${data.evaluate}`, |
| | | method: "post", |
| | | 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: "error" |
| | | }) |
| | | } else { |
| | | |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | } |
| | | }) |
| New file |
| | |
| | | { |
| | | "usingComponents": { |
| | | "van-field": "/miniprogram_npm/vant-weapp/field/index", |
| | | "van-rate": "/miniprogram_npm/vant-weapp/rate/index" |
| | | }, |
| | | "navigationBarTitleText": "用户评价", |
| | | "navigationBarTextStyle": "white", |
| | | "navigationBarBackgroundColor": "#007CFE" |
| | | } |
| New file |
| | |
| | | <view class="rate" > |
| | | <van-rate value="{{ value }}" size="{{25}}" color="#EE0A24" style="margin-left: 40px;" bind:change="onChange" /> |
| | | </view> |
| | | <view style="padding-left: 3%;" > |
| | | <view class="rateItem" wx:if="{{value==0}}">待评价</view> |
| | | <view class="rateItem" wx:if="{{value==1}}">非常不满意,各方面都很差</view> |
| | | <view class="rateItem" wx:if="{{value==2}}">不满意,比较差</view> |
| | | <view class="rateItem" wx:if="{{value==3}}">一般,还需改善</view> |
| | | <view class="rateItem" wx:if="{{value==4}}">比较满意,仍可改善</view> |
| | | <view class="rateItem" wx:if="{{value==5}}">非常满意,无需挑剔</view> |
| | | </view> |
| | | |
| | | <view style="width:calc(100% - 20px);border: 1px solid #778CBD;margin: 10px;border-radius: 5px;"> |
| | | <textarea disabled="{{isRate}}" placeholder="请输入您的评价" value="{{comment}}" style="padding: 5px;" bindinput="handleInput" /> |
| | | </view> |
| | | |
| | | <view bind:tap="handleSubmit" style="width: 96%;margin-left: 2%;height: 40px;line-height: 40px;background-color: #007CFE;text-align: center;color: #fff;margin-top: 10px;">提交</view> |
| | | |
| New file |
| | |
| | | /* pages/rate/rate.wxss */ |
| | | .rate { |
| | | width: 100%; |
| | | display: flex; |
| | | height: 50px; |
| | | line-height: 50px; |
| | | } |
| | | |
| | | .title { |
| | | width: 30%; |
| | | text-align: left; |
| | | padding-left: 10px; |
| | | } |
| | | |
| | | .van-rate { |
| | | width: 60%; |
| | | justify-content: center; |
| | | display: flex; |
| | | } |
| | | .rateItem{ |
| | | color: #909399; |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | deviceList:[], |
| | | deviceList: [], |
| | | detailedaddress: '获取地址', |
| | | showType: false, |
| | | deviceName: '请选择', |
| | |
| | | selectDate: '', |
| | | show: 'none', |
| | | info: '', |
| | | personInfo: {}, |
| | | yetSub: false, |
| | | tanantId: 0, |
| | | |
| | | |
| | | deviceId: 0, |
| | | userName: '', |
| | | userPhone: undefined, |
| | | address: '', |
| | | description:'', |
| | | description: '', |
| | | |
| | | time: '选择预约时间', |
| | | multiArray: [],//piker的item项 |
| | |
| | | }, |
| | | onChangeType(event) { |
| | | const { picker, value, index } = event.detail; |
| | | console.log(picker, value, index); |
| | | this.setData({ |
| | | deviceName: value, |
| | | showType: false, |
| | | deviceIndex: index |
| | | deviceIndex: index, |
| | | tanantId: this.data.deviceList[index].tenantId, |
| | | deviceId: this.data.deviceList[index].deviceId, |
| | | }) |
| | | console.log(this.data.deviceId); |
| | | }, |
| | | changeUserName(e) { |
| | | this.setData({ |
| | | userName: e.detail.value |
| | | }) |
| | | |
| | | }, |
| | | checkPhone(e) { |
| | | this.setData({ |
| | |
| | | address: e.detail.value |
| | | }) |
| | | }, |
| | | changeDescription(e){ |
| | | changeDescription(e) { |
| | | console.log(e); |
| | | this.setData({ |
| | | description: e.detail.value |
| | | description: e.detail |
| | | }) |
| | | }, |
| | | closeType() { |
| | |
| | | showDate: true |
| | | }) |
| | | }, |
| | | |
| | | |
| | | bindMultiPickerChange: function (e) { //时间日期picker选择改变后,点击确定 |
| | | // console.log('picker发送选择改变,携带值为', e.detail.value) |
| | | this.setData({ |
| | |
| | | icon: 'none' |
| | | }); |
| | | return false |
| | | }else if(!this.data.userName) { |
| | | } else if (!this.data.userName) { |
| | | wx.showToast({ |
| | | title: '请输入用户名', |
| | | icon: 'none' |
| | | }); |
| | | return false |
| | | }else if(!reg.test(this.data.userPhone)) { |
| | | } else if (!reg.test(this.data.userPhone)) { |
| | | wx.showToast({ |
| | | title: '手机号格式不正确', |
| | | icon: 'none' |
| | | }); |
| | | return false |
| | | }else if(!this.data.address) { |
| | | } else if (!this.data.address) { |
| | | wx.showToast({ |
| | | title: '请输入地址', |
| | | icon: 'none' |
| | |
| | | return false |
| | | } |
| | | let data = { |
| | | deviceId: this.data.deviceList[this.data.deviceIndex].deviceId, |
| | | erectoId: 0, |
| | | deviceId: this.data.deviceId, |
| | | erectoId: -1, |
| | | erectoName: '未指派', |
| | | userName: this.data.userName, |
| | | userPhone: this.data.userPhone, |
| | | address: this.data.address, |
| | | // appointmentTime:this.formatDate(this.data.time+':'+'00') , |
| | | appointmentTime:this.data.time+':'+'00', |
| | | state: -1, |
| | | orderType:'2' |
| | | appointmentTime: this.data.time + ':' + '00', |
| | | state: 0, |
| | | orderType: '2', |
| | | createUserId: this.data.tanantId, |
| | | userId: this.data.personInfo.userId, |
| | | repairFlag: 1, |
| | | description:this.data.description |
| | | } |
| | | console.log(data); |
| | | if (this.data.yetSub) { |
| | | data.id = this.data.personInfo.id |
| | | 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: data, |
| | | success: (res, header) => { |
| | | console.log(res); |
| | | if (res.data.code != 200) { |
| | | wx.showToast({ |
| | | title: res.data.msg, |
| | | icon: 'none' |
| | | }); |
| | | } else { |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | 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: data, |
| | | success: (res, header) => { |
| | | console.log(res); |
| | | if (res.data.code != 200) { |
| | | wx.showToast({ |
| | | title: res.data.msg, |
| | | icon: 'none' |
| | | }); |
| | | } else { |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | console.log(data); |
| | | |
| | | }, |
| | | formatDate(dateStr) { |
| | | let date = new Date(dateStr); |
| | | |
| | | let year = date.getFullYear(); |
| | | let month = (date.getMonth() + 1).toString().padStart(2, '0'); // 注意:月份是从 0 开始的,所以需要 +1 |
| | | let day = date.getDate().toString().padStart(2, '0'); |
| | | let hour = date.getHours().toString().padStart(2, '0'); |
| | | let minute = date.getMinutes().toString().padStart(2, '0'); |
| | | let second = date.getSeconds().toString().padStart(2, '0'); |
| | | let millisecond = date.getMilliseconds().toString().padStart(3, '0'); |
| | | |
| | | return `${year}-${month}-${day}T${hour}:${minute}:${second}.${millisecond}Z`; |
| | | }, |
| | | getShortList() { |
| | | // this.setData({ |
| | | // manageList:[] |
| | | // }) |
| | | let data = { |
| | | repairFlag: 0 |
| | | } |
| | | wx.request({ |
| | | url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder', |
| | | method: "POST", |
| | | url: 'https://puyue.yhupai.com/prod-api/iot/device/shortList', |
| | | method: "GET", |
| | | header: { |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | |
| | | icon: 'none' |
| | | }); |
| | | } else { |
| | | wx.navigateTo({ |
| | | url: '/pages/workOrder/workOrder', |
| | | let arr = res.data.rows |
| | | this.setData({ |
| | | deviceList: arr |
| | | }) |
| | | |
| | | let dataDevice = [] |
| | | for (let i = 0; i < this.data.deviceList.length; i++) { |
| | | dataDevice.push(this.data.deviceList[i].deviceName) |
| | | } |
| | | this.setData({ |
| | | columns: dataDevice |
| | | }) |
| | | // wx.setStorageSync('deviceList', arr) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | formatDate(dateStr) { |
| | | let date = new Date(dateStr); |
| | | |
| | | let year = date.getFullYear(); |
| | | let month = (date.getMonth() + 1).toString().padStart(2, '0'); // 注意:月份是从 0 开始的,所以需要 +1 |
| | | let day = date.getDate().toString().padStart(2, '0'); |
| | | let hour = date.getHours().toString().padStart(2, '0'); |
| | | let minute = date.getMinutes().toString().padStart(2, '0'); |
| | | let second = date.getSeconds().toString().padStart(2, '0'); |
| | | let millisecond = date.getMilliseconds().toString().padStart(3, '0'); |
| | | |
| | | return `${year}-${month}-${day}T${hour}:${minute}:${second}.${millisecond}Z`; |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | this.setData({ |
| | | deviceList:wx.getStorageSync('deviceList') |
| | | }) |
| | | let dataDevice = [] |
| | | for (let i = 0; i < this.data.deviceList.length; i++) { |
| | | dataDevice.push(this.data.deviceList[i].productName) |
| | | } |
| | | this.setData({ |
| | | columns: dataDevice |
| | | }) |
| | | this.getShortList() |
| | | |
| | | console.log(this.data.deviceList); |
| | | |
| | | if (options.info) { |
| | | this.setData({ |
| | | personInfo: JSON.parse(options.info), |
| | | yetSub: true |
| | | }) |
| | | console.log(this.data.personInfo); |
| | | this.setData({ |
| | | userName: this.data.personInfo.userName, |
| | | userPhone: this.data.personInfo.userPhone, |
| | | address: this.data.personInfo.address, |
| | | deviceName: this.data.personInfo.device.deviceName, |
| | | deviceId: this.data.personInfo.deviceId, |
| | | tanantId: this.data.personInfo.createUserId, |
| | | description:this.data.personInfo.description |
| | | }) |
| | | for (let i = 0; i < this.data.deviceList.length; i++) { |
| | | console.log(this.data.deviceList[i], this.data.personInfo); |
| | | if (this.data.deviceList[i].deviceId == this.data.deviceId) { |
| | | this.setData({ |
| | | deviceIndex: i |
| | | }) |
| | | } |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | personInfo: wx.getStorageSync('userInfo') |
| | | }) |
| | | this.setData({ |
| | | userName: this.data.personInfo.nickName, |
| | | userPhone: this.data.personInfo.phonenumber, |
| | | address: this.data.personInfo.address, |
| | | }) |
| | | } |
| | | console.log(this.data.personInfo); |
| | | }, |
| | | |
| | | /** |
| | |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | var loadPickerData = DatePickerUtil.loadPickerData() |
| | | var getCurrentDate = DatePickerUtil.getCurrentDate() |
| | | var GetMultiIndex = DatePickerUtil.GetMultiIndex() |
| | |
| | | <view class="main"> |
| | | <view class="item"> |
| | | <view class="left"> |
| | | 设备名称 |
| | | 设备 |
| | | </view> |
| | | <view class="right" bind:tap="openShowType"> |
| | | {{deviceName}} > |
| | |
| | | </view> --> |
| | | <view class="item"> |
| | | <view class="left"> |
| | | 用户姓名 |
| | | 姓名 |
| | | </view> |
| | | <view class="right" bind:tap="choseLocation"> |
| | | <input class="input" placeholder="请输入用户姓名" type="phone" bindinput="changeUserName"></input> |
| | | <input class="input" placeholder="请输入用户姓名" value="{{userName}}" bindinput="changeUserName"></input> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | |
| | | 电话 |
| | | </view> |
| | | <view class="right"> |
| | | <input class="input" placeholder="请输入手机号" type="number" pattern="^1[3-9]\d{9}$" bindinput="checkPhone"></input> |
| | | <input class="input" placeholder="请输入手机号" value="{{userPhone}}" type="number" pattern="^1[3-9]\d{9}$" bindinput="checkPhone"></input> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | |
| | | </view> |
| | | <view class="right" bind:tap="choseLocation"> |
| | | |
| | | <input class="input" placeholder="请输入地址" bindinput="changeAdress"></input> |
| | | <input class="input" value="{{address}}" placeholder="请输入地址" bindinput="changeAdress"></input> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | tabs: [0, 2, 3] , |
| | | form: {}, |
| | | showPage: false, |
| | | showNull: false, |
| | | roleKey: wx.getStorageSync('roleKey'), |
| | |
| | | // totalPage:0, |
| | | index: 1, |
| | | total: 10, |
| | | modalHidden: true, |
| | | delModal: true, |
| | | info1: 0, |
| | | info2: 0, |
| | | info3: 0, |
| | | info4: 0, |
| | | delDeviceId: 0, |
| | | |
| | | pageMask: false, |
| | | prevBtnDis: true, |
| | |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 详情展示 |
| | | toxiangqin(e) { |
| | | console.log(e.target.dataset.id) |
| | |
| | | */ |
| | | onLoad: function (options) { |
| | | }, |
| | | |
| | | delAZ(e) { |
| | | console.log(e); |
| | | var item = e.currentTarget.dataset.base |
| | | this.setData({ |
| | | delModal: false, |
| | | form: item, |
| | | }) |
| | | |
| | | }, |
| | | DelChange() { |
| | | wx.request({ |
| | | url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/${this.data.form.id}/${this.data.form.deviceId}`, |
| | | method: "DELETE", |
| | | header: { |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | success: (res, header) => { |
| | | if (res.data.code == 200) { |
| | | this.setData({ |
| | | index: 1, |
| | | delModal: true |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | } else { |
| | | this.setData({ |
| | | index: 1, |
| | | delModal: true |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | DelCancel() { |
| | | this.setData({ |
| | | delModal: true |
| | | }) |
| | | }, |
| | | |
| | | // 设置异步请求之后的页面、总记录数 |
| | | setPage(index, total) { |
| | | this.setData({ |
| | |
| | | }, |
| | | //上一页点击事件 |
| | | prevPage: function () { |
| | | if (this.data.index <= 1) return; |
| | | if (this.data.index <= 1) { |
| | | this.setData({ |
| | | prevBtnDis: false, |
| | | }) |
| | | return false |
| | | } |
| | | if (this.data.index <= this.data.total) { |
| | | this.setData({ |
| | | nextBtnDis: false, |
| | | }) |
| | | } |
| | | let num = this.data.index - 1; |
| | | this.setData({ |
| | | index: num |
| | | index: num, |
| | | prevBtnDis: true |
| | | }) |
| | | this.getList() |
| | | this.triggerParent(); |
| | |
| | | }, |
| | | //下一页点击事件 |
| | | nextPage: function () { |
| | | if (this.data.index >= this.data.total) return; |
| | | if (this.data.index >= this.data.total) { |
| | | this.setData({ |
| | | nextBtnDis: false, |
| | | }) |
| | | return false |
| | | } |
| | | this.setData({ |
| | | nextBtnDis: true, |
| | | }) |
| | | if (this.data.index >= 1) { |
| | | this.setData({ |
| | | prevBtnDis: false |
| | | }) |
| | | } |
| | | let num = this.data.index + 1; |
| | | this.setData({ |
| | | index: num |
| | |
| | | this.updateBtnDis(); |
| | | }, |
| | | onChange(event) { |
| | | // this.setData({ |
| | | // state:this.data.tabs[event.detail.index] |
| | | // }) |
| | | this.data.state=this.data.tabs[event.detail.index] |
| | | this.setData({ |
| | | state: event.detail.index |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | }, |
| | | goTop() { // 一键回到顶部 |
| | | wx.pageScrollTo({ |
| | | scrollTop: 0, |
| | | duration: 300 |
| | | }); |
| | | }, |
| | | getList() { |
| | | wx.showLoading({ |
| | |
| | | var roleKey = wx.getStorageSync('roleKey') |
| | | let data = { |
| | | pageNum: this.data.index, |
| | | pageSize: 10, |
| | | pageSize: 5, |
| | | state: this.data.state, |
| | | orderType: 2, |
| | | userId: erectoId |
| | | } |
| | | // if (roleKey == 'tenantservice') { |
| | | // data.createUserId = 0 |
| | | // data.erectoId = erectoId |
| | | // } |
| | | // if (roleKey == 'admin') { |
| | | // data.createUserId = 0; |
| | | // data.erectoId = 0; |
| | | // } |
| | | // if (roleKey == 'tenant' || roleKey == 'tenanthelper') { |
| | | // data.createUserId = erectoId; |
| | | // data.erectoId = 0; |
| | | // } |
| | | // if (this.data.active2 == 1) { //当选择下级时\ |
| | | // data.createUserId = this.data.nextlevel |
| | | // } |
| | | console.log(data); |
| | | wx.request({ |
| | | url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder/list', |
| | | method: "GET", |
| | | header: { |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | data: data, |
| | | success: (res, header) => { |
| | | console.log(res); |
| | | if (res.data.code == 200 && res.data.rows.length > 0) { |
| | | let data = res.data |
| | | let total = Math.ceil(res.data.total / 5) |
| | | this.setData({ |
| | | listdata: data.rows, |
| | | total: total, |
| | | showPage: true, |
| | | showNull: false |
| | | }) |
| | | console.log(this.data.listdata); |
| | | this.goTop() |
| | | wx.hideLoading() |
| | | } else { |
| | | this.setData({ |
| | | listdata: [], |
| | | total: 0, |
| | | showPage: false, |
| | | showNull: true |
| | | }) |
| | | this.goTop() |
| | | wx.hideLoading() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | openAddModal() { |
| | | let data = { |
| | | repairFlag: 0 |
| | | } |
| | | wx.request({ |
| | | url: 'https://puyue.yhupai.com/prod-api/iot/device/shortListRepair', |
| | | method: "GET", |
| | | header: { |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | // data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code != 200 || res.data.rows.length == 0) { |
| | | wx.showToast({ |
| | | title: '请先添加设备', |
| | | icon:'none' |
| | | }) |
| | | return false |
| | | } else { |
| | | wx.navigateTo({ |
| | | url: '/pages/repairTicketDetail/repairTicketDetail', |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | getNumInfo() { |
| | | var erectoId = wx.getStorageSync("erectoId") |
| | | var roleKey = wx.getStorageSync('roleKey') |
| | | let data = { |
| | | orderType: '2', |
| | | userId: erectoId, |
| | | // state:this.data.state |
| | | } |
| | | if (roleKey == 'tenantservice') { |
| | | data.createUserId = 0 |
| | |
| | | if (this.data.active2 == 1) { //当选择下级时\ |
| | | data.createUserId = this.data.nextlevel |
| | | } |
| | | console.log(data); |
| | | wx.request({ |
| | | url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder/list', |
| | | url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/get`, |
| | | method: "GET", |
| | | header: { |
| | | "Access-Control-Allow-Headers": 'token', |
| | |
| | | }, |
| | | data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code == 200 && res.data.rows.length > 0) { |
| | | |
| | | let data = res.data |
| | | let total = Math.ceil(res.data.total / 10) |
| | | if (res.data.code == 200) { |
| | | console.log(res); |
| | | this.setData({ |
| | | listdata: data.rows, |
| | | total: total, |
| | | showPage:true, |
| | | showNull:false |
| | | info1: res.data.data.deviceOrderUndeliveredorders, |
| | | info2: res.data.data.deviceOrderDispatchedorders, |
| | | info3: res.data.data.deviceOrderReceivedorders, |
| | | info4: res.data.data.deviceOrderCompleted, |
| | | }) |
| | | console.log(this.data.listdata) |
| | | wx.hideLoading() |
| | | |
| | | } else { |
| | | this.setData({ |
| | | listdata: [], |
| | | total: 0, |
| | | showPage:false, |
| | | showNull:true |
| | | info1: 0, |
| | | info2: 0, |
| | | info3: 0, |
| | | info4: 0, |
| | | }) |
| | | wx.hideLoading() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | openAddModal(){ |
| | | let deviceList=wx.getStorageSync('deviceList') |
| | | if(deviceList.length>0){ |
| | | wx.navigateTo({ |
| | | url: '/pages/repairTicketDetail/repairTicketDetail', |
| | | }) |
| | | }else{ |
| | | wx.showToast({ |
| | | title: '请先添加设备', |
| | | }) |
| | | rate(e) { |
| | | let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base)) |
| | | let data = { |
| | | id: item.id, |
| | | userId: item.userId, |
| | | orderType: item.orderType, |
| | | isRate: 0, |
| | | } |
| | | |
| | | wx.navigateTo({ |
| | | url: `/pages/rate/rate?params=${JSON.stringify(data)}`, |
| | | }) |
| | | }, |
| | | |
| | | seeRate(e) { |
| | | // let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base)) |
| | | // let data = { |
| | | // id: item.id, |
| | | // userId: item.userId, |
| | | // orderType: item.orderType, |
| | | // isRate:1, |
| | | // score:item.score, |
| | | // evaluate:item.evaluate |
| | | // } |
| | | // wx.navigateTo({ |
| | | // url: `/pages/rate/rate?params=${JSON.stringify(data)}`, |
| | | // }) |
| | | let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base)) |
| | | wx.navigateTo({ |
| | | url: '/pages/yetWX/yetWX?info=' + JSON.stringify(item), |
| | | }) |
| | | }, |
| | | edit(e) { |
| | | console.log(e); |
| | | var item = e.currentTarget.dataset.base |
| | | wx.navigateTo({ |
| | | url: '/pages/repairTicketDetail/repairTicketDetail?info=' + JSON.stringify(item), |
| | | }) |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow: function () { |
| | | this.getNumInfo() |
| | | this.getList() |
| | | }, |
| | | |
| | |
| | | "van-tab":"/miniprogram_npm/vant-weapp/tab/index", |
| | | "van-tabs":"/miniprogram_npm/vant-weapp/tabs/index", |
| | | "van-dialog": "/miniprogram_npm/vant-weapp/dialog/index", |
| | | "van-field": "/miniprogram_npm/vant-weapp/field/index" |
| | | "van-field": "/miniprogram_npm/vant-weapp/field/index", |
| | | "van-icon": "/miniprogram_npm/vant-weapp/icon" |
| | | }, |
| | | "navigationBarTitleText": "工单", |
| | | "navigationBarTextStyle": "white", |
| | |
| | | <!-- <text>pages/workOrder/workOrder.wxml</text> --> |
| | | <view style="width: 100%;display: flex;"> |
| | | <van-tabs active="{{ active }}" bind:change="onChange" style="width:90%"> |
| | | <van-tab title="待派单" ></van-tab> |
| | | <van-tab title="维修中" ></van-tab> |
| | | <van-tab title="已完成" ></van-tab> |
| | | <van-tab title="未派单" info="{{info1}}"></van-tab> |
| | | <van-tab title="已派单" info="{{info2}}"></van-tab> |
| | | <van-tab title="维修中" info="{{info3}}"></van-tab> |
| | | <van-tab title="已完成" info="{{info4}}"></van-tab> |
| | | </van-tabs> |
| | | <view class="add" bind:tap="openAddModal"> |
| | | + |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}"> |
| | | <view class="heard"> |
| | | <view class="htext">{{item.device.deviceName}}</view> |
| | | <view class="htext">ID{{item.id}} | {{item.device.deviceName}}</view> |
| | | </view> |
| | | <view class="body"> |
| | | <view class="h2txt"> |
| | | <image class="primg" src="/images/ProRep/pingding.png"></image> |
| | | 用户信息: |
| | | 订单详情: |
| | | </view> |
| | | <view class="text">用户姓名:{{item.userName}}</view> |
| | | <view class="text">用户电话:{{item.userPhone}}</view> |
| | | <view class="h2txt"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | 故障描述: |
| | | <view class="text">师傅姓名:{{item.erectoName}}</view> |
| | | <view class="text">师傅电话:{{item.erectoPhone?item.erectoPhone:'暂无'}} |
| | | <van-icon wx:if="{{item.erectoPhone}}" data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /> |
| | | </view> |
| | | <view class="text">{{item.remark?item.remark:'--'}}</view> |
| | | <!-- <view class="xiangqingtxt" bindtap="toxiangqin" data-id="{{item.pk_Examine}}">查看详情></view> --> |
| | | <!-- <view class="h2txt">问题图片:</view> --> |
| | | <!-- <view style="padding-left: 30rpx;"> |
| | | <image wx:for="{{item.Reported_ImgArray}}" wx:for-item="imgitem" class="quImg" style="{{item.loading?'display:block':'display:none'}}" bindload="imgOnLoad" data-index="{{index}}" data-imgindex="{{imgitem}}" mode="aspectFill" src="{{'http://47.92.31.84:8088'+ imgitem}}" bindtap="imgYu" data-img="{{'http://47.92.31.84:8088'+ imgitem}}"></image> |
| | | </view> --> |
| | | <!-- --> |
| | | |
| | | <!-- --> |
| | | <view class="address"> |
| | | <image class="timeicon" src="/images/address.png"></image> |
| | | <text>{{item.address}}</text> |
| | | <view class="text"> |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="time"> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 维修地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | | 故障描述:<text>{{item.description?item.description:'--'}}</text> |
| | | </view> |
| | | <view class="time" wx:if='{{item.receiveTime}}'> |
| | | <image class="timeicon" src="/images/time.png"></image> |
| | | <text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | <text>{{item.receiveTime?item.receiveTime:'--'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="footer"> |
| | | <view class="libtn"> |
| | | <!-- 修改 --> |
| | | <view class="btn btn-adit" bindtap="adit" data-id="{{item.pk_Examine}}"> |
| | | <view class="libtn" wx:if="{{state==0}}"> |
| | | <view class="btn btn-adit" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="edit"> |
| | | <van-icon name="edit" class="icon" /> |
| | | <text>修改</text> |
| | | </view> |
| | | </view> |
| | | <view class="libtn"> |
| | | <!-- 删除 --> |
| | | <view class="btn btn-del" bindtap="del" data-id="{{item.pk_Examine}}" wx:if="{{roleKey!=='tenantservice'}}"> |
| | | <van-icon name="delete" class="icon" /><text>删除</text> |
| | | <view class="libtn" wx:if="{{state==0}}"> |
| | | <view class="btn btn-del" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="delAZ"> |
| | | <van-icon name="delete" class="icon" /> |
| | | <text>删除</text> |
| | | </view> |
| | | </view> |
| | | <view class="libtn" wx:if="{{state==3&&item.isRate!=1}}"> |
| | | <view class="btn btn-adit" bindtap="rate" data-id="{{item.pk_Examine}}" data-base='{{item}}'> |
| | | <van-icon name="comment-o" class="icon" /> |
| | | <text>评价</text> |
| | | </view> |
| | | </view> |
| | | <view class="libtn" wx:if="{{state==3}}"> |
| | | <view class="btn btn-ck" data-id="{{item.pk_Examine}}" data-base='{{item}}' bindtap="seeRate"> |
| | | <van-icon name="browsing-history-o" class="icon" /> |
| | | <text>查看</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | |
| | | |
| | | <view class="noData" wx:if="{{showNull}}"> |
| | | <view class="noData" wx:if="{{!showPage}}"> |
| | | <image class="nodataicon" src="/images/nodataimg.png"></image> |
| | | <view>暂无相关数据</view> |
| | | </view> |
| | | |
| | | <view class="page-control" wx:if="{{showPage}}"> |
| | | <view class="page-control-btns"> |
| | | <view class="page-btn {{prevBtnDis?'btn-disabled':''}}" bindtap="prevPage">上一页</view> |
| | | <!-- class="page-btn {{prevBtnDis?'btn-disabled':''}}" --> |
| | | <button class="page-btn {{total<=1||index==1?'btn-disabled':''}}" disabled="{{total<=1||index==1}}" bindtap="prevPage">上一页</button> |
| | | <view class="page-number" bindtap="shopPagePopup"><text>{{index}}</text>/<text>{{total}}</text></view> |
| | | <view class="page-btn {{nextBtnDis?'btn-disabled':''}}" bindtap="nextPage">下一页</view> |
| | | <button class="page-btn {{total<=1||index==total?'btn-disabled':''}}" disabled="{{total<=1||index==total}}" bindtap="nextPage">下一页</button> |
| | | <!-- class="page-btn {{nextBtnDis?'btn-disabled':''}}" --> |
| | | </view> |
| | | <view class="page-container" hidden="{{!pageMask}}"> |
| | | <view class="page-mask" bindtap="hidePagePopup"></view> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <modal title="删除订单" confirm-text="确认" cancel-text="取消" hidden="{{delModal}}" bindconfirm="DelChange" bindcancel="DelCancel"> |
| | | 是否删除此订单?此操作不可恢复! |
| | | </modal> |
| | |
| | | |
| | | .listBox { |
| | | width: 100%; |
| | | padding-bottom: 60px; |
| | | } |
| | | .primg{ |
| | | width: 30rpx; |
| | |
| | | position: relative; |
| | | top: 4rpx; |
| | | } |
| | | |
| | | .btn-jd{ |
| | | background-color: #13CE66; |
| | | } |
| | | .btn-ck{ |
| | | background-color: #FF8C00; |
| | | } |
| | | .btn-adit{ |
| | | background-color: #1E90FF; |
| | | } |
| | |
| | | } |
| | | .page-control{ |
| | | width: 100%; |
| | | position: fixed; |
| | | bottom: 0; |
| | | background-color: #fff; |
| | | } |
| | | .page-control .page-control-btns{ |
| | | width: 100%; |
| | |
| | | width: 30%; |
| | | padding: 15rpx 20rpx; |
| | | font-size: 30rpx; |
| | | background-color: #0099CC; |
| | | background-color: #1E90FF; |
| | | color: #fff; |
| | | border-radius: 10rpx; |
| | | text-align: center; |
| New file |
| | |
| | | Component({ |
| | | /** |
| | | * 组件的属性列表 |
| | | */ |
| | | properties: { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 组件的初始数据 |
| | | */ |
| | | data: { |
| | | test: [ |
| | | [], |
| | | [], |
| | | [], |
| | | [], |
| | | [], |
| | | ], |
| | | selectvalue: [1, 2, 3, 4, 5], |
| | | date: '', |
| | | time:'01-01' |
| | | }, |
| | | |
| | | /** |
| | | * 组件的方法列表 |
| | | */ |
| | | methods: { |
| | | formatNumber(n){ |
| | | n = n.toString() |
| | | return n[1] ? n : '0' + n |
| | | }, |
| | | formatDate(date){ |
| | | const year = date.getFullYear() |
| | | const month = date.getMonth() + 1 |
| | | const day = date.getDate() |
| | | return [year, month, day].map(this.formatNumber).map(this.formatNumber).join('-') |
| | | }, |
| | | // 可以封装为获取某年某月的天数 |
| | | mGetDate(year, month) { |
| | | let d = new Date(year, month, 0); |
| | | return d.getDate(); |
| | | }, |
| | | //多列滚动选择器滚动时触发事件 |
| | | bindcolumnchange(e) { |
| | | let column = e.detail.column |
| | | let temp = this.data.selectvalue |
| | | switch (column) { |
| | | case 0: |
| | | temp[0] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }, () => { |
| | | let day = this.mGetDate(this.data.selectvalue[0], this.data.selectvalue[1]) |
| | | let days = [] |
| | | for (let i = 1; i <= day; i++) { |
| | | days.push(i + '日') |
| | | } |
| | | let temp_1 = this.data.test |
| | | temp_1[2] = days |
| | | this.setData({ |
| | | test: temp_1 |
| | | }) |
| | | }) |
| | | break; |
| | | case 1: |
| | | temp[1] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }, () => { |
| | | let day = this.mGetDate((this.data.selectvalue[0] + 1), (this.data.selectvalue[1] + 1)) |
| | | let days = [] |
| | | for (let i = 1; i <= day; i++) { |
| | | days.push(i + '日') |
| | | } |
| | | let temp_1 = this.data.test |
| | | temp_1[2] = days |
| | | this.setData({ |
| | | test: temp_1 |
| | | }) |
| | | }) |
| | | break; |
| | | case 2: |
| | | temp[2] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }) |
| | | break; |
| | | case 3: |
| | | temp[3] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }) |
| | | break; |
| | | case 4: |
| | | temp[4] = e.detail.value |
| | | this.setData({ |
| | | selectvalue: temp |
| | | }) |
| | | break; |
| | | } |
| | | |
| | | // console.log("第" + e.detail.column + "列", "第" + e.detail.value + "个") |
| | | }, |
| | | // 确定选择日期 |
| | | bindchange() { |
| | | let temp = this.data.selectvalue |
| | | let year = (this.data.test[0][temp[0]]).substr(0, (this.data.test[0][temp[0]]).length - 1) |
| | | year = this.addzero(year) |
| | | let month = (this.data.test[1][temp[1]]).substr(0, (this.data.test[1][temp[1]]).length - 1) |
| | | month = this.addzero(month) |
| | | let day = this.data.test[2][temp[2]].substr(0, (this.data.test[2][temp[2]]).length - 1) |
| | | day = this.addzero(day) |
| | | let hour = this.data.test[3][temp[3]].substr(0, (this.data.test[3][temp[3]]).length - 1) |
| | | hour = this.addzero(hour) |
| | | let minute = this.data.test[4][temp[4]].substr(0, (this.data.test[4][temp[4]]).length - 1) |
| | | minute = this.addzero(minute) |
| | | this.setData({ |
| | | date: year + "-" + month + "-" + day, |
| | | time: hour + ":" + minute, |
| | | all: year + "-" + month + "-" + day + '' + hour + ":" + minute, |
| | | }, _ => { |
| | | this.triggerEvent("pConfirm", { |
| | | date: year + "-" + month + "-" + day, |
| | | time: hour + ":" + minute, |
| | | all: year + "-" + month + "-" + day + '' + hour + ":" + minute, |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | //+0 |
| | | addzero(str){ |
| | | if(str.length==1){ |
| | | return "0"+str |
| | | }else { |
| | | return str |
| | | } |
| | | }, |
| | | }, |
| | | ready() { |
| | | // 获取当前日期(年,月,日) |
| | | let DATE = (this.formatDate(new Date())).split('-') |
| | | let year = parseInt(DATE[0]) |
| | | let month = parseInt(DATE[1]) |
| | | let day_1 = parseInt(DATE[2]) |
| | | this.setData({ |
| | | selectvalue: [0, month - 1, day_1 - 1, 0, 0], |
| | | date: year + "-" + month + "-" + day_1 |
| | | }) |
| | | let years = [] |
| | | let months = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] |
| | | let days = [] |
| | | let hours = [] |
| | | let minutes = [] |
| | | //判断当前月份天数 |
| | | let day = this.mGetDate(year, month) |
| | | for (let i = 1; i <= day; i++) { |
| | | days.push(i + '日') |
| | | } |
| | | for (let i = 0; i < 30; i++) { |
| | | years.push(year + i + '年') |
| | | } |
| | | for (let i = 1; i < 25; i++) { |
| | | hours.push(i + "点") |
| | | } |
| | | for (let i = 0; i < 61; i++) { |
| | | minutes.push(i + "分") |
| | | } |
| | | this.setData({ |
| | | test: [years, months, days, hours, minutes] |
| | | }) |
| | | } |
| | | }) |
| | | |
| New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | |
| | | } |
| | | } |
| New file |
| | |
| | | <!--pages/repairTicketDetail/datePicker.wxml--> |
| | | <!-- 组件 --> |
| | | <view> |
| | | <picker range="{{test}}" mode="multiSelector" bindcolumnchange='bindcolumnchange' value="{{selectvalue}}" bindchange="bindchange"> |
| | | {{date}} {{time}} |
| | | </picker> |
| | | </view> |
| | | |
| New file |
| | |
| | | /* pages/repairTicketDetail/datePicker.wxss */ |
| New file |
| | |
| | | // 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) |
| | | this.setData({ |
| | | showJD: true, |
| | | paramsInfo: info, |
| | | form: info, |
| | | time: info.appointmentTime, |
| | | deviceIndex: 0, |
| | | deviceList2: [info.device.deviceName], |
| | | erectoIndex: 0, |
| | | erectoList2: [info.erectoName], |
| | | }) |
| | | wx.setNavigationBarTitle({ |
| | | title:'ID'+this.data.form.id+' | '+this.data.form.device.deviceName |
| | | }) |
| | | if(this.data.form.erectoId==-1){ |
| | | this.getErectoList() |
| | | } |
| | | } else { |
| | | 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 |
| | | }, |
| | | 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 { |
| | | let data = [] |
| | | for (let i = 0; i < res.data.rows.length; i++) { |
| | | data.push(res.data.rows[i].nickName) |
| | | } |
| | | data.unshift( |
| | | '未指派' |
| | | ) |
| | | this.setData({ |
| | | erectoList1: res.data.rows, |
| | | erectoList2: data |
| | | }) |
| | | |
| | | 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)-1].userId |
| | | this.data.form.erectoName = this.data.erectoList1[Number(e.detail.value)-1].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 () { |
| | | |
| | | } |
| | | }) |
| New file |
| | |
| | | { |
| | | "usingComponents": { |
| | | "van-rate": "/miniprogram_npm/vant-weapp/rate/index" |
| | | }, |
| | | "navigationBarTitleText": "维修下单" |
| | | } |
| New file |
| | |
| | | <!--pages/problemReport/proRep.wxml--> |
| | | |
| | | <!-- 评定项目 --> |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/pingding.png"></image> |
| | | <view>设备</view> |
| | | </view> |
| | | <picker bindchange="bindPicker" value="{{deviceIndex}}" range="{{deviceList2}}" disabled> |
| | | <view class="chose">{{deviceList2[deviceIndex]?deviceList2[deviceIndex]:'请选择设备'}}</view> |
| | | </picker> |
| | | </view> |
| | | |
| | | <!-- 公司名称 --> |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/name.png"></image> |
| | | <view>维修工人</view> |
| | | </view> |
| | | <picker bindchange="bindPicker2" value="{{erectoIndex}}" range="{{erectoList2}}" disabled> |
| | | <view class="chose">{{erectoList2[erectoIndex]?erectoList2[erectoIndex]:'请选择维修工人'}}</view> |
| | | </picker> |
| | | </view> |
| | | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/gongsixiangmu.png"></image> |
| | | <view>订单状态</view> |
| | | </view> |
| | | <radio-group bindchange="radioChange" style="padding-left: 5%;"> |
| | | <label> |
| | | <radio value="0" checked="{{form.state==0}}" disabled='{{true}}'>未指派</radio> |
| | | </label> |
| | | <label> |
| | | <radio value="1" checked="{{form.state==1}}" disabled='{{true}}'>已派单</radio> |
| | | </label> |
| | | <label> |
| | | <radio value="2" checked="{{form.state==2}}" disabled='{{true}}'>已接单</radio> |
| | | </label> |
| | | <label> |
| | | <radio value="3" checked="{{form.state==3}}" disabled='{{true}}'>已完成</radio> |
| | | </label> |
| | | </radio-group> |
| | | <!-- <van-radio-group value="{{ form.state }}" direction="horizontal"> |
| | | <van-radio name="0">未指派</van-radio> |
| | | <van-radio name="1">已派单</van-radio> |
| | | <van-radio name="2">已接单</van-radio> |
| | | <van-radio name="3">已完成</van-radio> |
| | | </van-radio-group> --> |
| | | </view> |
| | | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>用户姓名</view> |
| | | </view> |
| | | <input bindinput="changeUserName" value="{{form.userName}}" disabled class="textbox" placeholder="请输入用户姓名"></input> |
| | | </view> |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>用户电话</view> |
| | | </view> |
| | | <input bindinput="changePhone" value="{{form.userPhone}}" disabled class="textbox" placeholder="请输入用户电话"></input> |
| | | </view> |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>维修地址</view> |
| | | </view> |
| | | <input bindinput="changeaddress" value="{{form.address}}" disabled class="textbox" placeholder="请输入维修地址"></input> |
| | | </view> |
| | | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/name.png"></image> |
| | | <view>预约时间</view> |
| | | </view> |
| | | <view bind:tap="openShowDate" style="padding-left: 3%;"> |
| | | <picker bindtap="clickSelectTime" mode="multiSelector" disabled bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> |
| | | <view style="width: 96%;margin-left: 2%;height: 40px;background: #FFFFFF;line-height: 40px;color: #A18080;padding-left: 3%;">{{time}}</view> |
| | | </picker> |
| | | </view> |
| | | </view> |
| | | <!-- 上报问题 --> |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>订单备注</view> |
| | | </view> |
| | | <textarea bindinput="changeRemark" disabled class="textbox" value="{{form.description?form.description:view?' ':''}}" placeholder="请输入订单备注..."></textarea> |
| | | </view> |
| | | <view wx:if="{{view }}"> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>维修证明</view> |
| | | </view> |
| | | <image class="upphotoimg" src="{{form.imgUrl}}" mode="aspectFill" style="margin-right:15rpx;width: 350rpx;padding-left: 5%;"></image> |
| | | </view> |
| | | |
| | | <view wx:if="{{form&&!form.isRate}}"> |
| | | <view class="title"> |
| | | <view>客户尚未评价</view> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{form&&form.isRate}}"> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>用户评分</view> |
| | | </view> |
| | | <van-rate readonly value="{{ form.isRate }}" size="{{25}}" color="#EE0A24" /> |
| | | </view> |
| | | <view wx:if="{{form&&form.isRate}}"> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>用户评价</view> |
| | | </view> |
| | | <textarea disabled class="textbox" value="{{form.evaluate}}" placeholder="请输入备注内容..."></textarea> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="addressBtn" bindtap="openBaiduMap">打开百度地图</view> --> |
| | | <!-- footer --> |
| | | |
| | | <!-- 占位 --> |
| | | <view style="height:50rpx"></view> |
| New file |
| | |
| | | /* pages/problemReport/proRep.wxss */ |
| | | .title{ |
| | | width: 90vw; |
| | | margin: 10rpx auto; |
| | | font-size: 30rpx; |
| | | font-weight: 600; |
| | | padding: 10rpx 0 0rpx 0; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .chose{ |
| | | width: 90vw; |
| | | height: 90rpx; |
| | | border: 1rpx solid gainsboro; |
| | | border-radius: 10rpx; |
| | | margin: 0 auto; |
| | | line-height: 90rpx; |
| | | background-color: white; |
| | | padding-left: 20rpx; |
| | | box-sizing: border-box; |
| | | color: #888; |
| | | } |
| | | .textbox{ |
| | | width: 90vw; |
| | | height: 90rpx; |
| | | border: 1rpx solid gainsboro; |
| | | border-radius: 10rpx; |
| | | background-color: white; |
| | | margin: 0 auto; |
| | | text-indent: 20rpx; |
| | | } |
| | | .photoBox{ |
| | | width: 90vw; |
| | | margin: 0 auto; |
| | | color: #888; |
| | | background-color: white; |
| | | padding: 20rpx 10rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 10rpx; |
| | | } |
| | | .upphotoimg{ |
| | | width: 260rpx; |
| | | height: 200rpx; |
| | | /* border: 1rpx solid #999; */ |
| | | border-radius: 10rpx; |
| | | } |
| | | .upimgbox{ |
| | | position: relative; |
| | | } |
| | | .removeimg{ |
| | | height: 50rpx; |
| | | width: 50rpx; |
| | | position: absolute; |
| | | /* top: 0; */ |
| | | right: 15rpx; |
| | | } |
| | | .footer{ |
| | | width: 90vw; |
| | | display: flex; |
| | | /* margin-top: 30rpx; */ |
| | | margin: 50rpx auto; |
| | | } |
| | | .btnC{ |
| | | background-color: rgb(209, 209, 209); |
| | | color: #888; |
| | | width: 40%!important; |
| | | } |
| | | .van-rate { |
| | | width: 60%; |
| | | justify-content: center; |
| | | display: flex; |
| | | } |
| | | .rateItem{ |
| | | color: #909399; |
| | | } |
| | | .btnY{ |
| | | background-color: #1E90FF; |
| | | color: whitesmoke; |
| | | width: 40%!important; |
| | | } |
| | | .primg{ |
| | | width: 30rpx; |
| | | height: 30rpx; |
| | | margin-right: 10rpx; |
| | | } |
| | | .map{ |
| | | width: 100%; |
| | | height: 350rpx; |
| | | border-radius: 5rpx; |
| | | margin-top: 20rpx; |
| | | border: 1rpx solid ghostwhite; |
| | | display: none; |
| | | } |
| | | .address{ |
| | | width: 100%; |
| | | height: 90rpx; |
| | | border: 1rpx solid gainsboro; |
| | | border-radius: 10rpx; |
| | | margin: 0 auto; |
| | | line-height: 90rpx; |
| | | background-color: white; |
| | | padding-left: 20rpx; |
| | | box-sizing: border-box; |
| | | color: #888; |
| | | } |
| | | .addressBtn{ |
| | | border: 1rpx solid gainsboro; |
| | | width: 200rpx; |
| | | /* height: 50rpx; */ |
| | | padding: 3rpx; |
| | | text-align: center; |
| | | border-radius: 15rpx; |
| | | margin-top: 10rpx; |
| | | } |
| | | .addresstit{ |
| | | margin-bottom: 5rpx; |
| | | color: #555; |
| | | } |