瀏覽代碼

对接提交工单接口,我的申请接口,申请详情接口

xyg 2 年之前
父節點
當前提交
3d3ec47704

+ 2 - 2
nngkxxdp/src/main/java/com/example/nngkxxdp/program/controller/WorkerMiniController.java

@@ -49,7 +49,7 @@ public class WorkerMiniController {
         if (ObjectUtil.isEmpty(status)){
             status = 0;
         }
-        return SendUtil.send(true, service.myOrder(id,status));
+        return SendUtil.send(true, ConstStr.RESULT_SUCCESS, service.myOrder(id,status));
     }
 
     @GetMapping("/orderInfo")
@@ -57,7 +57,7 @@ public class WorkerMiniController {
         if (StrUtil.isEmpty(id)){
             return SendUtil.send(false, ConstStr.REQUEST_WRONGPARAMS);
         }
-        return SendUtil.send(true, service.myOrderInfo(id));
+        return SendUtil.send(true, ConstStr.RESULT_SUCCESS, service.myOrderInfo(id));
     }
 
     @PostMapping("/closeOrder")

+ 1 - 1
nngkxxdp/src/main/java/com/example/nngkxxdp/program/entity/SRepair.java

@@ -23,7 +23,7 @@ public class SRepair implements Serializable {
     
     private String repairPic;
     
-    private Integer phoneNum;
+    private String phoneNum;
     
     private Integer status;
     

+ 65 - 1
nnzwminiapp/pagesPublic/pages/work-order-detail/work-order-detail.js

@@ -3,6 +3,11 @@ import {
     imgUrl
 } from "../api/request"
 
+import {
+    baseUrl,
+    request
+} from "../../../pages/api/canteen-request.js"
+
 Page({
 
     /**
@@ -10,7 +15,7 @@ Page({
      */
     data: {
         imgUrl: imgUrl,
-        isWorker: false,
+        isUser: true,
         colorComplete: '#508FF4',
         colorIncomplete: '#999999',
         complete: true,
@@ -20,7 +25,66 @@ Page({
      * 生命周期函数--监听页面加载
      */
     onLoad(options) {
+        console.info(options);
+        let that = this;
+        that.setData({
+            isUser: options.isuser
+        });
 
+        wx.request({
+            url: baseUrl + '/mini/worker/orderInfo',
+            method: 'GET',
+            header: {
+                'mini-token': wx.getStorageSync('token')
+            },
+            data: {
+                'id': options.id
+            },
+            dataType: 'json',
+            success: function (res) {
+                console.info(res)
+                let data = res.data.data;
+                that.setData({
+                    type: data.repairType,
+                    address: data.maintenanceAddress,
+                    phone: data.phoneNum,
+                    arriveTime: data.appointmentTime,
+                    description: data.userDescription,
+                    image: data.repairPic
+                });
+                if (data.status == 0) {
+                    that.setData({
+                        checked2: '',
+                        checked3: '',
+                        checked4: '',
+                    });
+                } else if (data.status == 1) {
+                    that.setData({
+                        checked2: 'checked',
+                        checked3: '',
+                        checked4: '',
+                    });
+                } else if (data.status == 2) {
+                    that.setData({
+                        checked2: 'checked',
+                        checked3: 'checked',
+                        checked4: '',
+                    });
+                } else if (data.status == 3) {
+                    that.setData({
+                        checked2: 'checked',
+                        checked3: 'checked',
+                        checked4: 'checked',
+                    });
+                } else {
+                    that.setData({
+                        checked2: 'checked',
+                        checked3: 'checked',
+                        checked4: 'checked',
+                    });
+                }
+            }
+        });
     },
 
     /**

+ 43 - 28
nnzwminiapp/pagesPublic/pages/work-order-detail/work-order-detail.wxml

@@ -29,59 +29,74 @@
         </view>
         <view class="item-row" style="align-items: flex-start;">
             <text class="item-label">图片:</text>
-            <view class="item-image-box">
-                <image src="" mode="" />
-                <image src="" mode="" />
+            <view class="item-image-box" wx:for="{{image}}" wx:key="index" wx:for-item="item">
+                <image class="item-image" src="{{item}}" mode="" />
             </view>
         </view>
     </view>
 </view>
 
-<view class="progressBox" wx:if="{{isWorker}}">
+<view class="progressBox" wx:if="{{isUser}}">
     <view class="progress-head">
         <image class="head-image" src="/pages/images/hourglass.png" mode="" />
         <text class="head-title">维修进度</text>
     </view>
     <view class="progress-detail">
         <view class="detail-row">
-            <view class="circle checked">
-                <view class="inner-circle"></view>
+            <view class="detail-left">
+                <view class="circle checked">
+                    <view class="inner-circle"></view>
+                </view>
+                <view class="vertical-line checked"></view>
+                <view class="step-name checked">发起工单</view>
+            </view>
+            <view class="detail-right">
+                <image class="icon-complete" src="/pages/images/complete.png" mode="" />
+                <view class="status-text checked">发起成功</view>
             </view>
-            <view class="vertical-line checked"></view>
-            <view class="step-name checked">发起工单</view>
-            <image class="icon-complete" src="/pages/images/complete.png" mode="" />
-            <view class="status-text checked">发起成功</view>
         </view>
         <view class="detail-row">
-            <view class="circle">
-                <view class="inner-circle"></view>
+            <view class="detail-left">
+                <view class="circle {{checked2}}">
+                    <view class="inner-circle"></view>
+                </view>
+                <view class="vertical-line {{checked2}}"></view>
+                <view class="step-name {{checked2}}">管理员审核</view>
+            </view>
+            <view class="detail-right">
+                <image class="icon-complete" wx:if="{{checked2}}" src="/pages/images/complete.png" mode="" />
+                <view class="status-text {{checked2}}">待审核</view>
             </view>
-            <view class="vertical-line"></view>
-            <view class="step-name">管理员审核</view>
-            <image class="icon-complete" src="/pages/images/complete.png" mode="" />
-            <view class="status-text">待审核</view>
         </view>
         <view class="detail-row">
-            <view class="circle">
-                <view class="inner-circle"></view>
+            <view class="detail-left">
+                <view class="circle {{checked3}}">
+                    <view class="inner-circle"></view>
+                </view>
+                <view class="vertical-line {{checked3}}"></view>
+                <view class="step-name {{checked3}}">工人上门维修</view>
+            </view>
+            <view class="detail-right">
+                <image class="icon-complete" wx:if="{{checked3}}" src="/pages/images/complete.png" mode="" />
+                <view class="status-text {{checked3}}">待上门</view>
             </view>
-            <view class="vertical-line"></view>
-            <view class="step-name">工人上门维修</view>
-            <image class="icon-complete" src="/pages/images/complete.png" mode="" />
-            <view class="status-text">待上门</view>
         </view>
         <view class="detail-row">
-            <view class="circle">
-                <view class="inner-circle"></view>
+            <view class="detail-left">
+                <view class="circle {{checked4}}">
+                    <view class="inner-circle"></view>
+                </view>
+                <view class="step-name {{checked4}}">用户确认签字</view>
+            </view>
+            <view class="detail-right">
+                <image class="icon-complete" wx:if="{{checked4}}" src="/pages/images/complete.png" mode="" />
+                <view class="status-text {{checked4}}">待确认</view>
             </view>
-            <view class="step-name">用户确认签字</view>
-            <image class="icon-complete" src="/pages/images/complete.png" mode="" />
-            <view class="status-text">待确认</view>
         </view>
     </view>
 </view>
 
-<view class="progressBox" wx:else="{{isWorker}}">
+<view class="progressBox" wx:else="{{isUser}}">
     <view class="progress-head">
         <image class="head-image2" src="/pages/images/worker.png" mode="" />
         <text class="head-title2">维修结果填报</text>

+ 14 - 2
nnzwminiapp/pagesPublic/pages/work-order-detail/work-order-detail.wxss

@@ -107,7 +107,20 @@ page {
 }
 
 .detail-row {
-    display: inline-flex;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: space-between;
+}
+
+.detail-left {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+}
+
+.detail-right {
+    display: flex;
     flex-direction: row;
     align-items: center;
 }
@@ -166,7 +179,6 @@ page {
 .icon-complete {
     width: 23rpx;
     height: 23rpx;
-    margin-left: 290rpx;
 }
 
 .status-text {

+ 163 - 42
nnzwminiapp/pagesPublic/pages/work-order/work-order.js

@@ -1,6 +1,7 @@
 // pagesPublic/pages/work-order/work-order.js
 var dateTimePicker = require('../../../utils/dateTimePicker');
 const FormData = require('../../pages/menu/formData.js');
+const twoHours = 7200000;
 
 import {
     baseUrl,
@@ -22,7 +23,7 @@ Page({
         startYear: 2000,
         endYear: 2250,
         typeList: ['报修类型一', '报修类型二', '报修类型三'],
-        list: [{ type: '维修类型一', address: '食堂二楼楼梯地砖', time: '2022-03-15 13:45' }, { type: '维修类型一', address: '食堂二楼楼梯地砖', time: '2022-03-15 13:45' }],
+        list: [],
         tempFileList: []
     },
 
@@ -31,10 +32,10 @@ Page({
      */
     onLoad(options) {
         // 获取完整的年月日 时分秒,以及默认显示的数组
-        var obj = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear);
+        let obj = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear);
         // 精确到分的处理,将数组的秒去掉
-        // var lastArray = obj.dateTimeArray.pop();
-        // var lastTime = obj.dateTime.pop();
+        let lastArray = obj.dateTimeArray.pop();
+        let lastTime = obj.dateTime.pop();
         this.setData({
             dateTime: obj.dateTime,
             dateTimeArray: obj.dateTimeArray
@@ -93,6 +94,9 @@ Page({
         this.setData({
             currentIndex: e.currentTarget.dataset.idx
         });
+        if (e.currentTarget.dataset.idx == 1) {
+            this.loadMyApplication();
+        }
     },
 
     /**
@@ -109,6 +113,9 @@ Page({
             this.setData({
                 currentIndex: e.detail.current
             });
+            if (e.detail.current == 1) {
+                this.loadMyApplication();
+            }
         }
     },
 
@@ -150,6 +157,14 @@ Page({
             });
             return;
         }
+        let tempList = this.data.tempFileList;
+        if (!tempList || tempList.length == 0) {
+            wx.showToast({
+                title: '请上传报修图片',
+                icon: 'error'
+            });
+            return;
+        }
         if (!e.detail.value.phone) {
             wx.showToast({
                 title: '请输入联系电话',
@@ -157,51 +172,109 @@ Page({
             });
             return;
         }
-        if (!e.detail.value.arriveTime) {
+        let phone = e.detail.value.phone;
+        let reg = /^((0\d{2,3}(-)?\d{7,8})|(1[3-9]\d{9}))$/;
+        if (!reg.test(phone)) {
             wx.showToast({
-                title: '请选择上门时间',
+                title: '联系电话格式有误',
                 icon: 'error'
             });
             return;
         }
-        let tempList = this.data.tempFileList;
-        if (!tempList || tempList.length == 0) {
+        if (!e.detail.value.arriveTime) {
             wx.showToast({
-                title: '请上传报修图片',
+                title: '请选择上门时间',
                 icon: 'error'
             });
             return;
         }
-
-        let formData = new FormData();
-        formData.append('repairType', e.detail.value.type);
-        formData.append('userDescription', e.detail.value.description);
-        formData.append('phoneNum', e.detail.value.phone);
-        formData.append('appointmentTime', e.detail.value.arriveTime);
-        formData.append('maintenanceAddress', e.detail.value.address);
-        for (let i in tempList) {
-            formData.appendFile('files', tempList[i]);
-        }
-        let data = formData.getData();
-        request({
-            url: '/mini/worker/addOrder',
-            method: 'POST',
-            data: data.buffer,
-            contentType: data.contentType
-        }).then(res => {
-            if (res.data.result) {
-                wx.showToast({
-                    title: '提交成功',
-                    icon: 'success'
-                });
-                wx.navigateBack();
-            } else {
-                wx.showToast({
-                    title: '提交失败',
-                    icon: 'error'
-                });
+        let arriveTime = e.detail.value.arriveTime;
+        let t = new Date(arriveTime).getTime();
+        let now = new Date().getTime();
+        // 判断预约时间是否在两小时后
+        if (t - now < twoHours) {
+            wx.showModal({
+                content: '您预约的上门时间过于紧急,确定继续预约?',
+                complete: (res) => {
+                    if (res.cancel) {
+                        return;
+                    }
+                    if (res.confirm) {
+                        let formData = new FormData();
+                        formData.append('repairType', e.detail.value.type);
+                        formData.append('userDescription', e.detail.value.description);
+                        formData.append('phoneNum', e.detail.value.phone);
+                        formData.append('appointmentTime', e.detail.value.arriveTime);
+                        formData.append('maintenanceAddress', e.detail.value.address);
+                        formData.append('userId', wx.getStorageSync('userid'));
+                        for (let i in tempList) {
+                            formData.appendFile('files', tempList[i]);
+                        }
+                        let data = formData.getData();
+                        request({
+                            url: '/mini/worker/addOrder',
+                            method: 'POST',
+                            data: data.buffer,
+                            contentType: data.contentType
+                        }).then(res => {
+                            console.info(res)
+                            if (res.result) {
+                                wx.showToast({
+                                    title: '提交成功',
+                                    icon: 'success',
+                                    mask: true,
+                                });
+                                setTimeout(() => {
+                                    wx.navigateBack();
+                                }, 1500);
+                            } else {
+                                wx.showToast({
+                                    title: '提交失败',
+                                    icon: 'error',
+                                    mask: true
+                                });
+                            }
+                        });
+                    }
+                }
+            });
+        } else {
+            let formData = new FormData();
+            formData.append('repairType', e.detail.value.type);
+            formData.append('userDescription', e.detail.value.description);
+            formData.append('phoneNum', e.detail.value.phone);
+            formData.append('appointmentTime', e.detail.value.arriveTime);
+            formData.append('maintenanceAddress', e.detail.value.address);
+            formData.append('userId', wx.getStorageSync('userid'));
+            for (let i in tempList) {
+                formData.appendFile('files', tempList[i]);
             }
-        });
+            let data = formData.getData();
+            request({
+                url: '/mini/worker/addOrder',
+                method: 'POST',
+                data: data.buffer,
+                contentType: data.contentType
+            }).then(res => {
+                console.info(res)
+                if (res.result) {
+                    wx.showToast({
+                        title: '提交成功',
+                        icon: 'success',
+                        mask: true,
+                    });
+                    setTimeout(() => {
+                        wx.navigateBack();
+                    }, 1500);
+                } else {
+                    wx.showToast({
+                        title: '提交失败',
+                        icon: 'error',
+                        mask: true
+                    });
+                }
+            });
+        }
     },
 
     /**
@@ -246,13 +319,61 @@ Page({
      */
     toDetail(e) {
         wx.navigateTo({
-            url: '../work-order-detail/work-order-detail',
+            url: '../work-order-detail/work-order-detail?id=' + e.currentTarget.dataset.id + '&isuser=' + e.currentTarget.dataset.isuser
         });
     },
 
-    toRepairDetail() {
-        wx.navigateTo({
-            url: '../work-order-detail/work-order-detail',
+    /**
+     * 加载我的申请
+     */
+    loadMyApplication() {
+        let that = this;
+        // let formData = new FormData();
+        // formData.append('id', wx.getStorageSync('userid'));
+        // let data = formData.getData();
+        // request({
+        //     url: '/mini/worker/myOrder',
+        //     method: 'GET',
+        //     data: data.buffer,
+        //     contentType: data.contentType
+        // }).then(res => {
+        //     console.info(res)
+        //     if (res.result) {
+        //     } else {
+        //         wx.showToast({
+        //             title: '加载失败',
+        //             icon: 'error',
+        //             mask: true
+        //         });
+        //     }
+        // });
+        wx.request({
+            url: baseUrl + '/mini/worker/myOrder',
+            method: 'GET',
+            header: {
+                'mini-token': wx.getStorageSync('token')
+            },
+            data: {
+                'id': wx.getStorageSync('userid')
+            },
+            dataType: 'json',
+            success: function (res) {
+                console.info(res)
+                let data = res.data.data;
+                for (let i in data) {
+                    if (data[i].status == 2) {
+                        data[i].image = 'status-complete.png';
+                    } else if (data[i].status == -1) {
+                        data[i].image = 'status-incomplete.png';
+                    } else {
+                        data[i].image = 'status-repair.png';
+                    }
+                }
+                that.setData({
+                    list: data
+                });
+            }
         });
     }
+
 })

+ 6 - 6
nnzwminiapp/pagesPublic/pages/work-order/work-order.wxml

@@ -45,7 +45,7 @@
                     <view class="form-item">
                         <label for="" class="form-item-label">预约上门时间:</label>
                         <picker class="form-item-picker" mode="multiSelector" value="{{dateTime}}" bindchange="changeDateTime" bindcolumnchange="changeDateTimeColumn" range="{{dateTimeArray}}">
-                            <input type="text" class="form-input" style="width: 100%;" name="arriveTime" disabled="true" placeholder="请选择上门时间" placeholder-style="color:#999999" value="{{dateTimeArray[0][dateTime[0]]}}-{{dateTimeArray[1][dateTime[1]]}}-{{dateTimeArray[2][dateTime[2]]}} {{dateTimeArray[3][dateTime[3]]}}:{{dateTimeArray[4][dateTime[4]]}}:{{dateTimeArray[5][dateTime[5]]}}" />
+                            <input type="text" class="form-input" style="width: 100%;" name="arriveTime" disabled="true" placeholder="请选择上门时间" placeholder-style="color:#999999" value="{{dateTimeArray[0][dateTime[0]]}}-{{dateTimeArray[1][dateTime[1]]}}-{{dateTimeArray[2][dateTime[2]]}} {{dateTimeArray[3][dateTime[3]]}}:{{dateTimeArray[4][dateTime[4]]}}:00" />
                         </picker>
                         <image class="form-icon" src="/pages/images/arrow.png" alt="" bindtap="pickArriveTime"></image>
                     </view>
@@ -55,19 +55,19 @@
         </swiper-item>
         <swiper-item class="swiperTtemBox">
             <scroll-view class="viewBox" wx:for="{{list}}" wx:for-item="item" wx:key="index">
-                <view class="item" bindtap="toDetail">
-                    <image class="item-status" src="/pages/images/status-complete.png" mode="" />
+                <view class="item" data-id="{{item.id}}" data-isuser="true" bindtap="toDetail">
+                    <image class="item-status" src="/pages/images/{{item.image}}" mode="" />
                     <view class="item-row">
                         <text class="item-label">报修类型:</text>
                         <text class="item-value">{{item.type}}</text>
                     </view>
                     <view class="item-row">
                         <text class="item-label">维修地址:</text>
-                        <text class="item-value">{{item.address}}</text>
+                        <text class="item-value">{{item.maintenanceAddress}}</text>
                     </view>
                     <view class="item-row">
                         <text class="item-label">预约时间:</text>
-                        <text class="item-value">{{item.time}}</text>
+                        <text class="item-value">{{item.appointmentTime}}</text>
                     </view>
                 </view>
             </scroll-view>
@@ -89,7 +89,7 @@
     <swiper class="swiperBox" bindchange="pagechange" current="{{currentIndex}}">
         <swiper-item class="swiperTtemBox">
             <scroll-view class="viewBox" wx:for="{{list}}" wx:for-item="item" wx:key="index">
-                <view class="item" bindtap="toRepairDetail">
+                <view class="item" data-id="{{item.id}}" data-isuser="false"  bindtap="toDetail">
                     <view class="item-row">
                         <text class="item-label">报修类型:</text>
                         <text class="item-value">{{item.type}}</text>