Bladeren bron

APP代码提交

miaofuhao 3 jaren geleden
bovenliggende
commit
cbc2e46665
21 gewijzigde bestanden met toevoegingen van 2020 en 96 verwijderingen
  1. 2 2
      CallCenterWeb.UI/RMYY/static/config/serverConfig.json
  2. 38 2
      CallCenterWeb.UI/RMYYAPP/config/buttons.config.js
  3. 76 67
      CallCenterWeb.UI/RMYYAPP/config/constData.config.js
  4. 5 5
      CallCenterWeb.UI/RMYYAPP/config/index.config.js
  5. 72 0
      CallCenterWeb.UI/RMYYAPP/pages.json
  6. 4 4
      CallCenterWeb.UI/RMYYAPP/pages/components/orderSelect/orderSelect.vue
  7. 5 2
      CallCenterWeb.UI/RMYYAPP/pages/login/login.vue
  8. 2 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/myTask.vue
  9. 318 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/applicantsList/addVehicle/addVehicle.vue
  10. 85 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/applicantsList/addVehicle/pageData.js
  11. 97 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/applicantsList/applicantsList.vue
  12. 248 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/departBtn/departBtn.vue
  13. 248 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/destinationBtn/destinationBtn.vue
  14. 91 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/evaluateDetail/evaluateDetail.vue
  15. 290 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/vehiccleDetail.vue
  16. 107 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/driverList/driverList.vue
  17. 257 0
      CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/vehicleSchedulList.vue
  18. 46 2
      CallCenterWeb.UI/RMYYAPP/pages/myTask/workOrderDetail/button/button.vue
  19. 6 0
      CallCenterWeb.UI/RMYYAPP/uni_modules/uni-data-select/changelog.md
  20. 19 5
      CallCenterWeb.UI/RMYYAPP/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue
  21. 4 7
      CallCenterWeb.UI/RMYYAPP/uni_modules/uni-data-select/package.json

+ 2 - 2
CallCenterWeb.UI/RMYY/static/config/serverConfig.json

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "NODE_ENV": "development",
3
-  "BASE_API": "http://39.164.159.192:8000/",
3
+  "BASE_API": "http://39.164.159.192:8010/",
4 4
   "SOCKET_IP": "192.168.8.7",
5 5
   "SOCKET_PORT": "8081",
6 6
   "PAGESIZES": "[10, 20, 50, 100]",
@@ -8,4 +8,4 @@
8 8
   "monitorPlatformTime": "5000",
9 9
   "taskRealInfoTime": "10000",
10 10
   "homeRefreshInterval": "300000"
11
-}
11
+}

+ 38 - 2
CallCenterWeb.UI/RMYYAPP/config/buttons.config.js

@@ -7,9 +7,45 @@ export default {
7 7
 	},
8 8
 	2: {
9 9
 		id: 2,
10
+		text: "撤回",
11
+		annotation:	"撤回",
12
+		eventName: "revocationBtn",
13
+	},
14
+	3: {
15
+		id: 111,
16
+		text: "接单",
17
+		annotation: "接单",
18
+		eventName: "takeOrderVeh",
19
+	},
20
+	4: {
21
+		id: 112,
10 22
 		text: "退回",
11
-		annotation:	"退回",
12
-		eventName: "sendBackBtn",
23
+		annotation: "退回",
24
+		eventName: "sendBackVeh",
25
+	},
26
+	5: {
27
+		id: 113,
28
+		text: "发车",
29
+		annotation: "发车",
30
+		eventName: "departBtn",
31
+	},
32
+	6: {
33
+		id: 116,
34
+		text: "抵达",
35
+		annotation: "抵达",
36
+		eventName: "destinationBtn",
37
+	},
38
+	7: {
39
+		id: 116,
40
+		text: "评价",
41
+		annotation: "评价",
42
+		eventName: "evaluateBtn",
43
+	},
44
+	8: {
45
+		id: 118,
46
+		text: "编辑",
47
+		annotation: "编辑",
48
+		eventName: "editVehBtn",
13 49
 	},
14 50
 	'zhuanpai': {
15 51
 		id: 3,

+ 76 - 67
CallCenterWeb.UI/RMYYAPP/config/constData.config.js

@@ -11,7 +11,15 @@ export default {
11 11
 	}],
12 12
 	//任务列表数据
