Sfoglia il codice sorgente

管桩预约和充电桩预约的文件夹调整

shasha 5 giorni fa
parent
commit
e0f7c830ae
69 ha cambiato i file con 2520 aggiunte e 1962 eliminazioni
  1. 8 11
      app.json
  2. 10 131
      otherPages/chargestation/add.js
  3. 2 40
      otherPages/chargestation/add.wxml
  4. 10 148
      otherPages/chargestation/edit.js
  5. 0 1
      otherPages/chargestation/edit.less
  6. 2 41
      otherPages/chargestation/edit.wxml
  7. 4 355
      otherPages/chargestation/index.js
  8. 2 115
      otherPages/chargestation/index.wxml
  9. 2 79
      otherPages/chargestation/info.js
  10. 0 1
      otherPages/chargestation/info.less
  11. 2 24
      otherPages/chargestation/info.wxml
  12. 10 148
      otherPages/pipeAppoint/add.js
  13. 2 50
      otherPages/pipeAppoint/add.wxml
  14. 11 182
      otherPages/pipeAppoint/edit.js
  15. 0 1
      otherPages/pipeAppoint/edit.less
  16. 2 51
      otherPages/pipeAppoint/edit.wxml
  17. 4 355
      otherPages/pipeAppoint/index.js
  18. 2 113
      otherPages/pipeAppoint/index.wxml
  19. 2 79
      otherPages/pipeAppoint/info.js
  20. 0 1
      otherPages/pipeAppoint/info.less
  21. 2 24
      otherPages/pipeAppoint/info.wxml
  22. 14 1
      pages/index/index.js
  23. 187 0
      pages/reservationChargestation/add.js
  24. 0 0
      pages/reservationChargestation/add.json
  25. 40 0
      pages/reservationChargestation/add.wxml
  26. 1 1
      pages/reservationChargestation/add.wxss
  27. 204 0
      pages/reservationChargestation/edit.js
  28. 0 0
      pages/reservationChargestation/edit.json
  29. 1 0
      pages/reservationChargestation/edit.less
  30. 41 0
      pages/reservationChargestation/edit.wxml
  31. 417 0
      pages/reservationChargestation/index.js
  32. 0 0
      pages/reservationChargestation/index.json
  33. 1 1
      pages/reservationChargestation/index.less
  34. 115 0
      pages/reservationChargestation/index.wxml
  35. 1 1
      pages/reservationChargestation/index.wxss
  36. 143 0
      pages/reservationChargestation/info.js
  37. 0 0
      pages/reservationChargestation/info.json
  38. 1 0
      pages/reservationChargestation/info.less
  39. 24 0
      pages/reservationChargestation/info.wxml
  40. 204 0
      pages/reservationPipe/add.js
  41. 0 0
      pages/reservationPipe/add.json
  42. 54 0
      pages/reservationPipe/add.wxml
  43. 1 1
      pages/reservationPipe/add.wxss
  44. 237 0
      pages/reservationPipe/edit.js
  45. 0 0
      pages/reservationPipe/edit.json
  46. 1 0
      pages/reservationPipe/edit.less
  47. 51 0
      pages/reservationPipe/edit.wxml
  48. 417 0
      pages/reservationPipe/index.js
  49. 0 0
      pages/reservationPipe/index.json
  50. 1 1
      pages/reservationPipe/index.less
  51. 113 0
      pages/reservationPipe/index.wxml
  52. 1 1
      pages/reservationPipe/index.wxss
  53. 143 0
      pages/reservationPipe/info.js
  54. 0 0
      pages/reservationPipe/info.json
  55. 1 0
      pages/reservationPipe/info.less
  56. 24 0
      pages/reservationPipe/info.wxml
  57. 0 0
      pages/reservationTemp/add.js
  58. 0 0
      pages/reservationTemp/add.json
  59. 0 0
      pages/reservationTemp/add.less
  60. 0 0
      pages/reservationTemp/add.wxml
  61. 0 0
      pages/reservationTemp/add.wxss
  62. 0 0
      pages/reservationTemp/edit.js
  63. 0 0
      pages/reservationTemp/edit.json
  64. 0 0
      pages/reservationTemp/edit.less
  65. 0 0
      pages/reservationTemp/edit.wxml
  66. 0 0
      pages/reservationTemp/edit.wxss
  67. 2 2
      pages/workstand/index.js
  68. 2 2
      utils/api.js
  69. 1 1
      utils/iconfont.wxss

+ 8 - 11
app.json

@@ -7,8 +7,13 @@
     "pages/index/info",
     "pages/index/signFor",
     "pages/index/sign",
-    "pages/temporary/add",
-    "pages/temporary/edit",
+    "pages/reservationTemp/add",
+    "pages/reservationTemp/edit",
+    "pages/reservationPipe/add",
+    "pages/reservationPipe/edit",
+    "pages/reservationChargestation/index",
+    "pages/reservationChargestation/add",
+    "pages/reservationChargestation/edit",
     "pages/queueCar/index",
     "pages/queueCar/info",
     "pages/queueCar/adjustOrder",
@@ -69,15 +74,7 @@
         "loadAppoint/index",
         "loadAppoint/info",
         "loadAppoint/allocation",
-        "loadAppoint/dispatch",
-        "pipeAppoint/index",
-        "pipeAppoint/add",
-        "pipeAppoint/edit",
-        "pipeAppoint/info",
-        "chargestation/index",
-        "chargestation/add",
-        "chargestation/edit",
-        "chargestation/info"
+        "loadAppoint/dispatch"
       ],
       "independent": false
     }

+ 10 - 131
otherPages/chargestation/add.js

@@ -1,187 +1,66 @@
-// pages/pipeAppoint/add.js
-const app = getApp()
+// otherPages/chargestation/add.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    showModal: false,
-    defaultText: '请选择',
-    isSubmitting: false,
 
