hailu
2023-12-07 097985a7a3f9c869f7ee5692b163210ab647987f
备份
11个文件已修改
16个文件已添加
1842 ■■■■■ 已修改文件
GoldC/app.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/devicelogs/devicelogs.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/home/home.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/home/home.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/login/login.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/problemReport/components/datePicker.js 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/problemReport/components/datePicker.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/problemReport/components/datePicker.wxml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/problemReport/components/datePicker.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/rate/rate.js 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/rate/rate.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/rate/rate.wxml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/rate/rate.wxss 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/repairTicketDetail/repairTicketDetail.js 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/repairTicketDetail/repairTicketDetail.wxml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/workOrder/workOrder.js 262 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/workOrder/workOrder.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/workOrder/workOrder.wxml 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/workOrder/workOrder.wxss 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/components/datePicker.js 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/components/datePicker.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/components/datePicker.wxml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/components/datePicker.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/yetWX.js 487 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/yetWX.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/yetWX.wxml 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/pages/yetWX/yetWX.wxss 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GoldC/app.json
@@ -27,7 +27,9 @@
    "pages/personSet/personSet",
    "pages/changePsw/changePSW",
    "pages/notice/notice",
    "pages/noticeDetail/noticeDetail"
    "pages/noticeDetail/noticeDetail",
    "pages/rate/rate",
    "pages/yetWX/yetWX"
  ],
  "permission": {
    "scope.userLocation": {
GoldC/pages/devicelogs/devicelogs.js
@@ -44,6 +44,7 @@
          let mapInfo = res.data.data
          // console.log(res.data.data);
          var marker = [{
            id:0,
            latitude: mapInfo.latitude,
            longitude: mapInfo.longitude,
            iconPath: '../../images/ProRep/weizhi.png',
@@ -82,10 +83,7 @@
    wx.navigateTo({
      url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
GoldC/pages/home/home.js
@@ -60,8 +60,11 @@
    })
  },
  getShortList() {
    this.setData({
      manageList:[]
    })
    // let data = {
    //   status:3
    //   repairFlag: 0
    // }
    wx.request({
      url: 'https://puyue.yhupai.com/prod-api/iot/device/shortList',
@@ -70,7 +73,7 @@
        "Access-Control-Allow-Headers": 'token',
        Authorization: `Bearer ${wx.getStorageSync('token')}`
      },
      // params: data,
      // data: data,
      success: (res, header) => {
        if (res.data.code != 200) {
          wx.showToast({
GoldC/pages/home/home.wxss
@@ -26,6 +26,7 @@
  padding: 0 5px;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  white-space:nowrap;
}
.list .item .content {
GoldC/pages/login/login.js
@@ -1,7 +1,7 @@
// pages/login/logn.js
import { loginRequest } from '../../utils/network.js'
// md5 password加密
import { hexMD5 } from "../../utils/md5.js"
const app = getApp()
Page({
@@ -9,8 +9,10 @@
   * 页面的初始数据
   */
  data: {
    userName: 'admin',
    psw: 'admin123',
    // userName: 'admin',
    // psw: 'admin123',
    userName: 'wumei-t1',
    psw: '123456',
    codeNum: '',
    loginImg: '/images/login.png',
    uuid: '',
@@ -21,12 +23,12 @@
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (wx.getStorageSync('user')) {
      app.setUser(wx.getStorageSync('user'))
      wx.switchTab({
        url: '/pages/home/home',
      })
    }
    // if (wx.getStorageSync('user')) {
    //   app.setUser(wx.getStorageSync('user'))
    //   wx.switchTab({
    //     url: '/pages/home/home',
    //   })
    // }
    // this.getImg()
  },
  // 绑定用户名
GoldC/pages/problemReport/components/datePicker.js
New file
@@ -0,0 +1,174 @@
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]
    })
  }
})
GoldC/pages/problemReport/components/datePicker.json
New file
@@ -0,0 +1,6 @@
{
  "component": true,
  "usingComponents": {
  }
}
GoldC/pages/problemReport/components/datePicker.wxml
New file
@@ -0,0 +1,8 @@
<!--pages/repairTicketDetail/datePicker.wxml-->
<!-- 组件 -->
<view>
    <picker range="{{test}}" mode="multiSelector" bindcolumnchange='bindcolumnchange' value="{{selectvalue}}" bindchange="bindchange">
        {{date}} {{time}}
    </picker>
</view>
GoldC/pages/problemReport/components/datePicker.wxss
New file
@@ -0,0 +1 @@
/* pages/repairTicketDetail/datePicker.wxss */
GoldC/pages/rate/rate.js
New file
@@ -0,0 +1,127 @@
// pages/rate/rate.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    params: {},
    value: 0,
    comment: '',
    isRate:0
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // this.data.params =JSON.parse(options.params)
     this.setData({
      params:JSON.parse(options.params),
      isRate:JSON.parse(options.params).isRate
     })
     if(this.data.isRate){
       this.setData({
         value:this.data.params.score,
         comment:this.data.params.evaluate
       })
     }
  },
  onChange(event) {
    this.setData({
      value: event.detail,
    });
  },
  handleInput(e) {
    this.setData({
      comment: e.detail.value
    });
  },
  handleSubmit() {
    if (this.data.value == 0) {
      wx.showToast({
        title: '请选择您对本次服务的评价',
        icon: 'none'
      })
      return false
    }
    let data = {
      id: this.data.params.id,
      userId: this.data.params.userId,
      orderType: this.data.params.orderType,
      score: this.data.value,
      evaluate: this.data.comment
    }
    wx.request({
      url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/editDeviceOrderScore?id=${data.id}&userId=${data.userId}&orderType=${data.orderType}&score=${data.score}&evaluate=${data.evaluate}`,
      method: "post",
      header: {
        "Access-Control-Allow-Headers": 'token',
        Authorization: `Bearer ${wx.getStorageSync('token')}`
      },
      // data: data,
      success: (res, header) => {
        if (res.data.code !== 200) {
          wx.showToast({
            title: res.data.msg,
            icon: "error"
          })
        } else {
          wx.navigateBack()
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  }
})
GoldC/pages/rate/rate.json
New file
@@ -0,0 +1,9 @@
{
  "usingComponents": {
    "van-field": "/miniprogram_npm/vant-weapp/field/index",
    "van-rate": "/miniprogram_npm/vant-weapp/rate/index"
  },
  "navigationBarTitleText": "用户评价",
  "navigationBarTextStyle": "white",
  "navigationBarBackgroundColor": "#007CFE"
}
GoldC/pages/rate/rate.wxml
New file
@@ -0,0 +1,18 @@
<view class="rate" >
  <van-rate value="{{ value }}" size="{{25}}" color="#EE0A24" style="margin-left: 40px;" bind:change="onChange" />
</view>
<view style="padding-left: 3%;" >
  <view class="rateItem" wx:if="{{value==0}}">待评价</view>
  <view class="rateItem" wx:if="{{value==1}}">非常不满意,各方面都很差</view>
  <view class="rateItem" wx:if="{{value==2}}">不满意,比较差</view>
  <view class="rateItem" wx:if="{{value==3}}">一般,还需改善</view>
  <view class="rateItem" wx:if="{{value==4}}">比较满意,仍可改善</view>
  <view class="rateItem" wx:if="{{value==5}}">非常满意,无需挑剔</view>
</view>
<view style="width:calc(100% - 20px);border: 1px solid #778CBD;margin: 10px;border-radius: 5px;">
  <textarea disabled="{{isRate}}" placeholder="请输入您的评价" value="{{comment}}" style="padding: 5px;" bindinput="handleInput" />
</view>
<view bind:tap="handleSubmit"  style="width: 96%;margin-left: 2%;height: 40px;line-height: 40px;background-color: #007CFE;text-align: center;color: #fff;margin-top: 10px;">提交</view>
GoldC/pages/rate/rate.wxss
New file
@@ -0,0 +1,25 @@
/* pages/rate/rate.wxss */
.rate {
  width: 100%;
  display: flex;
  height: 50px;
  line-height: 50px;
}
.title {
  width: 30%;
  text-align: left;
  padding-left: 10px;
}
.van-rate {
  width: 60%;
  justify-content: center;
  display: flex;
}
.rateItem{
  color: #909399;
}
GoldC/pages/repairTicketDetail/repairTicketDetail.js
@@ -17,8 +17,11 @@
    selectDate: '',
    show: 'none',
    info: '',
    personInfo: {},
    yetSub: false,
    tanantId: 0,
    deviceId: 0,
    userName: '',
    userPhone: undefined,
    address: '',
@@ -40,17 +43,20 @@
  },
  onChangeType(event) {
    const { picker, value, index } = event.detail;
    console.log(picker, value, index);
    this.setData({
      deviceName: value,
      showType: false,
      deviceIndex: index
      deviceIndex: index,
      tanantId: this.data.deviceList[index].tenantId,
      deviceId: this.data.deviceList[index].deviceId,
    })
    console.log(this.data.deviceId);
  },
  changeUserName(e) {
    this.setData({
      userName: e.detail.value
    })
  },
  checkPhone(e) {
    this.setData({
@@ -63,8 +69,9 @@
    })
  },
  changeDescription(e){
    console.log(e);
    this.setData({
      description: e.detail.value
      description: e.detail
    })
  },
  closeType() {
@@ -77,8 +84,6 @@
      showDate: true
    })
  },
  bindMultiPickerChange: function (e) { //时间日期picker选择改变后,点击确定 
    // console.log('picker发送选择改变,携带值为', e.detail.value)
    this.setData({
@@ -362,18 +367,44 @@
      return false
    }
    let data = {
      deviceId: this.data.deviceList[this.data.deviceIndex].deviceId,
      erectoId: 0,
      deviceId: this.data.deviceId,
      erectoId: -1,
      erectoName: '未指派',
      userName: this.data.userName,
      userPhone: this.data.userPhone,
      address: this.data.address,
      // appointmentTime:this.formatDate(this.data.time+':'+'00') ,
      appointmentTime:this.data.time+':'+'00',
      state: -1,
      orderType:'2'
      state: 0,
      orderType: '2',
      createUserId: this.data.tanantId,
      userId: this.data.personInfo.userId,
      repairFlag: 1,
      description:this.data.description
    }
    console.log(data);
    if (this.data.yetSub) {
      data.id = this.data.personInfo.id
      wx.request({
        url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder',
        method: "put",
        header: {
          "Access-Control-Allow-Headers": 'token',
          Authorization: `Bearer ${wx.getStorageSync('token')}`
        },
        data: data,
        success: (res, header) => {
          console.log(res);
          if (res.data.code != 200) {
            wx.showToast({
              title: res.data.msg,
              icon: 'none'
            });
          } else {
            wx.navigateBack()
          }
        }
      })
    } else {
    wx.request({
      url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder',
      method: "POST",
@@ -383,18 +414,20 @@
      },
      data: data,
      success: (res, header) => {
          console.log(res);
        if (res.data.code != 200) {
          wx.showToast({
            title: res.data.msg,
            icon: 'none'
          });
        } else {
          wx.navigateTo({
            url: '/pages/workOrder/workOrder',
          })
            wx.navigateBack()
        }
      }
    })
    }
    console.log(data);
  },
  formatDate(dateStr) {
    let date = new Date(dateStr);
@@ -409,23 +442,87 @@
  
    return `${year}-${month}-${day}T${hour}:${minute}:${second}.${millisecond}Z`;
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  getShortList() {
    // this.setData({
    //   manageList:[]
    // })
    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 arr = res.data.rows
    this.setData({
      deviceList:wx.getStorageSync('deviceList')
            deviceList: arr
    })
    let dataDevice = []
    for (let i = 0; i < this.data.deviceList.length; i++) {
      dataDevice.push(this.data.deviceList[i].productName)
            dataDevice.push(this.data.deviceList[i].deviceName)
    }
    this.setData({
      columns: dataDevice
    })
          // wx.setStorageSync('deviceList', arr)
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getShortList()
    console.log(this.data.deviceList);
    if (options.info) {
      this.setData({
        personInfo: JSON.parse(options.info),
        yetSub: true
      })
      console.log(this.data.personInfo);
      this.setData({
        userName: this.data.personInfo.userName,
        userPhone: this.data.personInfo.userPhone,
        address: this.data.personInfo.address,
        deviceName: this.data.personInfo.device.deviceName,
        deviceId: this.data.personInfo.deviceId,
        tanantId: this.data.personInfo.createUserId,
        description:this.data.personInfo.description
      })
      for (let i = 0; i < this.data.deviceList.length; i++) {
        console.log(this.data.deviceList[i], this.data.personInfo);
        if (this.data.deviceList[i].deviceId == this.data.deviceId) {
          this.setData({
            deviceIndex: i
          })
        }
      }
    } else {
      this.setData({
        personInfo: wx.getStorageSync('userInfo')
      })
      this.setData({
        userName: this.data.personInfo.nickName,
        userPhone: this.data.personInfo.phonenumber,
        address: this.data.personInfo.address,
      })
    }
    console.log(this.data.personInfo);
  },
  /**
@@ -439,6 +536,7 @@
   * 生命周期函数--监听页面显示
   */
  onShow() {
    var loadPickerData = DatePickerUtil.loadPickerData()
    var getCurrentDate = DatePickerUtil.getCurrentDate()
    var GetMultiIndex = DatePickerUtil.GetMultiIndex()
GoldC/pages/repairTicketDetail/repairTicketDetail.wxml
@@ -22,7 +22,7 @@
<view class="main">
  <view class="item">
    <view class="left">
      设备名称
      设备
    </view>
    <view class="right" bind:tap="openShowType">
      {{deviceName}} >
@@ -38,10 +38,10 @@
  </view> -->
  <view class="item">
    <view class="left">
      用户姓名
      姓名
    </view>
    <view class="right" bind:tap="choseLocation">
      <input class="input" placeholder="请输入用户姓名" type="phone" bindinput="changeUserName"></input>
      <input class="input" placeholder="请输入用户姓名"  value="{{userName}}"  bindinput="changeUserName"></input>
    </view>
  </view>
  <view class="item">
@@ -49,7 +49,7 @@
      电话
    </view>
    <view class="right">
      <input class="input" placeholder="请输入手机号"  type="number" pattern="^1[3-9]\d{9}$" bindinput="checkPhone"></input>
      <input class="input" placeholder="请输入手机号" value="{{userPhone}}" type="number" pattern="^1[3-9]\d{9}$" bindinput="checkPhone"></input>
    </view>
  </view>
  <view class="item">
@@ -58,7 +58,7 @@
    </view>
    <view class="right" bind:tap="choseLocation">
    
      <input class="input" placeholder="请输入地址"  bindinput="changeAdress"></input>
      <input class="input" value="{{address}}" placeholder="请输入地址"  bindinput="changeAdress"></input>
    </view>
  </view>
  <view class="item">
GoldC/pages/workOrder/workOrder.js
@@ -5,7 +5,7 @@
   * 页面的初始数据
   */
  data: {
    tabs: [0, 2, 3] ,
    form: {},
    showPage: false,
    showNull: false,
    roleKey: wx.getStorageSync('roleKey'),
@@ -26,6 +26,13 @@
    // totalPage:0,
    index: 1,
    total: 10,
    modalHidden: true,
    delModal: true,
    info1: 0,
    info2: 0,
    info3: 0,
    info4: 0,
    delDeviceId: 0,
    pageMask: false,
    prevBtnDis: true,
@@ -49,7 +56,6 @@
      })
    }
  },
  // 详情展示
  toxiangqin(e) {
    console.log(e.target.dataset.id)
@@ -63,6 +69,49 @@
   */
  onLoad: function (options) {
  },
  delAZ(e) {
    console.log(e);
    var item = e.currentTarget.dataset.base
    this.setData({
      delModal: false,
      form: item,
    })
  },
  DelChange() {
    wx.request({
      url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/${this.data.form.id}/${this.data.form.deviceId}`,
      method: "DELETE",
      header: {
        "Access-Control-Allow-Headers": 'token',
        Authorization: `Bearer ${wx.getStorageSync('token')}`
      },
      success: (res, header) => {
        if (res.data.code == 200) {
          this.setData({
            index: 1,
            delModal: true
          })
          this.getNumInfo()
          this.getList()
        } else {
          this.setData({
            index: 1,
            delModal: true
          })
          this.getNumInfo()
          this.getList()
        }
      }
    })
  },
  DelCancel() {
    this.setData({
      delModal: true
    })
  },
  // 设置异步请求之后的页面、总记录数
  setPage(index, total) {
    this.setData({
@@ -111,10 +160,21 @@
  },
  //上一页点击事件
  prevPage: function () {
    if (this.data.index <= 1) return;
    if (this.data.index <= 1) {
      this.setData({
        prevBtnDis: false,
      })
      return false
    }
    if (this.data.index <= this.data.total) {
      this.setData({
        nextBtnDis: false,
      })
    }
    let num = this.data.index - 1;
    this.setData({
      index: num
      index: num,
      prevBtnDis: true
    })
    this.getList()
    this.triggerParent();
@@ -123,7 +183,20 @@
  },
  //下一页点击事件
  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
@@ -135,11 +208,17 @@
    this.updateBtnDis();
  },
  onChange(event) {
    // this.setData({
    //   state:this.data.tabs[event.detail.index]
    // })
    this.data.state=this.data.tabs[event.detail.index]
    this.setData({
      state: event.detail.index
    })
    this.getNumInfo()
    this.getList()
  },
  goTop() {  // 一键回到顶部
    wx.pageScrollTo({
      scrollTop: 0,
      duration: 300
    });
  },
  getList() {
    wx.showLoading({
@@ -152,9 +231,97 @@
    var roleKey = wx.getStorageSync('roleKey')
    let data = {
      pageNum: this.data.index,
      pageSize: 10,
      pageSize: 5,
      state: this.data.state,
      orderType: 2,
      userId: erectoId
    }
    // if (roleKey == 'tenantservice') {
    //   data.createUserId = 0
    //   data.erectoId = erectoId
    // }
    // if (roleKey == 'admin') {
    //   data.createUserId = 0;
    //   data.erectoId = 0;
    // }
    // if (roleKey == 'tenant' || roleKey == 'tenanthelper') {
    //   data.createUserId = erectoId;
    //   data.erectoId = 0;
    // }
    // if (this.data.active2 == 1) { //当选择下级时\
    //   data.createUserId = this.data.nextlevel
    // }
    console.log(data);
    wx.request({
      url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder/list',
      method: "GET",
      header: {
        "Access-Control-Allow-Headers": 'token',
        Authorization: `Bearer ${wx.getStorageSync('token')}`
      },
      data: data,
      success: (res, header) => {
        console.log(res);
        if (res.data.code == 200 && res.data.rows.length > 0) {
          let data = res.data
          let total = Math.ceil(res.data.total / 5)
          this.setData({
            listdata: data.rows,
            total: total,
            showPage: true,
            showNull: false
          })
          console.log(this.data.listdata);
          this.goTop()
          wx.hideLoading()
        } else {
          this.setData({
            listdata: [],
            total: 0,
            showPage: false,
            showNull: true
          })
          this.goTop()
          wx.hideLoading()
        }
      }
    })
  },
  openAddModal() {
    let data = {
      repairFlag: 0
    }
    wx.request({
      url: 'https://puyue.yhupai.com/prod-api/iot/device/shortListRepair',
      method: "GET",
      header: {
        "Access-Control-Allow-Headers": 'token',
        Authorization: `Bearer ${wx.getStorageSync('token')}`
      },
      // data: data,
      success: (res, header) => {
        if (res.data.code != 200 || res.data.rows.length == 0) {
          wx.showToast({
            title: '请先添加设备',
            icon:'none'
          })
          return false
        } else {
          wx.navigateTo({
            url: '/pages/repairTicketDetail/repairTicketDetail',
          })
        }
      }
    })
  },
  getNumInfo() {
    var erectoId = wx.getStorageSync("erectoId")
    var roleKey = wx.getStorageSync('roleKey')
    let data = {
      orderType: '2',
      userId: erectoId,
      // state:this.data.state
    }
    if (roleKey == 'tenantservice') {
      data.createUserId = 0
@@ -171,9 +338,8 @@
    if (this.data.active2 == 1) { //当选择下级时\
      data.createUserId = this.data.nextlevel
    }
    console.log(data);
    wx.request({
      url: 'https://puyue.yhupai.com/prod-api/iot/deviceOrder/list',
      url: `https://puyue.yhupai.com/prod-api/iot/deviceOrder/get`,
      method: "GET",
      header: {
        "Access-Control-Allow-Headers": 'token',
@@ -181,45 +347,62 @@
      },
      data: data,
      success: (res, header) => {
        if (res.data.code == 200 && res.data.rows.length > 0) {
          let data = res.data
          let total = Math.ceil(res.data.total / 10)
        if (res.data.code == 200) {
          console.log(res);
          this.setData({
            listdata: data.rows,
            total: total,
            showPage:true,
            showNull:false
            info1: res.data.data.deviceOrderUndeliveredorders,
            info2: res.data.data.deviceOrderDispatchedorders,
            info3: res.data.data.deviceOrderReceivedorders,
            info4: res.data.data.deviceOrderCompleted,
          })
          console.log(this.data.listdata)
          wx.hideLoading()
        } else {
          this.setData({
            listdata: [],
            total: 0,
            showPage:false,
            showNull:true
            info1: 0,
            info2: 0,
            info3: 0,
            info4: 0,
          })
          wx.hideLoading()
        }
      }
    })
  },
  openAddModal(){
    let deviceList=wx.getStorageSync('deviceList')
    if(deviceList.length>0){
  rate(e) {
    let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base))
    let data = {
      id: item.id,
      userId: item.userId,
      orderType: item.orderType,
      isRate: 0,
    }
      wx.navigateTo({
        url: '/pages/repairTicketDetail/repairTicketDetail',
      url: `/pages/rate/rate?params=${JSON.stringify(data)}`,
      })
    }else{
      wx.showToast({
        title: '请先添加设备',
      })
    }
  },
  seeRate(e) {
    // let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base))
    // let data = {
    //   id: item.id,
    //   userId: item.userId,
    //   orderType: item.orderType,
    //   isRate:1,
    //   score:item.score,
    //   evaluate:item.evaluate
    // }
    // wx.navigateTo({
    //   url: `/pages/rate/rate?params=${JSON.stringify(data)}`,
    // })
    let item = JSON.parse(JSON.stringify(e.currentTarget.dataset.base))
    wx.navigateTo({
      url: '/pages/yetWX/yetWX?info=' + JSON.stringify(item),
    })
  },
  edit(e) {
    console.log(e);
    var item = e.currentTarget.dataset.base
    wx.navigateTo({
      url: '/pages/repairTicketDetail/repairTicketDetail?info=' + JSON.stringify(item),
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
@@ -230,6 +413,7 @@
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getNumInfo()
    this.getList()
  },
GoldC/pages/workOrder/workOrder.json
@@ -3,7 +3,8 @@
    "van-tab":"/miniprogram_npm/vant-weapp/tab/index",
    "van-tabs":"/miniprogram_npm/vant-weapp/tabs/index",
    "van-dialog": "/miniprogram_npm/vant-weapp/dialog/index",
    "van-field": "/miniprogram_npm/vant-weapp/field/index"
    "van-field": "/miniprogram_npm/vant-weapp/field/index",
    "van-icon": "/miniprogram_npm/vant-weapp/icon"
  },
  "navigationBarTitleText": "工单",
  "navigationBarTextStyle": "white",
GoldC/pages/workOrder/workOrder.wxml
@@ -2,9 +2,10 @@
<!-- <text>pages/workOrder/workOrder.wxml</text> -->
<view style="width: 100%;display: flex;">
  <van-tabs active="{{ active }}" bind:change="onChange" style="width:90%">
    <van-tab title="待派单" ></van-tab>
    <van-tab title="维修中" ></van-tab>
    <van-tab title="已完成" ></van-tab>
    <van-tab title="未派单" info="{{info1}}"></van-tab>
    <van-tab title="已派单" info="{{info2}}"></van-tab>
    <van-tab title="维修中" info="{{info3}}"></van-tab>
    <van-tab title="已完成" info="{{info4}}"></van-tab>
  </van-tabs>
  <view class="add" bind:tap="openAddModal">
    +
@@ -14,49 +15,55 @@
<view class="listBox">
  <view class="list" wx:for="{{listdata}}">
    <view class="heard">
      <view class="htext">{{item.device.deviceName}}</view>
      <view class="htext">ID{{item.id}} | {{item.device.deviceName}}</view>
    </view>
    <view class="body">
      <view class="h2txt">
        <image class="primg" src="/images/ProRep/pingding.png"></image>
        用户信息:
        订单详情:
      </view>
      <view class="text">用户姓名:{{item.userName}}</view>
      <view class="text">用户电话:{{item.userPhone}}</view>
      <view class="h2txt">
        <image class="primg" src="/images/ProRep/uptext.png"></image>
        故障描述:
      <view class="text">师傅姓名:{{item.erectoName}}</view>
      <view class="text">师傅电话:{{item.erectoPhone?item.erectoPhone:'暂无'}}
        <van-icon wx:if="{{item.erectoPhone}}" data-base='{{item}}' bind:tap="call" name="phone" style="font-size: 18px;color: #1E90FF;position: relative;top: 3px;" />
      </view>
      <view class="text">{{item.remark?item.remark:'--'}}</view>
      <!-- <view class="xiangqingtxt" bindtap="toxiangqin" data-id="{{item.pk_Examine}}">查看详情></view> -->
      <!-- <view class="h2txt">问题图片:</view> -->
      <!-- <view style="padding-left: 30rpx;">
            <image wx:for="{{item.Reported_ImgArray}}" wx:for-item="imgitem" class="quImg" style="{{item.loading?'display:block':'display:none'}}" bindload="imgOnLoad" data-index="{{index}}" data-imgindex="{{imgitem}}" mode="aspectFill" src="{{'http://47.92.31.84:8088'+ imgitem}}" bindtap="imgYu" data-img="{{'http://47.92.31.84:8088'+ imgitem}}"></image>
          </view> -->
      <!--  -->
      <!--  -->
      <view class="address">
        <image class="timeicon" src="/images/address.png"></image>
        <text>{{item.address}}</text>
      <view class="text">
        预约时间:<text>{{item.appointmentTime?item.appointmentTime:'--'}}</text>
      </view>
      <view class="time">
      <view class="text" data-base='{{item}}' bind:tap="goAddress">
        维修地址:<text>{{item.address}}</text>
        <image class="timeicon" src="/images/ProRep/weizhi.png" style="margin-left: 10rpx;" mode="" />
      </view>
      <view class="text">
        故障描述:<text>{{item.description?item.description:'--'}}</text>
      </view>
      <view class="time" wx:if='{{item.receiveTime}}'>
        <image class="timeicon" src="/images/time.png"></image>
        <text>{{item.appointmentTime?item.appointmentTime:'--'}}</text>
        <text>{{item.receiveTime?item.receiveTime:'--'}}</text>
      </view>
    </view>
    <view class="footer">
      <view class="libtn">
        <!-- 修改 -->
        <view class="btn btn-adit" bindtap="adit" data-id="{{item.pk_Examine}}">
      <view class="libtn" wx:if="{{state==0}}">
        <view class="btn btn-adit" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="edit">
          <van-icon name="edit" class="icon" />
          <text>修改</text>
        </view>
      </view>
      <view class="libtn">
        <!-- 删除 -->
        <view class="btn btn-del" bindtap="del" data-id="{{item.pk_Examine}}" wx:if="{{roleKey!=='tenantservice'}}">
          <van-icon name="delete" class="icon" /><text>删除</text>
      <view class="libtn" wx:if="{{state==0}}">
        <view class="btn btn-del" data-id="{{item.pk_Examine}}" data-base='{{item}}' bind:tap="delAZ">
          <van-icon name="delete" class="icon" />
          <text>删除</text>
        </view>
      </view>
      <view class="libtn" wx:if="{{state==3&&item.isRate!=1}}">
        <view class="btn btn-adit" bindtap="rate" data-id="{{item.pk_Examine}}" data-base='{{item}}'>
          <van-icon name="comment-o" class="icon" />
          <text>评价</text>
        </view>
      </view>
      <view class="libtn" wx:if="{{state==3}}">
        <view class="btn btn-ck" data-id="{{item.pk_Examine}}" data-base='{{item}}' bindtap="seeRate">
          <van-icon name="browsing-history-o" class="icon" />
          <text>查看</text>
        </view>
      </view>
    </view>
@@ -64,16 +71,18 @@
</view>
<view class="noData" wx:if="{{showNull}}">
<view class="noData" wx:if="{{!showPage}}">
  <image class="nodataicon" src="/images/nodataimg.png"></image>
  <view>暂无相关数据</view>
</view>
<view class="page-control" wx:if="{{showPage}}">
  <view class="page-control-btns">
    <view class="page-btn {{prevBtnDis?'btn-disabled':''}}" bindtap="prevPage">上一页</view>
    <!-- class="page-btn {{prevBtnDis?'btn-disabled':''}}" -->
    <button class="page-btn {{total<=1||index==1?'btn-disabled':''}}" disabled="{{total<=1||index==1}}" bindtap="prevPage">上一页</button>
    <view class="page-number" bindtap="shopPagePopup"><text>{{index}}</text>/<text>{{total}}</text></view>
    <view class="page-btn {{nextBtnDis?'btn-disabled':''}}" bindtap="nextPage">下一页</view>
    <button class="page-btn {{total<=1||index==total?'btn-disabled':''}}" disabled="{{total<=1||index==total}}" bindtap="nextPage">下一页</button>
    <!-- class="page-btn {{nextBtnDis?'btn-disabled':''}}" -->
  </view>
  <view class="page-container" hidden="{{!pageMask}}">
    <view class="page-mask" bindtap="hidePagePopup"></view>
@@ -84,3 +93,8 @@
    </view>
  </view>
</view>
<modal title="删除订单" confirm-text="确认" cancel-text="取消" hidden="{{delModal}}" bindconfirm="DelChange" bindcancel="DelCancel">
  是否删除此订单?此操作不可恢复!
</modal>
GoldC/pages/workOrder/workOrder.wxss
@@ -40,6 +40,7 @@
.listBox {
  width: 100%;
  padding-bottom: 60px;
}
.primg{
  width: 30rpx;
@@ -164,7 +165,12 @@
  position: relative;
  top: 4rpx;
}
.btn-jd{
  background-color: #13CE66;
}
.btn-ck{
  background-color: #FF8C00;
}
.btn-adit{
  background-color: #1E90FF;
}
@@ -262,6 +268,9 @@
}
.page-control{
  width: 100%;
  position: fixed;
  bottom: 0;
  background-color: #fff;
}
.page-control .page-control-btns{
  width: 100%;
@@ -282,7 +291,7 @@
  width: 30%;
  padding: 15rpx 20rpx;
  font-size: 30rpx;
  background-color: #0099CC;
  background-color: #1E90FF;
  color: #fff;
  border-radius: 10rpx;
  text-align: center;
GoldC/pages/yetWX/components/datePicker.js
New file
@@ -0,0 +1,174 @@
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]
    })
  }
})
GoldC/pages/yetWX/components/datePicker.json
New file
@@ -0,0 +1,6 @@
{
  "component": true,
  "usingComponents": {
  }
}
GoldC/pages/yetWX/components/datePicker.wxml
New file
@@ -0,0 +1,8 @@
<!--pages/repairTicketDetail/datePicker.wxml-->
<!-- 组件 -->
<view>
    <picker range="{{test}}" mode="multiSelector" bindcolumnchange='bindcolumnchange' value="{{selectvalue}}" bindchange="bindchange">
        {{date}} {{time}}
    </picker>
</view>
GoldC/pages/yetWX/components/datePicker.wxss
New file
@@ -0,0 +1 @@
/* pages/repairTicketDetail/datePicker.wxss */
GoldC/pages/yetWX/yetWX.js
New file
@@ -0,0 +1,487 @@
// 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 () {
  }
})
GoldC/pages/yetWX/yetWX.json
New file
@@ -0,0 +1,6 @@
{
  "usingComponents": {
    "van-rate": "/miniprogram_npm/vant-weapp/rate/index"
  },
  "navigationBarTitleText": "维修下单"
}
GoldC/pages/yetWX/yetWX.wxml
New file
@@ -0,0 +1,126 @@
<!--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>
GoldC/pages/yetWX/yetWX.wxss
New file
@@ -0,0 +1,118 @@
/* 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;
}