13 13
 	roleListData: {
14
-
14
+		driverList:[
15
+			{
16
+				id: "14",
17
+				imagePath: "../../static/icon_vehicleScheduling.png",
18
+				imageBg: "#1ccd8d",
19
+				text: "司机列表", //WorkOrder/GetLDDealList
20
+				navigateToUrl: "/pages/myTask/vehicleSchedulList/vehicleSchedulList?segmenter=0",
21
+			}
22
+		],
15 23
 		// 管理员
16 24
 		administratorList: [
17 25
 			{
@@ -36,75 +44,76 @@ export default {
36 44
 				navigateToUrl: "/pages/myTask/consultList/consultList?segmenter=0&urlIndex=0",
37 45
 			},
38 46
 			{
39
-				id: "2",
40
-				imagePath: "../../static/icon_leasing.png",
41
-				imageBg: "#ff7451",
42
-				text: "设备租赁", //WorkOrder/GetDWDealList
43
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=2&tab=7&state=&stingText=局委延时审核",
44
-			},
45
-			{
46
-				id: "3",
47
-				imagePath: "../../static/material_transfer.png",
48
-				imageBg: "#1ccd8d",
49
-				text: "物资转移", //WorkOrder/GetLDDealList
50
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=3&tab=0&state=6&segmenter=0&db=0&tobereply=1&stingText=已办待审核",
51
-			},
52
-			{
53
-				id: "4",
54
-				imagePath: "../../static/icon_bedTranshipment.png",
55
-				imageBg: "#1ccd8d",
56
-				text: "病床转移", //WorkOrder/GetLDDealList
57
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=11&state=6&segmenter=0&db=0&tobereply=1&stingText=退回重办审核",
58
-			},
59
-			{
60
-				id: "5",
61
-				imagePath: "../../static/icon_prescription.png",
62
-				imageBg: "#7068e2",
63
-				text: "红处方配送", //WorkOrder/GetZXDealList
64
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=3&tab=0&state=7&tobereply=1&db=0&segmenter=0&stingText=已办待回访",
65
-			},
66
-			{
67
-				id: "6",
68
-				imagePath: "../../static/icon_else.png",
69
-				imageBg: "#f26564",
70
-				text: "其他配送", //WorkOrder/GetLDDealList
71
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=1&state=&displayCallContent=1&stingText=正在办理",
72
-			},
73
-			{
74
-				id: "7",
75
-				imagePath: "../../static/icon_specimens.png",
76
-				imageBg: "#1ccd8d",
77
-				text: "急诊标本配送", //WorkOrder/GetList
78
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=0&tab=&stingText=工单查询",
79
-			},
80
-			{
81
-				id: "8",
82
-				imagePath: "../../static/icon_blood.png",
83
-				imageBg: "#f26564",
84
-				text: "血液制品配送", //WorkOrder/GetList
85
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=0&tab=&state=6&segmenter=1&isproresult=1&stingText=已办未果",
86
-			},
87
-			{
88
-				id: "9",
89
-				imagePath: "../../static/icon_serve.png",
90
-				imageBg: "#f26564",
91
-				text: "陪检服务", //WorkOrder/GetList
92
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=0&tab=&state=6&segmenter=1&isproresult=1&stingText=已办未果",
93
-			},
94
-			{
95
-				id: "10",
96
-				imagePath: "../../static/icon_takeBlood.png",
97
-				imageBg: "#1ccd8d",
98
-				text: "血站取血", //WorkOrder/GetLDDealList
99
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=5&state=&stingText=已办结",
100
-			},
101
-			{
102
-				id: "12",
47
+				id: "15",
103 48
 				imagePath: "../../static/icon_vehicleScheduling.png",
104 49
 				imageBg: "#1ccd8d",
105
-				text: "车辆调度", //WorkOrder/GetLDDealList
106
-				navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=5&state=&stingText=已办结",
50
+				text: "申请人列表", //WorkOrder/GetLDDealList
51
+				navigateToUrl: "/pages/myTask/vehicleSchedulList/vehicleSchedulList?segmenter=1",
107 52
 			}
53
+			// {
54
+			// 	id: "2",
55
+			// 	imagePath: "../../static/icon_leasing.png",
56
+			// 	imageBg: "#ff7451",
57
+			// 	text: "设备租赁", //WorkOrder/GetDWDealList
58
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=2&tab=7&state=&stingText=局委延时审核",
59
+			// },
60
+			// {
61
+			// 	id: "3",
62
+			// 	imagePath: "../../static/material_transfer.png",
63
+			// 	imageBg: "#1ccd8d",
64
+			// 	text: "物资转移", //WorkOrder/GetLDDealList
65
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=3&tab=0&state=6&segmenter=0&db=0&tobereply=1&stingText=已办待审核",
66
+			// },
67
+			// {
68
+			// 	id: "4",
69
+			// 	imagePath: "../../static/icon_bedTranshipment.png",
70
+			// 	imageBg: "#1ccd8d",
71
+			// 	text: "病床转移", //WorkOrder/GetLDDealList
72
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=11&state=6&segmenter=0&db=0&tobereply=1&stingText=退回重办审核",
73
+			// },
74
+			// {
75
+			// 	id: "5",
76
+			// 	imagePath: "../../static/icon_prescription.png",
77
+			// 	imageBg: "#7068e2",
78
+			// 	text: "红处方配送", //WorkOrder/GetZXDealList
79
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=3&tab=0&state=7&tobereply=1&db=0&segmenter=0&stingText=已办待回访",
80
+			// },
81
+			// {
82
+			// 	id: "6",
83
+			// 	imagePath: "../../static/icon_else.png",
84
+			// 	imageBg: "#f26564",
85
+			// 	text: "其他配送", //WorkOrder/GetLDDealList
86
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=1&state=&displayCallContent=1&stingText=正在办理",
87
+			// },
88
+			// {
89
+			// 	id: "7",
90
+			// 	imagePath: "../../static/icon_specimens.png",
91
+			// 	imageBg: "#1ccd8d",
92
+			// 	text: "急诊标本配送", //WorkOrder/GetList
93
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=0&tab=&stingText=工单查询",
94
+			// },
95
+			// {
96
+			// 	id: "8",
97
+			// 	imagePath: "../../static/icon_blood.png",
98
+			// 	imageBg: "#f26564",
99
+			// 	text: "血液制品配送", //WorkOrder/GetList
100
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=0&tab=&state=6&segmenter=1&isproresult=1&stingText=已办未果",
101
+			// },
102
+			// {
103
+			// 	id: "9",
104
+			// 	imagePath: "../../static/icon_serve.png",
105
+			// 	imageBg: "#f26564",
106
+			// 	text: "陪检服务", //WorkOrder/GetList
107
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=0&tab=&state=6&segmenter=1&isproresult=1&stingText=已办未果",
108
+			// },
109
+			// {
110
+			// 	id: "10",
111
+			// 	imagePath: "../../static/icon_takeBlood.png",
112
+			// 	imageBg: "#1ccd8d",
113
+			// 	text: "血站取血", //WorkOrder/GetLDDealList
114
+			// 	navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=5&state=&stingText=已办结",
115
+			// },
116
+			
108 117
 		],
109 118
 		// 维修员
110 119
 		UnitList: [{

+ 5 - 5
CallCenterWeb.UI/RMYYAPP/config/index.config.js

@@ -2,9 +2,8 @@ const CONFIG = {
2 2
     // 开发环境配置
3 3
     development: {
4 4
         assetsPath: '/static', // 静态资源路径
5
-        // baseUrl: 'http://222.143.144.10:8002/', // 后台接口请求地址
6
-		// baseUrl: 'http://192.168.1.37:8000/',
7
-		baseUrl: 'http://192.168.8.10:8033/',
5
+				// baseUrl: 'http://192.168.8.10:8033/',
6
+				baseUrl: 'http://39.164.159.192:8000/', // 本地外网地址
8 7
         hostUrl: '', // H5地址(前端运行地址)
9 8
         weixinAppId: '' // 微信公众号appid
10 9
 
@@ -12,8 +11,9 @@ const CONFIG = {
12 11
     // 生产环境配置
13 12
     production: {
14 13
         assetsPath: '/static', // 静态资源路径
15
-        // baseUrl: 'http://222.143.144.10:8002/', // 后台接口请求地址
16
-				baseUrl: 'http://192.168.1.37:8000/',
14
+				// baseUrl: 'http://192.168.8.10:8033/',
15
+				baseUrl: 'http://39.164.159.192:8000/', // 本地外网地址
16
+				
17 17
         hostUrl: '', // H5地址(前端运行地址)
18 18
         weixinAppId: '' // 微信公众号appid
19 19
 

+ 72 - 0
CallCenterWeb.UI/RMYYAPP/pages.json

@@ -179,6 +179,78 @@
179 179
             }
180 180
             
181 181
         }
182
+        ,{
183
+            "path" : "pages/myTask/vehicleSchedulList/vehicleSchedulList",
184
+            "style" :                                                                                    
185
+            {
186
+                "navigationBarTitleText": "车辆调度",
187
+                "enablePullDownRefresh": false
188
+            }
189
+            
190
+        }
191
+        ,{
192
+            "path" : "pages/myTask/vehicleSchedulList/driverList/driverList",
193
+            "style" :                                                                                    
194
+            {
195
+                "navigationBarTitleText": "司机列表",
196
+                "enablePullDownRefresh": false
197
+            }
198
+            
199
+        }
200
+        ,{
201
+            "path" : "pages/myTask/vehicleSchedulList/applicantsList/applicantsList",
202
+            "style" :                                                                                    
203
+            {
204
+                "navigationBarTitleText": "申请人列表",
205
+                "enablePullDownRefresh": false
206
+            }
207
+            
208
+        }
209
+        ,{
210
+            "path" : "pages/myTask/vehicleSchedulList/applicantsList/addVehicle/addVehicle",
211
+            "style" :                                                                                    
212
+            {
213
+                "navigationBarTitleText": "车辆调度",
214
+                "enablePullDownRefresh": false
215
+            }
216
+            
217
+        }
218
+        ,{
219
+            "path" : "pages/myTask/vehicleSchedulList/components/vehiccleDetail/vehiccleDetail",
220
+            "style" :                                                                                    
221
+            {
222
+                "navigationBarTitleText": "详情页",
223
+                "enablePullDownRefresh": false
224
+            }
225
+            
226
+        }
227
+        ,{
228
+            "path" : "pages/myTask/vehicleSchedulList/components/vehiccleDetail/evaluateDetail/evaluateDetail",
229
+            "style" :                                                                                    
230
+            {
231
+                "navigationBarTitleText": "评价",
232
+                "enablePullDownRefresh": false
233
+            }
234
+            
235
+        }
236
+        ,{
237
+            "path" : "pages/myTask/vehicleSchedulList/components/vehiccleDetail/departBtn/departBtn",
238
+            "style" :                                                                                    
239
+            {
240
+                "navigationBarTitleText": "抵达发车点",
241
+                "enablePullDownRefresh": false
242
+            }
243
+            
244
+        }
245
+        ,{
246
+            "path" : "pages/myTask/vehicleSchedulList/components/vehiccleDetail/destinationBtn/destinationBtn",
247
+            "style" :                                                                                    
248
+            {
249
+                "navigationBarTitleText": "抵达目的地",
250
+                "enablePullDownRefresh": false
251
+            }
252
+            
253
+        }
182 254
     ],
183 255
 	"globalStyle": {
184 256
 		"navigationBarTextStyle": "white",

+ 4 - 4
CallCenterWeb.UI/RMYYAPP/pages/components/orderSelect/orderSelect.vue

@@ -1,5 +1,5 @@
1 1
 <template>
2
-	<uni-data-picker class="uni_item" placeholder="请选择工单类别" :localdata="dataOrderType" v-model="WorkOrderCategory"  @nodeclick="nodeclick" @popupclosed="popupclosed">
2
+	<uni-data-picker class="uni_item" placeholder="请选择工单类别" :readonly="readonly" :localdata="dataOrderType" v-model="WorkOrderCategory"  @nodeclick="nodeclick" @popupclosed="popupclosed">
3 3
 	</uni-data-picker>
4 4
 </template>
5 5
 
@@ -10,12 +10,14 @@
10 10
 			return {
11 11
 				order: '',
12 12
 				WorkOrderCategory: '',
13
+				
13 14
 				dataOrderType: []
14 15
 			}
15 16
 		},
16 17
 		props: {
17 18
 			orderType: {},
18
-			typeid: {}
19
+			typeid: {},
20
+			readonly:false
19 21
 		},
20 22
 		created() {
21 23
 			this.getDpartment()
@@ -25,7 +27,6 @@
25 27
 				pageData.getGongDanType(this.typeid,(res, data) => {
26 28
 					this.dataOrderType = res
27 29
 					if(this.orderType) {
28
-						console.log(this.orderType)
29 30
 						this.getOrder(res, data, this.orderType)
30 31
 					}
31 32
 				})
@@ -44,7 +45,6 @@
44 45
 			getTree(tree, text) {
45 46
 				for (const i in tree) {
46 47
 					if (tree[i].text == text) {
47
-						console.log(tree[i].value)
48 48
 						this.WorkOrderCategory = tree[i].value
49 49
 					} else if (tree[i].children) {
50 50
 						this.getTree(tree[i].children, text)

+ 5 - 2
CallCenterWeb.UI/RMYYAPP/pages/login/login.vue

@@ -69,10 +69,13 @@
69 69
 					this.$mStore.dispatch("GetInfo").then((e)=>{
70 70
 						uni.setStorageSync('roleCode', e.data.Role.F_RoleCode)
71 71
 						uni.setStorageSync('userName', e.data.User.F_UserName)
72
-						uni.setStorageSync('deptName', e.data.Dept.F_DeptId)
72
+						uni.setStorageSync('deptId', e.data.Dept.F_DeptId)
73
+						uni.setStorageSync('userCode', e.data.User.F_UserCode)
74
+						uni.setStorageSync('deptName', e.data.Dept.F_DeptName)
75
+						
73 76
 						console.log(uni.getStorageSync("deptName"))
74 77
 						const code = uni.getStorageSync("roleCode");
75
-						if(code == 'GLY' || code == 'WXY' || code == 'BXY' || code == 'DDZX' || code == 'CK_GLY') {
78
+						if(code == 'GLY' || code == 'WXY' || code == 'BXY' || code == 'DDZX' || code == 'CK_GLY' || code == 'SJ') {
76 79
 							uni.switchTab({
77 80
 								url: '/pages/myTask/myTask'
78 81
 							});

+ 2 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/myTask.vue

@@ -109,6 +109,8 @@
109 109
 					this.orderListData = this.$mConstDataConfig.roleListData.applyRepairList 
110 110
 				}else if(code === "DDZX" ) {
111 111
 					this.orderListData = this.$mConstDataConfig.roleListData.dispatchList 
112
+				} else if(code === "SJ" ){
113
+					this.orderListData = this.$mConstDataConfig.roleListData.driverList
112 114
 				}
113 115
 			},
114 116
 		},

+ 318 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/applicantsList/addVehicle/addVehicle.vue

@@ -0,0 +1,318 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				<uni-forms-item label="工单类别" required name="WorkOrderCategory">
7
+					<order-select :orderType="valiFormData.WorkOrderCategory" @post-select-data="postSelectData" :typeid="4000" :readonly="detpReadonly"></order-select>
8
+				</uni-forms-item>
9
+				<uni-forms-item label="申请科室" required name="detpid">
10
+					<uni-data-picker placeholder="请选择科室" :readonly="detpReadonly" :localdata="deptDataTree" v-model="valiFormData.detpid" @nodeclick="deptNodeclick" @popupclosed="deptclosed">
11
+					</uni-data-picker>
12
+				</uni-forms-item>
13
+				<uni-forms-item label="申请人" required name="needman">
14
+					<uni-data-select v-model="valiFormData.needman" v-if="!detpReadonly" :localdata="ApplicantData" @change="changeApplicant" />
15
+					 
16
+					<uni-easyinput disabled v-model="valiFormData.F_ProposerName" v-if="detpReadonly" />
17
+					<!-- <uni-data-select v-model="valiFormData.needman" :localdata="ApplicantData" @change="changeApplicant" /> -->
18
+				</uni-forms-item>
19
+				<uni-forms-item label="联系电话" required name="Phone">
20
+					<uni-easyinput v-model="valiFormData.Phone" :disabled="detpReadonly" placeholder="请输入联系电话" />
21
+				</uni-forms-item>
22
+				<uni-forms-item label="车辆类型" required name="cartype">
23
+					<uni-data-select v-model="valiFormData.cartype" :localdata="cartypeData" />
24
+				</uni-forms-item>
25
+				<uni-forms-item label="调度内容" required name="content">
26
+					<uni-easyinput type="textarea" v-model="valiFormData.content" placeholder="请输入调度内容" />
27
+				</uni-forms-item>
28
+				<uni-forms-item label="出发地点" required name="startplace">
29
+					<uni-easyinput v-model="valiFormData.startplace" placeholder="请输入出发地点" />
30
+				</uni-forms-item>
31
+				<uni-forms-item label="目的地" required name="endplace">
32
+					<uni-easyinput v-model="valiFormData.endplace" placeholder="请输入送达地点" />
33
+				</uni-forms-item>
34
+				<uni-forms-item label="发车时间" required name="usertime">
35
+					<uni-datetime-picker v-model="valiFormData.usertime" />
36
+				</uni-forms-item>
37
+				<uni-forms-item label="是否新生儿转运" required name="birth">
38
+					<uni-data-checkbox v-model="valiFormData.birth" :localdata="birthData" />
39
+				</uni-forms-item>
40
+				<uni-forms-item label="备注" required name="remark">
41
+					<uni-easyinput type="textarea" v-model="valiFormData.remark" placeholder="请输入备注" />
42
+				</uni-forms-item>
43
+			</uni-forms>
44
+			<view class="btnClass">
45
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交工单</button>
46
+			</view>
47
+		</view>
48
+	</view>
49
+</template>
50
+
51
+<script>
52
+	import orderSelect from "@/pages/components/orderSelect/orderSelect"
53
+	import {
54
+		filterTreeDatas,
55
+		filterSelectData
56
+	} from '@/utils/dataTreating.js'
57
+	import pageData from "./pageData.js"
58
+	import {
59
+		mapGetters
60
+	} from 'vuex';
61
+	export default {
62
+		components: {
63
+			orderSelect
64
+		},
65
+		data() {
66
+			return {
67
+				readonly: false,
68
+				disabledButton:false,
69
+				// 校验表单数据
70
+				valiFormData: {
71
+					WorkOrderCategory: 8001, //工单类型
72
+					hosid: 1, //申请院区
73
+					detpid:'',	//	申请部门
74
+					F_ProposerName:'',
75
+					needman: '', //申请人
76
+					phone: '', //电话
77
+					cartype:'',	//	车辆类型
78
+					content: '', // 调度内容
79
+					startplace:'', // 出发地
80
+					endplace:'', // 目的地
81
+					usertime:'',	//	用车时间
82
+					birth:0,	//	是否新生儿转运0否1是
83
+					remark:'',	//	备注
84
+				},
85
+				detpReadonly:false,
86
+				departRepair: '',
87
+				birthData:pageData.birthData,
88
+				departMain: '',
89
+				deptDataTree: [], // 科室-部门数据
90
+				textList: [],
91
+				cartypeData:[],		// 车辆类型数据
92
+				ApplicantData: [], // 获取人员数据
93
+				orderApplicantData: [],
94
+				// 校验规则
95
+				rules: {
96
+					WorkOrderCategory: {
97
+						rules: [{
98
+							required: true,
99
+							errorMessage: '请选择工单类别'
100
+						}]
101
+					},
102
+					detpid: {
103
+						rules: [{
104
+							required: true,
105
+							errorMessage: '请选择申请科室'
106
+						}]
107
+					},
108
+					needman: {
109
+						rules: [{
110
+							required: true,
111
+							errorMessage: '清选择申请人'
112
+						}]
113
+					},
114
+					Phone: {
115
+						rules: [{
116
+							required: true,
117
+							errorMessage: '请输入联系电话'
118
+						}]
119
+					},
120
+					cartype: {
121
+						rules: [{
122
+							required: true,
123
+							errorMessage: '请输入选择车辆类型'
124
+						}]
125
+					},
126
+					content: {
127
+						rules: [{
128
+							required: true,
129
+							errorMessage: '请输入调度内容'
130
+						}]
131
+					},
132
+					startplace: {
133
+						rules: [{
134
+							required: true,
135
+							errorMessage: '请输入出发地点'
136
+						}]
137
+					},
138
+					endplace: {
139
+						rules: [{
140
+							required: true,
141
+							errorMessage: '请输入送达地点'
142
+						}]
143
+					},
144
+					usertime: {
145
+						rules: [{
146
+							required: true,
147
+							errorMessage: '请选择发车时间'
148
+						}]
149
+					},
150
+					birth: {
151
+						rules: [{
152
+							required: true,
153
+							errorMessage: '请选择是否新生儿转运'
154
+						}]
155
+					},
156
+					remark: {
157
+						rules: [{
158
+							required: true,
159
+							errorMessage: '请输入备注'
160
+						}]
161
+					}
162
+				},
163
+			}
164
+		},
165
+		onLoad(option) {
166
+
167
+			this.workorderid = option.wid
168
+			if(this.workorderid){
169
+				this.detpReadonly = true
170
+				this.getDetail(0)
171
+			}
172
+			
173
+			// 部门数据
174
+			pageData.getDet((res,data) => {
175
+				this.deptDataTree = res
176
+			})
177
+			
178
+			this.valiFormData.detpid = uni.getStorageSync("deptId")
179
+			this.valiFormData.needman = uni.getStorageSync("userCode")
180
+			pageData.getApplicant(this.detpid, (res,data) => {
181
+				
182
+				this.ApplicantData = res
183
+				this.orderApplicantData = data
184
+				this.changeApplicant(this.valiFormData.needman)
185
+			})
186
+			pageData.getCartype('CLLX', (res) => {
187
+				this.cartypeData = res
188
+			})
189
+		},
190
+		methods: {
191
+			// 申请部门
192
+			deptNodeclick(e) {
193
+				if(e) {
194
+					this.departRepair = e.value
195
+					// console.log(this.departRepair)
196
+					pageData.getApplicant(e.value, (res,data) => {
197
+						this.ApplicantData = res
198
+						this.orderApplicantData = data
199
+					})
200
+					this.valiFormData.Phone = ''
201
+				}
202
+			},
203
+			postSelectData(e){
204
+				console.log(e)
205
+			},
206
+			deptclosed() {
207
+				this.valiFormData.detpid = this.departRepair
208
+			},
209
+			//指派部门
210
+			maintenanceNodeclick(e) {
211
+				if(e) {
212
+					this.departMain = e.value
213
+					pageData.getApplicant(e.value, (res) => {
214
+						this.MaintenancerData = res
215
+					})
216
+				}
217
+			},
218
+			maintenanceclosed() {
219
+				this.valiFormData.MaintenanceDept = this.departMain
220
+			},
221
+			//申请人
222
+			changeApplicant(e) {
223
+				this.valiFormData.needman = e
224
+				const user = this.orderApplicantData.find((o) => {
225
+					return o.usercode === e.toString()
226
+				})
227
+				if(user) {
228
+					this.valiFormData.Phone = user.usertelphone
229
+				}
230
+			},
231
+			//指派人
232
+			changeMaintenancer(e) {
233
+				this.valiFormData.Maintenancer = e
234
+			},
235
+			// 工单提交
236
+			submit(ref) {
237
+				this.disabledButton = false
238
+				this.$refs[ref].validate().then(res => {
239
+					const params = {
240
+						type: this.valiFormData.WorkOrderCategory, //工单类型
241
+						hosid: this.valiFormData.hosid, //申请院区
242
+						detpid: this.valiFormData.detpid, //申请部门
243
+						needman: this.valiFormData.needman, //申请人
244
+						phon: this.valiFormData.Phone, //电话
245
+						cartype: this.valiFormData.cartype, //车辆类型
246
+						content: this.valiFormData.content, //调度内容
247
+						startplace: this.valiFormData.startplace, //出发地
248
+						endplace: this.valiFormData.endplace, //目的地
249
+						usertime: this.valiFormData.usertime, //用车时间
250
+						birth: this.valiFormData.birth, //是否新生儿转运0否1是
251
+						remark:this.valiFormData.remark	,//备注
252
+						WorkOrderCode:this.workorderid?this.workorderid:''
253
+					}
254
+					if(this.workorderid){
255
+						this.$mHelper.httpPost("T_Car_WorkOrder/UpdateWorkOrder", params, 2,res=>this.disabledButton=res)
256
+					}else{
257
+						this.$mHelper.httpPost("T_Car_WorkOrder/AddWorkOrder", params, 1,res=>this.disabledButton=res)
258
+					}
259
+					
260
+					
261
+				}).catch(err => {
262
+					this.disabledButton = false
263
+					console.log('err', err);
264
+				})
265
+				// T_Car_WorkOrder/UpdateWorkOrder
266
+			},
267
+			getDetail(type) {
268
+				const params = {
269
+					WorkOrderCode: this.workorderid,
270
+					type: type,
271
+				}
272
+				this.$http.get("T_Car_WorkOrder/GetModelDetail", params).then((response) => {
273
+					if (response.state.toLowerCase() === "success") {
274
+						if (type == 0) {
275
+							this.detailContentData = response.model
276
+							this.valiFormData.WorkOrderCategory = this.detailContentData.F_Type //工单类型
277
+							this.valiFormData.hosid = this.detailContentData.F_HosId.toString() //申请院区
278
+							this.valiFormData.detpid = this.detailContentData.F_ProposerDeptId.toString() //申请部门
279
+							this.valiFormData.needman = this.detailContentData.F_ProposerCode.toString() //申请人
280
+							this.valiFormData.F_ProposerName = this.detailContentData.F_ProposerName.toString() //申请人姓名
281
+							
282
+							this.valiFormData.Phone = this.detailContentData.F_Phon //电话
283
+							this.valiFormData.cartype = this.detailContentData.F_CarType.toString() //车辆类型 F_CarType F_CarName 
284
+							this.valiFormData.content = this.detailContentData.F_Content //调度内容
285
+							this.valiFormData.startplace = this.detailContentData.F_DepartPlace //出发地
286
+							this.valiFormData.endplace = this.detailContentData.F_Destination //目的地
287
+							this.valiFormData.usertime = this.detailContentData.F_UseTime //用车时间
288
+							this.valiFormData.birth = this.detailContentData.F_Birth //是否新生儿转运0否1是
289
+							this.valiFormData.remark = this.detailContentData.F_Remark	//备注
290
+						}
291
+						
292
+					}
293
+				}).catch((e) => {
294
+					console.log(e);
295
+				})
296
+			}
297
+
298
+		},
299
+		computed: {
300
+			...mapGetters([
301
+				"userCode", // 用户工号
302
+				"userName", // 用户名称
303
+				"deptName",	// 部门名称
304
+			])
305
+		}
306
+		
307
+	}
308
+</script>
309
+
310
+<style lang="scss" scoped>
311
+	.wrapper {
312
+		padding: 10px 15px;
313
+		background-color: #fff;
314
+
315
+		.form {}
316
+
317
+	}
318
+</style>

+ 85 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/applicantsList/addVehicle/pageData.js

@@ -0,0 +1,85 @@
1
+import {filterTreeDatas,filterSelectData} from '@/utils/dataTreating.js'
2
+import { http } from '@/utils/request';
3
+export default {
4
+	birthData:[
5
+		{
6
+			text: '是',
7
+			value: 1
8
+		}, {
9
+			text: '否',
10
+			value: 0
11
+		}
12
+	],
13
+	stepData: [{
14
+		text: '完结',
15
+		value: 1
16
+	}, {
17
+		text: '指派',
18
+		value: 0
19
+	}],
20
+	levelData: [{
21
+		value:1,
22
+		text:'普通'
23
+	},{
24
+		value:2,
25
+		text:'紧急'
26
+	}],
27
+	ismsData:[{
28
+		value: 0,
29
+		text:'否'
30
+	},{
31
+		value: 1,
32
+		text:'是'
33
+	}],
34
+	// 工单类别
35
+	getGongDanType(id,fn){
36
+		let dataOrderType = []
37
+		const params = {
38
+			pid:id,
39
+			flag:1
40
+		}
41
+		http.get("GongDanType/GetList",params).then((res)=>{
42
+			if(res.state.toLowerCase() ==="success"){
43
+				dataOrderType = filterTreeDatas(res.data)
44
+				fn(dataOrderType,res.data)
45
+			}
46
+		})
47
+	},
48
+	getDet(fn){
49
+		let deptDataTree
50
+		http.get("Department/GetTreeList").then((res)=>{
51
+			if(res.state.toLowerCase() ==="success"){
52
+				deptDataTree = filterTreeDatas(res.data)
53
+				fn(deptDataTree,res.data)
54
+			}
55
+		})
56
+	},
57
+	// 获取人员
58
+	getApplicant(deptid,fn){
59
+		let ApplicantData = []
60
+		const params = {
61
+			deptid
62
+		}
63
+		http.get("WorkOrderBase/GetPerson",params).then((res)=>{
64
+			if(res.state.toLowerCase() ==="success"){
65
+				ApplicantData = filterSelectData(res.rows,'username','usercode')
66
+				fn(ApplicantData,res.rows)
67
+			}
68
+		})
69
+	},
70
+	// 车辆类型
71
+	getCartype(Flag,fn){
72
+		let CartypData = []
73
+		const params = {
74
+			Flag
75
+		}
76
+		http.get("Dictionary/GetDicValueList",params).then((res)=>{
77
+			if(res.rows.length > 0){
78
+				CartypData = filterSelectData(res.rows,'F_Name','n_id')
79
+				fn(CartypData)
80
+			}
81
+		})
82
+	},
83
+	
84
+	
85
+}

+ 97 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/applicantsList/applicantsList.vue

@@ -0,0 +1,97 @@
1
+<template>
2
+	<view>
3
+		<!-- 基于 uni-list 的页面布局 -->
4
+		<uni-list>
5
+			<!-- to 属性携带参数跳转详情页面-->
6
+			<uni-list-item class="tableList" direction="column" v-for="(item, index) in listData" :key="index"
7
+				:to="'/pages/myTask/vehicleSchedulList/components/vehiccleDetail/vehiccleDetail?wid='+item.F_WorkOrderCode+'&segmenter=0&orderId='+item.F_ID+'&buttons='+ JSON.stringify(item.Buttons)">
8
+
9
+				<!-- 通过body插槽定义列表内容显示 -->
10
+				<template v-slot:body>
11
+					<view class="uni-list-box">
12
+						<view class="uni-content">
13
+							<view class="uni-title-sub uni-ellipsis-1">
14
+								<view class="textLeft">
15
+									工单编号:{{item.F_WorkOrderCode}}
16
+								</view>
17
+							</view>
18
+							<view class="uni-note">工单类型:{{item.F_TypeName}}
19
+							</view>
20
+							<view class="uni-note">工单内容:{{item.F_Content}}</view>
21
+							<view class="uni-note">申请时间:{{item.F_CreateTime}}</view>
22
+						</view>
23
+						<view class="textState">{{item.StateName}}</view>
24
+					</view>
25
+				</template>
26
+			</uni-list-item>
27
+		</uni-list>
28
+
29
+	</view>
30
+</template>
31
+
32
+<script>
33
+	export default {
34
+		props: {
35
+			listData: {
36
+				type: Array,
37
+				default () {
38
+					return []
39
+				}
40
+			},
41
+		},
42
+		data() {
43
+			return {
44
+
45
+			}
46
+		},
47
+		onShow() {
48
+			console.log(this.listData)
49
+		},
50
+
51
+		onLoad() {
52
+			console.log(this.listData)
53
+		},
54
+		methods: {
55
+
56
+		}
57
+	}
58
+</script>
59
+
60
+<style lang="scss" scoped>
61
+	@import '@/common/uni-ui.scss';
62
+	.tableList {
63
+		background-color: #ffffff;
64
+		margin-bottom: 10px;
65
+		padding-bottom: 10px;
66
+
67
+		.textLeft {
68
+			width: 300px;
69
+			white-space: nowrap;
70
+			overflow: hidden;
71
+			text-overflow: ellipsis;
72
+		}
73
+	}
74
+
75
+	.uni-list-box {
76
+		position: relative;
77
+
78
+		.textState {
79
+			position: absolute;
80
+			right: 15px;
81
+			bottom: 0px;
82
+			font-size: 12px;
83
+			border: 1px solid #52C41A;
84
+			padding: 2px 5px;
85
+			color: #52C41A;
86
+			background-color: rgba(195, 239, 161, 0.2);
87
+			border-radius: 5px
88
+		}
89
+	}
90
+
91
+	.uni-ellipsis-1 {
92
+		overflow: hidden;
93
+		white-space: nowrap;
94
+		text-overflow: ellipsis;
95
+	}
96
+
97
+</style>

+ 248 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/departBtn/departBtn.vue

@@ -0,0 +1,248 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
5
+				<uni-forms-item label="完成情况" required name="finishType">
6
+					<uni-data-checkbox v-model="valiFormData.finishType" :localdata="finishTypeList" />
7
+				</uni-forms-item>
8
+				<uni-forms-item label="异常类型" name="exceptionType" v-show="valiFormData.finishType == 1">
9
+					<uni-data-select v-model="valiFormData.exceptionType" :localdata="exceptionTypeList">
10
+					</uni-data-select>
11
+				</uni-forms-item>
12
+				<uni-forms-item label="是否涉及设备" name="isEquipment" v-show="valiFormData.finishType == 0">
13
+					<uni-data-checkbox v-model="valiFormData.isEquipment" :localdata="equipments" />
14
+				</uni-forms-item>
15
+				<uni-forms-item label="设备信息" name="equipmentid" v-show="valiFormData.isEquipment == 1 && valiFormData.finishType == 0">
16
+					<luyj-select-lay :value="valiFormData.equipmentid" name="name" :options="equipmentList" :zindex="1"	slabel='text' @selectitem="selectitem">
17
+					</luyj-select-lay>
18
+				</uni-forms-item>
19
+				<table class="equipmentInfo" v-show="equipmentCon.length>0 && valiFormData.finishType == 0">
20
+					<thead style="background-color: #fafafa;">
21
+						<tr class="trCon">
22
+							<td class="tdCon">设备</td>
23
+							<td class="tdCon">型号</td>
24
+							<td class="tdCon">数量</td>
25
+							<td class="tdCon">价格</td>
26
+						</tr>
27
+					</thead>
28
+					<tbody>
29
+						<tr class="trCon" v-for="item in equipmentCon">
30
+							<td class="tdCon">{{item.F_EquipName}}</td>
31
+							<td class="tdCon">{{item.F_Describe}}</td>
32
+							<td class="tdCon">
33
+								<uni-easyinput v-model="item.F_EquipAmount" placeholder="请输入数量" clear="false" />
34
+							</td>
35
+							<td class="tdCon">{{item.F_EquipPrice}}</td>
36
+						</tr>
37
+					</tbody>
38
+				</table>
39
+				<uni-forms-item label="完成说明" name="content">
40
+					<uni-easyinput type="textarea" v-model="valiFormData.content" placeholder="请输入完成说明" />
41
+				</uni-forms-item>
42
+			</uni-forms>
43
+			<view class="btnClass">
44
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交</button>
45
+			</view>
46
+
47
+		</view>
48
+	</view>
49
+</template>
50
+
51
+<script>
52
+	export default {
53
+		data() {
54
+			return {
55
+				equipments: [{
56
+					text: '否',
57
+					value: 0
58
+				}, {
59
+					text: '是',
60
+					value: 1
61
+				}],
62
+				coast: '',
63
+				num: '',
64
+				disabledButton:false,
65
+				exceptionTypeList: [],
66
+				equipmentList: [], // 设备信息
67
+				equipmentCon: [],
68
+				// 校验表单数据
69
+				valiFormData: {
70
+					workorderid: '',
71
+					finishType: 0, // 协作方式
72
+					exceptionType: '',
73
+					isEquipment: 0, // 是否关联设备
74
+					equipmentid: '', // 设备
75
+					content: '', // 完成说明
76
+				},
77
+				finishTypeList: [{
78
+						value: 0,
79
+						text: '正常完成'
80
+					},
81
+					{
82
+						value: 1,
83
+						text: '异常结束'
84
+					}
85
+				],
86
+				// 校验规则
87
+				rules: {
88
+					finishType: {
89
+						rules: [{
90
+							required: true,
91
+							errorMessage: '请选择完成情况'
92
+						}]
93
+					}
94
+				},
95
+			}
96
+		},
97
+		onLoad(option) {
98
+			this.valiFormData.workorderid = option.wid
99
+			this.getEquipment()
100
+			this.getExceptionType()
101
+		},
102
+		methods: {
103
+			getEquipment(type) {
104
+				this.$http.get("Equipment/GetAllList", {}).then((res) => {
105
+					let resultData = res.data
106
+					resultData.forEach((element, index) => {
107
+						const obj = {}
108
+						obj.value = element.F_EquipID
109
+						obj.text = element.F_EquipName + '( ' + element.F_EquipNumber + ' )'
110
+						obj.number = element.F_EquipNumber
111
+						obj.price = element.F_EquipPrice
112
+						obj.name = element.F_EquipName
113
+						this.equipmentList.push(obj);
114
+					});
115
+				}).catch(err => {
116
+					console.log('err', err);
117
+				})
118
+			},
119
+			getExceptionType() {
120
+				const params = {
121
+					Flag: 'YCLX',
122
+					Name: ''
123
+				}
124
+				this.$http.get("Dictionary/GetDicValueList", params).then((res) => {
125
+					let resultData = res.rows
126
+					resultData.forEach((element, index) => {
127
+						const obj = {}
128
+						obj.value = element.n_id
129
+						obj.text = element.F_Name
130
+						this.exceptionTypeList.push(obj);
131
+					});
132
+				}).catch(err => {
133
+					console.log('err', err);
134
+				})
135
+			},
136
+			selectitem(val) {
137
+				this.equipmentCon = []
138
+				if (val) {
139
+					val.forEach(v => {
140
+						this.equipmentCon.push({
141
+							F_EquipName: v.name,
142
+							F_Describe: v.number,
143
+							F_DicId: v.value,
144
+							F_EquipAmount: 1,
145
+							F_EquipPrice: v.price
146
+						})
147
+					})
148
+				} else {
149
+					this.equipmentCon = []
150
+				}
151
+			},
152
+			submit(ref, state) {
153
+				this.disabledButton = true
154
+				if (this.valiFormData.finishType == 1) {
155
+					this.equipmentCon = []
156
+					this.valiFormData.isEquipment = ''
157
+				} else {
158
+					this.valiFormData.exceptionType = ''
159
+				}
160
+				this.$refs[ref].validate().then(res => {
161
+					const params = {
162
+						WorkOrderCode: this.valiFormData.workorderid,
163
+						result: this.valiFormData.content,
164
+						ExceptionType: this.valiFormData.exceptionType,
165
+						IsInvolvedEquip: this.valiFormData.isEquipment,
166
+						equipmodellist: JSON.parse(JSON.stringify(this.equipmentCon)),
167
+						type: this.valiFormData.finishType
168
+					}
169
+					this.$mHelper.httpPost("FaultRepair/DealWorkOrder ", this.serialize(params), 2,res=>this.disabledButton=res)
170
+
171
+				}).catch(err => {
172
+					this.disabledButton = false
173
+					console.log('err', err);
174
+				})
175
+			},
176
+			serialize(obj, prefix) {
177
+				const str = []
178
+				let p
179
+				if (obj.length === 0) {
180
+					//  str.push(encodeURIComponent(prefix) + '=1')  
181
+				} else {
182
+					for (p in obj) {
183
+						if (obj.hasOwnProperty(p)) {
184
+							const k = prefix ? prefix + '[' + p + ']' : p
185
+							let v = obj[p]
186
+							if (v instanceof Date) {
187
+								v = parseTime(v)
188
+							}
189
+							str.push((v !== null && typeof v === 'object') ? this.serialize(v, k) : encodeURIComponent(k) +'=' + encodeURIComponent(v))
190
+						}
191
+					}
192
+				}
193
+				return str.join('&')
194
+			}
195
+		}
196
+	}
197
+</script>
198
+
199
+<style lang="scss">
200
+	/deep/ .uni-data-checklist[data-v-84d5d996] {
201
+		margin-top: 7px !important;
202
+	}
203
+
204
+	.wrapper {
205
+		padding: 10px 15px;
206
+		background-color: #fff;
207
+
208
+		.form {
209
+			.uni-stat__select {
210
+				display: block;
211
+				align-items: center;
212
+				padding: 0px;
213
+				cursor: pointer;
214
+				width: 80%;
215
+			}
216
+			.equipmentInfo{
217
+				width: 100%;
218
+				margin-top: 15px;
219
+				border: 1px solid rgb(229, 229, 229);
220
+				box-shadow: 0px 4px 16px 0px rgba(69, 91, 99, 0.05);
221
+				margin-bottom: 20px;
222
+				border-radius: 5px;
223
+				
224
+				.trCon {
225
+					width: 100%;
226
+					font-size: 14px;
227
+				
228
+					.tdCon {
229
+						display: inline-block;
230
+						padding: 10px 0px;
231
+						color: rgb(102, 102, 102);
232
+						width: 24%;
233
+						padding-right: 5px;
234
+						text-align: center;
235
+					}
236
+				
237
+					.tdCon:nth-child(1) {
238
+						width: 20%;
239
+				
240
+					}
241
+				}
242
+				
243
+			}
244
+		}
245
+
246
+	}
247
+</style>
248
+-->

+ 248 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/destinationBtn/destinationBtn.vue

@@ -0,0 +1,248 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
5
+				<uni-forms-item label="完成情况" required name="finishType">
6
+					<uni-data-checkbox v-model="valiFormData.finishType" :localdata="finishTypeList" />
7
+				</uni-forms-item>
8
+				<uni-forms-item label="异常类型" name="exceptionType" v-show="valiFormData.finishType == 1">
9
+					<uni-data-select v-model="valiFormData.exceptionType" :localdata="exceptionTypeList">
10
+					</uni-data-select>
11
+				</uni-forms-item>
12
+				<uni-forms-item label="是否涉及设备" name="isEquipment" v-show="valiFormData.finishType == 0">
13
+					<uni-data-checkbox v-model="valiFormData.isEquipment" :localdata="equipments" />
14
+				</uni-forms-item>
15
+				<uni-forms-item label="设备信息" name="equipmentid" v-show="valiFormData.isEquipment == 1 && valiFormData.finishType == 0">
16
+					<luyj-select-lay :value="valiFormData.equipmentid" name="name" :options="equipmentList" :zindex="1"	slabel='text' @selectitem="selectitem">
17
+					</luyj-select-lay>
18
+				</uni-forms-item>
19
+				<table class="equipmentInfo" v-show="equipmentCon.length>0 && valiFormData.finishType == 0">
20
+					<thead style="background-color: #fafafa;">
21
+						<tr class="trCon">
22
+							<td class="tdCon">设备</td>
23
+							<td class="tdCon">型号</td>
24
+							<td class="tdCon">数量</td>
25
+							<td class="tdCon">价格</td>
26
+						</tr>
27
+					</thead>
28
+					<tbody>
29
+						<tr class="trCon" v-for="item in equipmentCon">
30
+							<td class="tdCon">{{item.F_EquipName}}</td>
31
+							<td class="tdCon">{{item.F_Describe}}</td>
32
+							<td class="tdCon">
33
+								<uni-easyinput v-model="item.F_EquipAmount" placeholder="请输入数量" clear="false" />
34
+							</td>
35
+							<td class="tdCon">{{item.F_EquipPrice}}</td>
36
+						</tr>
37
+					</tbody>
38
+				</table>
39
+				<uni-forms-item label="完成说明" name="content">
40
+					<uni-easyinput type="textarea" v-model="valiFormData.content" placeholder="请输入完成说明" />
41
+				</uni-forms-item>
42
+			</uni-forms>
43
+			<view class="btnClass">
44
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交</button>
45
+			</view>
46
+
47
+		</view>
48
+	</view>
49
+</template>
50
+
51
+<script>
52
+	export default {
53
+		data() {
54
+			return {
55
+				equipments: [{
56
+					text: '否',
57
+					value: 0
58
+				}, {
59
+					text: '是',
60
+					value: 1
61
+				}],
62
+				coast: '',
63
+				num: '',
64
+				disabledButton:false,
65
+				exceptionTypeList: [],
66
+				equipmentList: [], // 设备信息
67
+				equipmentCon: [],
68
+				// 校验表单数据
69
+				valiFormData: {
70
+					workorderid: '',
71
+					finishType: 0, // 协作方式
72
+					exceptionType: '',
73
+					isEquipment: 0, // 是否关联设备
74
+					equipmentid: '', // 设备
75
+					content: '', // 完成说明
76
+				},
77
+				finishTypeList: [{
78
+						value: 0,
79
+						text: '正常完成'
80
+					},
81
+					{
82
+						value: 1,
83
+						text: '异常结束'
84
+					}
85
+				],
86
+				// 校验规则
87
+				rules: {
88
+					finishType: {
89
+						rules: [{
90
+							required: true,
91
+							errorMessage: '请选择完成情况'
92
+						}]
93
+					}
94
+				},
95
+			}
96
+		},
97
+		onLoad(option) {
98
+			this.valiFormData.workorderid = option.wid
99
+			this.getEquipment()
100
+			this.getExceptionType()
101
+		},
102
+		methods: {
103
+			getEquipment(type) {
104
+				this.$http.get("Equipment/GetAllList", {}).then((res) => {
105
+					let resultData = res.data
106
+					resultData.forEach((element, index) => {
107
+						const obj = {}
108
+						obj.value = element.F_EquipID
109
+						obj.text = element.F_EquipName + '( ' + element.F_EquipNumber + ' )'
110
+						obj.number = element.F_EquipNumber
111
+						obj.price = element.F_EquipPrice
112
+						obj.name = element.F_EquipName
113
+						this.equipmentList.push(obj);
114
+					});
115
+				}).catch(err => {
116
+					console.log('err', err);
117
+				})
118
+			},
119
+			getExceptionType() {
120
+				const params = {
121
+					Flag: 'YCLX',
122
+					Name: ''
123
+				}
124
+				this.$http.get("Dictionary/GetDicValueList", params).then((res) => {
125
+					let resultData = res.rows
126
+					resultData.forEach((element, index) => {
127
+						const obj = {}
128
+						obj.value = element.n_id
129
+						obj.text = element.F_Name
130
+						this.exceptionTypeList.push(obj);
131
+					});
132
+				}).catch(err => {
133
+					console.log('err', err);
134
+				})
135
+			},
136
+			selectitem(val) {
137
+				this.equipmentCon = []
138
+				if (val) {
139
+					val.forEach(v => {
140
+						this.equipmentCon.push({
141
+							F_EquipName: v.name,
142
+							F_Describe: v.number,
143
+							F_DicId: v.value,
144
+							F_EquipAmount: 1,
145
+							F_EquipPrice: v.price
146
+						})
147
+					})
148
+				} else {
149
+					this.equipmentCon = []
150
+				}
151
+			},
152
+			submit(ref, state) {
153
+				this.disabledButton = true
154
+				if (this.valiFormData.finishType == 1) {
155
+					this.equipmentCon = []
156
+					this.valiFormData.isEquipment = ''
157
+				} else {
158
+					this.valiFormData.exceptionType = ''
159
+				}
160
+				this.$refs[ref].validate().then(res => {
161
+					const params = {
162
+						WorkOrderCode: this.valiFormData.workorderid,
163
+						result: this.valiFormData.content,
164
+						ExceptionType: this.valiFormData.exceptionType,
165
+						IsInvolvedEquip: this.valiFormData.isEquipment,
166
+						equipmodellist: JSON.parse(JSON.stringify(this.equipmentCon)),
167
+						type: this.valiFormData.finishType
168
+					}
169
+					this.$mHelper.httpPost("FaultRepair/DealWorkOrder ", this.serialize(params), 2,res=>this.disabledButton=res)
170
+
171
+				}).catch(err => {
172
+					this.disabledButton = false
173
+					console.log('err', err);
174
+				})
175
+			},
176
+			serialize(obj, prefix) {
177
+				const str = []
178
+				let p
179
+				if (obj.length === 0) {
180
+					//  str.push(encodeURIComponent(prefix) + '=1')  
181
+				} else {
182
+					for (p in obj) {
183
+						if (obj.hasOwnProperty(p)) {
184
+							const k = prefix ? prefix + '[' + p + ']' : p
185
+							let v = obj[p]
186
+							if (v instanceof Date) {
187
+								v = parseTime(v)
188
+							}
189
+							str.push((v !== null && typeof v === 'object') ? this.serialize(v, k) : encodeURIComponent(k) +'=' + encodeURIComponent(v))
190
+						}
191
+					}
192
+				}
193
+				return str.join('&')
194
+			}
195
+		}
196
+	}
197
+</script>
198
+
199
+<style lang="scss">
200
+	/deep/ .uni-data-checklist[data-v-84d5d996] {
201
+		margin-top: 7px !important;
202
+	}
203
+
204
+	.wrapper {
205
+		padding: 10px 15px;
206
+		background-color: #fff;
207
+
208
+		.form {
209
+			.uni-stat__select {
210
+				display: block;
211
+				align-items: center;
212
+				padding: 0px;
213
+				cursor: pointer;
214
+				width: 80%;
215
+			}
216
+			.equipmentInfo{
217
+				width: 100%;
218
+				margin-top: 15px;
219
+				border: 1px solid rgb(229, 229, 229);
220
+				box-shadow: 0px 4px 16px 0px rgba(69, 91, 99, 0.05);
221
+				margin-bottom: 20px;
222
+				border-radius: 5px;
223
+				
224
+				.trCon {
225
+					width: 100%;
226
+					font-size: 14px;
227
+				
228
+					.tdCon {
229
+						display: inline-block;
230
+						padding: 10px 0px;
231
+						color: rgb(102, 102, 102);
232
+						width: 24%;
233
+						padding-right: 5px;
234
+						text-align: center;
235
+					}
236
+				
237
+					.tdCon:nth-child(1) {
238
+						width: 20%;
239
+				
240
+					}
241
+				}
242
+				
243
+			}
244
+		}
245
+
246
+	}
247
+</style>
248
+-->

+ 91 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/evaluateDetail/evaluateDetail.vue

@@ -0,0 +1,91 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				<uni-forms-item label="分值"  name="score" >
7
+					<htz-rate v-model="valiFormData.score" :type="2"></htz-rate>
8
+				</uni-forms-item>
9
+				<uni-forms-item label="评价内容" required  name="Evaluation">
10
+					<uni-easyinput type="textarea" v-model="valiFormData.Evaluation" placeholder="请输入完成说明(限100字)" maxlength="100"/>
11
+				</uni-forms-item>
12
+			</uni-forms>
13
+			<view class="btnClass">
14
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交</button>
15
+			</view>
16
+			
17
+		</view>
18
+	</view>
19
+</template>
20
+
21
+<script>
22
+	import htzRate from '@/pages/components/htz-rate/htz-rate.vue'
23
+	export default {
24
+		components: {
25
+			htzRate,
26
+		},
27
+		data() {
28
+			return {
29
+				disabledButton:false,
30
+				// 校验表单数据
31
+				valiFormData: {
32
+					workorderid: '',
33
+					score:0, // 分值 score
34
+					Evaluation: '', // 评价内容
35
+				},
36
+				// 校验规则
37
+				rules: {
38
+				},
39
+			}
40
+		},
41
+		onLoad(option) {
42
+			this.valiFormData.workorderid = option.wid
43
+		},
44
+		methods: {
45
+			submit(ref,state) {
46
+				this.disabledButton = true
47
+				if(this.valiFormData.attitude >= 3 || this.valiFormData.quality >= 3 || this.valiFormData.finishTime >= 3) {
48
+					if(!this.valiFormData.content) {
49
+						this.$mHelper.toast('请输入评价内容')
50
+						return
51
+					}
52
+				}
53
+				this.$refs[ref].validate().then(res => {
54
+					const params = {
55
+					  WorkOrderCode: this.valiFormData.workorderid,
56
+					  Evaluation: this.valiFormData.Evaluation,
57
+						score: this.valiFormData.score
58
+					}
59
+					console.log(this.valiFormData)
60
+					this.$mHelper.httpPost("T_Car_WorkOrder/EvaluateWorkorder",params,2,res=>this.disabledButton=res)
61
+					
62
+				}).catch(err => {
63
+					this.disabledButton = false
64
+					console.log('err', err);
65
+				})
66
+			},
67
+
68
+		}
69
+	}
70
+</script>
71
+
72
+<style lang="scss">
73
+	/deep/ .uni-data-checklist[data-v-84d5d996]{
74
+		margin-top: 7px !important;
75
+	}
76
+.wrapper {
77
+  padding: 10px 15px;
78
+  background-color: #fff;
79
+  .form {
80
+		.uni-stat__select{
81
+		    display: block;
82
+		    align-items: center;
83
+		    padding: 0px;
84
+		    cursor: pointer;
85
+			width: 80%;
86
+		}
87
+		
88
+  }
89
+
90
+}
91
+</style>

+ 290 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/components/vehiccleDetail/vehiccleDetail.vue

@@ -0,0 +1,290 @@
1
+<template>
2
+	<view class="wrapper">
3
+
4
+		<view class="uniStep" v-if="listFlag">
5
+			<uni-steps :options="list1" :active="active" />
6
+		</view>
7
+
8
+		<view class="detailContent">
9
+			<view class="contentTable">
10
+				<text class="contentTitle">工单编号:</text>
11
+				<text class="contentText">{{ detailContentData.F_WorkOrderCode }}</text>
12
+			</view>
13
+			<view class="contentTable">
14
+				<text class="contentTitle">申请科室:</text>
15
+				<text class="contentText">{{ detailContentData.F_ProposerDeptName }}</text>
16
+			</view>
17
+			<view class="contentTable">
18
+				<text class="contentTitle">申请时间:</text>
19
+				<text class="contentText">{{ detailContentData.F_CreateTime }}</text>
20
+			</view>
21
+			<view class="contentTable">
22
+				<text class="contentTitle">联系电话:</text>
23
+				<text class="contentText">{{ detailContentData.F_Phon }}</text>
24
+			</view>
25
+			<view class="contentTable">
26
+				<text class="contentTitle">申请人:</text>
27
+				<text class="contentText">{{ detailContentData.F_ProposerCode }}</text>
28
+			</view>
29
+			<view class="contentTable">
30
+				<text class="contentTitle">工单内容:</text>
31
+				<text class="contentText">{{ detailContentData.F_Content }}</text>
32
+			</view>
33
+
34
+			<view class="contentTable">
35
+				<text class="contentTitle">出发地点:</text>
36
+				<text class="contentText">{{ detailContentData.F_DepartPlace }}</text>
37
+			</view>
38
+			<view class="contentTable">
39
+				<text class="contentTitle">出发地点:</text>
40
+				<text class="contentText">{{ detailContentData.F_Destination }}</text>
41
+			</view>
42
+
43
+			<view class="contentTable">
44
+				<text class="contentTitle">车牌号:</text>
45
+				<text class="contentText">{{ detailContentData.F_CarMessage }}</text>
46
+			</view>
47
+			<view class="contentTable">
48
+				<text class="contentTitle">用车时间:</text>
49
+				<text class="contentText">{{ detailContentData.F_UseTime }}</text>
50
+			</view>
51
+			<view class="contentTable">
52
+				<text class="contentTitle">是否出生:</text>
53
+				<text class="contentText">{{ detailContentData.F_Birth }}</text>
54
+			</view>
55
+		</view>
56
+
57
+		<view class="operationButton" v-show="orderButtonData.length != 0">
58
+			<view>
59
+				<text class="operationButtonTitle">操作</text>
60
+				<buttonsComponents class="buttons" :order-button-data="orderButtonData" :fid="fId" :wid="workorderid"/>
61
+			</view>
62
+		</view>
63
+
64
+	</view>
65
+</template>
66
+
67
+<script>
68
+	import buttonsComponents from "pages/myTask/workOrderDetail/button/button"
69
+	import pageData from "@/pages/myTask/repairList/addRepair/pageData.js"
70
+	export default {
71
+		components: {
72
+			buttonsComponents,
73
+		},
74
+		data() {
75
+			return {
76
+				active: 0,
77
+				listFlag:false,
78
+				list1: [],
79
+				workorderid: "", // 工单id
80
+				receiviFlag:"",
81
+				fId:'',
82
+				departList: [], //部门数据
83
+				userCodeList: [], //用户信息
84
+				detailContentData: {}, // 详情内容
85
+				orderButtonData: [],
86
+				departid: '',
87
+				workOrderButton: [], // 工单按钮权限
88
+				backState: 0, // 返修的状态,是返修1,不是为0
89
+				backCon: '', // 返修的内容
90
+			}
91
+		},
92
+		onLoad(optioin) {
93
+			
94
+			this.workorderid = optioin.wid
95
+			this.fId = optioin.orderId
96
+			if(optioin.segmenter == '0'){	//	申请人列表
97
+				this.listFlag = false
98
+				this.getDetail(0)
99
+			} else if(optioin.segmenter == '1'){  //司机里列表
100
+				this.getDetail(3)
101
+				this.receiviFlag = optioin.receiviFlag
102
+				this.listFlag = true
103
+				this.orderButtonData = []
104
+			}
105
+		},
106
+		methods: {
107
+			getDetail(type) {
108
+				const params = {
109
+					WorkOrderCode: this.workorderid,
110
+					type: type,
111
+					orderid:this.fId
112
+				}
113
+				this.$http.get("T_Car_WorkOrder/GetModelDetail", params).then((response) => {
114
+					if (response.state.toLowerCase() === "success") {
115
+						let btnData
116
+						if (type == 0) {
117
+							this.detailContentData = response.model
118
+							this.detailContentData.F_Birth?this.detailContentData.F_Birth ='是':this.detailContentData.F_Birth ='否'
119
+							btnData = response.allButtons;
120
+							// if(this.detailContentData.F_State === 0){
121
+							// 	this.orderButtonData = [{
122
+							// 		id: 1,
123
+							// 		text: "撤回",
124
+							// 		annotation: "撤回",
125
+							// 		eventName: "revocationBtn",
126
+							// 	}]
127
+							// }else if(this.detailContentData.F_State === 7){
128
+							// 	this.orderButtonData = [{
129
+							// 		id: 2,
130
+							// 		text: "评价",
131
+							// 		annotation: "评价",
132
+							// 		eventName: "evaluateBtn",
133
+							// 	}]
134
+							// }else if(this.detailContentData.F_State === -1){
135
+							// 	this.orderButtonData = [{
136
+							// 		id: 2,
137
+							// 		text: "编辑",
138
+							// 		annotation: "编辑",
139
+							// 		eventName: "editVehBtn",
140
+							// 	}]
141
+							// }
142
+
143
+						}else if(type === 3){
144
+							let activeFlag = 0
145
+							response.Carlist.forEach((ele)=>{
146
+								this.active = activeFlag
147
+								if(ele.Buttons.length === 0){
148
+									activeFlag ++
149
+								}
150
+								const obj ={}
151
+								obj.title = ele.F_WorkOrderCode
152
+								this.list1.push(obj)
153
+							})
154
+							this.detailContentData = response.Carlist[this.active]
155
+							btnData = this.detailContentData.Buttons;
156
+							this.workorderid = this.detailContentData.F_WorkOrderCode
157
+							this.detailContentData.F_Birth?this.detailContentData.F_Birth ='是':this.detailContentData.F_Birth ='否'
158
+						}
159
+						
160
+						
161
+						if (btnData.length > 0) {
162
+							btnData.forEach((element, index) => {
163
+								let btn = this.$mButtonConfig[element.key];
164
+								if (btn != undefined) {
165
+									this.workOrderButton.push(btn);
166
+								}
167
+								this.orderButtonData = this.workOrderButton
168
+							});
169
+						}
170
+						
171
+					}
172
+				}).catch((e) => {
173
+					console.log(e);
174
+				})
175
+			}
176
+		
177
+		},
178
+	}
179
+</script>
180
+
181
+<style lang="scss">
182
+	.noCon {
183
+		height: 200px;
184
+		text-align: center;
185
+		font-size: 14px;
186
+		color: #525252;
187
+	}
188
+
189
+	.wrapper {
190
+
191
+		// background-color: #fff; 
192
+		// height: 100vh;
193
+		// padding: 10px 20px 0 20px;
194
+		.uniStep {
195
+			background: #ffffff;
196
+			padding: 15px 0px;
197
+			margin-bottom: 10px;
198
+		}
199
+
200
+		.showType {
201
+			background-color: #fff;
202
+			padding: 10px 13px;
203
+			border-radius: 10px;
204
+			box-shadow: 0px 4px 16px 0px rgba(69, 91, 99, 0.13);
205
+			margin-bottom: 25px;
206
+		}
207
+
208
+		.detailContent {
209
+			// margin: 0 0 15px 0;
210
+			padding: 17px;
211
+			background-color: #fff;
212
+
213
+			.contentTable {
214
+				margin: 0 0 10px 0;
215
+
216
+				.contentTitle {
217
+					// font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
218
+					font-weight: 700;
219
+					font-style: normal;
220
+					font-size: 14px;
221
+					color: #555555;
222
+					width: 70px;
223
+					display: inline-block;
224
+					text-align: right;
225
+				}
226
+
227
+				.contentText {
228
+					color: #525252;
229
+					font-size: 14px;
230
+					margin-left: 10px;
231
+				}
232
+
233
+				.textState {
234
+					position: absolute;
235
+					right: 15px;
236
+					font-size: 12px;
237
+					border: 1px solid #52C41A;
238
+					padding: 2px 5px;
239
+					color: #52C41A;
240
+					background-color: rgba(195, 239, 161, 0.2);
241
+					border-radius: 5px
242
+				}
243
+
244
+				.fx {
245
+					right: 70px;
246
+					border: 1px solid #ff6e54;
247
+					color: #ff6e54;
248
+					background-color: rgba(255, 110, 84, 0.2);
249
+				}
250
+			}
251
+		}
252
+
253
+		.operationButton {
254
+			margin: 5px 0;
255
+			padding: 17px;
256
+			background-color: #fff;
257
+
258
+			.operationButtonTitle {
259
+				font-weight: 700;
260
+			}
261
+
262
+			.buttons {
263
+				margin: 15px 0 0 0;
264
+
265
+			}
266
+		}
267
+
268
+		.handleProcess {
269
+			margin: 15px 0;
270
+
271
+			.handleProcessTitle {
272
+				font-weight: 700;
273
+			}
274
+
275
+			.handleProcessContent {
276
+				margin: 8px 0 0 0;
277
+
278
+				.handleProcessContentTime text {
279
+					font-size: 14px;
280
+					color: #73d13d;
281
+				}
282
+
283
+				.handleProcessContentText text {
284
+					font-size: 14px;
285
+					color: #525252;
286
+				}
287
+			}
288
+		}
289
+	}
290
+</style>

+ 107 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/driverList/driverList.vue

@@ -0,0 +1,107 @@
1
+<template>
2
+	<view>
3
+		<!-- 基于 uni-list 的页面布局 -->
4
+		<uni-list>
5
+			<!-- to 属性携带参数跳转详情页面-->
6
+			<uni-list-item class="tableList" direction="column" v-for="(item, index) in listData" :key="index" 
7
+				:to="'/pages/myTask/vehicleSchedulList/components/vehiccleDetail/vehiccleDetail?wid='+item.F_WorkOrderCode+'&receiviFlag='+receiviFlag+'&segmenter=1&orderId='+item.F_ID+'&buttons='+ JSON.stringify(item.Buttons)">
8
+				<!-- 通过header插槽定义列表的标题 -->
9
+				<template v-slot:header>
10
+					<view class="uni-title">{{item.F_ComTitle}}</view>
11
+				</template>
12
+				<!-- 通过body插槽定义列表内容显示 -->
13
+				<template v-slot:body>
14
+					<view class="uni-list-box">
15
+						<view class="uni-content">
16
+							<view class="uni-title-sub uni-ellipsis-1">
17
+								<view class="textLeft">
18
+									编号:{{item.F_WorkOrderCode}}
19
+								</view>
20
+							</view>
21
+							<view class="uni-note">车牌号:{{item.F_CarName}}
22
+							</view>
23
+							<view class="uni-note">出发地:{{item.F_DepartPlace}}</view>
24
+							<view class="uni-note">目的地:{{item.F_Destination}}</view>
25
+							<view class="uni-note">时间:{{item.F_CreateTime}}</view>
26
+						</view>
27
+						<view class="textState">{{item.StateName}}</view>
28
+					</view>
29
+				</template>
30
+			</uni-list-item>
31
+		</uni-list>
32
+
33
+	</view>
34
+</template>
35
+
36
+<script>
37
+	export default {
38
+		props: {
39
+			listData: {
40
+				type: Array,
41
+				default () {
42
+					return []
43
+				}
44
+			},
45
+			receiviFlag:{
46
+				type:Number,
47
+				default:0
48
+			}
49
+		},
50
+		data() {
51
+			return {
52
+
53
+			}
54
+		},
55
+		onShow() {
56
+			console.log(this.listData)
57
+			console.log(this.receiviFlag)
58
+		},
59
+
60
+		onLoad() {
61
+			console.log(this.listData)
62
+			console.log(this.receiviFlag)
63
+		},
64
+		methods: {
65
+
66
+		}
67
+	}
68
+</script>
69
+
70
+<style lang="scss" scoped>
71
+	@import '@/common/uni-ui.scss';
72
+	.tableList {
73
+		background-color: #ffffff;
74
+		margin-bottom: 10px;
75
+		padding-bottom: 10px;
76
+
77
+		.textLeft {
78
+			width: 300px;
79
+			white-space: nowrap;
80
+			overflow: hidden;
81
+			text-overflow: ellipsis;
82
+		}
83
+	}
84
+
85
+	.uni-list-box {
86
+		position: relative;
87
+
88
+		.textState {
89
+			position: absolute;
90
+			right: 15px;
91
+			bottom: 0px;
92
+			font-size: 12px;
93
+			border: 1px solid #52C41A;
94
+			padding: 2px 5px;
95
+			color: #52C41A;
96
+			background-color: rgba(195, 239, 161, 0.2);
97
+			border-radius: 5px
98
+		}
99
+	}
100
+
101
+	.uni-ellipsis-1 {
102
+		overflow: hidden;
103
+		white-space: nowrap;
104
+		text-overflow: ellipsis;
105
+	}
106
+
107
+</style>

+ 257 - 0
CallCenterWeb.UI/RMYYAPP/pages/myTask/vehicleSchedulList/vehicleSchedulList.vue

@@ -0,0 +1,257 @@
1
+<template>
2
+	<view class="wrapper">
3
+
4
+		<uni-search-bar class="uni-search-bar" placeholder="请输入工单编号" bgColor="#fff" @confirm="searchList"
5
+			@cancel="cancelList" />
6
+
7
+		<view class="segmentedControlWrapper">
8
+			<uni-segmented-control :current="segmenter.current" :values="segmenter.items"
9
+				@clickItem="onClickSegmentedControl" styleType="text" activeColor="#007aff" />
10
+		</view>
11
+		<view class="tableWrapper">
12
+			
13
+			<driver-list v-if="paramsData.segmenter ==='0'" :listData="listData" :receiviFlag="receiviFlag"></driver-list>
14
+			<applicants-list v-if="paramsData.segmenter ==='1'" :listData="listData"></applicants-list>
15
+			<uni-load-more :status="loadMoreState"></uni-load-more>
16
+			
17
+		</view>
18
+
19
+		<uni-fab v-if="fabFlag" ref="fab"  @fabClick="fabClick" />
20
+	</view>
21
+</template>
22
+
23
+<script>
24
+	import pageData from "@/pages/myTask/repairList/addRepair/pageData.js"
25
+	import applicantsList from "@/pages/myTask/vehicleSchedulList/applicantsList/applicantsList"
26
+	import driverList from "@/pages/myTask/vehicleSchedulList/driverList/driverList"
27
+	const segmenterData = {
28
+		0: ["待接单", "待完成", "已完成"],
29
+		1: ["待分配", "已分配", "已完成"],
30
+	}
31
+	export default {
32
+		components: {
33
+			applicantsList,
34
+			driverList
35
+		},
36
+		data() {
37
+			return {
38
+				listData: [],
39
+				paramsData: {},
40
+				listState:0,
41
+				fabFlag:false,
42
+				receiviFlag:0,
43
+				loadMoreState: 'more', //more loading  no-more
44
+				segmenter: {
45
+					current: 0,
46
+					items: ["0", "1", "2"],
47
+					type: "",
48
+				},
49
+				isDisplay: {
50
+					displaySegmentedControl: false, // 分段器
51
+				},
52
+			}
53
+		},
54
+		onLoad(optioin) {
55
+			this.init(optioin)
56
+		},
57
+		onUnload() {
58
+			// 移除监听事件
59
+			uni.$off("updateList")
60
+		},
61
+		onPullDownRefresh() {
62
+			this.resetListData()
63
+			this.getList(this.paramsData)
64
+		},
65
+		methods: {
66
+			init(optioin) {
67
+				optioin.pageindex = 1 // 页码 
68
+				optioin.pagesize = 10 // 条数
69
+				if (optioin.segmenter == 0) {
70
+					optioin.state = 0
71
+				} else{
72
+					optioin.state = 0
73
+				}
74
+				if(optioin.segmenter === "0"){
75
+					this.listState = 1
76
+					if (optioin.state === 0) {
77
+						this.receiviFlag = optioin.state
78
+						console.log(this.receiviFlag)
79
+					}
80
+					uni.setNavigationBarTitle({
81
+						title:'司机列表'
82
+					})
83
+				}else if(optioin.segmenter === "1"){
84
+					this.fabFlag = true
85
+					uni.setNavigationBarTitle({
86
+						title:'申请人列表'
87
+					})
88
+				}
89
+				this.paramsData = optioin
90
+				this.getList(this.paramsData)
91
+				if (optioin.segmenter == undefined || optioin.segmenter == null || optioin.segmenter == "") {
92
+					this.isDisplay.displaySegmentedControl = false
93
+				} else {
94
+					this.isDisplay.displaySegmentedControl = true
95
+					this.segmenter.type = optioin.segmenter
96
+					this.segmenter.items = segmenterData[optioin.segmenter]
97
+				}
98
+				// 页面
99
+				uni.$on("updateList", (res) => {
100
+					this.listData = []
101
+					this.paramsData.pageindex = 1
102
+					this.paramsData.pagesize = 10
103
+					this.getList(this.paramsData)
104
+				})
105
+			},
106
+			fabClick() {
107
+				uni.navigateTo({
108
+					url: "/pages/myTask/vehicleSchedulList/applicantsList/addVehicle/addVehicle",
109
+				})
110
+			},
111
+			getList(optioin) {
112
+				if(optioin.segmenter === "0"){
113
+					console.log("司机列表")
114
+					this.getDriverList(optioin)
115
+				}else if(optioin.segmenter === "1"){
116
+					console.log("申请人列表")
117
+					this.getApplicantsList(optioin)
118
+				}
119
+				
120
+			},
121
+			getApplicantsList(optioin){
122
+				const params = {
123
+					pageindex: optioin.pageindex,
124
+					pagesize: optioin.pagesize,
125
+					state: optioin.state == undefined ? "" : optioin.state,
126
+					workordercode: optioin.workordercode == undefined ? "" : optioin.workordercode
127
+				}
128
+				this.$http.get("T_Car_WorkOrder/GetList", params).then((response) => {
129
+					if (response.state.toLowerCase() === "success") {
130
+						uni.stopPullDownRefresh();
131
+						let data = response.rows
132
+						this.listData = this.listData.concat(data)
133
+						if (this.listData.length >= 10) {
134
+							this.loadMoreState = 'more'
135
+						} else {
136
+							this.loadMoreState = 'no-more'
137
+						}
138
+					}
139
+				}).catch((e) => {
140
+					console.log(e);
141
+				})
142
+			},
143
+			getDriverList(optioin){
144
+				const params = {
145
+					pageindex: optioin.pageindex,
146
+					pagesize: optioin.pagesize,
147
+					state: optioin.state == undefined ? "" : optioin.state,
148
+					workordercode: optioin.workordercode == undefined ? "" : optioin.workordercode
149
+				}
150
+				this.$http.get("T_Car_WorkOrder/GetCarList", params).then((response) => {
151
+					if (response.state.toLowerCase() === "success") {
152
+						this.listData = response.rows
153
+					}
154
+				}).catch((e) => {
155
+					console.log(e);
156
+				})
157
+			},
158
+			searchList(e) {
159
+				this.resetListData()
160
+				this.paramsData.workordercode = e.value
161
+				this.getList(this.paramsData)
162
+			},
163
+			cancelList(e) {
164
+				this.resetListData()
165
+				this.paramsData.workordercode = ''
166
+				this.getList(this.paramsData)
167
+			},
168
+
169
+			onClickSegmentedControl(e) {
170
+				this.resetListData()
171
+				if(this.listState){  // 司机
172
+					switch (String(e.currentIndex)) {
173
+						case "0":
174
+							this.paramsData.state = 0
175
+							break
176
+						case "1":
177
+							this.paramsData.state = 1
178
+							break
179
+						case "2":
180
+							this.paramsData.state = 10
181
+							break
182
+					}
183
+				}else{
184
+					switch (String(e.currentIndex)) {
185
+						case "0":
186
+							this.paramsData.state = 0
187
+							break
188
+						case "1":
189
+							this.paramsData.state = 1
190
+							break
191
+						case "2":
192
+							this.paramsData.state = 10
193
+							break
194
+					}
195
+				}
196
+				this.receiviFlag = this.paramsData.state
197
+				this.getList(this.paramsData)
198
+			},
199
+			resetListData() {
200
+				this.listData = []
201
+				this.paramsData.pageindex = 1
202
+				this.paramsData.pagesize = 10
203
+			}
204
+		},
205
+		/**
206
+		 * 上拉加载回调函数
207
+		 */
208
+		onReachBottom() {
209
+			if (this.listData.length >= 10) {
210
+				this.loadMoreState = 'loading'
211
+				this.paramsData.pageindex = this.paramsData.pageindex + 1
212
+				console.log(this.paramsData)
213
+				this.getList(this.paramsData)
214
+			} else {
215
+				this.loadMoreState = 'no-more'
216
+			}
217
+
218
+		}
219
+	}
220
+</script>
221
+
222
+<style lang="scss" scoped>
223
+	@import '@/common/uni-ui.scss';
224
+
225
+	.uni-list {
226
+		background-color: #efeff4 !important;
227
+	}
228
+
229
+	.wrapper {
230
+		padding: 5px 0 0 0;
231
+
232
+		.uni-search-bar {
233
+			padding: 8px 0px;
234
+		}
235
+
236
+		.segmentedControlWrapper {
237
+			background-color: #ffffff;
238
+		}
239
+
240
+		.tableWrapper {
241
+			margin: 0px 0 0 0;
242
+			
243
+			
244
+		}
245
+	}
246
+
247
+	page {
248
+		display: flex;
249
+		flex-direction: column;
250
+		box-sizing: border-box;
251
+		background-color: #efeff4;
252
+		min-height: 100%;
253
+		height: auto;
254
+	}
255
+
256
+	
257
+</style>

+ 46 - 2
CallCenterWeb.UI/RMYYAPP/pages/myTask/workOrderDetail/button/button.vue

@@ -46,6 +46,10 @@
46 46
 			maintenancer: {
47 47
 				type: String,
48 48
 				default: ''
49
+			},
50
+			fid:{
51
+				type:String,
52
+				default:''
49 53
 			}
50 54
 		},
51 55
 		data() {
@@ -68,7 +72,7 @@
68 72
 			}
69 73
 		},
70 74
 		onLoad(option) {
71
-			console.log(2)
75
+			console.log(this.fid)
72 76
 		},
73 77
 		methods: {
74 78
 			callBtnMethods(methodName) {
@@ -212,6 +216,41 @@
212 216
 			arriveBtn() {
213 217
 				this.confirmationAPI("FaultRepair/Arrive", "信息", "是否要到达", "取消了到达")
214 218
 			},
219
+			// 车辆调度 ( 按钮开始 )
220
+			// 编辑
221
+			editVehBtn() {
222
+				uni.navigateTo({
223
+					url: "/pages/myTask/vehicleSchedulList/applicantsList/addVehicle/addVehicle?wid=" + this.wid + '&editState='+1
224
+				})
225
+			},
226
+			// 撤回
227
+			revocationBtn(){
228
+				this.confirmationAPI("T_Car_WorkOrder/WithdrawWorkOrder", "信息", "是否撤回", "取消了撤回")
229
+			},
230
+			// 评价
231
+			evaluateBtn(){
232
+				uni.navigateTo({
233
+					url: "/pages/myTask/vehicleSchedulList/components/vehiccleDetail/evaluateDetail/evaluateDetail?wid=" + this.wid 
234
+				})
235
+			},
236
+			// 接单
237
+			takeOrderVeh(){
238
+				console.log(this.fid)
239
+				this.confirmationAPI("T_Car_WorkOrder/SureWorkOrder", "信息", "是否接单", "取消了接单")
240
+			},
241
+			// 退回
242
+			sendBackVeh(){
243
+				this.confirmationAPI("T_Car_WorkOrder/BackWorkOrder", "信息", "是否退回", "取消了退回")
244
+			},
245
+			// 抵达发车点
246
+			departBtn(){
247
+				this.confirmationAPI("T_Car_WorkOrder/StartCar", "信息", "是否抵达发车点", "取消了")
248
+			},
249
+			// 抵达目的地
250
+			destinationBtn(){
251
+				this.confirmationAPI("T_Car_WorkOrder/EndCar", "信息", "是否抵达目的地", "取消了")
252
+			},
253
+			// 车辆调度 ( 按钮结束 )
215 254
 			// 审核通过确认框
216 255
 			dialogInputConfirm() {
217 256
 				uni.showLoading({
@@ -258,7 +297,12 @@
258 297
 							const params = {}
259 298
 							if(content == '是否要查收' || content == '是否要接单' || content == '是否要退回') {
260 299
 								params.WorkOrderCode = this.wid
261
-							}else{
300
+							}else if (content === '是否撤回' ||  content === '是否接单' || content === '是否退回' ){
301
+								params.orderid = this.fid
302
+							}else if(content === '是否抵达发车点' || content === '是否抵达目的地'){
303
+								params.orderid = this.fid
304
+								params.WorkOrderCode = this.wid
305
+							} else{
262 306
 								params.workordercode = this.wid
263 307
 							}
264 308
 							

+ 6 - 0
CallCenterWeb.UI/RMYYAPP/uni_modules/uni-data-select/changelog.md

@@ -1,3 +1,9 @@
1
+## 0.1.9(2022-09-05)
2
+- 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框
3
+## 0.1.8(2022-08-29)
4
+- 修复 点击的位置不准确
5
+## 0.1.7(2022-08-12)
6
+- 新增 支持 disabled 属性
1 7
 ## 0.1.6(2022-07-06)
2 8
 - 修复 pc端宽度异常的bug
3 9
 ## 0.1.5

+ 19 - 5
CallCenterWeb.UI/RMYYAPP/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue

@@ -2,7 +2,7 @@
2 2
 	<view class="uni-stat__select">
3 3
 		<span v-if="label" class="uni-label-text hide-on-phone">{{label + ':'}}</span>
4 4
 		<view class="uni-stat-box" :class="{'uni-stat__actived': current}">
5
-			<view class="uni-select">
5
+			<view class="uni-select"  :class="{'uni-select--disabled':disabled}">
6 6
 				<view class="uni-select__input-box" @click="toggleSelector">
7 7
 					<view v-if="current" class="uni-select__input-text">{{current}}</view>
8 8
 					<view v-else class="uni-select__input-text uni-select__input-placeholder">{{typePlaceholder}}</view>
@@ -39,6 +39,7 @@
39 39
 	 * @property {Boolean} emptyText 没有数据时显示的文字 ,本地数据无效
40 40
 	 * @property {String} label 左侧标题
41 41
 	 * @property {String} placeholder 输入框的提示文字
42
+	 * @property {Boolean} disabled 是否禁用
42 43
 	 * @event {Function} change  选中发生变化触发
43 44
 	 */
44 45
 
@@ -88,6 +89,10 @@
88 89
 			defItem: {
89 90
 				type: Number,
90 91
 				default: 0
92
+			},
93
+      disabled: {
94
+				type: Boolean,
95
+				default: false
91 96
 			}
92 97
 		},
93 98
 		created() {
@@ -204,6 +209,10 @@
204 209
 			},
205 210
 
206 211
 			toggleSelector() {
212
+        if(this.disabled){
213
+          return
214
+        }
215
+
207 216
 				this.showSelector = !this.showSelector
208 217
 			},
209 218
 			formatItemName(item) {
@@ -249,12 +258,12 @@
249 258
 		flex: 1;
250 259
 		box-sizing: border-box;
251 260
 	}
252
-	
261
+
253 262
 	.uni-stat-box {
254 263
 		width: 100%;
255 264
 		flex: 1;
256 265
 	}
257
-	
266
+
258 267
 	.uni-stat__actived {
259 268
 		width: 100%;
260 269
 		flex: 1;
@@ -287,6 +296,11 @@
287 296
 		width: 100%;
288 297
 		flex: 1;
289 298
 		height: 35px;
299
+
300
+    &--disabled{
301
+      background-color: #f5f7fa;
302
+      cursor: not-allowed;
303
+    }
290 304
 	}
291 305
 
292 306
 	.uni-select__label {
@@ -298,7 +312,7 @@
298 312
 	}
299 313
 
300 314
 	.uni-select__input-box {
301
-		// height: 35px;
315
+		height: 35px;
302 316
 		position: relative;
303 317
 		/* #ifndef APP-NVUE */
304 318
 		display: flex;
@@ -332,7 +346,7 @@
332 346
 		border: 1px solid #EBEEF5;
333 347
 		border-radius: 6px;
334 348
 		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
335
-		z-index: 2;
349
+		z-index: 3;
336 350
 		padding: 4px 0;
337 351
 	}
338 352
 

+ 4 - 7
CallCenterWeb.UI/RMYYAPP/uni_modules/uni-data-select/package.json

@@ -1,7 +1,7 @@
1 1
 {
2 2
   "id": "uni-data-select",
3 3
   "displayName": "uni-data-select 下拉框选择器",
4
-  "version": "0.1.6",
4
+  "version": "0.1.9",
5 5
   "description": "通过数据驱动的下拉框选择器",
6 6
   "keywords": [
7 7
     "uni-ui",
@@ -17,11 +17,7 @@
17 17
   "directories": {
18 18
     "example": "../../temps/example_temps"
19 19
   },
20
-  "dcloudext": {
21
-    "category": [
22
-      "前端组件",
23
-      "通用组件"
24
-    ],
20
+"dcloudext": {
25 21
     "sale": {
26 22
       "regular": {
27 23
         "price": "0.00"
@@ -38,7 +34,8 @@
38 34
       "data": "无",
39 35
       "permissions": "无"
40 36
     },
41
-    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
37
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
38
+    "type": "component-vue"
42 39
   },
43 40
   "uni_modules": {
44 41
     "dependencies": ["uni-load-more"],