-    isKeyboard: false, //是否显示车牌输入键盘
-    inputOnFocusIndex: '', //当前锁定的车号位置
-    licensePlate: '', //用于提交
-    inputPlates: '', //用于显示
-
-    driverArray:[], //司机
-    driverIndex:null,
-
-  },
-  //输入框焦点聚焦时隐藏车牌号输入框
-  hideKeybord: function () {
-    this.setData({
-      isKeyboard: false,
-      inputOnFocusIndex: ''
-    })
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
-  onLoad: function (options) {
-    //获取司机信息
-    this.loadUserData()
-  },
-
-  //获取车牌号
-  licensePlate: function (e) {
-    this.setData({
-      licensePlate: e.detail.carNum
-    })
-  },
-
-  //司机
-  loadUserData:function(loadUserId){
-    app.request.GET({
-      url: app.API.roleUser,
-      params: {
-        roleName : '司机',
-      },
-      page: this,
-      successFun: true
-    }).then(res => {
-      this.setData({
-        driverArray : res.data.data
-      })
-    })
-  },
+  onLoad(options) {
 
-  //下拉选择
-  bindPickerChange: function (e) { 
-    let { pickername } = e.target.dataset
-    let getIndex = pickername + 'Index'
-    app.util.getPickerIndex(this, getIndex, e);
-    switch (pickername) {
-      case 'driver': //选择司机
-        this.setData({
-          driverMobile  : this.data.driverArray[this.data.driverIndex].phone,
-        })
-        break;
-    }
-  },
-
-  // 单选
-  dangerStatusChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.radiotype]: e.detail.value
-    })
-  },
-  //多选
-  checkboxChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.checkboxtype]: e.detail
-    })
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  bindscrolltolowerFun() {
-    
-  },
-
-  //表单提交 carTaskAdd
-  formSubmit: function ({detail:{value}}) {
-    var warn = ""; //弹框时提示的内容
-    let reg = /^1[3-9]\d{9}$/;
-    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    //value.certificateNoImage = this.data.originalInvoicePhoto
-    if (value.licenseNumber == '') {
-      warn = "车牌不能为空!";
-    } else if (value.licenseNumber.length < 8) {
-      warn = "请选择新能源车牌号!";
-    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
-      warn = "新能源车牌号格式错误!";
-    } else if(value.driverId == ''){
-      warn = "请输入司机姓名!";
-    } 
-
-    if (warn != '') {
-      app.util.checkForm(warn);
-    } else {
-      app.request.POST({
-        url: app.API.chargestationAdd,
-        params: value,
-        page: this,
-        isLoadingTxt: '提交中...',
-        isSubmitting: true,
-        successFun: true
-      }).then(res => {
-        wx.showToast({
-          title: '新增成功',
-          icon: 'success',
-          duration: 2000,
-          mask:true,
-          complete: function () {
-            setTimeout(() => {
-              wx.navigateBack()
-            }, 1500) //延迟时间  
-          }
-        })
-      })
-
-    }
   },
 
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
-  onReady: function () {
+  onReady() {
 
   },
 
   /**
    * 生命周期函数--监听页面显示
    */
-  onShow: function () {
+  onShow() {
 
   },
 
   /**
    * 生命周期函数--监听页面隐藏
    */
-  onHide: function () {
+  onHide() {
 
   },
 
   /**
    * 生命周期函数--监听页面卸载
    */
-  onUnload: function () {
+  onUnload() {
 
   },
 
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  onPullDownRefresh: function () {
+  onPullDownRefresh() {
 
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function () {
-    
+  onReachBottom() {
+
   },
 
   /**
    * 用户点击右上角分享
    */
-  onShareAppMessage: function () {
+  onShareAppMessage() {
 
   }
 })

+ 2 - 40
otherPages/chargestation/add.wxml

@@ -1,40 +1,2 @@
-<!--pages/pipeAppoint/add.wxml-->
-<view class="container" style="padding-bottom:100px;">
-  <view class="height20"></view>
-  <view>
-    <form bindsubmit="formSubmit">
-      <view class="part">
-        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
-        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
-        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
-      </view>
-        
-      <view class="part">
-        <!-- 司机 -->
-        <van-field label="司机" required input-align="right">
-          <view slot="input" style="width: 100%;">
-            <input name="driverId" value='{{driverArray[driverIndex].id}}' hidden='true' />
-            <picker bindchange="bindPickerChange" value="{{driverIndex}}" range="{{driverArray}}" range-key="name" data-pickername='driver'>
-              <view wx:if="{{driverArray[driverIndex].name}}"> {{driverArray[driverIndex].name}}</view>
-              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
-            </picker>
-          </view>
-          <view slot="right-icon">
-            <van-icon name="arrow" />
-          </view>
-        </van-field>
-
-        <van-field label="司机电话" wx:if="{{driverArray[driverIndex].id}}" name="driverMobile" readonly value="{{ driverMobile }}" placeholder="选择司机自动填入" input-align="right">
-        </van-field>
-      </view>
-
-      <view class="fixedBtn submitBtn">
-        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
-        </van-button>
-      </view>
-
-    </form>
-  </view>
-</view>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/chargestation/add.wxml-->
+<text>otherPages/chargestation/add.wxml</text>

+ 10 - 148
otherPages/chargestation/edit.js

@@ -1,204 +1,66 @@
-// pages/pipeAppoint/edit.js
-const app = getApp()
+// otherPages/chargestation/edit.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    showModal: false,
-    defaultText: '请选择',
-    isSubmitting: false,
 
-    isKeyboard: false, //是否显示车牌输入键盘
-    inputOnFocusIndex: '', //当前锁定的车号位置
-    licensePlate: '', //用于提交
-    inputPlates: '', //用于显示
-
-    driverArray:[], //司机
-    driverIndex:null,
-  },
-  //输入框焦点聚焦时隐藏车牌号输入框
-  hideKeybord: function () {
-    this.setData({
-      isKeyboard: false,
-      inputOnFocusIndex: ''
-    })
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
-  onLoad: function (options) {
-    //获取详情
-    var pages = getCurrentPages();
-    var prevPage = pages[pages.length - 2];
-    let getInfo = prevPage.data.resData[options.index]
-
-    let getCarNumArr = getInfo.licenseNumber ? getInfo.licenseNumber.split('') : ''
-    let inputPlates = {};
-    for (let i = 0; i < getCarNumArr.length; i++) {
-      inputPlates['index' + i] = getCarNumArr[i]
-    }
-
-    this.setData({
-      info: getInfo,
-      driverMobile: getInfo.driverMobile,
-      inputPlates: inputPlates,
-      isNewEnergy: getCarNumArr.length > 7 ? true : false,
-      licensePlate: getInfo.licenseNumber,
-    })
-    //获取司机信息
-    this.loadUserData()
-  },
-
-  //获取车牌号
-  licensePlate: function (e) {
-    this.setData({
-      licensePlate: e.detail.carNum
-    })
-  },
-
-  //司机
-  loadUserData:function(loadUserId){
-    app.request.GET({
-      url: app.API.roleUser,
-      params: {
-        roleName : '司机',
-      },
-      page: this,
-      successFun: true
-    }).then(res => {
-      this.setData({
-        driverArray : res.data.data,
-        driverIndex : app.util.getDicIndex(res.data.data, this.data.info.driverId, 'id')
-      })
-    })
-  },
-
-  //下拉选择
-  bindPickerChange: function (e) { 
-    let { pickername } = e.target.dataset
-    let getIndex = pickername + 'Index'
-    app.util.getPickerIndex(this, getIndex, e);
-    switch (pickername) {
-      case 'driver': //选择司机
-        this.setData({
-          driverMobile  : this.data.driverArray[this.data.driverIndex].phone,
-        })
-        break;
-    }
-  },
-
-  // 单选
-  dangerStatusChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.radiotype]: e.detail.value
-    })
-  },
-  //多选
-  checkboxChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.checkboxtype]: e.detail
-    })
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  bindscrolltolowerFun() {
-    
-  },
+  onLoad(options) {
 
-  //表单提交 carTaskAdd
-  formSubmit: function ({detail:{value}}) {
-    var warn = ""; //弹框时提示的内容
-    let reg = /^1[3-9]\d{9}$/;
-    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    if (value.licenseNumber == '') {
-      warn = "车牌不能为空!";
-    } else if (value.licenseNumber.length < 8) {
-      warn = "请选择新能源车牌号!";
-    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
-      warn = "新能源车牌号格式错误!";
-    } else if(value.driverId == ''){
-      warn = "请输入司机姓名!";
-    } 
-
-    if (warn != '') {
-      app.util.checkForm(warn);
-    } else {
-      app.request.POST({
-        url: app.API.appointmentPipeEdit,
-        params: value,
-        page: this,
-        isLoadingTxt: '提交中...',
-        isSubmitting: true,
-        successFun: true
-      }).then(res => {
-        wx.showToast({
-          title: '修改成功',
-          icon: 'success',
-          duration: 2000,
-          mask:true,
-          complete: function () {
-            setTimeout(() => {
-              wx.navigateBack()
-            }, 1500) //延迟时间  
-          }
-        })
-      })
-
-    }
   },
 
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
-  onReady: function () {
+  onReady() {
 
   },
 
   /**
    * 生命周期函数--监听页面显示
    */
-  onShow: function () {
+  onShow() {
 
   },
 
   /**
    * 生命周期函数--监听页面隐藏
    */
-  onHide: function () {
+  onHide() {
 
   },
 
   /**
    * 生命周期函数--监听页面卸载
    */
-  onUnload: function () {
+  onUnload() {
 
   },
 
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  onPullDownRefresh: function () {
+  onPullDownRefresh() {
 
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function () {
-    
+  onReachBottom() {
+
   },
 
   /**
    * 用户点击右上角分享
    */
-  onShareAppMessage: function () {
+  onShareAppMessage() {
 
   }
 })

+ 0 - 1
otherPages/chargestation/edit.less

@@ -1 +0,0 @@
-/* pages/pipeAppoint/edit.wxss */

+ 2 - 41
otherPages/chargestation/edit.wxml

@@ -1,41 +1,2 @@
-<!--pages/pipeAppoint/edit.wxml-->
-<view class="container" style="padding-bottom:100px;">
-  <view class="height20"></view>
-  <view>
-    <form bindsubmit="formSubmit">
-      <input name="id" value='{{info.id}}' hidden='true' />
-      <view class="part">
-        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
-        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
-        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
-      </view>
-        
-      <view class="part">
-        <!-- 司机 -->
-        <van-field label="司机" required input-align="right">
-          <view slot="input" style="width: 100%;">
-            <input name="driverId" value='{{driverArray[driverIndex].id}}' hidden='true' />
-            <picker bindchange="bindPickerChange" value="{{driverIndex}}" range="{{driverArray}}" range-key="name" data-pickername='driver'>
-              <view wx:if="{{driverArray[driverIndex].name}}"> {{driverArray[driverIndex].name}}</view>
-              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
-            </picker>
-          </view>
-          <view slot="right-icon">
-            <van-icon name="arrow" />
-          </view>
-        </van-field>
-
-        <van-field label="司机电话" wx:if="{{driverArray[driverIndex].id}}" name="driverMobile" readonly value="{{ driverMobile }}" placeholder="选择司机自动填入" input-align="right">
-        </van-field>
-      </view>
-
-      <view class="fixedBtn submitBtn">
-        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
-        </van-button>
-      </view>
-
-    </form>
-  </view>
-</view>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/chargestation/edit.wxml-->
+<text>otherPages/chargestation/edit.wxml</text>

+ 4 - 355
otherPages/chargestation/index.js

@@ -1,112 +1,18 @@
-// pages/pipeAppoint/index.js
-const app = getApp()
-var startPoint
+// otherPages/chargestation/index.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    str:'&emsp;',
-    str2: '&ensp;',
 
-    filterWidth: 0, //获取顶部筛选宽度
-    filterHeight: 0, //获取顶部筛选高度
-    safeAreaHeight: 0, //底部安全区域的高度
-    //按钮位置参数
-    buttonTop: 0,
-    buttonLeft: 0,
-    windowHeight: '',
-    windowWidth: '',
-
-    loginStatus: wx.getStorageSync('loginStatus') ? wx.getStorageSync('loginStatus') : false,
-    roleCodeList: wx.getStorageSync('roleCodeList') ? wx.getStorageSync('roleCodeList') : '',
-    searchVal: '',
-
-    appointmentStatusArray: [{
-      dictValue: "",
-      dictLabel: "全部状态"
-    }],
-    appointmentStatusIndex: 0,
-
-    //分页
-    limit: 10,
-    requestStatu: '加载中...',
-    page: 1,
-    totalPages: 1,
-    more: false,
-    nomore: '',
-    type: '4',// 充电张预约类型
-
-    resData:[],
-
-    show: false,
-    auditFlag:true,
-    orderReason:'',//审核备注
-
-    requestStatu2: '加载中...',
-    page2: 1,
-    totalPages2: 1,
-    more2: false,
-    nomore2: '',
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    //预约审核状态
-    let treeData = app.globalData.treeArr
-    for (const element of treeData) {
-      let arrStr;
-      switch (element.dictValue) {
-        case 'appointment_status':
-          arrStr = "appointmentStatusArray";
-          break;
-      }
-      let getArray =[{
-        dictValue: "",
-        dictLabel: "全部状态"
-      }]
-      this.setData({
-        [arrStr]: getArray.concat(element.children)
-      })
-    }
-
-    this.setData({
-      safeAreaHeight: app.globalData.windowInfo.screenHeight - app.globalData.systemInfo.safeArea.bottom
-    })
 
-    // 使用选择器选择节点
-    this.getFilterHeight()
-    //获取页面高度设置新增按钮的初始位置
-    var that = this;
-    wx.getSystemInfo({
-      success: function (res) {
-        // 高度,宽度 单位为px
-        that.setData({
-          windowHeight: res.windowHeight, //屏幕宽度、高度
-          windowWidth: res.windowWidth,
-          buttonTop: res.windowHeight * 0.8 - that.data.safeAreaHeight-50, //这里定义按钮的初始位置
-          buttonLeft: res.windowWidth * 0.80, //这里定义按钮的初始位置
-        })
-      }
-    })
-  },
-
-  //获取顶部筛选区域的高度
-  getFilterHeight:function(){
-    let that = this;
-    // 使用顶部筛选高度选择器选择节点的高度
-    const query = wx.createSelectorQuery();
-    query.select('.topSeach').boundingClientRect(function (rect) {
-      if(rect){
-        that.setData({
-          filterWidth: rect.width,
-          filterHeight: rect.height,
-        });
-      }
-    }).exec();
   },
 
   /**
@@ -120,213 +26,9 @@ Page({
    * 生命周期函数--监听页面显示
    */
   onShow() {
-    const roleCodeList = wx.getStorageSync('roleCodeList')
-    let loginStatus = wx.getStorageSync('loginStatus')
-    this.setData({
-      searchVal: '',
-      roleCodeList: roleCodeList ? roleCodeList : '',
-      loginStatus: loginStatus ? loginStatus : false
-    })
-
-    this.setData({
-      requestStatu:'加载中...',
-    })
-    if (wx.getStorageSync('loginStatus')) {
-      this.getListFun();
-    }
-  },
-
-  //下拉选择
-  bindPickerChange: function (e) { //下拉菜单
-    //方法一动态的
-    let getIndex = e.target.dataset.pickername + 'Index'
-    app.util.getPickerIndex(this, getIndex, e);
-    this.getListFun()
-  },
-
-  //搜索框请求S
-  onChange(e) {
-    this.setData({
-      searchVal: e.detail,
-    });
-  },
-  onSearch: function (event) {
-    this.setData({
-      searchVal: event.detail
-    })
-    this.getListFun();
-  },
-  onCancel: function () {
-    this.setData({})
-  },
-  toSearch: function (event) {
-    this.getListFun();
-  },
-
-  //列表
-  getListFun: function () {
-    this.setData({
-      page: 1
-    })
-    let params = {
-      current    : this.data.page,
-      size       : this.data.limit,
-      type       : this.data.type,
-      searchKey  : this.data.searchVal,
-      status     : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
-    }
-    app.request.pageFirst({
-      url: app.API.chargestationPage,
-      page: this,
-      params: params,
-    })
-  },
-
-  //页面跳转
-  toLink: function (e) {
-    let { url } = e.currentTarget.dataset
-    wx.navigateTo({
-      url: url
-    })
-  },
-
-  //删除
-  delFun: function (e) {
-    let _this = this
-    let { id, otherNumber } = e.currentTarget.dataset
-    wx.showModal({
-      title: '提示!',
-      content: `删除充电桩预约号【${otherNumber}】后不可恢复。确定要删除吗?`,
-      confirmColor: '#FF5B5B',
-      success: function (res) {
-        if (res.confirm) {
-          app.request.POST({
-            url: app.API.appointmentDelete,
-            params: [{
-              id: id
-            }],
-            page: _this,
-            isLoadingTxt: '删除中...',
-            successFun: true
-          }).then(res => {
-            wx.showToast({
-              title: '删除成功',
-              icon: 'success',
-              duration: 1000,
-              mask: true
-            })
-            _this.getListFun(); //刷新列表
-          })
-        } else if (res.cancel) {
-
-        }
-      }
-    })
-  },
-
-  //强制结束
-  cancelFun: function (e) {
-    let _this = this
-    let { id, otherNumber } = e.currentTarget.dataset
-    wx.showModal({
-      title: '提示!',
-      content: `充电桩预约号【${otherNumber}】,确定强制结束该预约吗?`,
-      confirmColor: '#FF5B5B',
-      success: function (res) {
-        if (res.confirm) {
-          app.request.POST({
-            url: app.API.chargestationExit,
-            params: {
-              id: id
-            },
-            page: _this,
-            isLoadingTxt: '提交中...',
-            successFun: true
-          }).then(res => {
-            wx.showToast({
-              title: '强制结束成功',
-              icon: 'success',
-              duration: 1000,
-              mask: true
-            })
-            _this.getListFun(); //刷新列表
-          })
-        } else if (res.cancel) {
 
-        }
-      }
-    })
   },
 
-  // 审核S
-  showPopup(e) {
-    let { id } = e.currentTarget.dataset
-    this.setData({
-      show: true,
-      orderReason: '',
-      id: id,
-    });
-  },
-  onClose() {
-    this.setData({
-      show: false,
-      auditFlag:'false',
-      orderReason:'',
-      id: ''
-    });
-  },
-  // 单选
-  dangerStatusChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.radiotype]: e.detail.value
-    })
-    if (e.detail.value == '1') {
-      this.setData({
-        appointmentReason: ''
-      })
-    }
-  },
-  
-  //审核
-  formSubmit: function (e) {
-    let formData = e.detail.value;
-    var warn = ""; //弹框时提示的内容
-    if (formData.auditFlag=='true' && formData.arriveReason == '') {
-      warn = "审核不通过时备注不能为空!";
-    }
-    formData.auditFlag = formData.auditFlag=='true'
-    if (warn != '') {
-      app.util.checkForm(warn);
-    } else {
-      app.request.POST({
-        url: app.API.bizloadarriveAudit,
-        params: formData,
-        page: this,
-        isLoadingTxt: '审核中...',
-        successFun: true
-      }).then(res => {
-        wx.showToast({
-          title: '审核成功',
-          icon: 'success',
-          duration: 1000,
-          mask: true
-        })
-        this.onClose()
-        this.getListFun(); //刷新列表
-      })
-    }
-  },
-  // 审核E
-
-  //申请
-  changeAdd() {
-    wx.navigateTo({
-      url: 'add'
-    })
-  },
-
-  
-
   /**
    * 生命周期函数--监听页面隐藏
    */
@@ -344,69 +46,16 @@ Page({
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  onPullDownRefresh: function () {
-    this.setData({
-      searchVal: ''
-    })
-    if (wx.getStorageSync('loginStatus')) {
-      this.getListFun();
-    } else {
-      wx.stopPullDownRefresh();
-    }
+  onPullDownRefresh() {
+
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function () {
-    this.data.page++;
-    let params = {
-      current     : this.data.page,
-      size        : this.data.limit,
-      type        : this.data.type,
-      searchKey   : this.data.searchVal,
-      status      : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
-    }
-    app.request.pageOther({
-      url: app.API.bizloadarrivePage,
-      page: this,
-      params: params,
-      loadType: true //加载类型,是否是下拉加载
-    });
-  },
+  onReachBottom() {
 
-
-  //以下是按钮拖动事件
-  buttonStart: function (e) {
-    startPoint = e.touches[0] //获取拖动开始点
-  },
-  buttonMove: function (e) {
-    var endPoint = e.touches[e.touches.length - 1] //获取拖动结束点
-    //计算在X轴上拖动的距离和在Y轴上拖动的距离
-    var translateX = endPoint.clientX - startPoint.clientX
-    var translateY = endPoint.clientY - startPoint.clientY
-    startPoint = endPoint //重置开始位置
-    var buttonTop = this.data.buttonTop + translateY
-    var buttonLeft = this.data.buttonLeft + translateX
-    //判断是移动否超出屏幕
-    if (buttonLeft + 60 >= this.data.windowWidth) {
-      buttonLeft = this.data.windowWidth - 60;
-    }
-    if (buttonLeft <= 0) {
-      buttonLeft = 0;
-    }
-    if (buttonTop <= this.data.filterHeight) {
-      buttonTop = this.data.filterHeight
-    }
-    if (buttonTop + 60 + 48 + this.data.safeAreaHeight >= this.data.windowHeight) {
-      buttonTop = this.data.windowHeight - 60 - 48 - this.data.safeAreaHeight;
-    }
-    this.setData({
-      buttonTop: buttonTop,
-      buttonLeft: buttonLeft
-    })
   },
-  buttonEnd: function (e) {},
 
   /**
    * 用户点击右上角分享

+ 2 - 115
otherPages/chargestation/index.wxml

@@ -1,115 +1,2 @@
-<!--pages/pipeAppoint/index.wxml-->
-<view class="container listMain">
-  <block wx:if="{{loginStatus}}">
-    <view url="" class="addBtn" catch:tap="changeAdd" hover-class="none" catchtouchmove="buttonMove" bindtouchstart="buttonStart" bindtouchend="buttonEnd" style="top:{{buttonTop}}px;left:{{buttonLeft}}px;" wx:if="{{roleCodeList == 'driver'}}">
-      <van-icon name="plus" size="30px" />
-    </view>
-    <van-sticky>
-      <view class="topSeach">
-        <view class="rightBox" style="position: relative;">
-          <van-search value="{{ searchVal }}" shape="round" placeholder="查询预约单号/计划单号" bind:change="onChange" bind:search="onSearch" bind:cancel="onCancel" use-action-slot>
-            <view slot="label" style="width:160rpx;margin-right: 20rpx;">
-                  <van-field label="" input-align="center" style="width: 100%;">
-                    <view slot="input" style="width: 100%;">
-                      <input name="status" value='{{appointmentStatusArray[appointmentStatusIndex].dictValue}}' hidden='true' />
-                      <picker bindchange="bindPickerChange" value="{{appointmentStatusIndex}}" range="{{appointmentStatusArray}}" range-key="dictLabel" data-pickername='appointmentStatus'>
-                        <view wx:if="{{appointmentStatusArray[appointmentStatusIndex].dictLabel}}" style="font-size: 12px;white-space: nowrap;"> {{appointmentStatusArray[appointmentStatusIndex].dictLabel}}</view>
-                        <view wx:else class="selectPlaceholder" style="font-size: 12px;white-space: nowrap;">{{defaultText}}</view>
-                      </picker>
-                    </view>
-                    <view slot="right-icon">
-                      <van-icon name="arrow-down" />
-                    </view>
-                  </van-field>
-                </view>
-            <van-icon slot="action" class-prefix="iconfont" name="arrow3-right_fill" size="28px" color="#4B70EA" bind:tap="toSearch" />
-          </van-search>
-        </view>
-      </view>
-    </van-sticky>
-
-    <view class="width710">
-      <block wx:if="{{!requestStatu}}">
-        <block wx:if="{{resData.length>0}}">
-          <block wx:for="{{resData}}" wx:key="index">
-            <navigator url="info?id={{item.id}}&otherNumber={{item.otherNumber}}&index={{index}}" class="listItem">
-              <view class="title van-ellipsis">
-                <van-icon class='iconfont' name='/images/codeNumber.png' size="36rpx"></van-icon>
-                <text>{{item.licenseNumber}}</text>
-                <text wx:if="{{item.status}}" class="status status{{item.status}}">{{item.statusName}}</text>
-              </view>
-              <view class="info">
-                <text>预约单号:{{item.otherNumber?item.otherNumber:'未填写'}}</text>
-              </view>
-              <view class="info">
-                <text decode="{{true}}">司机:{{item.driverName?item.driverName:'未填写'}} / {{item.driverMobile?item.driverMobile:'未填写'}}</text>
-              </view>
-
-              <view class="bottomBtn" wx:if="{{ roleCodeList == 'driver' && (item.status=='4' || item.status=='5' || item.status=='6' || item.status=='7'	|| item.status=='8' || item.status=='9' || item.status=='16' || item.status=='18') }}">
-                <van-button type="info" size="small" data-url="edit?index={{index}}" catchtap="toLink" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && item.status == '4' }}">修改</van-button>
-
-                <van-button type="danger" size="small" data-id="{{item.id}}" data-other-number="{{item.otherNumber}}" catchtap="delFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && item.status == '4' }}">删除</van-button>
-
-                <van-button type="warning" size="small" data-id="{{item.id}}" data-other-number="{{item.otherNumber}}" catchtap="cancelFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && (item.status=='4' || item.status=='5' || item.status=='6' || item.status=='7'	|| item.status=='8' || item.status=='9' || item.status=='16' || item.status=='18') }}">强制结束</van-button>
-              </view>
-            </navigator>
-          </block>
-          <!-- 底部加载动画 -->
-          <view class='more'>
-            <block wx:if="{{more}}">
-              <van-loading size="24px" color="#1989fa">加载中...</van-loading>
-            </block>
-            <block wx:else>{{nomore}}</block>
-          </view>
-          <view style="height: 200rpx;"> </view>
-        </block>
-        <block wx:else>
-          <van-empty description="未搜索到预约记录" image="/images/null5.png" />
-        </block>
-      </block>
-    </view>
-  </block>
-  <block wx:else>
-    <view>
-      <van-empty image="/images/loginNull.png">
-        <view slot="description" style="text-align: center;">
-          <text style="display:block;margin-bottom: 20rpx;">您还未登录,登录后查看更多~</text>
-          <van-button type="info" bindtap="toLogin">立即登录</van-button>
-        </view>
-      </van-empty>
-    </view>
-  </block>
-</view>
-
-<!-- 弹窗 -->
-<van-popup show="{{ show }}" position="bottom" round closeable custom-style="width:100%;padding:0rpx 30rpx 160rpx;" bind:close="onClose">
-  <view style="height: 90rpx;line-height: 90rpx;text-align: center;">审核</view>
-  <form bindsubmit="formSubmit">
-    <view class="part">
-      <view class="height20"> </view>
-      <view class="height20"> </view>
-      <input name="id" value='{{id}}' hidden='true' />
-      <van-field label="审核结果" name="auditFlag" value="{{ auditFlag }}" required input-align="right" class="radioHeight fieldAutoHeight">
-        <view slot="input" class="radioHeightBx">
-          <radio-group class="radio-group" bindchange="dangerStatusChange" data-radioType="auditFlag">
-            <label class="radio">
-              <radio value="true" checked="{{auditFlag=='true'}}" color="#4B70EA" />通过
-            </label>
-            <label class="radio">
-              <radio value="false" checked="{{auditFlag=='false'}}" color="#4B70EA" />不通过
-            </label>
-          </radio-group>
-        </view>
-      </van-field>
-      <van-field label="审核备注" required="{{auditFlag=='false'}}" name="arriveReason" value="{{ arriveReason }}" type="textarea" input-align="right" placeholder="请输入审核备注" autosize></van-field>
-    </view>
-
-    <view class="submitBtn">
-      <view style="padding-top: 60rpx;">
-        <van-button block round type="info" form-type="submit" color="#0396FF">确认</van-button>
-      </view>
-    </view>
-  </form>
-</van-popup>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/chargestation/index.wxml-->
+<text>otherPages/chargestation/index.wxml</text>

+ 2 - 79
otherPages/chargestation/info.js

@@ -1,96 +1,19 @@
-// pages/pipeAppoint/info.js
-const app = getApp()
+// otherPages/chargestation/info.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    info: {},
 
-    appointmentStatusArray: [{
-      dictValue: "",
-      dictLabel: "全部状态"
-    }],
-    appointmentStatusIndex: 0,
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    //预约审核状态
-    let treeData = app.globalData.treeArr
-    for (const element of treeData) {
-      let arrStr;
-      switch (element.dictValue) {
-        case 'appointment_status':
-          arrStr = "appointmentStatusArray";
-          break;
-      }
-      let getArray =[{
-        dictValue: "",
-        dictLabel: "全部状态"
-      }]
-      this.setData({
-        [arrStr]: getArray.concat(element.children)
-      })
-    }
-    //获取详情
-    var pages = getCurrentPages();
-    var prevPage = pages[pages.length - 2];
-    let getInfo = prevPage.data.resData[options.index]
-  
-    this.setData({
-      info     : getInfo
-    })
-
-    app.request.GET({
-      url: app.API.bizpipeplanDetail,
-      params: {'id' : getInfo.orderId},
-      page: this,
-      successFun: true
-    }).then(res => {
-      let getInfo = res.data.data;
-      this.setData({
-        planNumber      : getInfo.planNumber,
-        planName        : getInfo.planName,
-        planCount       : getInfo.planCount,
-        planAlreadyCount: getInfo.planAlreadyCount,
-      })
-    })
-    //this.getInfo(options.id)
-  },
 
-  // //查询详情
-  // getInfo: function (id) {
-  //   app.request.GET({
-  //     url: app.API.bizloadarriveDetail,
-  //     page: this,
-  //     params: {
-  //       'id': id
-  //     },
-  //     successFun: true
-  //   }).then(res => {
-  //     let getInfo = res.data.data;
-  //     //司机回签图片
-  //     let fileList = []
-  //     if(getInfo.unloadImg){
-  //       let unloadImgArr = getInfo.unloadImg.split(',')
-  //       unloadImgArr.forEach(element => {
-  //         fileList.push({
-  //           url: app.host.BASEIMG_URL+element,
-  //           isImage:true
-  //         })
-  //       });
-  //     }
-  //     this.setData({
-  //       info              : getInfo,
-  //       fileList          : fileList,
-  //       accessControlAuth : JSON.parse(getInfo.accessControlAuth)
-  //     })
-  //   })
-  // },
+  },
 
   /**
    * 生命周期函数--监听页面初次渲染完成

+ 0 - 1
otherPages/chargestation/info.less

@@ -1 +0,0 @@
-/* pages/pipeAppoint/info.wxss */

+ 2 - 24
otherPages/chargestation/info.wxml

@@ -1,24 +1,2 @@
-<!--pages/pipeAppoint/info.wxml-->
-<view class="container">
-  <view class="part">
-    <van-field label="管桩计划单号" input-align="right" value="{{info.planNumber }}" readonly></van-field>
-    <van-field label="- 计划名称" input-align="right" value="{{ planName }}" readonly></van-field>
-    <van-field label="- 预约次数" input-align="right" value="{{ planCount }}" readonly></van-field>
-    <van-field label="- 已预约次数" input-align="right" value="{{ planAlreadyCount }}" readonly></van-field>
-
-    <van-field label="车牌号" input-align="right" value="{{ info.licenseNumber }}" readonly></van-field>
-    <van-field label="司机姓名" input-align="right" value="{{ info.driverName }}" readonly></van-field>
-    <van-field label="司机电话" input-align="right" value="{{ info.driverMobile }}" readonly></van-field>
-    <van-field label="入场时间" input-align="right" value="{{ info.enterTime }}" readonly></van-field>
-    <van-field label="出场时间" input-align="right" value="{{ info.leaveTime }}" readonly></van-field>
-    <!-- <van-field label="创建人" input-align="right" value="{{info.createUserName}}" readonly></van-field>
-    <van-field label="创建时间" input-align="right" value="{{info.createTime}}" readonly></van-field> -->
-    <van-field label="预约状态" input-align="right" readonly>
-      <text slot="button" class="status status{{info.status}}">{{filters.codeAnalysis(appointmentStatusArray, info.status, 'dictValue', 'dictLabel')}} 
-      </text>
-    </van-field>
-  </view>
-  <view style="height: 50px;"></view>
-</view>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/chargestation/info.wxml-->
+<text>otherPages/chargestation/info.wxml</text>

+ 10 - 148
otherPages/pipeAppoint/add.js

@@ -1,204 +1,66 @@
-// pages/pipeAppoint/add.js
-const app = getApp()
+// otherPages/reservationPipe/add.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    showModal: false,
-    defaultText: '请选择',
-    isSubmitting: false,
-
-    orderArray:[], //管桩计划
-    orderIndex:null,
-
-    appointmentStatusArray: [{
-      dictValue: "",
-      dictLabel: "全部状态"
-    }],
-    appointmentStatusIndex: 0,
-
-    isKeyboard: false, //是否显示车牌输入键盘
-    inputOnFocusIndex: '', //当前锁定的车号位置
-    licensePlate: '', //用于提交
-    inputPlates: '', //用于显示
 
   },
-  //输入框焦点聚焦时隐藏车牌号输入框
-  hideKeybord: function () {
-    this.setData({
-      isKeyboard: false,
-      inputOnFocusIndex: ''
-    })
-  },
 
   /**
    * 生命周期函数--监听页面加载
    */
-  onLoad: function (options) {
-    //获取管桩计划信息
-    this.getorderData()
-  },
-
-  //选择管桩计划
-  getorderData:function(){
-    app.request.GET({
-      url: app.API.bizpipeplanList,
-      params: {},
-      page: this,
-      successFun: true
-    }).then(res => {
-      let orderList = res.data.data
-      orderList.forEach((element,index) => {
-        orderList[index].name = element.planNumber
-      });
-      this.setData({
-        orderArray: orderList
-      })
-    })
-  },
-
-  //获取车牌号
-  licensePlate: function (e) {
-    this.setData({
-      licensePlate: e.detail.carNum
-    })
-  },
-
-  //下拉选择
-  bindPickerChange: function (e) { 
-    let { pickername } = e.target.dataset
-    let getIndex = pickername + 'Index'
-    app.util.getPickerIndex(this, getIndex, e);
-    switch (pickername) {
-      case 'order': //管桩计划
-        this.setData({
-          planNumber      : this.data.orderArray[this.data.orderIndex].planNumber,
-          planName        : this.data.orderArray[this.data.orderIndex].planName,
-          planCount       : this.data.orderArray[this.data.orderIndex].planCount,
-          planAlreadyCount: this.data.orderArray[this.data.orderIndex].planAlreadyCount,
-        })
-        break;
-    }
-  },
-
-  // 单选
-  dangerStatusChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.radiotype]: e.detail.value
-    })
-  },
-  //多选
-  checkboxChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.checkboxtype]: e.detail
-    })
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  bindscrolltolowerFun() {
-    
-  },
+  onLoad(options) {
 
-  //表单提交 carTaskAdd
-  formSubmit: function ({detail:{value}}) {
-    var warn = ""; //弹框时提示的内容
-    let reg = /^1[3-9]\d{9}$/;
-    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    //value.certificateNoImage = this.data.originalInvoicePhoto
-    if (value.orderId == '') {
-      warn = "请选择管桩计划订单!";
-    } else if (value.licenseNumber == '') {
-      warn = "车牌不能为空!";
-    } else if (value.licenseNumber.length < 7) {
-      warn = "请选择完整车牌号!";
-    } else if (value.licenseNumber.length == 7 && !creg.test(value.licenseNumber)) {
-      warn = "车牌号格式错误!";
-    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
-      warn = "车牌号格式错误!";
-    } else if(value.driverName == ''){
-      warn = "请输入司机姓名!";
-    } else if(value.driverMobile == ''){
-      warn = "请输入司机电话!";
-    } 
-
-    if (warn != '') {
-      app.util.checkForm(warn);
-    } else {
-      app.request.POST({
-        url: app.API.appointmentPipeAdd,
-        params: value,
-        page: this,
-        isLoadingTxt: '提交中...',
-        isSubmitting: true,
-        successFun: true
-      }).then(res => {
-        wx.showToast({
-          title: '新增成功',
-          icon: 'success',
-          duration: 2000,
-          mask:true,
-          complete: function () {
-            setTimeout(() => {
-              wx.navigateBack()
-            }, 1500) //延迟时间  
-          }
-        })
-      })
-
-    }
   },
 
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
-  onReady: function () {
+  onReady() {
 
   },
 
   /**
    * 生命周期函数--监听页面显示
    */
-  onShow: function () {
+  onShow() {
 
   },
 
   /**
    * 生命周期函数--监听页面隐藏
    */
-  onHide: function () {
+  onHide() {
 
   },
 
   /**
    * 生命周期函数--监听页面卸载
    */
-  onUnload: function () {
+  onUnload() {
 
   },
 
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  onPullDownRefresh: function () {
+  onPullDownRefresh() {
 
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function () {
-    
+  onReachBottom() {
+
   },
 
   /**
    * 用户点击右上角分享
    */
-  onShareAppMessage: function () {
+  onShareAppMessage() {
 
   }
 })

+ 2 - 50
otherPages/pipeAppoint/add.wxml

@@ -1,50 +1,2 @@
-<!--pages/pipeAppoint/add.wxml-->
-<view class="container" style="padding-bottom:100px;">
-  <view class="height20"></view>
-  <view>
-    <form bindsubmit="formSubmit">
-      <view class="part">
-        <!-- 管桩计划 -->
-        <van-field label="管桩计划" required input-align="right">
-          <view slot="input" style="width: 100%;">
-            <input name="orderId" value='{{orderArray[orderIndex].id}}' hidden='true' />
-            <picker bindchange="bindPickerChange" value="{{orderIndex}}" range="{{orderArray}}" range-key="name" data-pickername='order'>
-              <view wx:if="{{orderArray[orderIndex].name}}"> {{orderArray[orderIndex].name}}</view>
-              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
-            </picker>
-          </view>
-          <view slot="right-icon">
-            <van-icon name="arrow" />
-          </view>
-        </van-field>
-
-        <van-field label="计划编号" wx:if="{{orderArray[orderIndex].id}}" name="planNumber" readonly value="{{ planNumber }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-        <van-field label="计划名称" wx:if="{{orderArray[orderIndex].id}}" name="planName" readonly value="{{ planName }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-        <van-field label="预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planCount" readonly value="{{ planCount }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-        <van-field label="已预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planAlreadyCount" readonly value="{{ planAlreadyCount }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-      </view>
-        
-      <view class="part">
-        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
-        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
-        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
-
-        <van-field label="司机姓名" required name="driverName" value="{{ driverName }}" placeholder="请填写司机姓名" input-align="right" ></van-field>
-
-        <van-field label="司机电话" required name="driverMobile" value="{{ driverMobile }}" placeholder="请填写司机电话" input-align="right" ></van-field>
-      </view>
-
-      <view class="fixedBtn submitBtn">
-        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
-        </van-button>
-      </view>
-
-    </form>
-  </view>
-</view>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/reservationPipe/add.wxml-->
+<text>otherPages/reservationPipe/add.wxml</text>

+ 11 - 182
otherPages/pipeAppoint/edit.js

@@ -1,237 +1,66 @@
-// pages/pipeAppoint/edit.js
-const app = getApp()
+// otherPages/reservationPipe/edit.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    showModal: false,
-    defaultText: '请选择',
-    isSubmitting: false,
-
-    orderArray:[], //管桩计划
-    orderIndex:null,
-
-    appointmentStatusArray: [{
-      dictValue: "",
-      dictLabel: "全部状态"
-    }],
-    appointmentStatusIndex: 0,
-
-    isKeyboard: false, //是否显示车牌输入键盘
-    inputOnFocusIndex: '', //当前锁定的车号位置
-    licensePlate: '', //用于提交
-    inputPlates: '', //用于显示
-  },
-  //输入框焦点聚焦时隐藏车牌号输入框
-  hideKeybord: function () {
-    this.setData({
-      isKeyboard: false,
-      inputOnFocusIndex: ''
-    })
-  },
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad: function (options) {
-    //获取详情
-    var pages = getCurrentPages();
-    var prevPage = pages[pages.length - 2];
-    let getInfo = prevPage.data.resData[options.index]
-
-    let getCarNumArr = getInfo.licenseNumber ? getInfo.licenseNumber.split('') : ''
-    let inputPlates = {};
-    for (let i = 0; i < getCarNumArr.length; i++) {
-      inputPlates['index' + i] = getCarNumArr[i]
-    }
-
-    this.setData({
-      info: getInfo,
-      orderId: getInfo.orderId,
-      inputPlates: inputPlates,
-      isNewEnergy: getCarNumArr.length > 7 ? true : false,
-      licensePlate: getInfo.licenseNumber,
-    })
-    //获取管桩计划信息
-    this.getorderData()
-
-    app.request.GET({
-      url: app.API.bizpipeplanDetail,
-      params: {'id' : getInfo.orderId},
-      page: this,
-      successFun: true
-    }).then(res => {
-      let getInfo = res.data.data;
-      this.setData({
-        planNumber      : getInfo.planNumber,
-        planName        : getInfo.planName,
-        planCount       : getInfo.planCount,
-        planAlreadyCount: getInfo.planAlreadyCount,
-      })
-    })
-  },
-
-  //选择管桩计划
-  getorderData:function(){
-    app.request.GET({
-      url: app.API.bizpipeplanList,
-      params: {},
-      page: this,
-      successFun: true
-    }).then(res => {
-      let orderList = res.data.data
-      orderList.forEach((element,index) => {
-        orderList[index].name = element.planNumber
-      });
-      this.setData({
-        orderArray: orderList,
-        orderIndex: app.util.getDicIndex(res.data.data, this.data.info.orderId, 'id')
-      })
-    })
-  },
 
-  //获取车牌号
-  licensePlate: function (e) {
-    this.setData({
-      licensePlate: e.detail.carNum
-    })
-  },
-
-  //下拉选择
-  bindPickerChange: function (e) { 
-    let { pickername } = e.target.dataset
-    let getIndex = pickername + 'Index'
-    app.util.getPickerIndex(this, getIndex, e);
-    switch (pickername) {
-      case 'order': //管桩计划
-        this.setData({
-          planNumber      : this.data.orderArray[this.data.orderIndex].planNumber,
-          planName        : this.data.orderArray[this.data.orderIndex].planName,
-          planCount       : this.data.orderArray[this.data.orderIndex].planCount,
-          planAlreadyCount: this.data.orderArray[this.data.orderIndex].planAlreadyCount,
-        })
-        break;
-    }
-  },
-
-  // 单选
-  dangerStatusChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.radiotype]: e.detail.value
-    })
-  },
-  //多选
-  checkboxChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.checkboxtype]: e.detail
-    })
   },
 
   /**
-   * 页面上拉触底事件的处理函数
+   * 生命周期函数--监听页面加载
    */
