| | |
| | | "pages/maintenance/maintenance", |
| | | "pages/devicelogs/devicelogs", |
| | | "pages/prorepwx/prorepwx", |
| | | "pages/problemListwx/problemListwx" |
| | | "pages/problemListwx/problemListwx", |
| | | "pages/yetAZ/yetAZ", |
| | | "pages/yetWX/yetWX" |
| | | ], |
| | | "permission": { |
| | | "scope.userLocation": { |
| | |
| | | }) |
| | | wx.setStorageSync('deptId', res.data.user.dept.deptId) |
| | | wx.setStorageSync('erectoId', res.data.user.userId) |
| | | // console.log(wx.getStorageInfoSync('erectoId')); |
| | | |
| | | } |
| | | } |
| | | }) |
| | |
| | | title: res.data.msg, |
| | | icon: "none" |
| | | }) |
| | | this.getImg() |
| | | } else { |
| | | wx.setStorageSync('token', res.data.token) |
| | | wx.showToast({ |
| | |
| | | info2: 0, |
| | | info3: 0, |
| | | info4: 0, |
| | | |
| | | topNum:0, |
| | | }, |
| | | lifetimes: { |
| | | // 在组件实例进入页面节点树时执行 |
| | |
| | | onLoad: function (options) { |
| | | |
| | | |
| | | }, |
| | | goTop () { // 一键回到顶部 |
| | | wx.pageScrollTo({ |
| | | scrollTop: 0, |
| | | duration: 300 |
| | | }); |
| | | }, |
| | | // 设置异步请求之后的页面、总记录数 |
| | | setPage(index, total) { |
| | |
| | | }, |
| | | //更改页码点击事件 |
| | | onChangePage: function (e) { |
| | | //console.log("更改页码事件:",e); |
| | | console.log("更改页码事件:",e); |
| | | this.setData({ |
| | | pageMask: false, |
| | | index: e.currentTarget.dataset.index //点击的页数 |
| | | }) |
| | | this.getList() |
| | | // 先判断当前页数,是否需要更新disabled的状态 |
| | | this.updateBtnDis(); |
| | | this.triggerParent(); |
| | | if (e.currentTarget.dataset.index <= 1) { |
| | | this.setData({ |
| | | prevBtnDis: false, |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | //上一页点击事件 |
| | | prevPage: function () { |
| | | if (this.data.index <= 1) return; |
| | | console.log(this.data.index,this.data.total); |
| | | 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(); |
| | | 更新按钮状态 |
| | | this.updateBtnDis(); |
| | | }, |
| | | //下一页点击事件 |
| | | nextPage: function () { |
| | | if (this.data.index >= this.data.total) return; |
| | | console.log(this.data.index,this.data.total); |
| | | |
| | | 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.triggerParent(); |
| | | |
| | | // 更新按钮状态 |
| | | this.updateBtnDis(); |
| | | }, |
| | | changeActive1(e) { |
| | | console.log(e.detail.index); |
| | | this.setData({ |
| | | state: e.detail.index, |
| | | active1: e.detail.index, |
| | | nickName: wx.getStorageSync('nickName') |
| | | nickName: wx.getStorageSync('nickName'), |
| | | index:1 |
| | | }) |
| | | this.getList() |
| | | }, |
| | |
| | | console.log(e.detail.index, this.data.erectoListLevel) |
| | | this.setData({ |
| | | active2: e.detail.index, |
| | | nextlevel: this.data.erectoListLevel[0].userId |
| | | nextlevel: this.data.erectoListLevel[0].userId, |
| | | index:1 |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | |
| | | console.log(e.detail.index); |
| | | this.setData({ |
| | | active3: e.detail.index, |
| | | nextlevel: this.data.erectoListLevel[e.detail.index].userId |
| | | nextlevel: this.data.erectoListLevel[e.detail.index].userId, |
| | | index:1 |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | |
| | | var roleKey = wx.getStorageSync('roleKey') |
| | | let data = { |
| | | pageNum: this.data.index, |
| | | pageSize: 10, |
| | | pageSize: 5, |
| | | state: this.data.state, |
| | | orderType: 1, |
| | | } |
| | |
| | | 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) |
| | | 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 |
| | | showNull: true, |
| | | prevBtnDis:true, |
| | | nextBtnDis:true, |
| | | }) |
| | | this.goTop() |
| | | wx.hideLoading() |
| | | } |
| | | } |
| | |
| | | pageSize: 10000, |
| | | deptId: wx.getStorageSync('deptId'), |
| | | roleKey: 'tenanthelper', |
| | | isAuthentication: 1 |
| | | } |
| | | console.log(data); |
| | | wx.request({ |
| | |
| | | url: '/pages/problemReport/proRep?info=' + JSON.stringify(item), |
| | | }) |
| | | }, |
| | | yetstatements(e) { |
| | | let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base)) |
| | | wx.navigateTo({ |
| | | url: '/pages/yetAZ/yetAZ?info=' + JSON.stringify(item), |
| | | }) |
| | | }, |
| | | goAddress(e) { |
| | | var address = e.currentTarget.dataset.base.address |
| | | console.log(e.currentTarget.dataset); |
| | |
| | | index: 1, |
| | | modalHidden: true |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | } else { |
| | | this.setData({ |
| | |
| | | }, |
| | | DelChange() { |
| | | wx.request({ |
| | | url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/${this.data.form.id}`, |
| | | 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', |
| | |
| | | index: 1, |
| | | delModal: true |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | } else { |
| | | this.setData({ |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item='item'> |
| | | <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"> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 安装地点:<text>{{item.address}}</text> |
| | | 安装地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item="item"> |
| | | <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"> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 安装地点:<text>{{item.address}}</text> |
| | | 安装地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item='item'> |
| | | <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"> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 安装地点:<text>{{item.address}}</text> |
| | | 安装地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item='item'> |
| | | <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"> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 安装地点:<text>{{item.address}}</text> |
| | | 安装地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | |
| | | <view class="footer"> |
| | | <view class="libtn"> |
| | | <!-- 修改 --> |
| | | <view class="btn btn-jd" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="statements"> |
| | | <view class="btn btn-ck" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="yetstatements"> |
| | | |
| | | <van-icon name="browsing-history-o" class="icon" /> |
| | | <text>查看</text> |
| | |
| | | |
| | | <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> |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .btn-ck{ |
| | | background-color: #FF8C00; |
| | | } |
| | | .icon { |
| | | position: relative; |
| | | top: 4rpx; |
| | |
| | | } |
| | | }, |
| | | |
| | | // 详情展示 |
| | | toxiangqin(e) { |
| | | console.log(e.target.dataset.id) |
| | | var id = e.target.dataset.id |
| | | wx.navigateTo({ |
| | | url: '/pages/xiangqing/xiangqing?id=' + id, |
| | | }) |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | |
| | | |
| | | }, |
| | | goTop() { // 一键回到顶部 |
| | | wx.pageScrollTo({ |
| | | scrollTop: 0, |
| | | duration: 300 |
| | | }); |
| | | }, |
| | | // 设置异步请求之后的页面、总记录数 |
| | | setPage(index, total) { |
| | |
| | | |
| | | //每次改变页码就调用该函数 |
| | | triggerParent: function () { |
| | | |
| | | // 通知父组件当前加载的页数 |
| | | |
| | | // 自定义组件向父组件传值 |
| | | const option = { |
| | | currentIndex: this.data.index |
| | | }; |
| | | |
| | | // pagingChange 自定义名称事件,父组件中使用 |
| | | this.triggerEvent('pagingChange', option) |
| | | |
| | |
| | | //更改页码点击事件 |
| | | onChangePage: function (e) { |
| | | //console.log("更改页码事件:",e); |
| | | |
| | | this.setData({ |
| | | pageMask: false, |
| | | index: e.currentTarget.dataset.index //点击的页数 |
| | | }) |
| | | this.getList() |
| | | // 先判断当前页数,是否需要更新disabled的状态 |
| | | this.updateBtnDis(); |
| | | |
| | | this.triggerParent(); |
| | | }, |
| | | //上一页点击事件 |
| | | 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 |
| | | }) |
| | | this.getList() |
| | | this.triggerParent(); |
| | | 更新按钮状态 |
| | | this.updateBtnDis(); |
| | | |
| | | }, |
| | | //下一页点击事件 |
| | | 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.triggerParent(); |
| | | |
| | | // 更新按钮状态 |
| | | this.updateBtnDis(); |
| | | |
| | | }, |
| | | changeActive1(e) { |
| | | console.log(e.detail.index); |
| | |
| | | var roleKey = wx.getStorageSync('roleKey') |
| | | let data = { |
| | | pageNum: this.data.index, |
| | | pageSize: 10, |
| | | pageSize: 5, |
| | | state: this.data.state, |
| | | orderType: '2', |
| | | } |
| | |
| | | if (res.data.code == 200 && res.data.rows.length > 0) { |
| | | |
| | | let data = res.data |
| | | let total = Math.ceil(res.data.total / 10) |
| | | 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({ |
| | |
| | | showPage: false, |
| | | showNull: true |
| | | }) |
| | | this.goTop() |
| | | wx.hideLoading() |
| | | } |
| | | } |
| | |
| | | pageSize: 10000, |
| | | deptId: wx.getStorageSync('deptId'), |
| | | roleKey: 'tenanthelper', |
| | | isAuthentication: 1 |
| | | } |
| | | console.log(data); |
| | | wx.request({ |
| | |
| | | url: '/pages/prorepwx/prorepwx?info=' + JSON.stringify(item), |
| | | }) |
| | | }, |
| | | yetstatements(e) { |
| | | let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base)) |
| | | wx.navigateTo({ |
| | | url: '/pages/yetWX/yetWX?info=' + JSON.stringify(item), |
| | | }) |
| | | }, |
| | | goAddress(e) { |
| | | var address = e.currentTarget.dataset.base.address |
| | | console.log(e.currentTarget.dataset); |
| | |
| | | index: 1, |
| | | modalHidden: true |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | } else { |
| | | this.setData({ |
| | |
| | | }, |
| | | DelChange() { |
| | | wx.request({ |
| | | url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/${this.data.form.id}`, |
| | | 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', |
| | |
| | | index: 1, |
| | | delModal: true |
| | | }) |
| | | this.getNumInfo() |
| | | this.getList() |
| | | } else { |
| | | this.setData({ |
| | |
| | | </van-tab> |
| | | </van-tabs> |
| | | </view> |
| | | <van-tabs active="{{ active1 }}" info='2' bind:change="changeActive1"> |
| | | <van-tabs active="{{ active1 }}" info='2' bind:change="changeActive1"> |
| | | <!-- 已上报 --> |
| | | <van-tab title="未派单" info="{{info1}}"> |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item='item'> |
| | | <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"> |
| | |
| | | 订单详情: |
| | | </view> |
| | | <view class="text">用户姓名:{{item.userName}}</view> |
| | | <view class="text">用户电话:{{item.userPhone}} <van-icon data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /></view> |
| | | <view class="text">用户电话:{{item.userPhone}} |
| | | <van-icon data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /> |
| | | </view> |
| | | <view class="text"> |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 维修地点:<text>{{item.address}}</text> |
| | | 维修地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | | 订单备注:<text>{{item.remark?item.remark:'--'}}</text> |
| | | 故障描述:<text>{{item.remark?item.remark:'--'}}</text> |
| | | </view> |
| | | <view class="time" wx:if='{{item.receiveTime}}'> |
| | | <image class="timeicon" src="/images/time.png"></image> |
| | |
| | | <view class="footer"> |
| | | <view class="libtn"> |
| | | <!-- 修改 --> |
| | | <view class="btn btn-adit" bindtap="adit" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="edit"> |
| | | <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 class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item="item"> |
| | | <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"> |
| | |
| | | 订单详情: |
| | | </view> |
| | | <view class="text">用户姓名:{{item.userName}}</view> |
| | | <view class="text">用户电话:{{item.userPhone}} <van-icon data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /></view> |
| | | <view class="text">用户电话:{{item.userPhone}} |
| | | <van-icon data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /> |
| | | </view> |
| | | <view class="text" wx:if="{{roleKey!='tenantservice'}}"> |
| | | 维修工人:<text>{{item.erectoName?item.erectoName:'--'}}</text> |
| | | </view> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 维修地点:<text>{{item.address}}</text> |
| | | 维修地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | | 订单备注:<text>{{item.remark?item.remark:'--'}}</text> |
| | | 故障描述:<text>{{item.remark?item.remark:'--'}}</text> |
| | | </view> |
| | | <view class="time" wx:if='{{item.receiveTime}}'> |
| | | <image class="timeicon" src="/images/time.png"></image> |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item='item'> |
| | | <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"> |
| | |
| | | 订单详情: |
| | | </view> |
| | | <view class="text">用户姓名:{{item.userName}}</view> |
| | | <view class="text">用户电话:{{item.userPhone}} <van-icon data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /></view> |
| | | <view class="text">用户电话:{{item.userPhone}} |
| | | <van-icon data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" /> |
| | | </view> |
| | | <view class="text" wx:if="{{roleKey!='tenantservice'}}"> |
| | | 维修工人:<text>{{item.erectoName?item.erectoName:'--'}}</text> |
| | | </view> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 维修地点:<text>{{item.address}}</text> |
| | | 维修地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | | 订单备注:<text>{{item.remark?item.remark:'--'}}</text> |
| | | 故障描述:<text>{{item.remark?item.remark:'--'}}</text> |
| | | </view> |
| | | <view class="time" wx:if='{{item.receiveTime}}'> |
| | | <image class="timeicon" src="/images/time.png"></image> |
| | |
| | | <view class="listBox"> |
| | | <view class="list" wx:for="{{listdata}}" wx:for-item='item'> |
| | | <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"> |
| | |
| | | 预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text> |
| | | </view> |
| | | <view class="text" data-base='{{item}}' bind:tap="goAddress"> |
| | | 维修地点:<text>{{item.address}}</text> |
| | | 维修地址:<text>{{item.address}}</text> |
| | | <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" /> |
| | | </view> |
| | | <view class="text"> |
| | | 订单备注:<text>{{item.remark?item.remark:'--'}}</text> |
| | | 故障描述:<text>{{item.remark?item.remark:'--'}}</text> |
| | | </view> |
| | | <view class="time" wx:if='{{item.receiveTime}}'> |
| | | <image class="timeicon" src="/images/time.png"></image> |
| | |
| | | <view class="footer"> |
| | | <view class="libtn"> |
| | | <!-- 修改 --> |
| | | <view class="btn btn-jd" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="statements"> |
| | | <view class="btn btn-ck" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="yetstatements"> |
| | | <van-icon name="browsing-history-o" class="icon" /> |
| | | <text>查看</text> |
| | | </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> |
| | |
| | | .btn-jd{ |
| | | background-color: #13CE66; |
| | | } |
| | | .btn-ck{ |
| | | background-color: #FF8C00; |
| | | } |
| | | .btn-adit{ |
| | | background-color: #1E90FF; |
| | | } |
| | |
| | | selectDate: '', |
| | | paramsInfo: {}, |
| | | showJD: false, |
| | | view:false, |
| | | view: false, |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | |
| | | if (options && options.info) { |
| | | let info = JSON.parse(options.info) |
| | | console.log(info); |
| | |
| | | time: info.appointmentTime, |
| | | deviceIndex: 0, |
| | | deviceList2: [info.device.deviceName], |
| | | erectoIndex: 0, |
| | | erectoList2: [info.erectoName], |
| | | view:info.imgUrl?true:false |
| | | |
| | | // erectoIndex: 0, |
| | | // erectoList2: [info.erectoName], |
| | | view: info.imgUrl ? true : false |
| | | }) |
| | | wx.setNavigationBarTitle({ |
| | | title: this.data.form.device.deviceName |
| | | title: 'ID' + this.data.form.id + ' | ' + this.data.form.device.deviceName |
| | | }) |
| | | } else { |
| | | this.getErectoList() |
| | | this.getDeviceList() |
| | | } |
| | | this.getErectoList() |
| | | this.getDeviceList() |
| | | }, |
| | | changeUserName(e) { |
| | | this.data.form.userName = e.detail.value |
| | |
| | | }, |
| | | Yes() { |
| | | console.log(this.data.form); |
| | | |
| | | |
| | | if (this.data.form.state == 3) { |
| | | if (!this.data.form.imgUrl) { |
| | | wx.showToast({ |
| | |
| | | }); |
| | | return |
| | | } |
| | | this.data.form.orderType='1' |
| | | this.data.form.orderType = '1' |
| | | if (this.data.form.appointmentTime) { |
| | | this.data.form.appointmentTime += ':00' |
| | | } |
| | |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | params: data, |
| | | data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code != 200) { |
| | | if (res.data.code != 200 || res.data.rows.length == 0) { |
| | | wx.showToast({ |
| | | title: res.data.msg, |
| | | icon: 'none' |
| | |
| | | let data = { |
| | | pageNum: 1, |
| | | pageSize: 10000, |
| | | deptId: wx.setStorageSync('deptId'), |
| | | deptId: wx.getStorageSync('deptId'), |
| | | isAuthentication: 1 |
| | | } |
| | | console.log(data); |
| | | wx.request({ |
| | | url: 'https://puyue.yhupai.com/prod-api/system/user/list', |
| | | method: "GET", |
| | |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | params: data, |
| | | data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code != 200) { |
| | | wx.showToast({ |
| | |
| | | icon: 'none' |
| | | }); |
| | | } else { |
| | | let data = [] |
| | | console.log(res); |
| | | |
| | | res.data.rows.unshift({ |
| | | nickName:'未指派', |
| | | erectoId:-1 |
| | | }) |
| | | let data1 = [] |
| | | for (let i = 0; i < res.data.rows.length; i++) { |
| | | data.push(res.data.rows[i].nickName) |
| | | data1.push(res.data.rows[i].nickName) |
| | | } |
| | | data.unshift( |
| | | '未指派' |
| | | ) |
| | | this.setData({ |
| | | erectoList1: res.data.rows, |
| | | erectoList2: data |
| | | erectoList2: data1 |
| | | }) |
| | | |
| | | this.data.form.erectoId = -1 |
| | | this.data.form.erectoName = '未指派' |
| | | |
| | | 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 = '未指派' |
| | | } |
| | | } |
| | | } |
| | | }) |
| | |
| | | form: item |
| | | }) |
| | | // this.data.form.state = 1 |
| | | 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 |
| | | this.data.form.erectoId = this.data.erectoList1[Number(e.detail.value)].userId |
| | | this.data.form.erectoName = this.data.erectoList1[Number(e.detail.value)].nickName |
| | | console.log(this.data.form); |
| | | } |
| | | console.log(this.data.erectoList1, this.data.erectoList2, e.detail.value, this.data.form); |
| | | |
| | |
| | | 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 |
| | | time: year + '-' + month + '-' + day + ' ' + hour + ':' + minute, //设置当前时间 ,currentYears+'-'+mm+'-'+dd+' '+hh+':'+min |
| | | year: year,//记录选择的年 |
| | | month: month,//记录选择的月 |
| | | day: day,//记录选择的日 |
| | |
| | | { |
| | | "usingComponents": { |
| | | "van-rate": "/miniprogram_npm/vant-weapp/rate/index" |
| | | |
| | | }, |
| | | "navigationBarTitleText": "安装下单" |
| | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/name.png"></image> |
| | | <view>安装工</view> |
| | | <view>安装工人</view> |
| | | </view> |
| | | <picker bindchange="bindPicker2" value="{{erectoIndex}}" range="{{erectoList2}}" disabled='{{showJD&&form.state>0}}'> |
| | | <view class="chose">{{erectoList2[erectoIndex]?erectoList2[erectoIndex]:'请选择安装工'}}</view> |
| | | <picker bindchange="bindPicker2" value="{{erectoIndex}}" range="{{erectoList2}}" disabled='{{showJD&&form.state>1}}'> |
| | | <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>订单状态</view> |
| | | </view> |
| | | <radio-group bindchange="radioChange" style="padding-left: 5%;"> |
| | | <label> |
| | |
| | | <radio value="3" checked="{{form.state==3}}" disabled='{{true}}'>已完成</radio> |
| | | </label> |
| | | </radio-group> |
| | | <!-- <van-radio-group value="{{ from.state }}" direction="horizontal"> |
| | | <!-- <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> |
| | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>手机号</view> |
| | | <view>用户电话</view> |
| | | </view> |
| | | <input bindinput="changePhone" value="{{form.userPhone}}" disabled="{{view}}" class="textbox" placeholder="请输入手机号"></input> |
| | | <input bindinput="changePhone" value="{{form.userPhone}}" disabled="{{view}}" class="textbox" placeholder="请输入用户电话"></input> |
| | | </view> |
| | | <view> |
| | | <view class="title"> |
| | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>备注</view> |
| | | <view>订单备注</view> |
| | | </view> |
| | | <textarea bindinput="changeRemark" disabled="{{view}}" class="textbox" value="{{form.remark}}" placeholder="请输入备注内容..."></textarea> |
| | | <textarea bindinput="changeRemark" disabled="{{view}}" class="textbox" value="{{form.remark?form.remark:view?' ':''}}" placeholder="请输入订单备注内容..."></textarea> |
| | | </view> |
| | | <view wx:if="{{view }}"> |
| | | <view class="title"> |
| | |
| | | <!-- <view>尺寸在512*512以内,大小在500kb以内</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 disabled 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 class="footer"> |
| | | <view class="footer" wx:if="{{form&&!form.isRate}}"> |
| | | <button class="btnC" disabled="{{view}}" bindtap="Cancel">取消</button> |
| | | <button class="btnY" disabled="{{view}}" bindtap="Yes">提交</button> |
| | | <!-- <button class="btnY" bindtap="test">test</button> --> |
| | |
| | | /* pages/problemReport/proRep.wxss */ |
| | | |
| | | .van-rate { |
| | | width: 60%; |
| | | justify-content: center; |
| | | display: flex; |
| | | } |
| | | .rateItem{ |
| | | color: #909399; |
| | | } |
| | | .title{ |
| | | width: 90vw; |
| | | margin: 10rpx auto; |
| | |
| | | time: info.appointmentTime, |
| | | deviceIndex: 0, |
| | | deviceList2: [info.device.deviceName], |
| | | erectoIndex: 0, |
| | | erectoList2: [info.erectoName], |
| | | // erectoIndex: 0, |
| | | // erectoList2: [info.erectoName], |
| | | view:info.imgUrl?true:false |
| | | |
| | | }) |
| | | wx.setNavigationBarTitle({ |
| | | title: this.data.form.device.deviceName |
| | | title:'ID'+this.data.form.id+' | '+this.data.form.device.deviceName |
| | | }) |
| | | } else { |
| | | this.getErectoList() |
| | | this.getDeviceList() |
| | | } |
| | | this.getErectoList() |
| | | this.getDeviceList() |
| | | }, |
| | | changeUserName(e) { |
| | | this.data.form.userName = e.detail.value |
| | |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | params: data, |
| | | data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code != 200) { |
| | | wx.showToast({ |
| | |
| | | let data = { |
| | | pageNum: 1, |
| | | pageSize: 10000, |
| | | deptId: wx.setStorageSync('deptId'), |
| | | deptId: wx.getStorageSync('deptId'), |
| | | isAuthentication: 1 |
| | | } |
| | | wx.request({ |
| | |
| | | "Access-Control-Allow-Headers": 'token', |
| | | Authorization: `Bearer ${wx.getStorageSync('token')}` |
| | | }, |
| | | params: data, |
| | | data: data, |
| | | success: (res, header) => { |
| | | if (res.data.code != 200) { |
| | | wx.showToast({ |
| | |
| | | icon: 'none' |
| | | }); |
| | | } else { |
| | | let data = [] |
| | | console.log(res); |
| | | |
| | | res.data.rows.unshift({ |
| | | nickName:'未指派', |
| | | erectoId:-1 |
| | | }) |
| | | let data1 = [] |
| | | for (let i = 0; i < res.data.rows.length; i++) { |
| | | data.push(res.data.rows[i].nickName) |
| | | data1.push(res.data.rows[i].nickName) |
| | | } |
| | | data.unshift( |
| | | '未指派' |
| | | ) |
| | | this.setData({ |
| | | erectoList1: res.data.rows, |
| | | erectoList2: data |
| | | erectoList2: data1 |
| | | }) |
| | | |
| | | this.data.form.erectoId = -1 |
| | | this.data.form.erectoName = '未指派' |
| | | |
| | | 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 = '未指派' |
| | | } |
| | | } |
| | | } |
| | | }) |
| | |
| | | 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 |
| | | this.data.form.erectoId = this.data.erectoList1[Number(e.detail.value)].userId |
| | | this.data.form.erectoName = this.data.erectoList1[Number(e.detail.value)].nickName |
| | | } |
| | | |
| | | }, |
| | |
| | | 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 |
| | | time: year + '-' + month + '-' + day + ' ' + hour + ':' + minute, //设置当前时间 ,currentYears+'-'+mm+'-'+dd+' '+hh+':'+min |
| | | year: year,//记录选择的年 |
| | | month: month,//记录选择的月 |
| | | day: day,//记录选择的日 |
| | |
| | | { |
| | | "usingComponents": { |
| | | |
| | | "van-rate": "/miniprogram_npm/vant-weapp/rate/index" |
| | | }, |
| | | "navigationBarTitleText": "维修下单" |
| | | } |
| | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/name.png"></image> |
| | | <view>维修工</view> |
| | | <view>维修工人</view> |
| | | </view> |
| | | <picker bindchange="bindPicker2" value="{{erectoIndex}}" range="{{erectoList2}}" disabled='{{showJD&&form.state>0}}'> |
| | | <view class="chose">{{erectoList2[erectoIndex]?erectoList2[erectoIndex]:'请选择维修工'}}</view> |
| | | <picker bindchange="bindPicker2" value="{{erectoIndex}}" range="{{erectoList2}}" disabled='{{showJD&&form.state>1}}'> |
| | | <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>订单状态</view> |
| | | </view> |
| | | <radio-group bindchange="radioChange" style="padding-left: 5%;"> |
| | | <label> |
| | |
| | | <radio value="3" checked="{{form.state==3}}" disabled='{{true}}'>已完成</radio> |
| | | </label> |
| | | </radio-group> |
| | | <!-- <van-radio-group value="{{ from.state }}" direction="horizontal"> |
| | | <!-- <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> |
| | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>手机号</view> |
| | | <view>用户电话</view> |
| | | </view> |
| | | <input bindinput="changePhone" value="{{form.userPhone}}" disabled="{{view}}" class="textbox" placeholder="请输入手机号"></input> |
| | | <input bindinput="changePhone" value="{{form.userPhone}}" disabled="{{view}}" class="textbox" placeholder="请输入用户电话"></input> |
| | | </view> |
| | | <view> |
| | | <view class="title"> |
| | |
| | | <view> |
| | | <view class="title"> |
| | | <image class="primg" src="/images/ProRep/uptext.png"></image> |
| | | <view>故障描述</view> |
| | | <view>订单备注</view> |
| | | </view> |
| | | <textarea bindinput="changeRemark" disabled="{{view}}" class="textbox" value="{{form.description}}" placeholder="请输入备注内容..."></textarea> |
| | | <textarea bindinput="changeRemark" disabled="{{view}}" class="textbox" value="{{form.description?form.description:view?' ':''}}" placeholder="请输入订单备注..."></textarea> |
| | | </view> |
| | | <view wx:if="{{view }}"> |
| | | <view class="title"> |
| | |
| | | <!-- <view>尺寸在512*512以内,大小在500kb以内</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 disabled 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 class="footer"> |
| | | <view class="footer" wx:if="{{form&&!form.isRate}}"> |
| | | <button class="btnC" disabled="{{view}}" bindtap="Cancel">取消</button> |
| | | <button class="btnY" disabled="{{view}}" bindtap="Yes">提交</button> |
| | | <!-- <button class="btnY" bindtap="test">test</button> --> |
| | |
| | | color: #888; |
| | | width: 40%!important; |
| | | } |
| | | .van-rate { |
| | | width: 60%; |
| | | justify-content: center; |
| | | display: flex; |
| | | } |
| | | .rateItem{ |
| | | color: #909399; |
| | | } |
| | | .btnY{ |
| | | background-color: #1E90FF; |
| | | color: whitesmoke; |
| 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) |
| | | 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], |
| | | }) |
| | | 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 = { |
| | | status: 1 |
| | | } |
| | | 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||res.data.rows.length==0) { |
| | | 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 |
| | | } |
| | | console.log(data); |
| | | 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.state = 1 |
| | | 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 |
| | | } |
| | | console.log(this.data.erectoList1, this.data.erectoList2, e.detail.value, this.data.form); |
| | | |
| | | |
| | | }, |
| | | 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> |
| | | </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.remark?form.remark: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 style="height:50rpx"></view> |
| New file |
| | |
| | | /* pages/problemReport/proRep.wxss */ |
| | | |
| | | .van-rate { |
| | | width: 60%; |
| | | justify-content: center; |
| | | display: flex; |
| | | } |
| | | .rateItem{ |
| | | color: #909399; |
| | | } |
| | | .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; |
| | | } |
| | | .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; |
| | | } |
| 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; |
| | | } |