Browse Source

repairlist

liuzhihui 2 years ago
parent
commit
3a9a1ea6e8
1 changed files with 299 additions and 89 deletions
  1. 299 89
      CallCenterWeb.UI/RMYYAPP/pages/myTask/repairList/repairList.vue

+ 299 - 89
CallCenterWeb.UI/RMYYAPP/pages/myTask/repairList/repairList.vue

@@ -2,20 +2,41 @@
2 2
 
3 3
 	<view class="wrapper">
4 4
 
5
-		<uni-search-bar class="uni-search-bar" placeholder="请输入工单编号" bgColor="#fff" @confirm="searchList"
6
-			@cancel="cancelList" />
7
-
5
+		<!-- <uni-search-bar class="uni-search-bar" placeholder="请输入工单编号" bgColor="#fff" @confirm="searchList"
6
+			@cancel="cancelList" /> -->
7
+		<view style="background: #ffffff;padding: 5px 10px;">
8
+			<view class="example-body" style="width: 70%;display: inline-block;">
9
+				<uni-datetime-picker v-model="range" type="daterange" @change="maskClick" />
10
+			</view>
11
+			<view class="example-body" style="width: 30%;display: inline-block;position: relative;bottom: 3px;">
12
+				<uni-data-select v-model="value" :localdata="rangeData" @change="changeSelect"></uni-data-select>
13
+			</view>
14
+		</view>
8 15
 		<view class="segmentedControlWrapper">
9 16
 			<view class="example-body" style="padding-left: 10%;">
10
-				<uni-badge class="uni-badge-left-margin" :text="count1" style="position: relative;left: 4%;top: 18px;"/>
11
-				<uni-badge class="uni-badge-left-margin" :text="count2" style="position: relative;left: 3%;top: 18px;"/>
17
+				<uni-badge class="uni-badge-left-margin" :text="count1"
18
+					style="position: relative;left: 13%;top: 18px;" />
19
+				<uni-badge class="uni-badge-left-margin" :text="count2"
20
+					style="position: relative;left: 30%;top: 18px;" />
12 21
 				<!-- <uni-badge class="uni-badge-left-margin" :text="count3" style="position: relative;left: 9%;top: 18px;"/> -->
13
-				<uni-badge class="uni-badge-left-margin" :text="count4" style="position: relative;left: 17%;top: 18px;"/>
22
+				<!-- <uni-badge class="uni-badge-left-margin" :text="count4" style="position: relative;left: 17%;top: 18px;"/>
14 23
 				<uni-badge class="uni-badge-left-margin" :text="count5" style="position: relative;left: 16%;top: 18px;"/>
15
-				<uni-badge class="uni-badge-left-margin" :text="count6" style="position: relative;left: 14%;top: 18px;"/>
24
+				<uni-badge class="uni-badge-left-margin" :text="count6" style="position: relative;left: 14%;top: 18px;"/> -->
16 25
 			</view>
26
+
17 27
 			<uni-segmented-control :current="segmenter.current" :values="segmenter.items"
18 28
 				@clickItem="onClickSegmentedControl" styleType="text" activeColor="#007aff" />
29
+			<view style="display: flex;justify-content: center;margin-top: 10px;">
30
+				<view class="newcount"><view class="newcountTitle" :class="{newcountTitleActive: isActive===1}" @click="tabottomChange1">紧急<uni-badge
31
+							class="uni-badge-left-margin" :text="jinjiText" /></view>
32
+				</view>
33
+				<view class="newcount"><view class="newcountTitle" :class="{newcountTitleActive: isActive===2}" @click="tabottomChange2">催单<uni-badge
34
+							class="uni-badge-left-margin" :text="cuidanText" /></view>
35
+				</view>
36
+				<view class="newcount"><view class="newcountTitle" :class="{newcountTitleActive: isActive===3}" @click="tabottomChange3">返修<uni-badge
37
+							class="uni-badge-left-margin" :text="fanxiuText" /></view>
38
+				</view>
39
+			</view>
19 40
 		</view>
20 41
 		<view class="tableWrapper" style="margin-top: 10px;">
21 42
 			<!-- 基于 uni-list 的页面布局 -->
@@ -43,8 +64,10 @@
43 64
 								<view class="uni-note">上报时间:{{item.F_CreateTime}}</view>
44 65
 								<view class="uni-note">上报地点:{{item.F_PlaceOfRepair}}</view>
45 66
 								<view>