-  bindscrolltolowerFun() {
-    
-  },
+  onLoad(options) {
 
-  //表单提交 carTaskAdd
-  formSubmit: function ({detail:{value}}) {
-    var warn = ""; //弹框时提示的内容
-    let reg = /^1[3-9]\d{9}$/;
-    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
-    //value.certificateNoImage = this.data.originalInvoicePhoto
-    if (value.orderId == '') {
-      warn = "请选择管桩计划订单!";
-    } else if (value.licenseNumber == '') {
-      warn = "车牌不能为空!";
-    } else if (value.licenseNumber.length < 7) {
-      warn = "请选择完整车牌号!";
-    } else if (value.licenseNumber.length == 7 && !creg.test(value.licenseNumber)) {
-      warn = "车牌号格式错误!";
-    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
-      warn = "车牌号格式错误!";
-    } else if(value.driverName == ''){
-      warn = "请输入司机姓名!";
-    } else if(value.driverMobile == ''){
-      warn = "请输入司机电话!";
-    } 
-
-    if (warn != '') {
-      app.util.checkForm(warn);
-    } else {
-      app.request.POST({
-        url: app.API.appointmentPipeEdit,
-        params: value,
-        page: this,
-        isLoadingTxt: '提交中...',
-        isSubmitting: true,
-        successFun: true
-      }).then(res => {
-        wx.showToast({
-          title: '修改成功',
-          icon: 'success',
-          duration: 2000,
-          mask:true,
-          complete: function () {
-            setTimeout(() => {
-              wx.navigateBack()
-            }, 1500) //延迟时间  
-          }
-        })
-      })
-
-    }
   },
 
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
-  onReady: function () {
+  onReady() {
 
   },
 
   /**
    * 生命周期函数--监听页面显示
    */
-  onShow: function () {
+  onShow() {
 
   },
 
   /**
    * 生命周期函数--监听页面隐藏
    */
-  onHide: function () {
+  onHide() {
 
   },
 
   /**
    * 生命周期函数--监听页面卸载
    */
-  onUnload: function () {
+  onUnload() {
 
   },
 
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  onPullDownRefresh: function () {
+  onPullDownRefresh() {
 
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function () {
-    
+  onReachBottom() {
+
   },
 
   /**
    * 用户点击右上角分享
    */
-  onShareAppMessage: function () {
+  onShareAppMessage() {
 
   }
 })

+ 0 - 1
otherPages/pipeAppoint/edit.less

@@ -1 +0,0 @@
-/* pages/pipeAppoint/edit.wxss */

+ 2 - 51
otherPages/pipeAppoint/edit.wxml

@@ -1,51 +1,2 @@
-<!--pages/pipeAppoint/edit.wxml-->
-<view class="container" style="padding-bottom:100px;">
-  <view class="height20"></view>
-  <view>
-    <form bindsubmit="formSubmit">
-      <input name="id" value='{{info.id}}' hidden='true' />
-      <view class="part">
-        <!-- 管桩计划 -->
-        <van-field label="管桩计划" required input-align="right">
-          <view slot="input" style="width: 100%;">
-            <input name="orderId" value='{{orderArray[orderIndex].id}}' hidden='true' />
-            <picker bindchange="bindPickerChange" value="{{orderIndex}}" range="{{orderArray}}" range-key="name" data-pickername='order'>
-              <view wx:if="{{orderArray[orderIndex].name}}"> {{orderArray[orderIndex].name}}</view>
-              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
-            </picker>
-          </view>
-          <view slot="right-icon">
-            <van-icon name="arrow" />
-          </view>
-        </van-field>
-        
-        <van-field label="计划编号" wx:if="{{orderArray[orderIndex].id}}" name="planNumber" readonly value="{{ planNumber }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-        <van-field label="计划名称" wx:if="{{orderArray[orderIndex].id}}" name="planName" readonly value="{{ planName }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-        <van-field label="预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planCount" readonly value="{{ planCount }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-        <van-field label="已预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planAlreadyCount" readonly value="{{ planAlreadyCount }}" placeholder="选择管桩计划自动填入" input-align="right">
-        </van-field>
-      </view>
-        
-      <view class="part">
-        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
-        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
-        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
-
-        <van-field label="司机姓名" required name="driverName" value="{{ info.driverName }}" placeholder="请填写司机姓名" input-align="right" ></van-field>
-
-        <van-field label="司机电话" required name="driverMobile" value="{{ info.driverMobile }}" placeholder="请填写司机电话" input-align="right" ></van-field>
-      </view>
-
-      <view class="fixedBtn submitBtn">
-        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
-        </van-button>
-      </view>
-
-    </form>
-  </view>
-</view>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/reservationPipe/edit.wxml-->
+<text>otherPages/reservationPipe/edit.wxml</text>

+ 4 - 355
otherPages/pipeAppoint/index.js

@@ -1,112 +1,18 @@
-// pages/pipeAppoint/index.js
-const app = getApp()
-var startPoint
+// otherPages/reservationPipe/index.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    str:'&emsp;',
-    str2: '&ensp;',
 
-    filterWidth: 0, //获取顶部筛选宽度
-    filterHeight: 0, //获取顶部筛选高度
-    safeAreaHeight: 0, //底部安全区域的高度
-    //按钮位置参数
-    buttonTop: 0,
-    buttonLeft: 0,
-    windowHeight: '',
-    windowWidth: '',
-
-    loginStatus: wx.getStorageSync('loginStatus') ? wx.getStorageSync('loginStatus') : false,
-    roleCodeList: wx.getStorageSync('roleCodeList') ? wx.getStorageSync('roleCodeList') : '',
-    searchVal: '',
-
-    appointmentStatusArray: [{
-      dictValue: "",
-      dictLabel: "全部状态"
-    }],
-    appointmentStatusIndex: 0,
-
-    //分页
-    limit: 10,
-    requestStatu: '加载中...',
-    page: 1,
-    totalPages: 1,
-    more: false,
-    nomore: '',
-    type: '5',// 管桩预约类型
-
-    resData:[],
-
-    show: false,
-    auditFlag:true,
-    orderReason:'',//审核备注
-
-    requestStatu2: '加载中...',
-    page2: 1,
-    totalPages2: 1,
-    more2: false,
-    nomore2: '',
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    //预约审核状态
-    let treeData = app.globalData.treeArr
-    for (const element of treeData) {
-      let arrStr;
-      switch (element.dictValue) {
-        case 'appointment_status':
-          arrStr = "appointmentStatusArray";
-          break;
-      }
-      let getArray =[{
-        dictValue: "",
-        dictLabel: "全部状态"
-      }]
-      this.setData({
-        [arrStr]: getArray.concat(element.children)
-      })
-    }
-
-    this.setData({
-      safeAreaHeight: app.globalData.windowInfo.screenHeight - app.globalData.systemInfo.safeArea.bottom
-    })
 
-    // 使用选择器选择节点
-    this.getFilterHeight()
-    //获取页面高度设置新增按钮的初始位置
-    var that = this;
-    wx.getSystemInfo({
-      success: function (res) {
-        // 高度,宽度 单位为px
-        that.setData({
-          windowHeight: res.windowHeight, //屏幕宽度、高度
-          windowWidth: res.windowWidth,
-          buttonTop: res.windowHeight * 0.8 - that.data.safeAreaHeight-50, //这里定义按钮的初始位置
-          buttonLeft: res.windowWidth * 0.80, //这里定义按钮的初始位置
-        })
-      }
-    })
-  },
-
-  //获取顶部筛选区域的高度
-  getFilterHeight:function(){
-    let that = this;
-    // 使用顶部筛选高度选择器选择节点的高度
-    const query = wx.createSelectorQuery();
-    query.select('.topSeach').boundingClientRect(function (rect) {
-      if(rect){
-        that.setData({
-          filterWidth: rect.width,
-          filterHeight: rect.height,
-        });
-      }
-    }).exec();
   },
 
   /**
@@ -120,213 +26,9 @@ Page({
    * 生命周期函数--监听页面显示
    */
   onShow() {
-    const roleCodeList = wx.getStorageSync('roleCodeList')
-    let loginStatus = wx.getStorageSync('loginStatus')
-    this.setData({
-      searchVal: '',
-      roleCodeList: roleCodeList ? roleCodeList : '',
-      loginStatus: loginStatus ? loginStatus : false
-    })
-
-    this.setData({
-      requestStatu:'加载中...',
-    })
-    if (wx.getStorageSync('loginStatus')) {
-      this.getListFun();
-    }
-  },
-
-  //下拉选择
-  bindPickerChange: function (e) { //下拉菜单
-    //方法一动态的
-    let getIndex = e.target.dataset.pickername + 'Index'
-    app.util.getPickerIndex(this, getIndex, e);
-    this.getListFun()
-  },
-
-  //搜索框请求S
-  onChange(e) {
-    this.setData({
-      searchVal: e.detail,
-    });
-  },
-  onSearch: function (event) {
-    this.setData({
-      searchVal: event.detail
-    })
-    this.getListFun();
-  },
-  onCancel: function () {
-    this.setData({})
-  },
-  toSearch: function (event) {
-    this.getListFun();
-  },
-
-  //列表
-  getListFun: function () {
-    this.setData({
-      page: 1
-    })
-    let params = {
-      current    : this.data.page,
-      size       : this.data.limit,
-      type       : this.data.type,
-      searchKey  : this.data.searchVal,
-      status     : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
-    }
-    app.request.pageFirst({
-      url: app.API.appointmentPipePage,
-      page: this,
-      params: params,
-    })
-  },
-
-  //页面跳转
-  toLink: function (e) {
-    let { url } = e.currentTarget.dataset
-    wx.navigateTo({
-      url: url
-    })
-  },
-
-  //删除
-  delFun: function (e) {
-    let _this = this
-    let { id, planNumber } = e.currentTarget.dataset
-    wx.showModal({
-      title: '提示!',
-      content: `删除管桩预约号【${planNumber}】后不可恢复。确定要删除吗?`,
-      confirmColor: '#FF5B5B',
-      success: function (res) {
-        if (res.confirm) {
-          app.request.POST({
-            url: app.API.appointmentDelete,
-            params: [{
-              id: id
-            }],
-            page: _this,
-            isLoadingTxt: '删除中...',
-            successFun: true
-          }).then(res => {
-            wx.showToast({
-              title: '删除成功',
-              icon: 'success',
-              duration: 1000,
-              mask: true
-            })
-            _this.getListFun(); //刷新列表
-          })
-        } else if (res.cancel) {
-
-        }
-      }
-    })
-  },
-
-  //取消
-  cancelFun: function (e) {
-    let _this = this
-    let { id, planNumber } = e.currentTarget.dataset
-    wx.showModal({
-      title: '提示!',
-      content: `管桩预约号【${planNumber}】,确定取消该预约吗?`,
-      confirmColor: '#FF5B5B',
-      success: function (res) {
-        if (res.confirm) {
-          app.request.POST({
-            url: app.API.appointmentCancel,
-            params: {
-              id: id
-            },
-            page: _this,
-            isLoadingTxt: '提交中...',
-            successFun: true
-          }).then(res => {
-            wx.showToast({
-              title: '取消成功',
-              icon: 'success',
-              duration: 1000,
-              mask: true
-            })
-            _this.getListFun(); //刷新列表
-          })
-        } else if (res.cancel) {
 
-        }
-      }
-    })
   },
 
-  // 审核S
-  showPopup(e) {
-    let { id } = e.currentTarget.dataset
-    this.setData({
-      show: true,
-      orderReason: '',
-      id: id,
-    });
-  },
-  onClose() {
-    this.setData({
-      show: false,
-      auditFlag:'false',
-      orderReason:'',
-      id: ''
-    });
-  },
-  // 单选
-  dangerStatusChange: function (e) {
-    this.setData({
-      [e.currentTarget.dataset.radiotype]: e.detail.value
-    })
-    if (e.detail.value == '1') {
-      this.setData({
-        appointmentReason: ''
-      })
-    }
-  },
-  
-  //审核
-  formSubmit: function (e) {
-    let formData = e.detail.value;
-    var warn = ""; //弹框时提示的内容
-    if (formData.auditFlag=='true' && formData.arriveReason == '') {
-      warn = "审核不通过时备注不能为空!";
-    }
-    formData.auditFlag = formData.auditFlag=='true'
-    if (warn != '') {
-      app.util.checkForm(warn);
-    } else {
-      app.request.POST({
-        url: app.API.bizloadarriveAudit,
-        params: formData,
-        page: this,
-        isLoadingTxt: '审核中...',
-        successFun: true
-      }).then(res => {
-        wx.showToast({
-          title: '审核成功',
-          icon: 'success',
-          duration: 1000,
-          mask: true
-        })
-        this.onClose()
-        this.getListFun(); //刷新列表
-      })
-    }
-  },
-  // 审核E
-
-  //申请
-  changeAdd() {
-    wx.navigateTo({
-      url: 'add'
-    })
-  },
-
-  
-
   /**
    * 生命周期函数--监听页面隐藏
    */
@@ -344,69 +46,16 @@ Page({
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
-  onPullDownRefresh: function () {
-    this.setData({
-      searchVal: ''
-    })
-    if (wx.getStorageSync('loginStatus')) {
-      this.getListFun();
-    } else {
-      wx.stopPullDownRefresh();
-    }
+  onPullDownRefresh() {
+
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
-  onReachBottom: function () {
-    this.data.page++;
-    let params = {
-      current     : this.data.page,
-      size        : this.data.limit,
-      type        : this.data.type,
-      searchKey   : this.data.searchVal,
-      status      : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
-    }
-    app.request.pageOther({
-      url: app.API.bizloadarrivePage,
-      page: this,
-      params: params,
-      loadType: true //加载类型,是否是下拉加载
-    });
-  },
+  onReachBottom() {
 
-
-  //以下是按钮拖动事件
-  buttonStart: function (e) {
-    startPoint = e.touches[0] //获取拖动开始点
-  },
-  buttonMove: function (e) {
-    var endPoint = e.touches[e.touches.length - 1] //获取拖动结束点
-    //计算在X轴上拖动的距离和在Y轴上拖动的距离
-    var translateX = endPoint.clientX - startPoint.clientX
-    var translateY = endPoint.clientY - startPoint.clientY
-    startPoint = endPoint //重置开始位置
-    var buttonTop = this.data.buttonTop + translateY
-    var buttonLeft = this.data.buttonLeft + translateX
-    //判断是移动否超出屏幕
-    if (buttonLeft + 60 >= this.data.windowWidth) {
-      buttonLeft = this.data.windowWidth - 60;
-    }
-    if (buttonLeft <= 0) {
-      buttonLeft = 0;
-    }
-    if (buttonTop <= this.data.filterHeight) {
-      buttonTop = this.data.filterHeight
-    }
-    if (buttonTop + 60 + 48 + this.data.safeAreaHeight >= this.data.windowHeight) {
-      buttonTop = this.data.windowHeight - 60 - 48 - this.data.safeAreaHeight;
-    }
-    this.setData({
-      buttonTop: buttonTop,
-      buttonLeft: buttonLeft
-    })
   },
-  buttonEnd: function (e) {},
 
   /**
    * 用户点击右上角分享

+ 2 - 113
otherPages/pipeAppoint/index.wxml

@@ -1,113 +1,2 @@
-<!--pages/pipeAppoint/index.wxml-->
-<view class="container listMain">
-  <block wx:if="{{loginStatus}}">
-    <view url="" class="addBtn" catch:tap="changeAdd" hover-class="none" catchtouchmove="buttonMove" bindtouchstart="buttonStart" bindtouchend="buttonEnd" style="top:{{buttonTop}}px;left:{{buttonLeft}}px;" wx:if="{{roleCodeList == 'driver'}}">
-      <van-icon name="plus" size="30px" />
-    </view>
-    <van-sticky>
-      <view class="topSeach">
-        <view class="rightBox" style="position: relative;">
-          <van-search value="{{ searchVal }}" shape="round" placeholder="查询预约单号/计划单号" bind:change="onChange" bind:search="onSearch" bind:cancel="onCancel" use-action-slot>
-            <view slot="label" style="width:160rpx;margin-right: 20rpx;">
-                  <van-field label="" input-align="center" style="width: 100%;">
-                    <view slot="input" style="width: 100%;">
-                      <input name="status" value='{{appointmentStatusArray[appointmentStatusIndex].dictValue}}' hidden='true' />
-                      <picker bindchange="bindPickerChange" value="{{appointmentStatusIndex}}" range="{{appointmentStatusArray}}" range-key="dictLabel" data-pickername='appointmentStatus'>
-                        <view wx:if="{{appointmentStatusArray[appointmentStatusIndex].dictLabel}}" style="font-size: 12px;white-space: nowrap;"> {{appointmentStatusArray[appointmentStatusIndex].dictLabel}}</view>
-                        <view wx:else class="selectPlaceholder" style="font-size: 12px;white-space: nowrap;">{{defaultText}}</view>
-                      </picker>
-                    </view>
-                    <view slot="right-icon">
-                      <van-icon name="arrow-down" />
-                    </view>
-                  </van-field>
-                </view>
-            <van-icon slot="action" class-prefix="iconfont" name="arrow3-right_fill" size="28px" color="#4B70EA" bind:tap="toSearch" />
-          </van-search>
-        </view>
-      </view>
-    </van-sticky>
-
-    <view class="width710">
-      <block wx:if="{{!requestStatu}}">
-        <block wx:if="{{resData.length>0}}">
-          <block wx:for="{{resData}}" wx:key="index">
-            <navigator url="info?id={{item.id}}&planNumber={{item.planNumber}}&index={{index}}" class="listItem">
-              <view class="title van-ellipsis">
-                <van-icon class='iconfont' name='/images/codeNumber.png' size="36rpx"></van-icon>
-                <text>{{item.planNumber}}</text>
-                <text wx:if="{{item.status}}" class="status status{{item.status}}">{{item.statusName}}</text>
-              </view>
-              <view class="info">
-                <text decode="{{true}}">司机:{{item.driverName?item.driverName:'未填写'}} / {{item.driverMobile?item.driverMobile:'未填写'}}</text>
-              </view>
-              <view class="time"><text>出入场时间:{{item.enterTime?filters.tosubStr(item.enterTime,0,16):''}} ~ {{item.leaveTime?filters.tosubStr(item.leaveTime,0,16):''}}</text></view>
-
-              <view class="bottomBtn" wx:if="{{ roleCodeList == 'driver' && (item.status == '2' || item.status == '4') }}">
-                <van-button type="info" size="small" data-url="edit?index={{index}}" catchtap="toLink" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && (item.status == '2' || item.status == '4') }}">修改</van-button>
-
-                <van-button type="danger" size="small" data-id="{{item.id}}" data-plan-number="{{item.planNumber}}" catchtap="delFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && (item.status == '2' || item.status == '4') }}">删除</van-button>
-
-                <van-button type="warning" size="small" data-id="{{item.id}}" data-plan-number="{{item.planNumber}}" catchtap="cancelFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && item.status == '4' }}">取消</van-button>
-              </view>
-            </navigator>
-          </block>
-          <!-- 底部加载动画 -->
-          <view class='more'>
-            <block wx:if="{{more}}">
-              <van-loading size="24px" color="#1989fa">加载中...</van-loading>
-            </block>
-            <block wx:else>{{nomore}}</block>
-          </view>
-          <view style="height: 200rpx;"> </view>
-        </block>
-        <block wx:else>
-          <van-empty description="未搜索到预约记录" image="/images/null5.png" />
-        </block>
-      </block>
-    </view>
-  </block>
-  <block wx:else>
-    <view>
-      <van-empty image="/images/loginNull.png">
-        <view slot="description" style="text-align: center;">
-          <text style="display:block;margin-bottom: 20rpx;">您还未登录,登录后查看更多~</text>
-          <van-button type="info" bindtap="toLogin">立即登录</van-button>
-        </view>
-      </van-empty>
-    </view>
-  </block>
-</view>
-
-<!-- 弹窗 -->
-<van-popup show="{{ show }}" position="bottom" round closeable custom-style="width:100%;padding:0rpx 30rpx 160rpx;" bind:close="onClose">
-  <view style="height: 90rpx;line-height: 90rpx;text-align: center;">审核</view>
-  <form bindsubmit="formSubmit">
-    <view class="part">
-      <view class="height20"> </view>
-      <view class="height20"> </view>
-      <input name="id" value='{{id}}' hidden='true' />
-      <van-field label="审核结果" name="auditFlag" value="{{ auditFlag }}" required input-align="right" class="radioHeight fieldAutoHeight">
-        <view slot="input" class="radioHeightBx">
-          <radio-group class="radio-group" bindchange="dangerStatusChange" data-radioType="auditFlag">
-            <label class="radio">
-              <radio value="true" checked="{{auditFlag=='true'}}" color="#4B70EA" />通过
-            </label>
-            <label class="radio">
-              <radio value="false" checked="{{auditFlag=='false'}}" color="#4B70EA" />不通过
-            </label>
-          </radio-group>
-        </view>
-      </van-field>
-      <van-field label="审核备注" required="{{auditFlag=='false'}}" name="arriveReason" value="{{ arriveReason }}" type="textarea" input-align="right" placeholder="请输入审核备注" autosize></van-field>
-    </view>
-
-    <view class="submitBtn">
-      <view style="padding-top: 60rpx;">
-        <van-button block round type="info" form-type="submit" color="#0396FF">确认</van-button>
-      </view>
-    </view>
-  </form>
-</van-popup>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/reservationPipe/index.wxml-->
+<text>otherPages/reservationPipe/index.wxml</text>

+ 2 - 79
otherPages/pipeAppoint/info.js

@@ -1,96 +1,19 @@
-// pages/pipeAppoint/info.js
-const app = getApp()
+// otherPages/reservationPipe/info.js
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    info: {},
 
-    appointmentStatusArray: [{
-      dictValue: "",
-      dictLabel: "全部状态"
-    }],
-    appointmentStatusIndex: 0,
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    //预约审核状态
-    let treeData = app.globalData.treeArr
-    for (const element of treeData) {
-      let arrStr;
-      switch (element.dictValue) {
-        case 'appointment_status':
-          arrStr = "appointmentStatusArray";
-          break;
-      }
-      let getArray =[{
-        dictValue: "",
-        dictLabel: "全部状态"
-      }]
-      this.setData({
-        [arrStr]: getArray.concat(element.children)
-      })
-    }
-    //获取详情
-    var pages = getCurrentPages();
-    var prevPage = pages[pages.length - 2];
-    let getInfo = prevPage.data.resData[options.index]
-  
-    this.setData({
-      info     : getInfo
-    })
-
-    app.request.GET({
-      url: app.API.bizpipeplanDetail,
-      params: {'id' : getInfo.orderId},
-      page: this,
-      successFun: true
-    }).then(res => {
-      let getInfo = res.data.data;
-      this.setData({
-        planNumber      : getInfo.planNumber,
-        planName        : getInfo.planName,
-        planCount       : getInfo.planCount,
-        planAlreadyCount: getInfo.planAlreadyCount,
-      })
-    })
-    //this.getInfo(options.id)
-  },
 
-  // //查询详情
-  // getInfo: function (id) {
-  //   app.request.GET({
-  //     url: app.API.bizloadarriveDetail,
-  //     page: this,
-  //     params: {
-  //       'id': id
-  //     },
-  //     successFun: true
-  //   }).then(res => {
-  //     let getInfo = res.data.data;
-  //     //司机回签图片
-  //     let fileList = []
-  //     if(getInfo.unloadImg){
-  //       let unloadImgArr = getInfo.unloadImg.split(',')
-  //       unloadImgArr.forEach(element => {
-  //         fileList.push({
-  //           url: app.host.BASEIMG_URL+element,
-  //           isImage:true
-  //         })
-  //       });
-  //     }
-  //     this.setData({
-  //       info              : getInfo,
-  //       fileList          : fileList,
-  //       accessControlAuth : JSON.parse(getInfo.accessControlAuth)
-  //     })
-  //   })
-  // },
+  },
 
   /**
    * 生命周期函数--监听页面初次渲染完成

+ 0 - 1
otherPages/pipeAppoint/info.less

@@ -1 +0,0 @@
-/* pages/pipeAppoint/info.wxss */

+ 2 - 24
otherPages/pipeAppoint/info.wxml

@@ -1,24 +1,2 @@
-<!--pages/pipeAppoint/info.wxml-->
-<view class="container">
-  <view class="part">
-    <van-field label="管桩计划单号" input-align="right" value="{{info.planNumber }}" readonly></van-field>
-    <van-field label="- 计划名称" input-align="right" value="{{ planName }}" readonly></van-field>
-    <van-field label="- 预约次数" input-align="right" value="{{ planCount }}" readonly></van-field>
-    <van-field label="- 已预约次数" input-align="right" value="{{ planAlreadyCount }}" readonly></van-field>
-
-    <van-field label="车牌号" input-align="right" value="{{ info.licenseNumber }}" readonly></van-field>
-    <van-field label="司机姓名" input-align="right" value="{{ info.driverName }}" readonly></van-field>
-    <van-field label="司机电话" input-align="right" value="{{ info.driverMobile }}" readonly></van-field>
-    <van-field label="入场时间" input-align="right" value="{{ info.enterTime }}" readonly></van-field>
-    <van-field label="出场时间" input-align="right" value="{{ info.leaveTime }}" readonly></van-field>
-    <!-- <van-field label="创建人" input-align="right" value="{{info.createUserName}}" readonly></van-field>
-    <van-field label="创建时间" input-align="right" value="{{info.createTime}}" readonly></van-field> -->
-    <van-field label="预约状态" input-align="right" readonly>
-      <text slot="button" class="status status{{info.status}}">{{filters.codeAnalysis(appointmentStatusArray, info.status, 'dictValue', 'dictLabel')}} 
-      </text>
-    </van-field>
-  </view>
-  <view style="height: 50px;"></view>
-</view>
-
-<wxs module="filters" src="../../utils/filter.wxs"></wxs>
+<!--otherPages/reservationPipe/info.wxml-->
+<text>otherPages/reservationPipe/info.wxml</text>

+ 14 - 1
pages/index/index.js

@@ -425,16 +425,29 @@ Page({
         console.log(info)
         //console.log(JSON.parse(info)) //{id: "1712651156370632706", projectCode: "D456"}
         if(info.type=='1'){
+          // 砂石预约
           wx.navigateTo({
             url: 'add?orderId=' + info.id + '&orderName='+ info.orderName+'&orderNumber='+ info.orderNumber
           })
         }else if(info.type=='2'){
+          // 临时预约
           wx.navigateTo({
             url: '/pages/temporary/add?orderId=' + info.id + '&orderName='+ info.orderName+'&orderNumber='+ info.orderNumber
           })
         }else if(info.type=='3'){
+          // 起卸预约
           wx.navigateTo({
-            url: '/otherPages/loadAppoint/add?orderId=' + info.id + '&orderName='+ info.orderName+'&orderNumber='+ info.orderNumber
+            url: '/pages/appoint/add?orderId=' + info.id + '&orderName='+ info.orderName+'&orderNumber='+ info.orderNumber
+          })
+        }else if(info.type=='4'){
+          // 充电桩预约
+          wx.navigateTo({
+            url: '/pages/reservationChargestation/add?orderId=' + info.id + '&orderName='+ info.orderName+'&orderNumber='+ info.orderNumber
+          })
+        }else if(info.type=='5'){
+          // 管桩预约
+          wx.navigateTo({
+            url: '/pages/reservationPipe/add?orderId=' + info.id + '&orderName='+ info.orderName+'&orderNumber='+ info.orderNumber
           })
         }
         

+ 187 - 0
pages/reservationChargestation/add.js

@@ -0,0 +1,187 @@
+// pages/reservationPipe/add.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    showModal: false,
+    defaultText: '请选择',
+    isSubmitting: false,
+
+    isKeyboard: false, //是否显示车牌输入键盘
+    inputOnFocusIndex: '', //当前锁定的车号位置
+    licensePlate: '', //用于提交
+    inputPlates: '', //用于显示
+
+    driverArray:[], //司机
+    driverIndex:null,
+
+  },
+  //输入框焦点聚焦时隐藏车牌号输入框
+  hideKeybord: function () {
+    this.setData({
+      isKeyboard: false,
+      inputOnFocusIndex: ''
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    //获取司机信息
+    this.loadUserData()
+  },
+
+  //获取车牌号
+  licensePlate: function (e) {
+    this.setData({
+      licensePlate: e.detail.carNum
+    })
+  },
+
+  //司机
+  loadUserData:function(loadUserId){
+    app.request.GET({
+      url: app.API.roleUser,
+      params: {
+        roleName : '司机',
+      },
+      page: this,
+      successFun: true
+    }).then(res => {
+      this.setData({
+        driverArray : res.data.data
+      })
+    })
+  },
+
+  //下拉选择
+  bindPickerChange: function (e) { 
+    let { pickername } = e.target.dataset
+    let getIndex = pickername + 'Index'
+    app.util.getPickerIndex(this, getIndex, e);
+    switch (pickername) {
+      case 'driver': //选择司机
+        this.setData({
+          driverMobile  : this.data.driverArray[this.data.driverIndex].phone,
+        })
+        break;
+    }
+  },
+
+  // 单选
+  dangerStatusChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.radiotype]: e.detail.value
+    })
+  },
+  //多选
+  checkboxChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.checkboxtype]: e.detail
+    })
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  bindscrolltolowerFun() {
+    
+  },
+
+  //表单提交 carTaskAdd
+  formSubmit: function ({detail:{value}}) {
+    var warn = ""; //弹框时提示的内容
+    let reg = /^1[3-9]\d{9}$/;
+    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    //value.certificateNoImage = this.data.originalInvoicePhoto
+    if (value.licenseNumber == '') {
+      warn = "车牌不能为空!";
+    } else if (value.licenseNumber.length < 8) {
+      warn = "请选择新能源车牌号!";
+    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
+      warn = "新能源车牌号格式错误!";
+    } else if(value.driverId == ''){
+      warn = "请输入司机姓名!";
+    } 
+
+    if (warn != '') {
+      app.util.checkForm(warn);
+    } else {
+      app.request.POST({
+        url: app.API.chargestationAdd,
+        params: value,
+        page: this,
+        isLoadingTxt: '提交中...',
+        isSubmitting: true,
+        successFun: true
+      }).then(res => {
+        wx.showToast({
+          title: '新增成功',
+          icon: 'success',
+          duration: 2000,
+          mask:true,
+          complete: function () {
+            setTimeout(() => {
+              wx.navigateBack()
+            }, 1500) //延迟时间  
+          }
+        })
+      })
+
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 0 - 0
otherPages/chargestation/add.json → pages/reservationChargestation/add.json


+ 40 - 0
pages/reservationChargestation/add.wxml

@@ -0,0 +1,40 @@
+<!--pages/reservationPipe/add.wxml-->
+<view class="container" style="padding-bottom:100px;">
+  <view class="height20"></view>
+  <view>
+    <form bindsubmit="formSubmit">
+      <view class="part">
+        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
+        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
+        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
+      </view>
+        
+      <view class="part">
+        <!-- 司机 -->
+        <van-field label="司机" required input-align="right">
+          <view slot="input" style="width: 100%;">
+            <input name="driverId" value='{{driverArray[driverIndex].id}}' hidden='true' />
+            <picker bindchange="bindPickerChange" value="{{driverIndex}}" range="{{driverArray}}" range-key="name" data-pickername='driver'>
+              <view wx:if="{{driverArray[driverIndex].name}}"> {{driverArray[driverIndex].name}}</view>
+              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
+            </picker>
+          </view>
+          <view slot="right-icon">
+            <van-icon name="arrow" />
+          </view>
+        </van-field>
+
+        <van-field label="司机电话" wx:if="{{driverArray[driverIndex].id}}" name="driverMobile" readonly value="{{ driverMobile }}" placeholder="选择司机自动填入" input-align="right">
+        </van-field>
+      </view>
+
+      <view class="fixedBtn submitBtn">
+        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
+        </van-button>
+      </view>
+
+    </form>
+  </view>
+</view>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 1 - 1
otherPages/pipeAppoint/add.wxss → pages/reservationChargestation/add.wxss

@@ -1,4 +1,4 @@
-/* pages/pipeAppoint/add.wxss */
+/* pages/reservationPipe/add.wxss */
 .van-field__label {
   width: 240rpx !important;
 }

+ 204 - 0
pages/reservationChargestation/edit.js

@@ -0,0 +1,204 @@
+// pages/reservationPipe/edit.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    showModal: false,
+    defaultText: '请选择',
+    isSubmitting: false,
+
+    isKeyboard: false, //是否显示车牌输入键盘
+    inputOnFocusIndex: '', //当前锁定的车号位置
+    licensePlate: '', //用于提交
+    inputPlates: '', //用于显示
+
+    driverArray:[], //司机
+    driverIndex:null,
+  },
+  //输入框焦点聚焦时隐藏车牌号输入框
+  hideKeybord: function () {
+    this.setData({
+      isKeyboard: false,
+      inputOnFocusIndex: ''
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    //获取详情
+    var pages = getCurrentPages();
+    var prevPage = pages[pages.length - 2];
+    let getInfo = prevPage.data.resData[options.index]
+
+    let getCarNumArr = getInfo.licenseNumber ? getInfo.licenseNumber.split('') : ''
+    let inputPlates = {};
+    for (let i = 0; i < getCarNumArr.length; i++) {
+      inputPlates['index' + i] = getCarNumArr[i]
+    }
+
+    this.setData({
+      info: getInfo,
+      driverMobile: getInfo.driverMobile,
+      inputPlates: inputPlates,
+      isNewEnergy: getCarNumArr.length > 7 ? true : false,
+      licensePlate: getInfo.licenseNumber,
+    })
+    //获取司机信息
+    this.loadUserData()
+  },
+
+  //获取车牌号
+  licensePlate: function (e) {
+    this.setData({
+      licensePlate: e.detail.carNum
+    })
+  },
+
+  //司机
+  loadUserData:function(loadUserId){
+    app.request.GET({
+      url: app.API.roleUser,
+      params: {
+        roleName : '司机',
+      },
+      page: this,
+      successFun: true
+    }).then(res => {
+      this.setData({
+        driverArray : res.data.data,
+        driverIndex : app.util.getDicIndex(res.data.data, this.data.info.driverId, 'id')
+      })
+    })
+  },
+
+  //下拉选择
+  bindPickerChange: function (e) { 
+    let { pickername } = e.target.dataset
+    let getIndex = pickername + 'Index'
+    app.util.getPickerIndex(this, getIndex, e);
+    switch (pickername) {
+      case 'driver': //选择司机
+        this.setData({
+          driverMobile  : this.data.driverArray[this.data.driverIndex].phone,
+        })
+        break;
+    }
+  },
+
+  // 单选
+  dangerStatusChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.radiotype]: e.detail.value
+    })
+  },
+  //多选
+  checkboxChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.checkboxtype]: e.detail
+    })
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  bindscrolltolowerFun() {
+    
+  },
+
+  //表单提交 carTaskAdd
+  formSubmit: function ({detail:{value}}) {
+    var warn = ""; //弹框时提示的内容
+    let reg = /^1[3-9]\d{9}$/;
+    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    if (value.licenseNumber == '') {
+      warn = "车牌不能为空!";
+    } else if (value.licenseNumber.length < 8) {
+      warn = "请选择新能源车牌号!";
+    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
+      warn = "新能源车牌号格式错误!";
+    } else if(value.driverId == ''){
+      warn = "请输入司机姓名!";
+    } 
+
+    if (warn != '') {
+      app.util.checkForm(warn);
+    } else {
+      app.request.POST({
+        url: app.API.appointmentPipeEdit,
+        params: value,
+        page: this,
+        isLoadingTxt: '提交中...',
+        isSubmitting: true,
+        successFun: true
+      }).then(res => {
+        wx.showToast({
+          title: '修改成功',
+          icon: 'success',
+          duration: 2000,
+          mask:true,
+          complete: function () {
+            setTimeout(() => {
+              wx.navigateBack()
+            }, 1500) //延迟时间  
+          }
+        })
+      })
+
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 0 - 0
otherPages/chargestation/edit.json → pages/reservationChargestation/edit.json


+ 1 - 0
pages/reservationChargestation/edit.less

@@ -0,0 +1 @@
+/* pages/reservationPipe/edit.wxss */

+ 41 - 0
pages/reservationChargestation/edit.wxml

@@ -0,0 +1,41 @@
+<!--pages/reservationPipe/edit.wxml-->
+<view class="container" style="padding-bottom:100px;">
+  <view class="height20"></view>
+  <view>
+    <form bindsubmit="formSubmit">
+      <input name="id" value='{{info.id}}' hidden='true' />
+      <view class="part">
+        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
+        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
+        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
+      </view>
+        
+      <view class="part">
+        <!-- 司机 -->
+        <van-field label="司机" required input-align="right">
+          <view slot="input" style="width: 100%;">
+            <input name="driverId" value='{{driverArray[driverIndex].id}}' hidden='true' />
+            <picker bindchange="bindPickerChange" value="{{driverIndex}}" range="{{driverArray}}" range-key="name" data-pickername='driver'>
+              <view wx:if="{{driverArray[driverIndex].name}}"> {{driverArray[driverIndex].name}}</view>
+              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
+            </picker>
+          </view>
+          <view slot="right-icon">
+            <van-icon name="arrow" />
+          </view>
+        </van-field>
+
+        <van-field label="司机电话" wx:if="{{driverArray[driverIndex].id}}" name="driverMobile" readonly value="{{ driverMobile }}" placeholder="选择司机自动填入" input-align="right">
+        </van-field>
+      </view>
+
+      <view class="fixedBtn submitBtn">
+        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
+        </van-button>
+      </view>
+
+    </form>
+  </view>
+</view>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 417 - 0
pages/reservationChargestation/index.js

@@ -0,0 +1,417 @@
+// pages/reservationPipe/index.js
+const app = getApp()
+var startPoint
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    str:'&emsp;',
+    str2: '&ensp;',
+
+    filterWidth: 0, //获取顶部筛选宽度
+    filterHeight: 0, //获取顶部筛选高度
+    safeAreaHeight: 0, //底部安全区域的高度
+    //按钮位置参数
+    buttonTop: 0,
+    buttonLeft: 0,
+    windowHeight: '',
+    windowWidth: '',
+
+    loginStatus: wx.getStorageSync('loginStatus') ? wx.getStorageSync('loginStatus') : false,
+    roleCodeList: wx.getStorageSync('roleCodeList') ? wx.getStorageSync('roleCodeList') : '',
+    searchVal: '',
+
+    appointmentStatusArray: [{
+      dictValue: "",
+      dictLabel: "全部状态"
+    }],
+    appointmentStatusIndex: 0,
+
+    //分页
+    limit: 10,
+    requestStatu: '加载中...',
+    page: 1,
+    totalPages: 1,
+    more: false,
+    nomore: '',
+    type: '4',// 充电张预约类型
+
+    resData:[],
+
+    show: false,
+    auditFlag:true,
+    orderReason:'',//审核备注
+
+    requestStatu2: '加载中...',
+    page2: 1,
+    totalPages2: 1,
+    more2: false,
+    nomore2: '',
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    //预约审核状态
+    let treeData = app.globalData.treeArr
+    for (const element of treeData) {
+      let arrStr;
+      switch (element.dictValue) {
+        case 'appointment_status':
+          arrStr = "appointmentStatusArray";
+          break;
+      }
+      let getArray =[{
+        dictValue: "",
+        dictLabel: "全部状态"
+      }]
+      this.setData({
+        [arrStr]: getArray.concat(element.children)
+      })
+    }
+
+    this.setData({
+      safeAreaHeight: app.globalData.windowInfo.screenHeight - app.globalData.systemInfo.safeArea.bottom
+    })
+
+    // 使用选择器选择节点
+    this.getFilterHeight()
+    //获取页面高度设置新增按钮的初始位置
+    var that = this;
+    wx.getSystemInfo({
+      success: function (res) {
+        // 高度,宽度 单位为px
+        that.setData({
+          windowHeight: res.windowHeight, //屏幕宽度、高度
+          windowWidth: res.windowWidth,
+          buttonTop: res.windowHeight * 0.8 - that.data.safeAreaHeight-50, //这里定义按钮的初始位置
+          buttonLeft: res.windowWidth * 0.80, //这里定义按钮的初始位置
+        })
+      }
+    })
+  },
+
+  //获取顶部筛选区域的高度
+  getFilterHeight:function(){
+    let that = this;
+    // 使用顶部筛选高度选择器选择节点的高度
+    const query = wx.createSelectorQuery();
+    query.select('.topSeach').boundingClientRect(function (rect) {
+      if(rect){
+        that.setData({
+          filterWidth: rect.width,
+          filterHeight: rect.height,
+        });
+      }
+    }).exec();
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+    const roleCodeList = wx.getStorageSync('roleCodeList')
+    let loginStatus = wx.getStorageSync('loginStatus')
+    this.setData({
+      searchVal: '',
+      roleCodeList: roleCodeList ? roleCodeList : '',
+      loginStatus: loginStatus ? loginStatus : false
+    })
+
+    this.setData({
+      requestStatu:'加载中...',
+    })
+    if (wx.getStorageSync('loginStatus')) {
+      this.getListFun();
+    }
+  },
+
+  //下拉选择
+  bindPickerChange: function (e) { //下拉菜单
+    //方法一动态的
+    let getIndex = e.target.dataset.pickername + 'Index'
+    app.util.getPickerIndex(this, getIndex, e);
+    this.getListFun()
+  },
+
+  //搜索框请求S
+  onChange(e) {
+    this.setData({
+      searchVal: e.detail,
+    });
+  },
+  onSearch: function (event) {
+    this.setData({
+      searchVal: event.detail
+    })
+    this.getListFun();
+  },
+  onCancel: function () {
+    this.setData({})
+  },
+  toSearch: function (event) {
+    this.getListFun();
+  },
+
+  //列表
+  getListFun: function () {
+    this.setData({
+      page: 1
+    })
+    let params = {
+      current    : this.data.page,
+      size       : this.data.limit,
+      type       : this.data.type,
+      searchKey  : this.data.searchVal,
+      status     : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
+    }
+    app.request.pageFirst({
+      url: app.API.chargestationPage,
+      page: this,
+      params: params,
+    })
+  },
+
+  //页面跳转
+  toLink: function (e) {
+    let { url } = e.currentTarget.dataset
+    wx.navigateTo({
+      url: url
+    })
+  },
+
+  //删除
+  delFun: function (e) {
+    let _this = this
+    let { id, otherNumber } = e.currentTarget.dataset
+    wx.showModal({
+      title: '提示!',
+      content: `删除充电桩预约号【${otherNumber}】后不可恢复。确定要删除吗?`,
+      confirmColor: '#FF5B5B',
+      success: function (res) {
+        if (res.confirm) {
+          app.request.POST({
+            url: app.API.appointmentDelete,
+            params: [{
+              id: id
+            }],
+            page: _this,
+            isLoadingTxt: '删除中...',
+            successFun: true
+          }).then(res => {
+            wx.showToast({
+              title: '删除成功',
+              icon: 'success',
+              duration: 1000,
+              mask: true
+            })
+            _this.getListFun(); //刷新列表
+          })
+        } else if (res.cancel) {
+
+        }
+      }
+    })
+  },
+
+  //强制结束
+  cancelFun: function (e) {
+    let _this = this
+    let { id, otherNumber } = e.currentTarget.dataset
+    wx.showModal({
+      title: '提示!',
+      content: `充电桩预约号【${otherNumber}】,确定强制结束该预约吗?`,
+      confirmColor: '#FF5B5B',
+      success: function (res) {
+        if (res.confirm) {
+          app.request.POST({
+            url: app.API.chargestationExit,
+            params: {
+              id: id
+            },
+            page: _this,
+            isLoadingTxt: '提交中...',
+            successFun: true
+          }).then(res => {
+            wx.showToast({
+              title: '强制结束成功',
+              icon: 'success',
+              duration: 1000,
+              mask: true
+            })
+            _this.getListFun(); //刷新列表
+          })
+        } else if (res.cancel) {
+
+        }
+      }
+    })
+  },
+
+  // 审核S
+  showPopup(e) {
+    let { id } = e.currentTarget.dataset
+    this.setData({
+      show: true,
+      orderReason: '',
+      id: id,
+    });
+  },
+  onClose() {
+    this.setData({
+      show: false,
+      auditFlag:'false',
+      orderReason:'',
+      id: ''
+    });
+  },
+  // 单选
+  dangerStatusChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.radiotype]: e.detail.value
+    })
+    if (e.detail.value == '1') {
+      this.setData({
+        appointmentReason: ''
+      })
+    }
+  },
+  
+  //审核
+  formSubmit: function (e) {
+    let formData = e.detail.value;
+    var warn = ""; //弹框时提示的内容
+    if (formData.auditFlag=='true' && formData.arriveReason == '') {
+      warn = "审核不通过时备注不能为空!";
+    }
+    formData.auditFlag = formData.auditFlag=='true'
+    if (warn != '') {
+      app.util.checkForm(warn);
+    } else {
+      app.request.POST({
+        url: app.API.bizloadarriveAudit,
+        params: formData,
+        page: this,
+        isLoadingTxt: '审核中...',
+        successFun: true
+      }).then(res => {
+        wx.showToast({
+          title: '审核成功',
+          icon: 'success',
+          duration: 1000,
+          mask: true
+        })
+        this.onClose()
+        this.getListFun(); //刷新列表
+      })
+    }
+  },
+  // 审核E
+
+  //申请
+  changeAdd() {
+    wx.navigateTo({
+      url: 'add'
+    })
+  },
+
+  
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+    this.setData({
+      searchVal: ''
+    })
+    if (wx.getStorageSync('loginStatus')) {
+      this.getListFun();
+    } else {
+      wx.stopPullDownRefresh();
+    }
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    this.data.page++;
+    let params = {
+      current     : this.data.page,
+      size        : this.data.limit,
+      type        : this.data.type,
+      searchKey   : this.data.searchVal,
+      status      : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
+    }
+    app.request.pageOther({
+      url: app.API.bizloadarrivePage,
+      page: this,
+      params: params,
+      loadType: true //加载类型,是否是下拉加载
+    });
+  },
+
+
+  //以下是按钮拖动事件
+  buttonStart: function (e) {
+    startPoint = e.touches[0] //获取拖动开始点
+  },
+  buttonMove: function (e) {
+    var endPoint = e.touches[e.touches.length - 1] //获取拖动结束点
+    //计算在X轴上拖动的距离和在Y轴上拖动的距离
+    var translateX = endPoint.clientX - startPoint.clientX
+    var translateY = endPoint.clientY - startPoint.clientY
+    startPoint = endPoint //重置开始位置
+    var buttonTop = this.data.buttonTop + translateY
+    var buttonLeft = this.data.buttonLeft + translateX
+    //判断是移动否超出屏幕
+    if (buttonLeft + 60 >= this.data.windowWidth) {
+      buttonLeft = this.data.windowWidth - 60;
+    }
+    if (buttonLeft <= 0) {
+      buttonLeft = 0;
+    }
+    if (buttonTop <= this.data.filterHeight) {
+      buttonTop = this.data.filterHeight
+    }
+    if (buttonTop + 60 + 48 + this.data.safeAreaHeight >= this.data.windowHeight) {
+      buttonTop = this.data.windowHeight - 60 - 48 - this.data.safeAreaHeight;
+    }
+    this.setData({
+      buttonTop: buttonTop,
+      buttonLeft: buttonLeft
+    })
+  },
+  buttonEnd: function (e) {},
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 0 - 0
otherPages/chargestation/index.json → pages/reservationChargestation/index.json


+ 1 - 1
otherPages/pipeAppoint/index.less → pages/reservationChargestation/index.less

@@ -1,4 +1,4 @@
-/* pages/pipeAppoint/index.wxss */
+/* pages/reservationPipe/index.wxss */
 page{
   --cell-vertical-padding:12rpx;
   --cell-horizontal-padding:0;

+ 115 - 0
pages/reservationChargestation/index.wxml

@@ -0,0 +1,115 @@
+<!--pages/reservationPipe/index.wxml-->
+<view class="container listMain">
+  <block wx:if="{{loginStatus}}">
+    <view url="" class="addBtn" catch:tap="changeAdd" hover-class="none" catchtouchmove="buttonMove" bindtouchstart="buttonStart" bindtouchend="buttonEnd" style="top:{{buttonTop}}px;left:{{buttonLeft}}px;" wx:if="{{roleCodeList == 'driver'}}">
+      <van-icon name="plus" size="30px" />
+    </view>
+    <van-sticky>
+      <view class="topSeach">
+        <view class="rightBox" style="position: relative;">
+          <van-search value="{{ searchVal }}" shape="round" placeholder="查询预约单号/计划单号" bind:change="onChange" bind:search="onSearch" bind:cancel="onCancel" use-action-slot>
+            <view slot="label" style="width:160rpx;margin-right: 20rpx;">
+                  <van-field label="" input-align="center" style="width: 100%;">
+                    <view slot="input" style="width: 100%;">
+                      <input name="status" value='{{appointmentStatusArray[appointmentStatusIndex].dictValue}}' hidden='true' />
+                      <picker bindchange="bindPickerChange" value="{{appointmentStatusIndex}}" range="{{appointmentStatusArray}}" range-key="dictLabel" data-pickername='appointmentStatus'>
+                        <view wx:if="{{appointmentStatusArray[appointmentStatusIndex].dictLabel}}" style="font-size: 12px;white-space: nowrap;"> {{appointmentStatusArray[appointmentStatusIndex].dictLabel}}</view>
+                        <view wx:else class="selectPlaceholder" style="font-size: 12px;white-space: nowrap;">{{defaultText}}</view>
+                      </picker>
+                    </view>
+                    <view slot="right-icon">
+                      <van-icon name="arrow-down" />
+                    </view>
+                  </van-field>
+                </view>
+            <van-icon slot="action" class-prefix="iconfont" name="arrow3-right_fill" size="28px" color="#4B70EA" bind:tap="toSearch" />
+          </van-search>
+        </view>
+      </view>
+    </van-sticky>
+
+    <view class="width710">
+      <block wx:if="{{!requestStatu}}">
+        <block wx:if="{{resData.length>0}}">
+          <block wx:for="{{resData}}" wx:key="index">
+            <navigator url="info?id={{item.id}}&otherNumber={{item.otherNumber}}&index={{index}}" class="listItem">
+              <view class="title van-ellipsis">
+                <van-icon class='iconfont' name='/images/codeNumber.png' size="36rpx"></van-icon>
+                <text>{{item.licenseNumber}}</text>
+                <text wx:if="{{item.status}}" class="status status{{item.status}}">{{item.statusName}}</text>
+              </view>
+              <view class="info">
+                <text>预约单号:{{item.otherNumber?item.otherNumber:'未填写'}}</text>
+              </view>
+              <view class="info">
+                <text decode="{{true}}">司机:{{item.driverName?item.driverName:'未填写'}} / {{item.driverMobile?item.driverMobile:'未填写'}}</text>
+              </view>
+
+              <view class="bottomBtn" wx:if="{{ roleCodeList == 'driver' && (item.status=='4' || item.status=='5' || item.status=='6' || item.status=='7'	|| item.status=='8' || item.status=='9' || item.status=='16' || item.status=='18') }}">
+                <van-button type="info" size="small" data-url="edit?index={{index}}" catchtap="toLink" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && item.status == '4' }}">修改</van-button>
+
+                <van-button type="danger" size="small" data-id="{{item.id}}" data-other-number="{{item.otherNumber}}" catchtap="delFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && item.status == '4' }}">删除</van-button>
+
+                <van-button type="warning" size="small" data-id="{{item.id}}" data-other-number="{{item.otherNumber}}" catchtap="cancelFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && (item.status=='4' || item.status=='5' || item.status=='6' || item.status=='7'	|| item.status=='8' || item.status=='9' || item.status=='16' || item.status=='18') }}">强制结束</van-button>
+              </view>
+            </navigator>
+          </block>
+          <!-- 底部加载动画 -->
+          <view class='more'>
+            <block wx:if="{{more}}">
+              <van-loading size="24px" color="#1989fa">加载中...</van-loading>
+            </block>
+            <block wx:else>{{nomore}}</block>
+          </view>
+          <view style="height: 200rpx;"> </view>
+        </block>
+        <block wx:else>
+          <van-empty description="未搜索到预约记录" image="/images/null5.png" />
+        </block>
+      </block>
+    </view>
+  </block>
+  <block wx:else>
+    <view>
+      <van-empty image="/images/loginNull.png">
+        <view slot="description" style="text-align: center;">
+          <text style="display:block;margin-bottom: 20rpx;">您还未登录,登录后查看更多~</text>
+          <van-button type="info" bindtap="toLogin">立即登录</van-button>
+        </view>
+      </van-empty>
+    </view>
+  </block>
+</view>
+
+<!-- 弹窗 -->
+<van-popup show="{{ show }}" position="bottom" round closeable custom-style="width:100%;padding:0rpx 30rpx 160rpx;" bind:close="onClose">
+  <view style="height: 90rpx;line-height: 90rpx;text-align: center;">审核</view>
+  <form bindsubmit="formSubmit">
+    <view class="part">
+      <view class="height20"> </view>
+      <view class="height20"> </view>
+      <input name="id" value='{{id}}' hidden='true' />
+      <van-field label="审核结果" name="auditFlag" value="{{ auditFlag }}" required input-align="right" class="radioHeight fieldAutoHeight">
+        <view slot="input" class="radioHeightBx">
+          <radio-group class="radio-group" bindchange="dangerStatusChange" data-radioType="auditFlag">
+            <label class="radio">
+              <radio value="true" checked="{{auditFlag=='true'}}" color="#4B70EA" />通过
+            </label>
+            <label class="radio">
+              <radio value="false" checked="{{auditFlag=='false'}}" color="#4B70EA" />不通过
+            </label>
+          </radio-group>
+        </view>
+      </van-field>
+      <van-field label="审核备注" required="{{auditFlag=='false'}}" name="arriveReason" value="{{ arriveReason }}" type="textarea" input-align="right" placeholder="请输入审核备注" autosize></van-field>
+    </view>
+
+    <view class="submitBtn">
+      <view style="padding-top: 60rpx;">
+        <van-button block round type="info" form-type="submit" color="#0396FF">确认</van-button>
+      </view>
+    </view>
+  </form>
+</van-popup>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 1 - 1
otherPages/chargestation/index.wxss → pages/reservationChargestation/index.wxss