46
-									<view class="textState" style="right: 62px;color: #60c136;border:1px solid #60c136;" v-show="item.F_UrgeCount>0">催办
47
-										{{item.F_UrgeCount}}</view>
67
+									<view class="textState" style="right: 62px;color: #60c136;border:1px solid #60c136;"
68
+										v-show="item.F_UrgeCount>0">催办
69
+										{{item.F_UrgeCount}}
70
+									</view>
48 71
 									<view class="textState" style="right: 62px;color:#ddb642;border:1px solid #ddb642;"
49 72
 										v-show="item.F_ReplayCount>0">延期 {{item.F_ReplayCount}}</view>
50 73
 									<view class="textState" style="right: 62px;color:#2d6116;border:1px solid #2d6116;"
@@ -77,11 +100,16 @@
77 100
 <script>
78 101
 	import pageData from "@/pages/myTask/repairList/addRepair/pageData.js"
79 102
 	const segmenterData = {
80
-		0: ["待接单", "待完成", "已完成", "紧急", "催单","返修"], // 已办待回访
103
+		// 0: ["待接单", "待完成", "已完成", "紧急", "催单","返修"], // 已办待回访
104
+		0: ["待接单", "待完成", "已完成"], // 已办待回访
81 105
 	}
82 106
 	export default {
83 107
 		data() {
84 108
 			return {
109
+				jinjiText: '',
110
+				cuidanText: '',
111
+				fanxiuText: '',
112
+				newcountTitle: 'newcountTitle',
85 113
 				count1: "0",
86 114
 				count2: "0",
87 115
 				count3: "0",
@@ -101,10 +129,31 @@
101 129
 				isDisplay: {
102 130
 					displaySegmentedControl: false, // 分段器
103 131
 				},
104
-				total: 0
132
+				isActive: 0,
133
+				total: 0,
134
+				tabName: '',
135
+				value: 0,
136
+				rangeData: [{
137
+						value: 0,
138
+						text: "近一周"
139
+					},
140
+					{
141
+						value: 1,
142
+						text: "近两周"
143
+					},
144
+					{
145
+						value: 2,
146
+						text: "近一个月"
147
+					},
148
+				],
149
+				range: [this.getDateWeek(7), this.getDateTime()]//默认近一周
105 150
 			}
106 151
 		},
107 152
 		onLoad(optioin) {
153
+			this.paramsData.starttime = this.getDateWeek(7)
154
+			this.paramsData.endtime = this.getDateTime()
155
+			optioin.starttime = this.getDateWeek(7)//默认近一周
156
+			optioin.endtime = this.getDateTime()//默认近一周			
108 157
 			this.getListCon()
109 158
 			this.init(optioin)
110 159
 			pageData.getDet((res, data) => {
@@ -120,16 +169,101 @@
120 169
 			this.getList(this.paramsData)
121 170
 		},
122 171
 		methods: {
123
-			getListCon(){
124
-				const params = {}
125
-				this.$http.get("FaultRepair/MaintenancerListCount",params).then(res=>{
126
-					if(res.state == 'success'){
172
+			maskClick(e) {
173
+				console.log('日期日期日期:', e);
174
+				this.value = ''
175
+				this.tabName = ''
176
+				this.isActive = 0
177
+				this.paramsData.page = 1
178
+				this.paramsData.pagesize = 10
179
+				this.range = e
180
+				this.paramsData.starttime = this.range[0]
181
+				this.paramsData.endtime = this.range[1]
182
+				this.paramsData.emergency = ''
183
+				this.paramsData.urge = ''
184
+				this.paramsData.returnnum = ''
185
+				this.getListCon()
186
+				this.getList(this.paramsData)
187
+			},
188
+			changeSelect(e) {
189
+				console.log(e.toString(),'111111111')
190
+				if(!e.toString()){
191
+					return
192
+				}
193
+				if (e == 0) {
194
+					this.range = [this.getDateWeek(7), this.getDateTime()]
195
+				}
196
+				if (e == 1) {
197
+					this.range = [this.getDateWeek(14), this.getDateTime()]
198
+				}
199
+				if (e == 2) {
200
+					this.range = [this.getDateWeek(30), this.getDateTime()]
201
+				}
202
+				this.tabName = ''
203
+				this.isActive = 0
204
+				this.paramsData.page = 1
205
+				this.paramsData.pagesize = 10
206
+				this.paramsData.starttime = this.range[0]
207
+				this.paramsData.endtime = this.range[1]
208
+				this.paramsData.emergency = ''
209
+				this.paramsData.urge = ''
210
+				this.paramsData.returnnum = ''
211
+				this.getListCon()
212
+				this.getList(this.paramsData)
213
+			},
214
+			getDateWeek(num) {
215
+				var dates = new Date().getTime() - 3600 * 1000 * 24 * num;
216
+				var date = new Date(dates)
217
+				var hengGang = "-";
218
+				var year = date.getFullYear();
219
+				var month = date.getMonth() + 1;
220
+				var curDate = date.getDate();
221
+				if (month >= 1 && month <= 9) {
222
+					month = "0" + month;
223
+				}
224
+				if (curDate >= 0 && curDate <= 9) {
225
+					curDate = "0" + curDate;
226
+				}
227
+				var currentdate = "";
228
+				currentdate = year + hengGang + month + hengGang + curDate
229
+				return currentdate;
230
+			},
231
+			//获取当前日
232
+			getDateTime() {
233
+				var date = new Date();
234
+				var hengGang = "-";
235
+				var year = date.getFullYear();
236
+				var month = date.getMonth() + 1;
237
+				var curDate = date.getDate();
238
+				if (month >= 1 && month <= 9) {
239
+					month = "0" + month;
240
+				}
241
+				if (curDate >= 0 && curDate <= 9) {
242
+					curDate = "0" + curDate;
243
+				}
244
+				var currentdate = "";
245
+				currentdate = year + hengGang + month + hengGang + curDate
246
+				return currentdate;
247
+			},
248
+			//数量
249
+			getListCon() {
250
+				const params = {
251
+					tab: this.paramsData.state || '1',
252
+					starttime: this.paramsData.starttime,
253
+					endtime: this.paramsData.endtime
254
+				}
255
+				this.$http.get("FaultRepair/MaintenancerListCount", params).then(res => {
256
+					if (res.state == 'success') {
127 257
 						this.count1 = res.daijiedan || "0"
128 258
 						this.count2 = res.daiwancheng || "0"
129 259
 						this.count3 = res.yiwancheng || "0"
130
-						this.count4 = res.jinji || "0"
131
-						this.count5 = res.cuidan || "0"
132
-						this.count6 = res.fanxiu || "0"
260
+						// this.count4 = res.jinji || "0"
261
+						// this.count5 = res.cuidan || "0"
262
+						// this.count6 = res.fanxiu || "0"
263
+						this.jinjiText = res.jinji
264
+						this.cuidanText = res.cuidan
265
+						this.fanxiuText = res.fanxiu
266
+
133 267
 					}
134 268
 				})
135 269
 			},
@@ -161,42 +295,62 @@
161 295
 					url: "addRepair/addRepair",
162 296
 				})
163 297
 			},
164
-			getCuiList(optioin) {
165
-				const params = {
166
-					page: optioin.page,
167
-					pagesize: optioin.pagesize,
168
-					workordercode: optioin.workordercode == undefined ? "" : optioin.workordercode
169
-				}
170
-				this.$http.get("FaultRepair/UrgeMaintenancerList", params).then((response) => {
171
-					if (response.state.toLowerCase() === "success") {
172
-						let data = response.rows
173
-						this.total = response.total
174
-						uni.stopPullDownRefresh();
175
-						this.listData = this.listData.concat(data)
176
-						if (this.listData.length >= 6) {
177
-							this.loadMoreState = 'more'
178
-						} else {
179
-							this.loadMoreState = 'no-more'
180
-						}
181
-					}
182
-				}).catch((e) => {
183
-					console.log(e);
184
-				})
185
-			},
298
+			// getCuiList(optioin) {
299
+			// 	const params = {
300
+			// 		page: optioin.page,
301
+			// 		pagesize: optioin.pagesize,
302
+			// 		workordercode: optioin.workordercode == undefined ? "" : optioin.workordercode
303
+			// 	}
304
+			// 	this.$http.get("FaultRepair/UrgeMaintenancerList", params).then((response) => {
305
+			// 		if (response.state.toLowerCase() === "success") {
306
+			// 			let data = response.rows
307
+			// 			this.total = response.total
308
+			// 			uni.stopPullDownRefresh();
309
+			// 			this.listData = this.listData.concat(data)
310
+			// 			if (this.listData.length >= 6) {
311
+			// 				this.loadMoreState = 'more'
312
+			// 			} else {
313
+			// 				this.loadMoreState = 'no-more'
314
+			// 			}
315
+			// 		}
316
+			// 	}).catch((e) => {
317
+			// 		console.log(e);
318
+			// 	})
319
+			// },
186 320
 			getList(optioin) {
321
+				if (this.tabName == '紧急') {
322
+					optioin.emergency = '紧急'
323
+					optioin.urge = ''
324
+					optioin.returnnum = ''
325
+				}
326
+				if (this.tabName == '催单') {
327
+					optioin.emergency = ''
328
+					optioin.urge = '1'
329
+					optioin.returnnum = ''
330
+				}
331
+				if (this.tabName == '返修') {
332
+					optioin.emergency = ''
333
+					optioin.urge = ''
334
+					optioin.returnnum = '1'
335
+				}
187 336
 				const params = {
188 337
 					page: optioin.page,
189 338
 					pagesize: optioin.pagesize,
190 339
 					state: optioin.state == undefined ? "" : optioin.state,
191 340
 					workordercode: optioin.workordercode == undefined ? "" : optioin.workordercode,
192
-					emergency: optioin.emergency || ''
341
+					emergency: optioin.emergency || '',
342
+					urge: optioin.urge || '',
343
+					returnnum: optioin.returnnum || '',
344
+					starttime: optioin.starttime || '',
345
+					endtime: optioin.endtime || ''
193 346
 				}
194 347
 				this.$http.get("FaultRepair/MaintenancerList", params).then((response) => {
195 348
 					if (response.state.toLowerCase() === "success") {
196 349
 						let data = response.rows
197 350
 						this.total = response.total
198 351
 						uni.stopPullDownRefresh();
199
-						this.listData = this.listData.concat(data)
352
+						// this.listData = this.listData.concat(data)
353
+						this.listData = data
200 354
 						if (this.listData.length >= 6) {
201 355
 							this.loadMoreState = 'more'
202 356
 						} else {
@@ -207,19 +361,27 @@
207 361
 					console.log(e);
208 362
 				})
209 363
 			},
210
-			searchList(e) {
211
-				this.resetListData()
212
-				this.paramsData.workordercode = e.value
213
-				this.getList(this.paramsData)
214
-			},
215
-			cancelList(e) {
216
-				this.resetListData()
217
-				this.paramsData.workordercode = ''
218
-				this.getList(this.paramsData)
219
-			},
364
+			// searchList(e) {
365
+			// 	this.resetListData()
366
+			// 	this.paramsData.workordercode = e.value
367
+			// 	this.getList(this.paramsData)
368
+			// },
369
+			// cancelList(e) {
370
+			// 	this.resetListData()
371
+			// 	this.paramsData.workordercode = ''
372
+			// 	this.getList(this.paramsData)
373
+			// },
220 374
 
221 375
 			onClickSegmentedControl(e) {
222 376
 				console.log(e)
377
+				this.jinjiText = ''
378
+				this.cuidanText = ''
379
+				this.fanxiuText = ''
380
+				this.tabName = ''
381
+				this.isActive = 0
382
+				this.paramsData.emergency = ''
383
+				this.paramsData.urge = ''
384
+				this.paramsData.returnnum = ''
223 385
 				this.resetListData()
224 386
 				switch (String(e.currentIndex)) {
225 387
 					case "0":
@@ -232,43 +394,65 @@
232 394
 						this.paramsData.state = 3
233 395
 						break
234 396
 				}
235
-				// this.getList(this.paramsData)
236
-				if (String(e.currentIndex) == '4') {
237
-					this.paramsData.emergency = ''
238
-					this.getCuiList(this.paramsData)
239
-				} else if (String(e.currentIndex) == '3') { //紧急列表
240
-					this.paramsData.state = ''
241
-					this.paramsData.emergency = '紧急'
242
-					this.getList(this.paramsData)
243
-				}else if (String(e.currentIndex) == '5'){ //返修列表
244
-				    this.paramsData.state = ''
245
-					this.paramsData.emergency = ''
246
-					this.getFxList()
247
-				} else {
248
-					this.paramsData.emergency = ''
249
-					this.getList(this.paramsData)
250
-				}
251
-			},
252
-			getFxList(){
253
-				const params = {}
254
-				this.$http.get("FaultRepair/ReworkList", params).then((response) => {
255
-					if (response.state.toLowerCase() === "success") {
256
-						let data = response.rows
257
-						this.total = response.total
258
-						uni.stopPullDownRefresh();
259
-						this.listData = this.listData.concat(data)
260
-						if (this.listData.length >= 6) {
261
-							this.loadMoreState = 'more'
262
-						} else {
263
-							this.loadMoreState = 'no-more'
264
-						}
265
-					}
266
-				})
397
+				this.getListCon()
398
+				this.getList(this.paramsData)
399
+				// if (String(e.currentIndex) == '4') {
400
+				// 	this.paramsData.emergency = ''
401
+				// 	// this.getCuiList(this.paramsData)
402
+				// } else if (String(e.currentIndex) == '3') { //紧急列表
403
+				// 	this.paramsData.state = ''
404
+				// 	this.paramsData.emergency = '紧急'
405
+				// 	this.getList(this.paramsData)
406
+				// } else if (String(e.currentIndex) == '5') { //返修列表
407
+				// 	this.paramsData.state = ''
408
+				// 	this.paramsData.emergency = ''
409
+				// 	// this.getFxList()
410
+				// } else {
411
+				// 	this.paramsData.emergency = ''
412
+				// 	this.getList(this.paramsData)
413
+				// }
267 414
 			},
415
+			// getFxList() {
416
+			// 	const params = {}
417
+			// 	this.$http.get("FaultRepair/ReworkList", params).then((response) => {
418
+			// 		if (response.state.toLowerCase() === "success") {
419
+			// 			let data = response.rows
420
+			// 			this.total = response.total
421
+			// 			uni.stopPullDownRefresh();
422
+			// 			this.listData = this.listData.concat(data)
423
+			// 			if (this.listData.length >= 6) {
424
+			// 				this.loadMoreState = 'more'
425
+			// 			} else {
426
+			// 				this.loadMoreState = 'no-more'
427
+			// 			}
428
+			// 		}
429
+			// 	})
430
+			// },
268 431
 			resetListData() {
269 432
 				this.listData = []
270 433
 				this.paramsData.page = 1
271 434
 				this.paramsData.pagesize = 10
435
+			},
436
+			tabottomChange1() {
437
+				this.isActive = 1
438
+				this.tabName = '紧急'
439
+				this.paramsData.page = 1
440
+				this.paramsData.pagesize = 10
441
+				this.getList(this.paramsData)
442
+			},
443
+			tabottomChange2() {
444
+				this.isActive = 2
445
+				this.tabName = '催单'
446
+				this.paramsData.page = 1
447
+				this.paramsData.pagesize = 10
448
+				this.getList(this.paramsData)
449
+			},
450
+			tabottomChange3() {
451
+				this.isActive = 3
452
+				this.tabName = '返修'
453
+				this.paramsData.page = 1
454
+				this.paramsData.pagesize = 10
455
+				this.getList(this.paramsData)
272 456
 			}
273 457
 		},
274 458
 		/**
@@ -283,12 +467,14 @@
283 467
 				this.loadMoreState = 'no-more'
284 468
 			}
285 469
 
286
-		}
470
+		},
471
+
287 472
 	}
288 473
 </script>
289 474
 
290 475
 <style lang="scss" scoped>
291 476
 	@import '@/common/uni-ui.scss';
477
+
292 478
 	/deep/ .segmented-control__text {
293 479
 		font-size: 1rem;
294 480
 	}
@@ -300,8 +486,8 @@
300 486
 	/deep/ .uni-note {
301 487
 		font-size: 1rem;
302 488
 	}
303
-	
304
-	.uni-badge-left-margin{
489
+
490
+	.uni-badge-left-margin {
305 491
 		width: 20%;
306 492
 	}
307 493
 
@@ -311,7 +497,7 @@
311 497
 
312 498
 	.wrapper {
313 499
 		padding: 5px 0 0 0;
314
-		width:100%;
500
+		width: 100%;
315 501
 		overflow: hidden;
316 502
 
317 503
 		.uni-search-bar {
@@ -322,6 +508,7 @@
322 508
 			background-color: #ffffff;
323 509
 			padding-right: 10px;
324 510
 			font-size: 12px;
511
+			padding-bottom: 5px;
325 512
 		}
326 513
 
327 514
 		.tableWrapper {
@@ -438,4 +625,27 @@
438 625
 	.uni-content {
439 626
 		display: flex;
440 627
 	}
441
-</style>
628
+
629
+	.newcount {
630
+		width: 33%;
631
+		text-align: center;
632
+		box-sizing: border-box;
633
+		vertical-align: middle;
634
+	}
635
+
636
+	.newcountTitle {
637
+		margin: 0 18%;
638
+		font-size: 15px;
639
+		border-radius: 5px;
640
+		padding: 3px 5px 3px 10px;
641
+		background-color: #dedede;
642
+	}
643
+
644
+	.newcountTitleActive {
645
+		font-size: 15px;
646
+		border-radius: 5px;
647
+		padding: 3px 5px 3px 10px;
648
+		background-color: #b6b6b6;
649
+		font-weight: 700;
650
+	}
651
+</style>