@@ -1,4 +1,4 @@
-/* pages/pipeAppoint/index.wxss */
+/* pages/reservationPipe/index.wxss */
 page {
   --cell-vertical-padding: 12rpx;
   --cell-horizontal-padding: 0;

+ 143 - 0
pages/reservationChargestation/info.js

@@ -0,0 +1,143 @@
+// pages/reservationPipe/info.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    info: {},
+
+    appointmentStatusArray: [{
+      dictValue: "",
+      dictLabel: "全部状态"
+    }],
+    appointmentStatusIndex: 0,
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    //预约审核状态
+    let treeData = app.globalData.treeArr
+    for (const element of treeData) {
+      let arrStr;
+      switch (element.dictValue) {
+        case 'appointment_status':
+          arrStr = "appointmentStatusArray";
+          break;
+      }
+      let getArray =[{
+        dictValue: "",
+        dictLabel: "全部状态"
+      }]
+      this.setData({
+        [arrStr]: getArray.concat(element.children)
+      })
+    }
+    //获取详情
+    var pages = getCurrentPages();
+    var prevPage = pages[pages.length - 2];
+    let getInfo = prevPage.data.resData[options.index]
+  
+    this.setData({
+      info     : getInfo
+    })
+
+    app.request.GET({
+      url: app.API.bizpipeplanDetail,
+      params: {'id' : getInfo.orderId},
+      page: this,
+      successFun: true
+    }).then(res => {
+      let getInfo = res.data.data;
+      this.setData({
+        planNumber      : getInfo.planNumber,
+        planName        : getInfo.planName,
+        planCount       : getInfo.planCount,
+        planAlreadyCount: getInfo.planAlreadyCount,
+      })
+    })
+    //this.getInfo(options.id)
+  },
+
+  // //查询详情
+  // getInfo: function (id) {
+  //   app.request.GET({
+  //     url: app.API.bizloadarriveDetail,
+  //     page: this,
+  //     params: {
+  //       'id': id
+  //     },
+  //     successFun: true
+  //   }).then(res => {
+  //     let getInfo = res.data.data;
+  //     //司机回签图片
+  //     let fileList = []
+  //     if(getInfo.unloadImg){
+  //       let unloadImgArr = getInfo.unloadImg.split(',')
+  //       unloadImgArr.forEach(element => {
+  //         fileList.push({
+  //           url: app.host.BASEIMG_URL+element,
+  //           isImage:true
+  //         })
+  //       });
+  //     }
+  //     this.setData({
+  //       info              : getInfo,
+  //       fileList          : fileList,
+  //       accessControlAuth : JSON.parse(getInfo.accessControlAuth)
+  //     })
+  //   })
+  // },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 0 - 0
otherPages/chargestation/info.json → pages/reservationChargestation/info.json


+ 1 - 0
pages/reservationChargestation/info.less

@@ -0,0 +1 @@
+/* pages/reservationPipe/info.wxss */

+ 24 - 0
pages/reservationChargestation/info.wxml

@@ -0,0 +1,24 @@
+<!--pages/reservationPipe/info.wxml-->
+<view class="container">
+  <view class="part">
+    <van-field label="管桩计划单号" input-align="right" value="{{info.planNumber }}" readonly></van-field>
+    <van-field label="- 计划名称" input-align="right" value="{{ planName }}" readonly></van-field>
+    <van-field label="- 预约次数" input-align="right" value="{{ planCount }}" readonly></van-field>
+    <van-field label="- 已预约次数" input-align="right" value="{{ planAlreadyCount }}" readonly></van-field>
+
+    <van-field label="车牌号" input-align="right" value="{{ info.licenseNumber }}" readonly></van-field>
+    <van-field label="司机姓名" input-align="right" value="{{ info.driverName }}" readonly></van-field>
+    <van-field label="司机电话" input-align="right" value="{{ info.driverMobile }}" readonly></van-field>
+    <van-field label="入场时间" input-align="right" value="{{ info.enterTime }}" readonly></van-field>
+    <van-field label="出场时间" input-align="right" value="{{ info.leaveTime }}" readonly></van-field>
+    <!-- <van-field label="创建人" input-align="right" value="{{info.createUserName}}" readonly></van-field>
+    <van-field label="创建时间" input-align="right" value="{{info.createTime}}" readonly></van-field> -->
+    <van-field label="预约状态" input-align="right" readonly>
+      <text slot="button" class="status status{{info.status}}">{{filters.codeAnalysis(appointmentStatusArray, info.status, 'dictValue', 'dictLabel')}} 
+      </text>
+    </van-field>
+  </view>
+  <view style="height: 50px;"></view>
+</view>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 204 - 0
pages/reservationPipe/add.js

@@ -0,0 +1,204 @@
+// pages/reservationPipe/add.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    showModal: false,
+    defaultText: '请选择',
+    isSubmitting: false,
+
+    orderArray:[], //管桩计划
+    orderIndex:null,
+
+    appointmentStatusArray: [{
+      dictValue: "",
+      dictLabel: "全部状态"
+    }],
+    appointmentStatusIndex: 0,
+
+    isKeyboard: false, //是否显示车牌输入键盘
+    inputOnFocusIndex: '', //当前锁定的车号位置
+    licensePlate: '', //用于提交
+    inputPlates: '', //用于显示
+
+  },
+  //输入框焦点聚焦时隐藏车牌号输入框
+  hideKeybord: function () {
+    this.setData({
+      isKeyboard: false,
+      inputOnFocusIndex: ''
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    //获取管桩计划信息
+    this.getorderData()
+  },
+
+  //选择管桩计划
+  getorderData:function(){
+    app.request.GET({
+      url: app.API.bizpipeplanList,
+      params: {},
+      page: this,
+      successFun: true
+    }).then(res => {
+      let orderList = res.data.data
+      orderList.forEach((element,index) => {
+        orderList[index].name = element.planNumber
+      });
+      this.setData({
+        orderArray: orderList
+      })
+    })
+  },
+
+  //获取车牌号
+  licensePlate: function (e) {
+    this.setData({
+      licensePlate: e.detail.carNum
+    })
+  },
+
+  //下拉选择
+  bindPickerChange: function (e) { 
+    let { pickername } = e.target.dataset
+    let getIndex = pickername + 'Index'
+    app.util.getPickerIndex(this, getIndex, e);
+    switch (pickername) {
+      case 'order': //管桩计划
+        this.setData({
+          planNumber      : this.data.orderArray[this.data.orderIndex].planNumber,
+          planName        : this.data.orderArray[this.data.orderIndex].planName,
+          planCount       : this.data.orderArray[this.data.orderIndex].planCount,
+          planAlreadyCount: this.data.orderArray[this.data.orderIndex].planAlreadyCount,
+        })
+        break;
+    }
+  },
+
+  // 单选
+  dangerStatusChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.radiotype]: e.detail.value
+    })
+  },
+  //多选
+  checkboxChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.checkboxtype]: e.detail
+    })
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  bindscrolltolowerFun() {
+    
+  },
+
+  //表单提交 carTaskAdd
+  formSubmit: function ({detail:{value}}) {
+    var warn = ""; //弹框时提示的内容
+    let reg = /^1[3-9]\d{9}$/;
+    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    //value.certificateNoImage = this.data.originalInvoicePhoto
+    if (value.orderId == '') {
+      warn = "请选择管桩计划订单!";
+    } else if (value.licenseNumber == '') {
+      warn = "车牌不能为空!";
+    } else if (value.licenseNumber.length < 7) {
+      warn = "请选择完整车牌号!";
+    } else if (value.licenseNumber.length == 7 && !creg.test(value.licenseNumber)) {
+      warn = "车牌号格式错误!";
+    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
+      warn = "车牌号格式错误!";
+    } else if(value.driverName == ''){
+      warn = "请输入司机姓名!";
+    } else if(value.driverMobile == ''){
+      warn = "请输入司机电话!";
+    } 
+
+    if (warn != '') {
+      app.util.checkForm(warn);
+    } else {
+      app.request.POST({
+        url: app.API.appointmentPipeAdd,
+        params: value,
+        page: this,
+        isLoadingTxt: '提交中...',
+        isSubmitting: true,
+        successFun: true
+      }).then(res => {
+        wx.showToast({
+          title: '新增成功',
+          icon: 'success',
+          duration: 2000,
+          mask:true,
+          complete: function () {
+            setTimeout(() => {
+              wx.navigateBack()
+            }, 1500) //延迟时间  
+          }
+        })
+      })
+
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 0 - 0
otherPages/pipeAppoint/add.json → pages/reservationPipe/add.json


+ 54 - 0
pages/reservationPipe/add.wxml

@@ -0,0 +1,54 @@
+<!--pages/reservationPipe/add.wxml-->
+<view class="container" style="padding-bottom:100px;">
+  <view class="height20"></view>
+  <view>
+    <form bindsubmit="formSubmit">
+      <view class="part">
+        <!-- 订单 -->
+        <van-field label="订单编号" name="orderNumber" value="{{ orderNumber }}" input-align="right" bindtap="hideKeybord" readonly></van-field>
+        <input name="orderId" value='{{ orderId }}' hidden='true' />
+        
+        <!-- 管桩计划 -->
+        <van-field label="管桩计划" required input-align="right">
+          <view slot="input" style="width: 100%;">
+            <input name="orderId" value='{{orderArray[orderIndex].id}}' hidden='true' />
+            <picker bindchange="bindPickerChange" value="{{orderIndex}}" range="{{orderArray}}" range-key="name" data-pickername='order'>
+              <view wx:if="{{orderArray[orderIndex].name}}"> {{orderArray[orderIndex].name}}</view>
+              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
+            </picker>
+          </view>
+          <view slot="right-icon">
+            <van-icon name="arrow" />
+          </view>
+        </van-field>
+
+        <van-field label="计划编号" wx:if="{{orderArray[orderIndex].id}}" name="planNumber" readonly value="{{ planNumber }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+        <van-field label="计划名称" wx:if="{{orderArray[orderIndex].id}}" name="planName" readonly value="{{ planName }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+        <van-field label="预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planCount" readonly value="{{ planCount }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+        <van-field label="已预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planAlreadyCount" readonly value="{{ planAlreadyCount }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+      </view>
+        
+      <view class="part">
+        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
+        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
+        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
+
+        <van-field label="司机姓名" required name="driverName" value="{{ driverName }}" placeholder="请填写司机姓名" input-align="right" ></van-field>
+
+        <van-field label="司机电话" required name="driverMobile" value="{{ driverMobile }}" placeholder="请填写司机电话" input-align="right" ></van-field>
+      </view>
+
+      <view class="fixedBtn submitBtn">
+        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
+        </van-button>
+      </view>
+
+    </form>
+  </view>
+</view>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 1 - 1
otherPages/chargestation/add.wxss → pages/reservationPipe/add.wxss

@@ -1,4 +1,4 @@
-/* pages/pipeAppoint/add.wxss */
+/* pages/reservationPipe/add.wxss */
 .van-field__label {
   width: 240rpx !important;
 }

+ 237 - 0
pages/reservationPipe/edit.js

@@ -0,0 +1,237 @@
+// pages/reservationPipe/edit.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    showModal: false,
+    defaultText: '请选择',
+    isSubmitting: false,
+
+    orderArray:[], //管桩计划
+    orderIndex:null,
+
+    appointmentStatusArray: [{
+      dictValue: "",
+      dictLabel: "全部状态"
+    }],
+    appointmentStatusIndex: 0,
+
+    isKeyboard: false, //是否显示车牌输入键盘
+    inputOnFocusIndex: '', //当前锁定的车号位置
+    licensePlate: '', //用于提交
+    inputPlates: '', //用于显示
+  },
+  //输入框焦点聚焦时隐藏车牌号输入框
+  hideKeybord: function () {
+    this.setData({
+      isKeyboard: false,
+      inputOnFocusIndex: ''
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    //获取详情
+    var pages = getCurrentPages();
+    var prevPage = pages[pages.length - 2];
+    let getInfo = prevPage.data.resData[options.index]
+
+    let getCarNumArr = getInfo.licenseNumber ? getInfo.licenseNumber.split('') : ''
+    let inputPlates = {};
+    for (let i = 0; i < getCarNumArr.length; i++) {
+      inputPlates['index' + i] = getCarNumArr[i]
+    }
+
+    this.setData({
+      info: getInfo,
+      orderId: getInfo.orderId,
+      inputPlates: inputPlates,
+      isNewEnergy: getCarNumArr.length > 7 ? true : false,
+      licensePlate: getInfo.licenseNumber,
+    })
+    //获取管桩计划信息
+    this.getorderData()
+
+    app.request.GET({
+      url: app.API.bizpipeplanDetail,
+      params: {'id' : getInfo.orderId},
+      page: this,
+      successFun: true
+    }).then(res => {
+      let getInfo = res.data.data;
+      this.setData({
+        planNumber      : getInfo.planNumber,
+        planName        : getInfo.planName,
+        planCount       : getInfo.planCount,
+        planAlreadyCount: getInfo.planAlreadyCount,
+      })
+    })
+  },
+
+  //选择管桩计划
+  getorderData:function(){
+    app.request.GET({
+      url: app.API.bizpipeplanList,
+      params: {},
+      page: this,
+      successFun: true
+    }).then(res => {
+      let orderList = res.data.data
+      orderList.forEach((element,index) => {
+        orderList[index].name = element.planNumber
+      });
+      this.setData({
+        orderArray: orderList,
+        orderIndex: app.util.getDicIndex(res.data.data, this.data.info.orderId, 'id')
+      })
+    })
+  },
+
+  //获取车牌号
+  licensePlate: function (e) {
+    this.setData({
+      licensePlate: e.detail.carNum
+    })
+  },
+
+  //下拉选择
+  bindPickerChange: function (e) { 
+    let { pickername } = e.target.dataset
+    let getIndex = pickername + 'Index'
+    app.util.getPickerIndex(this, getIndex, e);
+    switch (pickername) {
+      case 'order': //管桩计划
+        this.setData({
+          planNumber      : this.data.orderArray[this.data.orderIndex].planNumber,
+          planName        : this.data.orderArray[this.data.orderIndex].planName,
+          planCount       : this.data.orderArray[this.data.orderIndex].planCount,
+          planAlreadyCount: this.data.orderArray[this.data.orderIndex].planAlreadyCount,
+        })
+        break;
+    }
+  },
+
+  // 单选
+  dangerStatusChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.radiotype]: e.detail.value
+    })
+  },
+  //多选
+  checkboxChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.checkboxtype]: e.detail
+    })
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  bindscrolltolowerFun() {
+    
+  },
+
+  //表单提交 carTaskAdd
+  formSubmit: function ({detail:{value}}) {
+    var warn = ""; //弹框时提示的内容
+    let reg = /^1[3-9]\d{9}$/;
+    var xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    var creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    //value.certificateNoImage = this.data.originalInvoicePhoto
+    if (value.orderId == '') {
+      warn = "请选择管桩计划订单!";
+    } else if (value.licenseNumber == '') {
+      warn = "车牌不能为空!";
+    } else if (value.licenseNumber.length < 7) {
+      warn = "请选择完整车牌号!";
+    } else if (value.licenseNumber.length == 7 && !creg.test(value.licenseNumber)) {
+      warn = "车牌号格式错误!";
+    } else if (value.licenseNumber.length == 8 && !xreg.test(value.licenseNumber)) {
+      warn = "车牌号格式错误!";
+    } else if(value.driverName == ''){
+      warn = "请输入司机姓名!";
+    } else if(value.driverMobile == ''){
+      warn = "请输入司机电话!";
+    } 
+
+    if (warn != '') {
+      app.util.checkForm(warn);
+    } else {
+      app.request.POST({
+        url: app.API.appointmentPipeEdit,
+        params: value,
+        page: this,
+        isLoadingTxt: '提交中...',
+        isSubmitting: true,
+        successFun: true
+      }).then(res => {
+        wx.showToast({
+          title: '修改成功',
+          icon: 'success',
+          duration: 2000,
+          mask:true,
+          complete: function () {
+            setTimeout(() => {
+              wx.navigateBack()
+            }, 1500) //延迟时间  
+          }
+        })
+      })
+
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 0 - 0
otherPages/pipeAppoint/edit.json → pages/reservationPipe/edit.json


+ 1 - 0
pages/reservationPipe/edit.less

@@ -0,0 +1 @@
+/* pages/reservationPipe/edit.wxss */

+ 51 - 0
pages/reservationPipe/edit.wxml

@@ -0,0 +1,51 @@
+<!--pages/reservationPipe/edit.wxml-->
+<view class="container" style="padding-bottom:100px;">
+  <view class="height20"></view>
+  <view>
+    <form bindsubmit="formSubmit">
+      <input name="id" value='{{info.id}}' hidden='true' />
+      <view class="part">
+        <!-- 管桩计划 -->
+        <van-field label="管桩计划" required input-align="right">
+          <view slot="input" style="width: 100%;">
+            <input name="orderId" value='{{orderArray[orderIndex].id}}' hidden='true' />
+            <picker bindchange="bindPickerChange" value="{{orderIndex}}" range="{{orderArray}}" range-key="name" data-pickername='order'>
+              <view wx:if="{{orderArray[orderIndex].name}}"> {{orderArray[orderIndex].name}}</view>
+              <view wx:else class="selectPlaceholder">{{ defaultText }}</view>
+            </picker>
+          </view>
+          <view slot="right-icon">
+            <van-icon name="arrow" />
+          </view>
+        </van-field>
+        
+        <van-field label="计划编号" wx:if="{{orderArray[orderIndex].id}}" name="planNumber" readonly value="{{ planNumber }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+        <van-field label="计划名称" wx:if="{{orderArray[orderIndex].id}}" name="planName" readonly value="{{ planName }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+        <van-field label="预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planCount" readonly value="{{ planCount }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+        <van-field label="已预约次数" wx:if="{{orderArray[orderIndex].id}}" name="planAlreadyCount" readonly value="{{ planAlreadyCount }}" placeholder="选择管桩计划自动填入" input-align="right">
+        </van-field>
+      </view>
+        
+      <view class="part">
+        <van-field required label="车牌号码" readonly border="{{false}}"></van-field>
+        <car-num-input bind:setCarNum="licensePlate" isKeyboard="{{isKeyboard}}" inputOnFocusIndex="{{inputOnFocusIndex}}" inputPlates="{{inputPlates}}" isNewEnergy="{{isNewEnergy}}"></car-num-input>
+        <input name="licenseNumber" value='{{licensePlate}}' hidden='true' />
+
+        <van-field label="司机姓名" required name="driverName" value="{{ info.driverName }}" placeholder="请填写司机姓名" input-align="right" ></van-field>
+
+        <van-field label="司机电话" required name="driverMobile" value="{{ info.driverMobile }}" placeholder="请填写司机电话" input-align="right" ></van-field>
+      </view>
+
+      <view class="fixedBtn submitBtn">
+        <van-button loading="{{isSubmitting}}" round block disabled="{{isSubmitting}}" loading-text="{{isSubmitting?'提交中...':''}}" type="info" form-type="submit">确定
+        </van-button>
+      </view>
+
+    </form>
+  </view>
+</view>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 417 - 0
pages/reservationPipe/index.js

@@ -0,0 +1,417 @@
+// pages/reservationPipe/index.js
+const app = getApp()
+var startPoint
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    str:'&emsp;',
+    str2: '&ensp;',
+
+    filterWidth: 0, //获取顶部筛选宽度
+    filterHeight: 0, //获取顶部筛选高度
+    safeAreaHeight: 0, //底部安全区域的高度
+    //按钮位置参数
+    buttonTop: 0,
+    buttonLeft: 0,
+    windowHeight: '',
+    windowWidth: '',
+
+    loginStatus: wx.getStorageSync('loginStatus') ? wx.getStorageSync('loginStatus') : false,
+    roleCodeList: wx.getStorageSync('roleCodeList') ? wx.getStorageSync('roleCodeList') : '',
+    searchVal: '',
+
+    appointmentStatusArray: [{
+      dictValue: "",
+      dictLabel: "全部状态"
+    }],
+    appointmentStatusIndex: 0,
+
+    //分页
+    limit: 10,
+    requestStatu: '加载中...',
+    page: 1,
+    totalPages: 1,
+    more: false,
+    nomore: '',
+    type: '5',// 管桩预约类型
+
+    resData:[],
+
+    show: false,
+    auditFlag:true,
+    orderReason:'',//审核备注
+
+    requestStatu2: '加载中...',
+    page2: 1,
+    totalPages2: 1,
+    more2: false,
+    nomore2: '',
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    //预约审核状态
+    let treeData = app.globalData.treeArr
+    for (const element of treeData) {
+      let arrStr;
+      switch (element.dictValue) {
+        case 'appointment_status':
+          arrStr = "appointmentStatusArray";
+          break;
+      }
+      let getArray =[{
+        dictValue: "",
+        dictLabel: "全部状态"
+      }]
+      this.setData({
+        [arrStr]: getArray.concat(element.children)
+      })
+    }
+
+    this.setData({
+      safeAreaHeight: app.globalData.windowInfo.screenHeight - app.globalData.systemInfo.safeArea.bottom
+    })
+
+    // 使用选择器选择节点
+    this.getFilterHeight()
+    //获取页面高度设置新增按钮的初始位置
+    var that = this;
+    wx.getSystemInfo({
+      success: function (res) {
+        // 高度,宽度 单位为px
+        that.setData({
+          windowHeight: res.windowHeight, //屏幕宽度、高度
+          windowWidth: res.windowWidth,
+          buttonTop: res.windowHeight * 0.8 - that.data.safeAreaHeight-50, //这里定义按钮的初始位置
+          buttonLeft: res.windowWidth * 0.80, //这里定义按钮的初始位置
+        })
+      }
+    })
+  },
+
+  //获取顶部筛选区域的高度
+  getFilterHeight:function(){
+    let that = this;
+    // 使用顶部筛选高度选择器选择节点的高度
+    const query = wx.createSelectorQuery();
+    query.select('.topSeach').boundingClientRect(function (rect) {
+      if(rect){
+        that.setData({
+          filterWidth: rect.width,
+          filterHeight: rect.height,
+        });
+      }
+    }).exec();
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+    const roleCodeList = wx.getStorageSync('roleCodeList')
+    let loginStatus = wx.getStorageSync('loginStatus')
+    this.setData({
+      searchVal: '',
+      roleCodeList: roleCodeList ? roleCodeList : '',
+      loginStatus: loginStatus ? loginStatus : false
+    })
+
+    this.setData({
+      requestStatu:'加载中...',
+    })
+    if (wx.getStorageSync('loginStatus')) {
+      this.getListFun();
+    }
+  },
+
+  //下拉选择
+  bindPickerChange: function (e) { //下拉菜单
+    //方法一动态的
+    let getIndex = e.target.dataset.pickername + 'Index'
+    app.util.getPickerIndex(this, getIndex, e);
+    this.getListFun()
+  },
+
+  //搜索框请求S
+  onChange(e) {
+    this.setData({
+      searchVal: e.detail,
+    });
+  },
+  onSearch: function (event) {
+    this.setData({
+      searchVal: event.detail
+    })
+    this.getListFun();
+  },
+  onCancel: function () {
+    this.setData({})
+  },
+  toSearch: function (event) {
+    this.getListFun();
+  },
+
+  //列表
+  getListFun: function () {
+    this.setData({
+      page: 1
+    })
+    let params = {
+      current    : this.data.page,
+      size       : this.data.limit,
+      type       : this.data.type,
+      searchKey  : this.data.searchVal,
+      status     : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
+    }
+    app.request.pageFirst({
+      url: app.API.appointmentPipePage,
+      page: this,
+      params: params,
+    })
+  },
+
+  //页面跳转
+  toLink: function (e) {
+    let { url } = e.currentTarget.dataset
+    wx.navigateTo({
+      url: url
+    })
+  },
+
+  //删除
+  delFun: function (e) {
+    let _this = this
+    let { id, planNumber } = e.currentTarget.dataset
+    wx.showModal({
+      title: '提示!',
+      content: `删除管桩预约号【${planNumber}】后不可恢复。确定要删除吗?`,
+      confirmColor: '#FF5B5B',
+      success: function (res) {
+        if (res.confirm) {
+          app.request.POST({
+            url: app.API.appointmentDelete,
+            params: [{
+              id: id
+            }],
+            page: _this,
+            isLoadingTxt: '删除中...',
+            successFun: true
+          }).then(res => {
+            wx.showToast({
+              title: '删除成功',
+              icon: 'success',
+              duration: 1000,
+              mask: true
+            })
+            _this.getListFun(); //刷新列表
+          })
+        } else if (res.cancel) {
+
+        }
+      }
+    })
+  },
+
+  //取消
+  cancelFun: function (e) {
+    let _this = this
+    let { id, planNumber } = e.currentTarget.dataset
+    wx.showModal({
+      title: '提示!',
+      content: `管桩预约号【${planNumber}】,确定取消该预约吗?`,
+      confirmColor: '#FF5B5B',
+      success: function (res) {
+        if (res.confirm) {
+          app.request.POST({
+            url: app.API.appointmentCancel,
+            params: {
+              id: id
+            },
+            page: _this,
+            isLoadingTxt: '提交中...',
+            successFun: true
+          }).then(res => {
+            wx.showToast({
+              title: '取消成功',
+              icon: 'success',
+              duration: 1000,
+              mask: true
+            })
+            _this.getListFun(); //刷新列表
+          })
+        } else if (res.cancel) {
+
+        }
+      }
+    })
+  },
+
+  // 审核S
+  showPopup(e) {
+    let { id } = e.currentTarget.dataset
+    this.setData({
+      show: true,
+      orderReason: '',
+      id: id,
+    });
+  },
+  onClose() {
+    this.setData({
+      show: false,
+      auditFlag:'false',
+      orderReason:'',
+      id: ''
+    });
+  },
+  // 单选
+  dangerStatusChange: function (e) {
+    this.setData({
+      [e.currentTarget.dataset.radiotype]: e.detail.value
+    })
+    if (e.detail.value == '1') {
+      this.setData({
+        appointmentReason: ''
+      })
+    }
+  },
+  
+  //审核
+  formSubmit: function (e) {
+    let formData = e.detail.value;
+    var warn = ""; //弹框时提示的内容
+    if (formData.auditFlag=='true' && formData.arriveReason == '') {
+      warn = "审核不通过时备注不能为空!";
+    }
+    formData.auditFlag = formData.auditFlag=='true'
+    if (warn != '') {
+      app.util.checkForm(warn);
+    } else {
+      app.request.POST({
+        url: app.API.bizloadarriveAudit,
+        params: formData,
+        page: this,
+        isLoadingTxt: '审核中...',
+        successFun: true
+      }).then(res => {
+        wx.showToast({
+          title: '审核成功',
+          icon: 'success',
+          duration: 1000,
+          mask: true
+        })
+        this.onClose()
+        this.getListFun(); //刷新列表
+      })
+    }
+  },
+  // 审核E
+
+  //申请
+  changeAdd() {
+    wx.navigateTo({
+      url: 'add'
+    })
+  },
+
+  
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+    this.setData({
+      searchVal: ''
+    })
+    if (wx.getStorageSync('loginStatus')) {
+      this.getListFun();
+    } else {
+      wx.stopPullDownRefresh();
+    }
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    this.data.page++;
+    let params = {
+      current     : this.data.page,
+      size        : this.data.limit,
+      type        : this.data.type,
+      searchKey   : this.data.searchVal,
+      status      : this.data.appointmentStatusArray[this.data.appointmentStatusIndex].dictValue
+    }
+    app.request.pageOther({
+      url: app.API.bizloadarrivePage,
+      page: this,
+      params: params,
+      loadType: true //加载类型,是否是下拉加载
+    });
+  },
+
+
+  //以下是按钮拖动事件
+  buttonStart: function (e) {
+    startPoint = e.touches[0] //获取拖动开始点
+  },
+  buttonMove: function (e) {
+    var endPoint = e.touches[e.touches.length - 1] //获取拖动结束点
+    //计算在X轴上拖动的距离和在Y轴上拖动的距离
+    var translateX = endPoint.clientX - startPoint.clientX
+    var translateY = endPoint.clientY - startPoint.clientY
+    startPoint = endPoint //重置开始位置
+    var buttonTop = this.data.buttonTop + translateY
+    var buttonLeft = this.data.buttonLeft + translateX
+    //判断是移动否超出屏幕
+    if (buttonLeft + 60 >= this.data.windowWidth) {
+      buttonLeft = this.data.windowWidth - 60;
+    }
+    if (buttonLeft <= 0) {
+      buttonLeft = 0;
+    }
+    if (buttonTop <= this.data.filterHeight) {
+      buttonTop = this.data.filterHeight
+    }
+    if (buttonTop + 60 + 48 + this.data.safeAreaHeight >= this.data.windowHeight) {
+      buttonTop = this.data.windowHeight - 60 - 48 - this.data.safeAreaHeight;
+    }
+    this.setData({
+      buttonTop: buttonTop,
+      buttonLeft: buttonLeft
+    })
+  },
+  buttonEnd: function (e) {},
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 0 - 0
otherPages/pipeAppoint/index.json → pages/reservationPipe/index.json


+ 1 - 1
otherPages/chargestation/index.less → pages/reservationPipe/index.less

@@ -1,4 +1,4 @@
-/* pages/pipeAppoint/index.wxss */
+/* pages/reservationPipe/index.wxss */
 page{
   --cell-vertical-padding:12rpx;
   --cell-horizontal-padding:0;

+ 113 - 0
pages/reservationPipe/index.wxml

@@ -0,0 +1,113 @@
+<!--pages/reservationPipe/index.wxml-->
+<view class="container listMain">
+  <block wx:if="{{loginStatus}}">
+    <view url="" class="addBtn" catch:tap="changeAdd" hover-class="none" catchtouchmove="buttonMove" bindtouchstart="buttonStart" bindtouchend="buttonEnd" style="top:{{buttonTop}}px;left:{{buttonLeft}}px;" wx:if="{{roleCodeList == 'driver'}}">
+      <van-icon name="plus" size="30px" />
+    </view>
+    <van-sticky>
+      <view class="topSeach">
+        <view class="rightBox" style="position: relative;">
+          <van-search value="{{ searchVal }}" shape="round" placeholder="查询计划单号/车牌号码" bind:change="onChange" bind:search="onSearch" bind:cancel="onCancel" use-action-slot>
+            <view slot="label" style="width:160rpx;margin-right: 20rpx;">
+                  <van-field label="" input-align="center" style="width: 100%;">
+                    <view slot="input" style="width: 100%;">
+                      <input name="status" value='{{appointmentStatusArray[appointmentStatusIndex].dictValue}}' hidden='true' />
+                      <picker bindchange="bindPickerChange" value="{{appointmentStatusIndex}}" range="{{appointmentStatusArray}}" range-key="dictLabel" data-pickername='appointmentStatus'>
+                        <view wx:if="{{appointmentStatusArray[appointmentStatusIndex].dictLabel}}" style="font-size: 12px;white-space: nowrap;"> {{appointmentStatusArray[appointmentStatusIndex].dictLabel}}</view>
+                        <view wx:else class="selectPlaceholder" style="font-size: 12px;white-space: nowrap;">{{defaultText}}</view>
+                      </picker>
+                    </view>
+                    <view slot="right-icon">
+                      <van-icon name="arrow-down" />
+                    </view>
+                  </van-field>
+                </view>
+            <van-icon slot="action" class-prefix="iconfont" name="arrow3-right_fill" size="28px" color="#4B70EA" bind:tap="toSearch" />
+          </van-search>
+        </view>
+      </view>
+    </van-sticky>
+
+    <view class="width710">
+      <block wx:if="{{!requestStatu}}">
+        <block wx:if="{{resData.length>0}}">
+          <block wx:for="{{resData}}" wx:key="index">
+            <navigator url="info?id={{item.id}}&planNumber={{item.planNumber}}&index={{index}}" class="listItem">
+              <view class="title van-ellipsis">
+                <van-icon class='iconfont' name='/images/codeNumber.png' size="36rpx"></van-icon>
+                <text>{{item.planNumber}}</text>
+                <text wx:if="{{item.status}}" class="status status{{item.status}}">{{item.statusName}}</text>
+              </view>
+              <view class="info">
+                <text decode="{{true}}">司机:{{item.driverName?item.driverName:'未填写'}} / {{item.driverMobile?item.driverMobile:'未填写'}}</text>
+              </view>
+              <view class="time"><text>出入场时间:{{item.enterTime?filters.tosubStr(item.enterTime,0,16):''}} ~ {{item.leaveTime?filters.tosubStr(item.leaveTime,0,16):''}}</text></view>
+
+              <view class="bottomBtn" wx:if="{{ roleCodeList == 'driver' && (item.status == '2' || item.status == '4') }}">
+                <van-button type="info" size="small" data-url="edit?index={{index}}" catchtap="toLink" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && (item.status == '2' || item.status == '4') }}">修改</van-button>
+
+                <van-button type="danger" size="small" data-id="{{item.id}}" data-plan-number="{{item.planNumber}}" catchtap="delFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && (item.status == '2' || item.status == '4') }}">删除</van-button>
+
+                <van-button type="warning" size="small" data-id="{{item.id}}" data-plan-number="{{item.planNumber}}" catchtap="cancelFun" style="margin-right: 20rpx;" wx:if="{{ roleCodeList == 'driver' && item.status == '4' }}">取消</van-button>
+              </view>
+            </navigator>
+          </block>
+          <!-- 底部加载动画 -->
+          <view class='more'>
+            <block wx:if="{{more}}">
+              <van-loading size="24px" color="#1989fa">加载中...</van-loading>
+            </block>
+            <block wx:else>{{nomore}}</block>
+          </view>
+          <view style="height: 200rpx;"> </view>
+        </block>
+        <block wx:else>
+          <van-empty description="未搜索到预约记录" image="/images/null5.png" />
+        </block>
+      </block>
+    </view>
+  </block>
+  <block wx:else>
+    <view>
+      <van-empty image="/images/loginNull.png">
+        <view slot="description" style="text-align: center;">
+          <text style="display:block;margin-bottom: 20rpx;">您还未登录,登录后查看更多~</text>
+          <van-button type="info" bindtap="toLogin">立即登录</van-button>
+        </view>
+      </van-empty>
+    </view>
+  </block>
+</view>
+
+<!-- 弹窗 -->
+<van-popup show="{{ show }}" position="bottom" round closeable custom-style="width:100%;padding:0rpx 30rpx 160rpx;" bind:close="onClose">
+  <view style="height: 90rpx;line-height: 90rpx;text-align: center;">审核</view>
+  <form bindsubmit="formSubmit">
+    <view class="part">
+      <view class="height20"> </view>
+      <view class="height20"> </view>
+      <input name="id" value='{{id}}' hidden='true' />
+      <van-field label="审核结果" name="auditFlag" value="{{ auditFlag }}" required input-align="right" class="radioHeight fieldAutoHeight">
+        <view slot="input" class="radioHeightBx">
+          <radio-group class="radio-group" bindchange="dangerStatusChange" data-radioType="auditFlag">
+            <label class="radio">
+              <radio value="true" checked="{{auditFlag=='true'}}" color="#4B70EA" />通过
+            </label>
+            <label class="radio">
+              <radio value="false" checked="{{auditFlag=='false'}}" color="#4B70EA" />不通过
+            </label>
+          </radio-group>
+        </view>
+      </van-field>
+      <van-field label="审核备注" required="{{auditFlag=='false'}}" name="arriveReason" value="{{ arriveReason }}" type="textarea" input-align="right" placeholder="请输入审核备注" autosize></van-field>
+    </view>
+
+    <view class="submitBtn">
+      <view style="padding-top: 60rpx;">
+        <van-button block round type="info" form-type="submit" color="#0396FF">确认</van-button>
+      </view>
+    </view>
+  </form>
+</van-popup>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 1 - 1
otherPages/pipeAppoint/index.wxss → pages/reservationPipe/index.wxss

@@ -1,4 +1,4 @@
-/* pages/pipeAppoint/index.wxss */
+/* pages/reservationPipe/index.wxss */
 page {
   --cell-vertical-padding: 12rpx;
   --cell-horizontal-padding: 0;

+ 143 - 0
pages/reservationPipe/info.js

@@ -0,0 +1,143 @@
+// pages/reservationPipe/info.js
+const app = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    info: {},
+
+    appointmentStatusArray: [{
+      dictValue: "",
+      dictLabel: "全部状态"
+    }],
+    appointmentStatusIndex: 0,
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    //预约审核状态
+    let treeData = app.globalData.treeArr
+    for (const element of treeData) {
+      let arrStr;
+      switch (element.dictValue) {
+        case 'appointment_status':
+          arrStr = "appointmentStatusArray";
+          break;
+      }
+      let getArray =[{
+        dictValue: "",
+        dictLabel: "全部状态"
+      }]
+      this.setData({
+        [arrStr]: getArray.concat(element.children)
+      })
+    }
+    //获取详情
+    var pages = getCurrentPages();
+    var prevPage = pages[pages.length - 2];
+    let getInfo = prevPage.data.resData[options.index]
+  
+    this.setData({
+      info     : getInfo
+    })
+
+    app.request.GET({
+      url: app.API.bizpipeplanDetail,
+      params: {'id' : getInfo.orderId},
+      page: this,
+      successFun: true
+    }).then(res => {
+      let getInfo = res.data.data;
+      this.setData({
+        planNumber      : getInfo.planNumber,
+        planName        : getInfo.planName,
+        planCount       : getInfo.planCount,
+        planAlreadyCount: getInfo.planAlreadyCount,
+      })
+    })
+    //this.getInfo(options.id)
+  },
+
+  // //查询详情
+  // getInfo: function (id) {
+  //   app.request.GET({
+  //     url: app.API.bizloadarriveDetail,
+  //     page: this,
+  //     params: {
+  //       'id': id
+  //     },
+  //     successFun: true
+  //   }).then(res => {
+  //     let getInfo = res.data.data;
+  //     //司机回签图片
+  //     let fileList = []
+  //     if(getInfo.unloadImg){
+  //       let unloadImgArr = getInfo.unloadImg.split(',')
+  //       unloadImgArr.forEach(element => {
+  //         fileList.push({
+  //           url: app.host.BASEIMG_URL+element,
+  //           isImage:true
+  //         })
+  //       });
+  //     }
+  //     this.setData({
+  //       info              : getInfo,
+  //       fileList          : fileList,
+  //       accessControlAuth : JSON.parse(getInfo.accessControlAuth)
+  //     })
+  //   })
+  // },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 0 - 0
otherPages/pipeAppoint/info.json → pages/reservationPipe/info.json


+ 1 - 0
pages/reservationPipe/info.less

@@ -0,0 +1 @@
+/* pages/reservationPipe/info.wxss */

+ 24 - 0
pages/reservationPipe/info.wxml

@@ -0,0 +1,24 @@
+<!--pages/reservationPipe/info.wxml-->
+<view class="container">
+  <view class="part">
+    <van-field label="管桩计划单号" input-align="right" value="{{info.planNumber }}" readonly></van-field>
+    <van-field label="- 计划名称" input-align="right" value="{{ planName }}" readonly></van-field>
+    <van-field label="- 预约次数" input-align="right" value="{{ planCount }}" readonly></van-field>
+    <van-field label="- 已预约次数" input-align="right" value="{{ planAlreadyCount }}" readonly></van-field>
+
+    <van-field label="车牌号" input-align="right" value="{{ info.licenseNumber }}" readonly></van-field>
+    <van-field label="司机姓名" input-align="right" value="{{ info.driverName }}" readonly></van-field>
+    <van-field label="司机电话" input-align="right" value="{{ info.driverMobile }}" readonly></van-field>
+    <van-field label="入场时间" input-align="right" value="{{ info.enterTime }}" readonly></van-field>
+    <van-field label="出场时间" input-align="right" value="{{ info.leaveTime }}" readonly></van-field>
+    <!-- <van-field label="创建人" input-align="right" value="{{info.createUserName}}" readonly></van-field>
+    <van-field label="创建时间" input-align="right" value="{{info.createTime}}" readonly></van-field> -->
+    <van-field label="预约状态" input-align="right" readonly>
+      <text slot="button" class="status status{{info.status}}">{{filters.codeAnalysis(appointmentStatusArray, info.status, 'dictValue', 'dictLabel')}} 
+      </text>
+    </van-field>
+  </view>
+  <view style="height: 50px;"></view>
+</view>
+
+<wxs module="filters" src="../../utils/filter.wxs"></wxs>

+ 0 - 0
pages/temporary/add.js → pages/reservationTemp/add.js


+ 0 - 0
pages/temporary/add.json → pages/reservationTemp/add.json


+ 0 - 0
pages/temporary/add.less → pages/reservationTemp/add.less


+ 0 - 0
pages/temporary/add.wxml → pages/reservationTemp/add.wxml


+ 0 - 0
pages/temporary/add.wxss → pages/reservationTemp/add.wxss


+ 0 - 0
pages/temporary/edit.js → pages/reservationTemp/edit.js


+ 0 - 0
pages/temporary/edit.json → pages/reservationTemp/edit.json


+ 0 - 0
pages/temporary/edit.less → pages/reservationTemp/edit.less


+ 0 - 0
pages/temporary/edit.wxml → pages/reservationTemp/edit.wxml


+ 0 - 0
pages/temporary/edit.wxss → pages/reservationTemp/edit.wxss


+ 2 - 2
pages/workstand/index.js

@@ -22,9 +22,9 @@ Page({
 
       {url:'/pages/reservationMan/index',flowName:'预约管理',flowIcon:'',iconfont:'yuyueguanli2',color:"#FF6160",role:["bizAdmin"]},
       
-      {url:'/otherPages/pipeAppoint/index',flowName:'管桩预约',flowIcon:'',iconfont:'pipeAppoint',color:"#20A0E3",role:["driver", "bizAdmin"]},
+      // {url:'/pages/reservationPipe/index',flowName:'管桩预约',flowIcon:'',iconfont:'reservationPipe',color:"#20A0E3",role:["driver", "bizAdmin"]},
       
-      {url:'/otherPages/chargestation/index',flowName:'充电桩预约',flowIcon:'',iconfont:'chargestation',color:"#20A0E3",role:["driver", "bizAdmin"]},
+      // {url:'/pages/reservationChargestation/index',flowName:'充电桩预约',flowIcon:'',iconfont:'chargestation',color:"#20A0E3",role:["driver", "bizAdmin"]},
 
       {url:'/pages/deliveryConfirm/index',flowName:'发货确认',flowIcon:'',iconfont:'daifahuo1',color:"#FF9237",role:["send"]},
 

+ 2 - 2
utils/api.js

@@ -60,8 +60,8 @@ const api = {
 
   //管桩预约 /biz/bizpipeplan/page
   'appointmentPipePage': '/biz/bizappointmentrecord/getPipePage', // GET 分页列表
-  'appointmentPipeAdd': '/biz/bizappointmentrecord/addPipeAppoint', // POST 新增预约  
-  'appointmentPipeEdit': '/biz/bizappointmentrecord/editPipeAppoint', // POST 编辑预约
+  'appointmentPipeAdd': '/biz/bizappointmentrecord/addreservationPipe', // POST 新增预约  
+  'appointmentPipeEdit': '/biz/bizappointmentrecord/editreservationPipe', // POST 编辑预约
   'bizpipeplanList': '/biz/bizpipeplan/getList', // GET 管桩计划单列表
   'bizpipeplanDetail': '/biz/bizpipeplan/detail', // GET 管桩计划详情
 

+ 1 - 1
utils/iconfont.wxss

@@ -294,7 +294,7 @@
   content: "\e7a6";
 }
 
-.iconfont-pipeAppoint:before {
+.iconfont-reservationPipe:before {
   content: "\e7a6";
 }