zhaomin лет назад: 3
Родитель
Сommit
0065fd0a9e
30 измененных файлов с 6142 добавлено и 23 удалено
  1. 1 1
      anyangWebAPP/config/constData.config.js
  2. 72 0
      anyangWebAPP/pages.json
  3. 287 0
      anyangWebAPP/pages/myTask - 副本/myTask.vue
  4. 300 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/buttons - 副本.vue
  5. 324 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/buttons.vue
  6. 22 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/button_13/button_13.vue
  7. 110 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailAdditionalReply/detailAdditionalReply.vue
  8. 210 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailAssign/detailAssign.vue
  9. 103 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailAudit/detailAudit.vue
  10. 181 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailCallback/detailCallback.vue
  11. 117 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailDelayAudit/detailDelayAudit.vue
  12. 325 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailProcessAudit/detailProcessAudit.vue
  13. 180 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailReassignment/detailReassignment.vue
  14. 355 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/editWorkOrder/editWorkOrder.vue
  15. 271 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/handleWordOrder/handleWordOrder.vue
  16. 74 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/template/index.vue
  17. 910 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/viewWorkOrder/viewWorkOrder.vue
  18. 195 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/workOrderDetail.vue
  19. 434 0
      anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderList.vue
  20. 87 10
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/buttons.vue
  21. 76 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_12/button_12.vue
  22. 253 4
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_13/button_13.vue
  23. 132 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_15/button_15.vue
  24. 117 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_17/button_17.vue
  25. 206 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_18/button_18.vue
  26. 80 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_22/button_22.vue
  27. 180 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_23/button_23.vue
  28. 325 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_24/button_24.vue
  29. 206 0
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_5/button_5.vue
  30. 9 8
      anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/workOrderDetail.vue

+ 1 - 1
anyangWebAPP/config/constData.config.js

@@ -112,7 +112,7 @@ export default {
112 112
 			imagePath: "../../static/icon_tosubmit.png",
113 113
 			imageBg: "#fe940a",
114 114
 			text: "待审转办", //WorkOrder/GetLDDealList
115
-			navigateToUrl: "/pages/workOrderList/workOrderList?workOrderListType=1&tab=0&state=&stingText=待审转办",
115
+			navigateToUrl: "/pages/myTask/workOrderList/workOrderList?workOrderListType=1&tab=0&state=&stingText=待审转办",
116 116
 		}, {
117 117
 			id: "9",
118 118
 			imagePath: "../../static/icon_unsuccessful.png",

+ 72 - 0
anyangWebAPP/pages.json

@@ -130,6 +130,78 @@
130 130
             }
131 131
             
132 132
         }
133
+        ,{
134
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_5/button_5",
135
+            "style" :                                                                                    
136
+            {
137
+                "navigationBarTitleText": "交办",
138
+                "enablePullDownRefresh": false
139
+            }
140
+            
141
+        }
142
+        ,{
143
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_18/button_18",
144
+            "style" :                                                                                    
145
+            {
146
+                "navigationBarTitleText": "重办",
147
+                "enablePullDownRefresh": false
148
+            }
149
+            
150
+        }
151
+        ,{
152
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_17/button_17",
153
+            "style" :                                                                                    
154
+            {
155
+                "navigationBarTitleText": "延时审核",
156
+                "enablePullDownRefresh": false
157
+            }
158
+            
159
+        }
160
+        ,{
161
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_23/button_23",
162
+            "style" :                                                                                    
163
+            {
164
+                "navigationBarTitleText": "派单",
165
+                "enablePullDownRefresh": false
166
+            }
167
+            
168
+        }
169
+        ,{
170
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_24/button_24",
171
+            "style" :                                                                                    
172
+            {
173
+                "navigationBarTitleText": "处理审核",
174
+                "enablePullDownRefresh": false
175
+            }
176
+            
177
+        }
178
+        ,{
179
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_12/button_12",
180
+            "style" :                                                                                    
181
+            {
182
+                "navigationBarTitleText": "退回申请",
183
+                "enablePullDownRefresh": false
184
+            }
185
+            
186
+        }
187
+        ,{
188
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_15/button_15",
189
+            "style" :                                                                                    
190
+            {
191
+                "navigationBarTitleText": "退回审核",
192
+                "enablePullDownRefresh": false
193
+            }
194
+            
195
+        }
196
+        ,{
197
+            "path" : "pages/myTask/workOrderList/workOrderDetail/buttons/components/button_22/button_22",
198
+            "style" :                                                                                    
199
+            {
200
+                "navigationBarTitleText": "强制结案",
201
+                "enablePullDownRefresh": false
202
+            }
203
+            
204
+        }
133 205
     ],
134 206
 	"globalStyle": {
135 207
 		"navigationBarTextStyle": "white",

+ 287 - 0
anyangWebAPP/pages/myTask - 副本/myTask.vue

@@ -0,0 +1,287 @@
1
+<template>
2
+	<view>
3
+		<view class="uni-margin-wrap">
4
+			<swiper class="swiper" circular :indicator-dots="indicatorDots" :autoplay="autoplay" :interval="interval"
5
+				:duration="duration">
6
+				<swiper-item v-for="item in bannnerData" :key="item.id">
7
+					<image :src="item.imgPath" mode=""></image>
8
+				</swiper-item>
9
+			</swiper>
10
+		</view>
11
+
12
+		<view class="orderManage">
13
+			<view class="orderTit">
14
+				<image src="../../static/orderManage.png"></image>
15
+				<text>工单进度</text>
16
+			</view>
17
+
18
+			<view class="orderCon">
19
+				<view class="orderList" v-for="item in orderListData" :key="item.id" @click="workOrderListClick(item)">
20
+					<image :style="{ background: item.imageBg }" :src="item.imagePath" mode=""></image>
21
+					<text>{{ item.text }}</text>
22
+				</view>
23
+			</view>
24
+
25
+			<view class="orderTit" @click="changeStore" v-if="noticState">
26
+				<image style="background: #ff9600" src="/static/icon_noticefi.png"></image>
27
+				<text>公告通知</text>
28
+			</view>
29
+
30
+			<view class="notification">
31
+				<view class="notifiList" v-for="item in noticListData" :key="item.id">
32
+					<image :style="{ background: item.imageBg }" :src="item.imagePath" mode=""></image>
33
+					<view class="">
34
+						<text>{{ item.textTit }}</text>
35
+						<text>{{ item.textCon }}</text>
36
+					</view>
37
+				</view>
38
+			</view>
39
+		</view>
40
+	</view>
41
+</template>
42
+<script>
43
+	import {
44
+		mapGetters
45
+	} from "vuex"
46
+	import store from '@/store';
47
+
48
+
49
+
50
+	export default {
51
+		data() {
52
+			return {
53
+				indicatorDots: true,
54
+				autoplay: true,
55
+				interval: 2000,
56
+				noticState: false,
57
+				duration: 500,
58
+				bannnerData: [],
59
+				orderListData: [],
60
+				noticListData: [],
61
+			}
62
+		},
63
+		computed: {
64
+			...mapGetters(["State"]),
65
+		},
66
+		onLoad() {
67
+			this.init()
68
+			// 公告数据
69
+			//this.noticListData = this.$mConstDataConfig.noticListData
70
+		},
71
+		methods: {
72
+			init() {
73
+
74
+				// #ifdef APP-PLUS
75
+				let timer
76
+				timer = setInterval(() => {
77
+					plus.push.getClientInfoAsync((info) => {
78
+						let cid = info["clientid"];
79
+						if (cid) {
80
+							clearInterval(timer)
81
+							this.clienGet(cid) //获取cid 
82
+						}
83
+					});
84
+				}, 5000)
85
+				// #endif
86
+				//banner数据
87
+				this.bannnerData = this.$mConstDataConfig.bannnerData
88
+				this.getMenuPermissions() //获取用户权限
89
+
90
+			},
91
+
92
+			changeStore() {
93
+				this.$mStore.dispatch("STATE", 3)
94
+			},
95
+			workOrderListClick(item) {
96
+				uni.navigateTo({
97
+					url: item.navigateToUrl,
98
+				})
99
+			},
100
+
101
+			clienGet(cid) {
102
+
103
+				let apptype
104
+				if (plus.device.model.indexOf('iPhone') > -1) {
105
+					apptype = 2;
106
+				} else {
107
+					apptype = 1;
108
+				}
109
+				const params = {
110
+					apptype: apptype,
111
+					clientid: cid,
112
+					token: uni.getStorageSync("token"),
113
+				}
114
+				this.$http.get("PushMessage/PutAppClientIdAsync", params).then((response) => {
115
+						if (response.state.toLowerCase() === "success") {
116
+							let data = response.message
117
+						}
118
+
119
+					})
120
+					.catch((e) => {
121
+						console.log(e)
122
+					})
123
+
124
+			},
125
+
126
+			getMenuPermissions() {
127
+				let code = uni.getStorageSync("roleCode");
128
+				console.log(code)
129
+				// this.$http.get("InternalMessages/GetCount", {token: uni.getStorageSync("token")}).then((response) => {
130
+				// 		if (response.state.toLowerCase() === "success") {
131
+				// 			if(response.IsRead == 1) {
132
+				// 				uni.showTabBarRedDot({
133
+				// 				  index: 1
134
+				// 				})
135
+				// 			}else{
136
+				// 				uni.hideTabBarRedDot({
137
+				// 				  index: 1
138
+				// 				})
139
+				// 			}
140
+				// 		}
141
+				
142
+				// 	})
143
+				// 	.catch((e) => {
144
+				// 		console.log(e)
145
+				// 	})
146
+				/* 
147
+				GLY:管理员
148
+						SPZ:审批组
149
+						SPZJZ:审批质检组
150
+				WLDW:二级单位
151
+				EJWLDW:三级单位
152
+				DBZY:督办专员
153
+			  */
154
+				if (code === "GLY") {
155
+					this.orderListData = this.$mConstDataConfig.roleListData.supervisionList
156
+				} else if (code === "SPZ") {
157
+					this.orderListData = this.$mConstDataConfig.roleListData.approvalList
158
+				} else if (code === "SPZJZ") {
159
+					this.orderListData = this.$mConstDataConfig.roleListData.examinationApprovalList
160
+				} else if (code === "WLDW") {
161
+					this.orderListData = this.$mConstDataConfig.roleListData.secondaryUnitList
162
+				} else if (code === "EJWLDW") {
163
+					this.orderListData = this.$mConstDataConfig.roleListData.tertiaryUnitList
164
+				} else if (code === "DBZY" || code === "DBGLY") {
165
+					this.orderListData = this.$mConstDataConfig.roleListData.supervisorList
166
+				} else if (code == 'ZXHWY') {
167
+					this.orderListData = this.$mConstDataConfig.roleListData.returnVisitList
168
+				}
169
+			},
170
+		},
171
+	}
172
+</script>
173
+
174
+<style lang="scss">
175
+	.uni-margin-wrap {
176
+		width: 690rpx;
177
+		width: 100%;
178
+	}
179
+
180
+	.swiper {
181
+		height: 225px;
182
+
183
+		image {
184
+			width: 100%;
185
+			height: 100%;
186
+		}
187
+	}
188
+
189
+	.orderManage {
190
+		.orderTit {
191
+			margin-top: 15rpx;
192
+			width: 100%;
193
+			height: 80rpx;
194
+			line-height: 80rpx;
195
+			background: #ffffff;
196
+			display: flex;
197
+			border-bottom: 1rpx solid #eeeeee;
198
+
199
+			text {
200
+				font-size: 32rpx;
201
+			}
202
+
203
+			image {
204
+				width: 24rpx;
205
+				height: 24rpx;
206
+				padding: 8rpx;
207
+				border-radius: 12px;
208
+				background: #1972c2;
209
+				margin: 20rpx 10rpx 20rpx 26rpx;
210
+			}
211
+		}
212
+
213
+		.orderCon {
214
+			background: #ffffff;
215
+			display: flex;
216
+			flex-wrap: wrap;
217
+
218
+			.orderList {
219
+				width: 186rpx;
220
+				height: 206rpx;
221
+				text-align: center;
222
+				border-right: 2rpx solid #eeeeee;
223
+				border-bottom: 2rpx solid #eeeeee;
224
+
225
+				image {
226
+					width: 40rpx;
227
+					height: 40rpx;
228
+					margin: 0 auto;
229
+					display: block;
230
+					border-radius: 35rpx;
231
+					padding: 15rpx;
232
+					margin-top: 45rpx;
233
+				}
234
+
235
+				text {
236
+					font-size: 24rpx;
237
+					line-height: 60rpx;
238
+				}
239
+			}
240
+
241
+			.orderList:nth-child(4n + 4) {
242
+				border-right: none;
243
+			}
244
+
245
+			.orderList:last-child {
246
+				border-right: none;
247
+			}
248
+		}
249
+
250
+		.notification {
251
+			background: #ffffff;
252
+			margin-bottom: 100rpx;
253
+			display: flex;
254
+			flex-wrap: wrap;
255
+			border-bottom: 1rpx solid #eeeeee;
256
+
257
+			.notifiList {
258
+				width: 375rpx;
259
+				height: 172rpx;
260
+				padding: 46rpx 30rpx 46rpx 30rpx;
261
+				text-align: left;
262
+				border-right: 1rpx solid #eeeeee;
263
+				border-bottom: 1rpx solid #eeeeee;
264
+				box-sizing: border-box;
265
+				display: flex;
266
+
267
+				image {
268
+					width: 48rpx;
269
+					height: 48rpx;
270
+					box-sizing: border-box;
271
+					border-radius: 24rpx;
272
+					padding: 10rpx;
273
+					margin: 19rpx;
274
+				}
275
+
276
+				text {
277
+					font-size: 24rpx;
278
+					line-height: 30rpx;
279
+				}
280
+			}
281
+
282
+			.notifiList:nth-child(2n + 2) {
283
+				border-right: none;
284
+			}
285
+		}
286
+	}
287
+</style>

+ 300 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/buttons - 副本.vue

@@ -0,0 +1,300 @@
1
+<template>
2
+
3
+	<view>
4
+		<button class="mini-btn" type="default" size="mini" v-for="item in orderButtonData"
5
+			@click="callBtnMethods(item.eventName)" :key="item.id">
6
+			{{ item.text }}
7
+		</button>
8
+		<button class="mini-btn" type="default" size="mini" @click="superviseBtn" v-show="tap == '正在办理'">催办</button>
9
+		<button class="mini-btn" type="default" size="mini" @click="additionalReplyBtn" v-show="tap == '三级已办未果'">追加回复</button>
10
+		<!-- 弹框 -->
11
+		<view>
12
+			<uni-popup ref="inputDialog" type="dialog">
13
+				<uni-popup-dialog ref="inputClose" mode="input" title="输入内容" @confirm="dialogInputConfirm">
14
+					<view style="width:100%;">
15
+						<uni-easyinput type="textarea" autoHeight v-model="cbreason" :placeholder="auditPlaceholder" />
16
+					</view>
17
+				</uni-popup-dialog>
18
+			</uni-popup>
19
+		</view>
20
+	</view>
21
+</template>
22
+
23
+<script>
24
+	export default {
25
+		props: {
26
+			orderButtonData: {
27
+				type: Array,
28
+				default () {
29
+					return []
30
+				}
31
+			},
32
+			wid: {
33
+				type: String,
34
+				default: ''
35
+			},
36
+			tap: {
37
+				type: String,
38
+				default: ''
39
+			}
40
+		},
41
+		watch: {
42
+			orderButtonData(val) {}
43
+		},
44
+		data() {
45
+			return {
46
+				workOrderButton: [], // 工单按钮权限
47
+				cbreason: '', //审核原因
48
+				auditPlaceholder: '请输入不通过审核原因'
49
+			}
50
+		},
51
+		onLoad(option) {
52
+			console.log(option)
53
+		},
54
+		methods: {
55
+			callBtnMethods(methodName) {
56
+				this[methodName]();
57
+			},
58
+			// 1查看
59
+			viewBtn() {
60
+				uni.navigateTo({
61
+					url: "/pages/workOrderDetail/components/viewWorkOrder/viewWorkOrder?wid=" + this.wid,
62
+				})
63
+			},
64
+			// 2编辑
65
+			editBtn() {
66
+				uni.navigateTo({
67
+					url: "/pages/workOrderDetail/components/editWorkOrder/editWorkOrder?wid=" + this.wid,
68
+				})
69
+			},
70
+			// 5交办
71
+			assignBtn() {
72
+				uni.navigateTo({
73
+					url: "/pages/workOrderDetail/components/detailAssign/detailAssign?wid=" + this.wid +
74
+						"&assignState=transact",
75
+				})
76
+			},
77
+			//收回
78
+			takeBack() {
79
+				this.confirmationAPI("WorkOrder/TakeBackWorkOrder", "信息", "是否要收回", "取消了收回")
80
+			},
81
+			// 11查收
82
+			checkBtn() {
83
+				this.confirmationAPI("WorkOrder/ReceiveWorkOrder", "信息", "是否要查收", "取消了查收")
84
+			},
85
+			// 13 处理 
86
+			disposeBtn() {
87
+				uni.navigateTo({
88
+					url: "/pages/workOrderDetail/components/handleWordOrder/handleWordOrder?wid=" + this.wid,
89
+				})
90
+			},
91
+			// 14延时审核
92
+			applyDelayBtn() {
93
+				this.cbreason = ''
94
+				this.auditPlaceholder = '请输入申请延时原因'
95
+				this.$refs.inputDialog.open()
96
+			},
97
+			// 16回访
98
+			callbackBtn() {
99
+				uni.navigateTo({
100
+					url: "/pages/workOrderDetail/components/detailCallback/detailCallback?wid=" + this.wid,
101
+				})
102
+			},
103
+			// 17延时审核
104
+			delayAuditBtn() {
105
+				uni.navigateTo({
106
+					url: "/pages/workOrderDetail/components/detailDelayAudit/detailDelayAudit?wid=" + this.wid,
107
+				})
108
+			},
109
+			// 18重办
110
+			severelyPunishBtn() {
111
+				uni.navigateTo({
112
+					url: "/pages/workOrderDetail/components/detailAssign/detailAssign?wid=" + this.wid +
113
+						"&assignState=again",
114
+				})
115
+			},
116
+			// 32驳回重办
117
+			rejectedRecreateBtn() {
118
+				this.cbreason = ''
119
+				this.auditPlaceholder = '请输入驳回重办原因'
120
+				this.$refs.inputDialog.open()
121
+			},
122
+			// 51审核通过
123
+			approvedBtn() {
124
+				uni.showLoading({
125
+					title: '加载中'
126
+				})
127
+				uni.showModal({
128
+					title: '审核通过',
129
+					content: '是否审核通过',
130
+					success: (res) => {
131
+						if (res.confirm) {
132
+							this.toExamineWorkOrder(0, '')
133
+						} else if (res.cancel) {
134
+							uni.hideLoading()
135
+							this.$mHelper.toast('用户点击取消');
136
+						}
137
+					}
138
+				});
139
+			},
140
+			// 52审核不通过
141
+			auditFailedBtn() {
142
+				this.cbreason = ''
143
+				this.auditPlaceholder = '请输入不通过原因'
144
+				this.$refs.inputDialog.open()
145
+			},
146
+			// 53审核通过转办
147
+			auditPassTurnBtn() {
148
+				this.cbreason = ''
149
+				this.auditPlaceholder = '请输入审核通过并转办原因'
150
+				this.$refs.inputDialog.open()
151
+			},
152
+			// 58审核
153
+			auditWorkordeBtn() {
154
+				uni.navigateTo({
155
+					url: "/pages/workOrderDetail/components/detailAudit/detailAudit?wid=" + this.wid,
156
+				})
157
+			},
158
+			// 59追加回复
159
+			additionalReplyBtn() {
160
+				uni.navigateTo({
161
+					url: "/pages/workOrderDetail/components/detailAdditionalReply/detailAdditionalReply?wid=" + this.wid,
162
+				})
163
+			},
164
+			// 派单
165
+			sendOrdersBtn(){
166
+				uni.navigateTo({
167
+					url: "/pages/workOrderDetail/components/detailReassignment/detailReassignment?wid=" + this.wid,
168
+				})
169
+			},
170
+			// 回退
171
+			rollbackBtn(){
172
+				this.cbreason = ''
173
+				this.auditPlaceholder = '请输入回退原因'
174
+				this.$refs.inputDialog.open()
175
+			},
176
+			//转督办
177
+			turnSuperviseBtn() {
178
+				this.cbreason = ''
179
+				this.auditPlaceholder = '请输入转督办原因'
180
+				this.$refs.inputDialog.open()
181
+			},
182
+			//催办
183
+			superviseBtn(){
184
+				this.confirmationAPI("WorkOrder/Reminders", "信息", "是否要催办", "取消了催办")
185
+			},
186
+			//签收
187
+			signForBtn() {
188
+				this.confirmationAPI("WorkOrder/SignWorkOrder", "信息", "是否要签收", "取消了签收")
189
+			},
190
+			//处理审核
191
+			processAuditBtn() {
192
+				uni.navigateTo({
193
+					url: "/pages/workOrderDetail/components/detailProcessAudit/detailProcessAudit?wid=" + this.wid,
194
+				})
195
+			},
196
+			sendBackFirstBtn() {
197
+				this.cbreason = ''
198
+				this.auditPlaceholder = '请输入退回原因'
199
+				this.$refs.inputDialog.open()
200
+			},
201
+			// 审核通过确认框
202
+			dialogInputConfirm() {
203
+				uni.showLoading({
204
+					title: '加载中'
205
+				})
206
+				// 关闭窗口后,恢复默认内容
207
+				this.$refs.inputDialog.close()
208
+				if (!this.cbreason) {
209
+					this.$mHelper.toast(this.auditPlaceholder)
210
+					return
211
+				}
212
+				if (this.auditPlaceholder === '请输入审核通过并转办原因') {
213
+					this.toExamineWorkOrder(2, '')
214
+				} else if (this.auditPlaceholder === '请输入不通过原因') {
215
+					uni.showModal({
216
+						title: '退回统计',
217
+						cancelText: '否',
218
+						confirmText: '是',
219
+						content: '是否退回统计',
220
+						success: (res) => {
221
+							if (res.confirm) {
222
+								console.log('是退回统计')
223
+								this.toExamineWorkOrder(1, 1)
224
+							} else if (res.cancel) {
225
+								console.log('否退回统计')
226
+								this.toExamineWorkOrder(1, 0)
227
+							}
228
+						}
229
+					});
230
+
231
+				} else if (this.auditPlaceholder === '请输入申请延时原因') {
232
+					const addParams = {reason: this.cbreason,workorderid:this.wid}
233
+					this.workOrderContent("WorkOrder/DelayWorkOrder", addParams)
234
+				} else if (this.auditPlaceholder === '请输入驳回重办原因') {
235
+					const addParams = {reason: this.cbreason,id: this.wid}
236
+					this.workOrderContent("WorkOrder/RejReloadWorkOrder",addParams)
237
+				} else if (this.auditPlaceholder === '请输入回退原因') {
238
+					const addParams = {backreason: this.cbreason,workorderid: this.wid}
239
+					this.workOrderContent("WorkOrder/ReturnWorkOrder",addParams)
240
+				}else if (this.auditPlaceholder === '请输入转督办原因') {
241
+					const addParams = {overseeopinion: this.cbreason,workorderid: this.wid,type: 1}
242
+					this.workOrderContent("WorkOrder/RemindWorkOrder",addParams)
243
+				}else if(this.auditPlaceholder === '请输入退回原因') {
244
+					const addParams = {reason: this.cbreason,workorderid: this.wid}
245
+					this.workOrderContent("WorkOrder/BackWorkOrder",addParams)
246
+				}
247
+			},
248
+
249
+			// 审核接口对接
250
+			toExamineWorkOrder(nexttype, statistics) {
251
+				const params = {
252
+					workorderid: this.wid,
253
+					nexttype: nexttype, // 0审核通过 1审核不通过 2审核通过转办
254
+					cbreason: this.cbreason,
255
+					statistics: statistics,
256
+					issms: 0,
257
+					token: uni.getStorageSync("token")
258
+				}
259
+				this.$mHelper.httpPost("WorkOrder/ToExamineWorkOrder",params,1)
260
+			},
261
+
262
+			// 确认框方法,带输入框
263
+			workOrderContent(url,addParams) {
264
+				const objParams = {
265
+					token: uni.getStorageSync("token"),
266
+				}
267
+				let params = Object.assign(addParams, objParams);
268
+				this.$mHelper.httpPost(url,params,1)
269
+				
270
+			},
271
+			//确认框方法
272
+			confirmationAPI(url, title, content, canceContent) {
273
+				uni.showModal({
274
+					title: title,
275
+					content: content,
276
+					success: (res) => {
277
+						if (res.confirm) {
278
+							const params = {
279
+								workorderid: this.wid,
280
+								token: uni.getStorageSync("token")
281
+							}
282
+							this.$mHelper.httpPost(url,params,1)
283
+						} else if (res.cancel) {
284
+							this.$mHelper.toast(canceContent);
285
+						}
286
+					}
287
+				})
288
+			},
289
+			
290
+		}
291
+	}
292
+</script>
293
+
294
+<style lang="scss">
295
+	.mini-btn {
296
+		margin-right: 3px;
297
+		color: #fff;
298
+		background: #1e90ff;
299
+	}
300
+</style>

+ 324 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/buttons.vue

@@ -0,0 +1,324 @@
1
+<template>
2
+
3
+	<view>
4
+		<button class="mini-btn" type="default" size="mini" v-for="item in orderButtonData"
5
+			@click="callBtnMethods(item.key)" :key="item.key">
6
+			{{ item.value }}
7
+		</button>
8
+		<button class="mini-btn" type="default" size="mini" @click="superviseBtn" v-show="tap == '正在办理'">催办</button>
9
+		<button class="mini-btn" type="default" size="mini" @click="additionalReplyBtn" v-show="tap == '三级已办未果'">追加回复</button>
10
+		<!-- 弹框 -->
11
+		<view>
12
+			<uni-popup ref="inputDialog" type="dialog">
13
+				<uni-popup-dialog ref="inputClose" mode="input" title="输入内容" @confirm="dialogInputConfirm">
14
+					<view style="width:100%;">
15
+						<uni-easyinput type="textarea" autoHeight v-model="cbreason" :placeholder="auditPlaceholder" />
16
+					</view>
17
+				</uni-popup-dialog>
18
+			</uni-popup>
19
+		</view>
20
+	</view>
21
+</template>
22
+
23
+<script>
24
+	export default {
25
+		props: {
26
+			orderButtonData: {
27
+				type: Array,
28
+				default () {
29
+					return []
30
+				}
31
+			},
32
+			wid: {
33
+				type: String,
34
+				default: ''
35
+			},
36
+			tap: {
37
+				type: String,
38
+				default: ''
39
+			}
40
+		},
41
+		watch: {
42
+			orderButtonData(val) {
43
+				console.log(this.orderButtonData)
44
+			}
45
+		},
46
+		data() {
47
+			return {
48
+				workOrderButton: [], // 工单按钮权限
49
+				cbreason: '', //审核原因
50
+				auditPlaceholder: '请输入不通过审核原因'
51
+			}
52
+		},
53
+		onLoad(option) {
54
+			console.log(option.orderButtonData)
55
+		},
56
+		methods: {
57
+			callBtnMethods(key) {
58
+				if(key == 3) { // 删除
59
+					this.confirmationAPI("WorkOrder/DelWorkOrder", "删除", "是否要删除", "取消了删除")
60
+				}else if(key == 4) { // 提交
61
+					this.confirmationAPI("WorkOrder/SubmitWorkOrder", "提交", "是否要提交", "取消了提交")
62
+				}else if(key == 10) { // 收回
63
+					this.confirmationAPI("WorkOrder/TakeBackWorkOrder", "收回", "是否要收回", "取消了收回")
64
+				}else if(key == 11) { // 查收
65
+					this.confirmationAPI("WorkOrder/ReceiveWorkOrder", "查收", "是否要查收", "取消了查收")
66
+				}else if(key == 25) { // 签收
67
+					this.confirmationAPI("WorkOrder/SignWorkOrder", "签收", "是否要签收", "取消了签收")
68
+				}else if(key == 27) { // 撤单
69
+					this.confirmationAPI("WorkOrder/WithdrawDWorkOrder", "撤单", "是否要撤单", "取消了撤单")
70
+				}else {
71
+					uni.navigateTo({
72
+						url: "/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_" + key + "/wid="+ this.wid,
73
+					})
74
+				}
75
+				
76
+			},
77
+			// 1查看
78
+			viewBtn() {
79
+				uni.navigateTo({
80
+					url: "/pages/workOrderDetail/components/viewWorkOrder/viewWorkOrder?wid=" + this.wid,
81
+				})
82
+			},
83
+			// 2编辑
84
+			editBtn() {
85
+				uni.navigateTo({
86
+					url: "/pages/workOrderDetail/components/editWorkOrder/editWorkOrder?wid=" + this.wid,
87
+				})
88
+			},
89
+			// 5交办
90
+			assignBtn() {
91
+				uni.navigateTo({
92
+					url: "/pages/workOrderDetail/components/detailAssign/detailAssign?wid=" + this.wid +
93
+						"&assignState=transact",
94
+				})
95
+			},
96
+			//收回
97
+			takeBack() {
98
+				this.confirmationAPI("WorkOrder/TakeBackWorkOrder", "信息", "是否要收回", "取消了收回")
99
+			},
100
+			// 11查收
101
+			checkBtn() {
102
+				this.confirmationAPI("WorkOrder/ReceiveWorkOrder", "信息", "是否要查收", "取消了查收")
103
+			},
104
+			// 13 处理 
105
+			disposeBtn() {
106
+				uni.navigateTo({
107
+					url: "/pages/workOrderDetail/components/handleWordOrder/handleWordOrder?wid=" + this.wid,
108
+				})
109
+			},
110
+			// 14延时审核
111
+			applyDelayBtn() {
112
+				this.cbreason = ''
113
+				this.auditPlaceholder = '请输入申请延时原因'
114
+				this.$refs.inputDialog.open()
115
+			},
116
+			// 16回访
117
+			callbackBtn() {
118
+				uni.navigateTo({
119
+					url: "/pages/workOrderDetail/components/detailCallback/detailCallback?wid=" + this.wid,
120
+				})
121
+			},
122
+			// 17延时审核
123
+			delayAuditBtn() {
124
+				uni.navigateTo({
125
+					url: "/pages/workOrderDetail/components/detailDelayAudit/detailDelayAudit?wid=" + this.wid,
126
+				})
127
+			},
128
+			// 18重办
129
+			severelyPunishBtn() {
130
+				uni.navigateTo({
131
+					url: "/pages/workOrderDetail/components/detailAssign/detailAssign?wid=" + this.wid +
132
+						"&assignState=again",
133
+				})
134
+			},
135
+			// 32驳回重办
136
+			rejectedRecreateBtn() {
137
+				this.cbreason = ''
138
+				this.auditPlaceholder = '请输入驳回重办原因'
139
+				this.$refs.inputDialog.open()
140
+			},
141
+			// 51审核通过
142
+			approvedBtn() {
143
+				uni.showLoading({
144
+					title: '加载中'
145
+				})
146
+				uni.showModal({
147
+					title: '审核通过',
148
+					content: '是否审核通过',
149
+					success: (res) => {
150
+						if (res.confirm) {
151
+							this.toExamineWorkOrder(0, '')
152
+						} else if (res.cancel) {
153
+							uni.hideLoading()
154
+							this.$mHelper.toast('用户点击取消');
155
+						}
156
+					}
157
+				});
158
+			},
159
+			// 52审核不通过
160
+			auditFailedBtn() {
161
+				this.cbreason = ''
162
+				this.auditPlaceholder = '请输入不通过原因'
163
+				this.$refs.inputDialog.open()
164
+			},
165
+			// 53审核通过转办
166
+			auditPassTurnBtn() {
167
+				this.cbreason = ''
168
+				this.auditPlaceholder = '请输入审核通过并转办原因'
169
+				this.$refs.inputDialog.open()
170
+			},
171
+			// 58审核
172
+			auditWorkordeBtn() {
173
+				uni.navigateTo({
174
+					url: "/pages/workOrderDetail/components/detailAudit/detailAudit?wid=" + this.wid,
175
+				})
176
+			},
177
+			// 59追加回复
178
+			additionalReplyBtn() {
179
+				uni.navigateTo({
180
+					url: "/pages/workOrderDetail/components/detailAdditionalReply/detailAdditionalReply?wid=" + this.wid,
181
+				})
182
+			},
183
+			// 派单
184
+			sendOrdersBtn(){
185
+				uni.navigateTo({
186
+					url: "/pages/workOrderDetail/components/detailReassignment/detailReassignment?wid=" + this.wid,
187
+				})
188
+			},
189
+			// 回退
190
+			rollbackBtn(){
191
+				this.cbreason = ''
192
+				this.auditPlaceholder = '请输入回退原因'
193
+				this.$refs.inputDialog.open()
194
+			},
195
+			//转督办
196
+			turnSuperviseBtn() {
197
+				this.cbreason = ''
198
+				this.auditPlaceholder = '请输入转督办原因'
199
+				this.$refs.inputDialog.open()
200
+			},
201
+			//催办
202
+			superviseBtn(){
203
+				this.confirmationAPI("WorkOrder/Reminders", "信息", "是否要催办", "取消了催办")
204
+			},
205
+			//签收
206
+			signForBtn() {
207
+				this.confirmationAPI("WorkOrder/SignWorkOrder", "信息", "是否要签收", "取消了签收")
208
+			},
209
+			//处理审核
210
+			processAuditBtn() {
211
+				uni.navigateTo({
212
+					url: "/pages/workOrderDetail/components/detailProcessAudit/detailProcessAudit?wid=" + this.wid,
213
+				})
214
+			},
215
+			sendBackFirstBtn() {
216
+				this.cbreason = ''
217
+				this.auditPlaceholder = '请输入退回原因'
218
+				this.$refs.inputDialog.open()
219
+			},
220
+			// 审核通过确认框
221
+			dialogInputConfirm() {
222
+				uni.showLoading({
223
+					title: '加载中'
224
+				})
225
+				// 关闭窗口后,恢复默认内容
226
+				this.$refs.inputDialog.close()
227
+				if (!this.cbreason) {
228
+					this.$mHelper.toast(this.auditPlaceholder)
229
+					return
230
+				}
231
+				if (this.auditPlaceholder === '请输入审核通过并转办原因') {
232
+					this.toExamineWorkOrder(2, '')
233
+				} else if (this.auditPlaceholder === '请输入不通过原因') {
234
+					uni.showModal({
235
+						title: '退回统计',
236
+						cancelText: '否',
237
+						confirmText: '是',
238
+						content: '是否退回统计',
239
+						success: (res) => {
240
+							if (res.confirm) {
241
+								console.log('是退回统计')
242
+								this.toExamineWorkOrder(1, 1)
243
+							} else if (res.cancel) {
244
+								console.log('否退回统计')
245
+								this.toExamineWorkOrder(1, 0)
246
+							}
247
+						}
248
+					});
249
+
250
+				} else if (this.auditPlaceholder === '请输入申请延时原因') {
251
+					const addParams = {reason: this.cbreason,workorderid:this.wid}
252
+					this.workOrderContent("WorkOrder/DelayWorkOrder", addParams)
253
+				} else if (this.auditPlaceholder === '请输入驳回重办原因') {
254
+					const addParams = {reason: this.cbreason,id: this.wid}
255
+					this.workOrderContent("WorkOrder/RejReloadWorkOrder",addParams)
256
+				} else if (this.auditPlaceholder === '请输入回退原因') {
257
+					const addParams = {backreason: this.cbreason,workorderid: this.wid}
258
+					this.workOrderContent("WorkOrder/ReturnWorkOrder",addParams)
259
+				}else if (this.auditPlaceholder === '请输入转督办原因') {
260
+					const addParams = {overseeopinion: this.cbreason,workorderid: this.wid,type: 1}
261
+					this.workOrderContent("WorkOrder/RemindWorkOrder",addParams)
262
+				}else if(this.auditPlaceholder === '请输入退回原因') {
263
+					const addParams = {reason: this.cbreason,workorderid: this.wid}
264
+					this.workOrderContent("WorkOrder/BackWorkOrder",addParams)
265
+				}
266
+			},
267
+
268
+			// 审核接口对接
269
+			toExamineWorkOrder(nexttype, statistics) {
270
+				const params = {
271
+					workorderid: this.wid,
272
+					nexttype: nexttype, // 0审核通过 1审核不通过 2审核通过转办
273
+					cbreason: this.cbreason,
274
+					statistics: statistics,
275
+					issms: 0,
276
+					token: uni.getStorageSync("token")
277
+				}
278
+				this.$mHelper.httpPost("WorkOrder/ToExamineWorkOrder",params,1)
279
+			},
280
+
281
+			// 确认框方法,带输入框
282
+			workOrderContent(url,addParams) {
283
+				const objParams = {
284
+					token: uni.getStorageSync("token"),
285
+				}
286
+				let params = Object.assign(addParams, objParams);
287
+				this.$mHelper.httpPost(url,params,1)
288
+				
289
+			},
290
+			//确认框方法
291
+			confirmationAPI(url, title, content, canceContent) {
292
+				uni.showModal({
293
+					title: title,
294
+					content: content,
295
+					success: (res) => {
296
+						if (res.confirm) {
297
+							let params = {
298
+								token: uni.getStorageSync("token")
299
+							}
300
+							if(title == '删除' || title == '提交') {
301
+								params.ids = this.wid
302
+							}else{
303
+								params.workorderid = this.wid
304
+							}
305
+							
306
+							this.$mHelper.httpPost(url,params,1)
307
+						} else if (res.cancel) {
308
+							this.$mHelper.toast(canceContent);
309
+						}
310
+					}
311
+				})
312
+			},
313
+			
314
+		}
315
+	}
316
+</script>
317
+
318
+<style lang="scss">
319
+	.mini-btn {
320
+		margin-right: 3px;
321
+		color: #fff;
322
+		background: #1e90ff;
323
+	}
324
+</style>

+ 22 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/button_13/button_13.vue

@@ -0,0 +1,22 @@
1
+<template>
2
+	<view>
3
+		
4
+	</view>
5
+</template>
6
+
7
+<script>
8
+	export default {
9
+		data() {
10
+			return {
11
+				
12
+			}
13
+		},
14
+		methods: {
15
+			
16
+		}
17
+	}
18
+</script>
19
+
20
+<style>
21
+
22
+</style>

+ 110 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailAdditionalReply/detailAdditionalReply.vue

@@ -0,0 +1,110 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="处理内容">
8
+					<view class="detailContent">{{detailContentData.F_Situation}}</view>
9
+				</uni-forms-item>
10
+
11
+				<uni-forms-item label="回复">
12
+					<uni-easyinput type="textarea" autoHeight v-model="valiFormData.replycount" placeholder="请输入回复内容"/>
13
+				</uni-forms-item>
14
+				
15
+				<uni-forms-item label="上传图片">
16
+					<upload @post-string-data="getImgData" :imgUrlList="imgUrlList"></upload>
17
+				</uni-forms-item>
18
+				
19
+			</uni-forms>
20
+			<view class="btnClass">
21
+				<button type="warn" @click="Submit('valiForm')">提交</button>
22
+			</view>
23
+		</view>
24
+		
25
+	</view>
26
+	
27
+</template>
28
+
29
+<script>
30
+	import upload from '@/pages/components/upload/upload.vue' //upload
31
+	export default {
32
+		data() {
33
+			return {
34
+				// 校验表单数据
35
+				valiFormData: {
36
+					workorderid: '',
37
+					replycount:'',
38
+					files:'',
39
+				},
40
+				imgList: [],
41
+				imgUrlList: [],
42
+				detailContentData:{}, //工单信息
43
+				// 校验规则
44
+				rules: {},
45
+			}
46
+		},
47
+		components:{
48
+			upload
49
+		},
50
+		onLoad(option) {
51
+			this.valiFormData.workorderid = option.wid
52
+			// 获取详情
53
+			this.getDetail("0",option.wid);
54
+			
55
+		},
56
+		methods: {
57
+			
58
+			getDetail(type,id) {
59
+				
60
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrder",type,id,(res)=>{
61
+					if (type === "0") {
62
+					  this.detailContentData = res.data[0];
63
+					  this.detailContentData.F_Situation =res.bldata&&res.bldata[res.bldata.length - 1].F_Situation
64
+					}
65
+				})
66
+				
67
+			},
68
+			getImgData(data){
69
+				this.imgList = data
70
+			},
71
+			//提交
72
+			Submit(){
73
+				const params = {
74
+				  workorderid: this.valiFormData.workorderid,
75
+				  replycount: this.valiFormData.replycount,
76
+				  files:this.$mHelper.getImgString(this.imgList),
77
+				  token: uni.getStorageSync("token"),
78
+				}
79
+				this.$mHelper.httpPost("WorkOrder/ReplyWorkOrder",params,2)
80
+				
81
+			},
82
+		}
83
+	}
84
+</script>
85
+
86
+<style lang="scss">
87
+.wrapper {
88
+  padding: 10px 15px;
89
+  background-color: #fff;
90
+  .form {
91
+		.uni-stat__select{
92
+		    display: block;
93
+		    align-items: center;
94
+		    padding: 0px;
95
+		    cursor: pointer;
96
+			width: 75%;
97
+		}
98
+		.detailContent{
99
+			line-height: 36px;
100
+		}
101
+  }
102
+  .uniFilePicker{
103
+	  padding-top: 5px;
104
+  }
105
+  .btnClass{
106
+	  display: flex;
107
+  }
108
+
109
+}
110
+</style>

+ 210 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailAssign/detailAssign.vue

@@ -0,0 +1,210 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="工单内容">
8
+					<view class="detailContent" v-model="valiFormData.content">{{detailContentData.F_ComContent}}</view>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="紧急程度" required name="leave">
11
+					<uni-data-select v-model="valiFormData.leave" :localdata="levelData" @change="changeLeave" />
12
+				</uni-forms-item>
13
+				<uni-forms-item label="办理时限" required name="limittime" v-show="valiFormData.leave===1">
14
+					<uni-data-select v-model="valiFormData.limittime" :localdata="limittimeData" @change="changeLimittime" />
15
+				</uni-forms-item>
16
+				<uni-forms-item label="紧急办理时限" required name="limittimes" v-show="valiFormData.leave===2">
17
+					<uni-datetime-picker v-model="valiFormData.limittimes"/>
18
+				</uni-forms-item>
19
+				<uni-forms-item label="是否短信提醒" required name="isms" >
20
+					<uni-data-select v-model="valiFormData.isms" :localdata="ismsData"/>
21
+				</uni-forms-item>
22
+				<uni-forms-item label="承办单位" required name="maindeptid">
23
+					<depart-select @post-select-data = "postSelectData"></depart-select>
24
+				</uni-forms-item>
25
+				
26
+			</uni-forms>
27
+			<view class="btnClass">
28
+				<button type="warn" @click="submit('valiForm')">提交</button>
29
+			</view>
30
+		</view>
31
+	</view>
32
+</template>
33
+
34
+<script>
35
+	import departSelect from '@/pages/components/commonSelect/departSelect/departSelect.vue'
36
+	export default {
37
+		components: {
38
+			departSelect
39
+		},
40
+		data() {
41
+			return {
42
+				// 校验表单数据
43
+				valiFormData: {
44
+					workorderid: '',
45
+					maindeptid: '', //承办单位
46
+					leave:'',	//紧急程度
47
+					limittime: 5, //办理时限
48
+					limittimes: '', //紧急办理时限
49
+					assignedopinion: '', //交办意见
50
+					state: 1, // 0保存,1保存并提交
51
+					content: '',
52
+					isms: '',
53
+				},
54
+				assignState:'',
55
+				detailContentData:{}, //工单信息
56
+				limittimeData:[{
57
+					value:5,
58
+					text:'五个工作日'
59
+				},{
60
+					value:1,
61
+					text:'一个工作日'
62
+				},{
63
+					value:7,
64
+					text:'七个工作日'
65
+				}],
66
+				limittimes:'',
67
+				levelData: [{
68
+					value:1,
69
+					text:'普通'
70
+				},{
71
+					value:2,
72
+					text:'紧急'
73
+				}],
74
+				ismsData:[{
75
+					value: 0,
76
+					text:'否'
77
+				},{
78
+					value: 1,
79
+					text:'是'
80
+				}],
81
+				// 校验规则
82
+				rules: {
83
+					leave: {
84
+						rules: [{
85
+							required: true,
86
+							errorMessage: '紧急程度不能为空'
87
+						}]
88
+					},
89
+					maindeptid: {
90
+						rules: [{
91
+							required: true,
92
+							errorMessage: '承办单位不能为空'
93
+						}]
94
+					},
95
+					isms: {
96
+						rules: [{
97
+							required: true,
98
+							errorMessage: '短信提醒不能为空'
99
+						}]
100
+					}
101
+					
102
+				},
103
+			}
104
+		},
105
+		onLoad(option) {
106
+			this.valiFormData.workorderid = option.wid
107
+			this.assignState = option.assignState
108
+			// 获取详情
109
+			this.getDetail("0",option.wid);
110
+		},
111
+		methods: {
112
+			postSelectData(data) {
113
+				this.valiFormData.maindeptid = data
114
+			},
115
+			changeLeave(e){
116
+				// 1是普通,2是紧急
117
+				this.valiFormData.leave = e
118
+				if(e){
119
+					e===1?this.valiFormData.limittimes = '':this.valiFormData.limittime = 5
120
+					e===1?this.valiFormData.isms = 0:this.valiFormData.isms = 1
121
+				}
122
+				
123
+			},
124
+			changeLimittime(e){
125
+				console.log(e)
126
+			},
127
+			getDetail(type,id) {
128
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrderNew",type,id,(res)=>{
129
+					if (type === "0") {
130
+						this.detailContentData = res.data[0];
131
+						this.valiFormData.content = res.data[0].F_ComContent
132
+						this.valiFormData.leave = Number(res.data[0].F_Level)
133
+						this.valiFormData.leave===1?this.valiFormData.isms = 0:this.valiFormData.isms = 1
134
+					}
135
+				})
136
+			},
137
+			submit(ref) {
138
+				this.$refs[ref].validate().then(res => {
139
+					if(this.assignState ==="again"){
140
+						 this.postAssignAPI("WorkOrder/NewReloadWorkOrder")
141
+					}else if(this.assignState ==='transact'){
142
+						this.postAssignAPI("WorkOrder/AssignWorkOrderNew")
143
+					}					
144
+				}).catch(err => {
145
+					console.log('err', err);
146
+				})
147
+			},
148
+			
149
+			//交办接口
150
+			postAssignAPI(url){
151
+				
152
+				if(this.valiFormData.leave ===1 ){
153
+					if(!this.valiFormData.limittime){
154
+						this.$mHelper.toast("请选择办理时限");
155
+						return
156
+					}
157
+					this.valiFormData.assignedopinion ="请认真调查处理并答复来电人,在" + this.valiFormData.limittime +
158
+					"个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。"
159
+				} else if(this.valiFormData.leave ===2 ){
160
+					if(!this.valiFormData.limittimes){
161
+						this.$mHelper.toast("请选择紧急办理时限");
162
+						return
163
+					}
164
+					this.valiFormData.assignedopinion ="请认真调查处理并答复来电人,在" + this.valiFormData.limittimes +
165
+					"内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。"
166
+				}else{
167
+					this.$mHelper.toast("请选择紧急程度");
168
+					return
169
+				}
170
+				const params = {
171
+				  workorderid: this.valiFormData.workorderid,
172
+				  maindeptid: this.valiFormData.maindeptid, // 单位
173
+				  limittime: this.valiFormData.limittime, // 办理时限
174
+				  limittimes: this.valiFormData.limittimes, // 紧急办理时限
175
+				  assignedopinion: this.valiFormData.assignedopinion, // 交办意见
176
+					isms:this.valiFormData.isms, // 是否短信提醒
177
+				  state: this.valiFormData.state, // 0保存,1保存并提交
178
+				  content: this.valiFormData.content, // 工单内容
179
+				  token: uni.getStorageSync("token"),
180
+				}
181
+				this.$mHelper.httpPost(url,params,2)
182
+				
183
+			}
184
+			
185
+		}
186
+	}
187
+</script>
188
+
189
+<style lang="scss">
190
+.wrapper {
191
+  padding: 10px 15px;
192
+  background-color: #fff;
193
+  .form {
194
+		.uni-stat__select{
195
+		    display: block;
196
+		    align-items: center;
197
+		    padding: 0px;
198
+		    cursor: pointer;
199
+				width: 80%;
200
+		}
201
+		.uni-date{
202
+			width: 80%;
203
+		}
204
+		.detailContent{
205
+			line-height: 36px;
206
+		}
207
+  }
208
+
209
+}
210
+</style>

+ 103 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailAudit/detailAudit.vue

@@ -0,0 +1,103 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="审核状态" name="state" required>
8
+					<uni-data-select v-model="valiFormData.state" :localdata="stateData" />
9
+				</uni-forms-item>
10
+
11
+				<uni-forms-item label="审核原因" required name="cbreason">
12
+					<uni-easyinput type="textarea" autoHeight v-model="valiFormData.cbreason" placeholder="请输入审核原因"/>
13
+				</uni-forms-item>
14
+				
15
+				
16
+			</uni-forms>
17
+			<view class="btnClass">
18
+				<button type="warn" @click="submit('valiForm')">提交</button>
19
+			</view>
20
+			
21
+		</view>
22
+	</view>
23
+</template>
24
+
25
+<script>
26
+	export default {
27
+		data() {
28
+			return {
29
+				// 校验表单数据
30
+				valiFormData: {
31
+					workorderid: '',
32
+					state:1, //审核意见
33
+					cbreason:'',
34
+				},
35
+				stateData:[
36
+					{value:1,text:'同意'},
37
+					{value:0,text:'拒绝'}
38
+				],
39
+				// 校验规则
40
+				rules: {
41
+					state:{
42
+						rules:[{
43
+							required:true,
44
+							errorMessage:'审核状态不能为空'
45
+						}]
46
+					},
47
+					cbreason: {
48
+						rules: [{
49
+							required: true,
50
+							errorMessage: '审核原因不能为空'
51
+						}]
52
+					}
53
+				},
54
+			}
55
+		},
56
+		onLoad(option) {
57
+			this.valiFormData.workorderid = option.wid
58
+		},
59
+		methods: {
60
+			submit(ref,state) {
61
+				this.$refs[ref].validate().then(res => {
62
+					if(this.valiFormData.state===""){
63
+						this.$mHelper.toast("审核状态不能为空");
64
+						return
65
+					}
66
+					if(!this.valiFormData.cbreason){
67
+						this.$mHelper.toast("审核原因不能为空");
68
+						return
69
+					}
70
+					const params = {
71
+					  workorderid: this.valiFormData.workorderid,
72
+					  state: this.valiFormData.state, // 审核状态
73
+					  cbreason: this.valiFormData.cbreason, // 审核原因
74
+					  token: uni.getStorageSync("token"),
75
+					}
76
+					this.$mHelper.httpPost("WorkOrder/AuditWorkorders",params,2)
77
+					
78
+				}).catch(err => {
79
+					console.log('err', err);
80
+				})
81
+			},
82
+
83
+		}
84
+	}
85
+</script>
86
+
87
+<style lang="scss">
88
+.wrapper {
89
+  padding: 10px 15px;
90
+  background-color: #fff;
91
+  .form {
92
+		.uni-stat__select{
93
+		    display: block;
94
+		    align-items: center;
95
+		    padding: 0px;
96
+		    cursor: pointer;
97
+			width: 80%;
98
+		}
99
+		
100
+  }
101
+
102
+}
103
+</style>

+ 181 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailCallback/detailCallback.vue

@@ -0,0 +1,181 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="工单编号">
8
+					<view class="detailContent">{{detailContentData.F_WorkOrderId}}</view>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="工单内容">
11
+					<view class="detailContent">{{detailContentData.F_ComContent}}</view>
12
+				</uni-forms-item>
13
+				<uni-forms-item label="处理内容">
14
+					<view class="detailContent">{{F_Situation}}</view>
15
+				</uni-forms-item>
16
+				<uni-forms-item label="来电号码">
17
+					<view class="detailContent">{{detailContentData.F_CusPhone}}</view>
18
+				</uni-forms-item>
19
+				<uni-forms-item label="回访人">
20
+					<view class="detailContent" v-model="visituser">{{visituser}}</view>
21
+				</uni-forms-item>
22
+				<uni-forms-item label="回访方式" name="typeId">
23
+					<uni-data-select v-model="valiFormData.typeId" :localdata="typeData" @change="changeType" />
24
+				</uni-forms-item>
25
+				<uni-forms-item label="回访结果">
26
+					<view style="display: flex;">
27
+						<uni-data-checkbox v-model="valiFormData.issatisfie" :localdata="issatisfieData" />
28
+					</view>
29
+					
30
+				</uni-forms-item>
31
+				<uni-forms-item label="回访内容">
32
+					<uni-easyinput type="textarea" autoHeight v-model="valiFormData.result" placeholder="请输入回访内容"/>
33
+				</uni-forms-item>
34
+				
35
+			</uni-forms>
36
+			<view class="btnClass">
37
+				<button type="warn" @click="saveSubmit('valiForm')">保存</button>
38
+				<button type="warn" @click="reRunSubmit('valiForm')">提交重办</button>
39
+				<button type="warn" @click="alreadySubmit('valiForm')">已办未果</button>
40
+				<button type="warn" @click="settleSubmit('valiForm')">结案</button>
41
+			</view>
42
+		</view>
43
+		<!-- 提交重办弹框 -->
44
+		<view>
45
+			<uni-popup ref="inputDialog" type="dialog">
46
+				<uni-popup-dialog ref="inputClose" mode="input" title="输入内容" @confirm="dialogInputConfirm">
47
+					<view style="width:100%;">
48
+						<uni-easyinput type="textarea" autoHeight v-model="cbreason" placeholder="请输入重办原因"/>
49
+					</view>
50
+				</uni-popup-dialog>
51
+			</uni-popup>
52
+		</view>
53
+		
54
+	</view>
55
+	
56
+</template>
57
+
58
+<script>
59
+	export default {
60
+		data() {
61
+			return {
62
+				// 校验表单数据
63
+				valiFormData: {
64
+					workorderid: '',
65
+					result:'',
66
+					typeId:0,
67
+					issatisfie:1,
68
+				},
69
+				cbreason:'', //重办内容
70
+				visituser:uni.getStorageSync('userName'),
71
+				F_Situation:'',
72
+				detailContentData:{}, //工单信息
73
+				typeData:[
74
+					{ value:0, text:'电话'},
75
+					{ value:1, text:'微信' },
76
+					{ value:2, text:'APP' },
77
+					{ value:3, text:'网站' },
78
+					{ value:4, text:'微博' },
79
+					{ value:5, text:'信箱' },
80
+				],
81
+				issatisfieData:[{
82
+					value:1,
83
+					text:'满意'
84
+				},{
85
+					value:2,
86
+					text:'基本满意'
87
+				},{
88
+					value:0,
89
+					text:'不满意'
90
+				}],
91
+				// 校验规则
92
+				rules: {},
93
+			}
94
+		},
95
+		onLoad(option) {
96
+			this.valiFormData.workorderid = option.wid
97
+			// 获取详情
98
+			this.getDetail("0",option.wid);
99
+			this.getDetail("4",option.wid);
100
+		},
101
+		methods: {
102
+			changeType(e){},
103
+			getDetail(type,id) {
104
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrderNew",type,id,(res)=>{
105
+					if (type === "0") {
106
+					  this.detailContentData = res.data[0];
107
+					}else if(type === "4"){
108
+						this.F_Situation =res.bldata&&res.bldata[res.bldata.length - 1].F_Situation
109
+					}
110
+				})
111
+			},
112
+			//提交重办
113
+			reRunSubmit(){
114
+				this.$refs.inputDialog.open()
115
+			},
116
+			// 审核通过确认框
117
+			dialogInputConfirm() {
118
+				uni.showLoading({title: '加载中'})
119
+				// 关闭窗口后,恢复默认内容
120
+				this.$refs.inputDialog.close()
121
+				this.visitWorkOrderFun(1,1)
122
+			},
123
+			//保存回访记录
124
+			saveSubmit(){
125
+				this.visitWorkOrderFun(3,0)
126
+			},
127
+			//已办未果
128
+			alreadySubmit(){
129
+				this.visitWorkOrderFun(4,1)
130
+				
131
+			},
132
+			//结案
133
+			settleSubmit(){
134
+				this.visitWorkOrderFun(0,1)
135
+			},
136
+			//回访接口调用
137
+			visitWorkOrderFun(nexttype,state){
138
+				if(nexttype === 1 && this.cbreason === '') {
139
+					this.$mHelper.toast('请输入重办原因原因');
140
+					return
141
+				}
142
+				const params = {
143
+				  workorderid: this.valiFormData.workorderid,
144
+				  visituser: this.visituser, // 审核人
145
+				  nexttype: nexttype, //重办传1,默认结案0,保存回访3
146
+				  result: this.valiFormData.result, // 回访内容
147
+				  type: this.valiFormData.typeId, // 回访方式
148
+				  cbreason: this.cbreason, // 重办原因
149
+				  issatisfie: this.valiFormData.issatisfie, // 回访结果
150
+				  state: state, //state == undefined ? "" : state, //1改变状态,0保存
151
+				  token: uni.getStorageSync("token"),
152
+				}
153
+				this.$mHelper.httpPost("WorkOrder/VisitWorkOrder",params,2)
154
+			}
155
+			
156
+		}
157
+	}
158
+</script>
159
+
160
+<style lang="scss">
161
+.wrapper {
162
+  padding: 10px 15px;
163
+  background-color: #fff;
164
+  .form {
165
+		.uni-stat__select{
166
+		    display: block;
167
+		    align-items: center;
168
+		    padding: 0px;
169
+		    cursor: pointer;
170
+			width: 75%;
171
+		}
172
+		.detailContent{
173
+			line-height: 36px;
174
+		}
175
+  }
176
+  .btnClass{
177
+	  display: flex;
178
+  }
179
+
180
+}
181
+</style>

+ 117 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailDelayAudit/detailDelayAudit.vue

@@ -0,0 +1,117 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="原延时时间" required name="maindeptid">
8
+					<view class="detailContent">{{auditInfotData.F_OldTime}}</view>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="申请延时原因" required name="maindeptid">
11
+					<view class="detailContent">{{auditInfotData.F_Reason}}</view>
12
+				</uni-forms-item>
13
+				<uni-forms-item label="申请延时时间" required name="limittime">
14
+					<view class="detailContent" v-model="valiFormData.newlimittime">{{valiFormData.newlimittime}}</view>
15
+				</uni-forms-item>
16
+				<uni-forms-item label="审核意见" required name="reason">
17
+					<uni-easyinput type="textarea" autoHeight v-model="valiFormData.reason" placeholder="请输入审核意见"/>
18
+				</uni-forms-item>
19
+				
20
+				
21
+			</uni-forms>
22
+			<view class="btnClass">
23
+				<button type="warn" @click="submit('valiForm',1)">同意</button>
24
+				<button type="warn" @click="submit('valiForm',2)">拒绝</button>
25
+			</view>
26
+			
27
+		</view>
28
+	</view>
29
+</template>
30
+
31
+<script>
32
+	export default {
33
+		data() {
34
+			return {
35
+				// 校验表单数据
36
+				valiFormData: {
37
+					workorderid: '',
38
+					reason: '', //审核意见
39
+					newlimittime:'',
40
+					state: 1, // 0保存,1保存并提交
41
+					delayid:'',
42
+				},
43
+				auditInfotData:{}, //审核信息
44
+				// 校验规则
45
+				rules: {
46
+					reason: {
47
+						rules: [{
48
+							required: true,
49
+							errorMessage: '审核原因不能为空'
50
+						}]
51
+					}
52
+				},
53
+			}
54
+		},
55
+		onLoad(option) {
56
+			this.valiFormData.workorderid = option.wid
57
+			// 获取详情
58
+			this.getDetail("2",option.wid);
59
+		},
60
+		methods: {
61
+			
62
+			getDetail(type,id) {
63
+				
64
+				this.$mHelper.httpGetDetail("/WorkOrder/GetAuditInfo",type,id,(res)=>{
65
+					if (type === "2") {
66
+					  this.auditInfotData = res[0]
67
+						this.auditInfotData.F_OldTime = res[0].F_OldTime.split(" ")[0]
68
+						this.valiFormData.newlimittime = res[0].F_NewTime.split(" ")[0]
69
+						this.valiFormData.delayid = res[0].F_Id
70
+						this.valiFormData.F_Reason = res[0].F_Reason
71
+					}
72
+				})
73
+			},
74
+			submit(ref,state) {
75
+				this.$refs[ref].validate().then(res => {
76
+					
77
+					const params = {
78
+					  workorderid: this.valiFormData.workorderid,
79
+					  reason: this.valiFormData.reason, // 审核原因
80
+					  newlimittime: this.valiFormData.newlimittime, // 审核时间
81
+					  state:state, // 来电内容
82
+					  delayid: this.valiFormData.delayid, // 工单内容
83
+					  token: uni.getStorageSync("token"),
84
+					}
85
+					this.$mHelper.httpPost("WorkOrder/AuditDelayWorkOrder",params,2)
86
+					
87
+				}).catch(err => {
88
+					console.log('err', err);
89
+				})
90
+			},
91
+
92
+		}
93
+	}
94
+</script>
95
+
96
+<style lang="scss">
97
+.wrapper {
98
+  padding: 10px 15px;
99
+  background-color: #fff;
100
+  .form {
101
+		.uni-stat__select{
102
+		    display: block;
103
+		    align-items: center;
104
+		    padding: 0px;
105
+		    cursor: pointer;
106
+			width: 80%;
107
+
108
+			
109
+		}
110
+		
111
+  }
112
+  .btnClass{
113
+	  display: flex;
114
+  }
115
+
116
+}
117
+</style>

+ 325 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailProcessAudit/detailProcessAudit.vue

@@ -0,0 +1,325 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<view class="detailContent" v-for="item in workOrderDealWithSecondLevelList" :key="item.F_Id">
5
+				<view class="contentTable">
6
+					<text class="contentTitle">承办人:</text>
7
+					<text class="contentText">{{ item.F_DealUser }}</text>
8
+				</view>
9
+				<view class="contentTable">
10
+					<text class="contentTitle">联系方式:</text>
11
+					<text class="contentText">{{ item.F_DealUserContact }}</text>
12
+				</view>
13
+				<view class="contentTable">
14
+					<text class="contentTitle">职务:</text>
15
+					<text class="contentText">{{ item.F_Duties }}</text>
16
+				</view>
17
+				<view class="contentTable">
18
+					<text class="contentTitle">处理结果:</text>
19
+					<text class="contentText">{{ item.F_Situation }}</text>
20
+				</view>
21
+				<view class="contentTable">
22
+					<text class="contentTitle">单位:</text>
23
+					<text class="contentText">{{ item.DeptName }}</text>
24
+				</view>
25
+				<view class="contentTable">
26
+					<text class="contentTitle">办理结果:</text>
27
+					<text class="contentText">{{ item.F_Result }}</text>
28
+				</view>
29
+				<view class="contentTable">
30
+					<text class="contentTitle">办理时间:</text>
31
+					<text class="contentText">{{ item.F_CreateTime }}</text>
32
+				</view>
33
+				<view class="contentTable">
34
+					<text class="contentTitle">是/否向当事人反馈:</text>
35
+					<text
36
+						class="contentText">{{ item.F_IsProResult | dealWithIsProResultFilters }}</text>
37
+				</view>
38
+				<view class="contentTable">
39
+					<text class="contentTitle">是否满意:</text>
40
+					<text
41
+						class="contentText">{{ item.F_IsSatisfied | dealWithIsSatisfiedFilters }}</text>
42
+				</view>
43
+				<view class="contentTable">
44
+					<text class="contentTitle">审核领导:</text>
45
+					<text class="contentText">{{ item.F_AuditUser }}</text>
46
+				</view>
47
+				<view class="contentTable">
48
+					<text class="contentTitle">附件:</text>
49
+					<view class="contentText">
50
+						<uni-file-picker readonly :value="getFileData(item.File)" :imageStyles="imageStyles" file-mediatype="image" />
51
+					</view>
52
+				</view>
53
+			</view>
54
+		</view>
55
+		<view class="btnClass" style="margin: 20px 0;">
56
+			<button type="warn" @click="editSubmit()" size="mini">修改</button>
57
+			<button type="warn" @click="agreeSubmit()" size="mini">同意</button>
58
+			<button type="warn" @click="refuseSubmit()" size="mini">拒绝</button>
59
+		</view>
60
+		<view class="detailContent">
61
+			<view class="contentTable">
62
+				<text class="contentTitle" style="font-size: 18px;">工单内容:</text>
63
+				<text class="contentText"  style="font-size: 17px;">{{ content}}</text>
64
+			</view>
65
+		</view>
66
+		<view>
67
+			<uni-popup ref="inputDialog" type="dialog">
68
+				<uni-popup-dialog ref="inputClose" mode="input" :title="title" @confirm="dialogInputConfirm" @close="close">
69
+					<view style="width:100%;">
70
+						<uni-easyinput type="textarea" autoHeight v-model="handleResult"/>
71
+						<upload @post-string-data="getImgData" :imgUrlList="imgUrlList" v-show=" title != '拒绝原因' "></upload>
72
+					</view>
73
+				</uni-popup-dialog>
74
+			</uni-popup>
75
+		</view>
76
+	</view>
77
+	
78
+</template>
79
+
80
+<script>
81
+	import upload from '@/pages/components/upload/upload.vue' //upload
82
+	export default {
83
+		components: {
84
+			upload
85
+		},
86
+		data() {
87
+			return {
88
+				title: '',
89
+				workorderid: '',
90
+				clickImgState: 0,
91
+				workOrderDealWithSecondLevelList: [],
92
+				content: '',
93
+				handleResult: '',
94
+				imgid: '',
95
+				backid: 0,
96
+				imgUrlList: [],
97
+				imgList: [], //点击上传的的id
98
+				imgIdList: [], //不修改图片的id
99
+				imageStyles: {
100
+					width: 64,
101
+					height: 64,
102
+					border: {
103
+						radius: '20%'
104
+					}
105
+				},
106
+			}
107
+		},
108
+		onLoad(option) {
109
+			this.workorderid = option.wid
110
+			// 获取详情
111
+			this.getDetail("0",option.wid);
112
+			
113
+		},
114
+		filters: {
115
+			dealWithIsProResultFilters(value) {
116
+				let str;
117
+				switch (String(value)) {
118
+					case "0":
119
+						str = "否";
120
+						break;
121
+					case "1":
122
+						str = "是";
123
+						break;
124
+					case "2":
125
+						str = "已办未果";
126
+						break;
127
+					default:
128
+						str = "";
129
+						break;
130
+				}
131
+				return str;
132
+			},
133
+			dealWithIsSatisfiedFilters(value) {
134
+				let str;
135
+				switch (String(value)) {
136
+					case "0":
137
+						str = "未评价";
138
+						break;
139
+					case "1":
140
+						str = "满意";
141
+						break;
142
+					case "2":
143
+						str = "基本满意";
144
+						break;
145
+					case "3":
146
+						str = "不满意";
147
+						break;
148
+					default:
149
+						str = "";
150
+						break;
151
+				}
152
+				return str;
153
+			}
154
+		},
155
+		methods: {
156
+			// 详情
157
+			getDetail(type,id) {
158
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrder",type,id,(res)=>{
159
+					if (res.data[0].F_Content === "" || res.data[0].F_Content === null) {
160
+						this.content = res.data[0].F_ComContent
161
+					} else {
162
+						this.content = res.data[0].F_Content
163
+					}
164
+					this.backid = res.ejbldata[res.ejbldata.length - 1].F_Id
165
+					this.workOrderDealWithSecondLevelList.push(res.ejbldata[res.ejbldata.length - 1])
166
+				})
167
+			},
168
+			getImgData(data) {
169
+				this.clickImgState = 1
170
+				this.imgList = data
171
+			},
172
+			editSubmit() {
173
+				this.title = '修改办理结果'
174
+				this.$refs.inputDialog.open()
175
+				const params = {
176
+					workorderid: this.workorderid, // 工单id
177
+					token: uni.getStorageSync("token")
178
+				}
179
+				this.$http.get("WorkOrder/GetNewSecondDealInfo", params).then((response) => {
180
+					if (response.state.toLowerCase() === "success") {
181
+						this.handleResult = response.data[0].F_Result
182
+						if (response.data[0].File) {
183
+							response.data[0].File.forEach((v, n) => {
184
+								this.imgIdList.push(v.F_FileId)
185
+								//详情图片回显
186
+								this.imgUrlList.push({
187
+									url: v.F_FileUrl,
188
+									extname: v.F_FileType,
189
+									name: v.F_FileName,
190
+									id: v.F_FileId
191
+								})
192
+							})
193
+						}
194
+					}
195
+				}).catch((e) => {
196
+					console.log(e)
197
+				})
198
+			},
199
+			dialogInputConfirm() {
200
+				this.$refs.inputDialog.close()
201
+				if(this.title == '修改办理结果') {
202
+					if(this.clickImgState == 1) {
203
+						this.imgid = this.$mHelper.getImgString(this.imgList)
204
+					}else{
205
+						this.imgid = this.$mHelper.getImgString(this.imgIdList)
206
+					}
207
+					const params = {
208
+						workorderid: this.workorderid,
209
+						result: this.handleResult,
210
+						flies: this.imgid,
211
+						token: uni.getStorageSync("token")
212
+					}
213
+					this.$mHelper.httpPost("WorkOrder/EditDealWorkOrder",params,2)
214
+				}else if(this.title == '拒绝原因') {
215
+					if(!this.handleResult) {
216
+						this.$mHelper.toast('请输入拒绝原因');
217
+						return
218
+					}
219
+					const params = {
220
+						workorderid: this.workorderid,
221
+						reason: this.handleResult,
222
+						state: 2,
223
+						backid: this.backid,
224
+						token: uni.getStorageSync("token")
225
+					}
226
+					this.$mHelper.httpPost("WorkOrder/AuditSplitWorkOrder",params,2)
227
+				}
228
+				
229
+			},
230
+			close() {
231
+				this.handleResult = ''
232
+			},
233
+			//同意
234
+			agreeSubmit(){
235
+				const params = {
236
+					workorderid: this.workorderid,
237
+					state: 1,
238
+					backid: this.backid,
239
+					token: uni.getStorageSync("token")
240
+				}
241
+				this.$mHelper.httpPost("WorkOrder/AuditSplitWorkOrder",params,2)
242
+			},
243
+		  refuseSubmit() {
244
+				this.title = '拒绝原因'
245
+				this.$refs.inputDialog.open()
246
+			},
247
+			getFileData(fileData) {
248
+				let newFile = []
249
+				if (fileData && fileData.length > 0) {
250
+			
251
+					console.log(fileData)
252
+					fileData.forEach((element, index) => {
253
+						const obj = {}
254
+						obj.url = element.F_FileUrl
255
+						obj.extname = element.F_FileType.split('.')[1]
256
+						obj.name = element.F_FileName
257
+						newFile.push(obj);
258
+					});
259
+			
260
+				}
261
+				return newFile
262
+			}
263
+		}
264
+	}
265
+</script>
266
+
267
+<style lang="scss">
268
+.wrapper {
269
+  padding: 10px 15px;
270
+  background-color: #fff;
271
+  .form {
272
+		.uni-stat__select{
273
+		    display: block;
274
+		    align-items: center;
275
+		    padding: 0px;
276
+		    cursor: pointer;
277
+			width: 75%;
278
+		}
279
+		.detailContent{
280
+			line-height: 36px;
281
+		}
282
+  }
283
+  .uniFilePicker{
284
+	  padding-top: 5px;
285
+  }
286
+  .btnClass{
287
+	  display: flex;
288
+  }
289
+	.detailContent {
290
+		// margin: 15px 0 15px 0;
291
+	
292
+		.contentBlock {
293
+			margin: 18px 0 0 0;
294
+	
295
+			.title {
296
+				font-weight: 700;
297
+			}
298
+	
299
+			.content {
300
+				margin: 5px 0 5px 0;
301
+			}
302
+		}
303
+	
304
+		.contentTable {
305
+			margin: 0 0 5px 0;
306
+	
307
+			.contentTitle {
308
+				font-weight: 700;
309
+				font-size: 14px;
310
+			}
311
+	
312
+			.contentText {
313
+				color: #525252;
314
+				font-size: 14px;
315
+			}
316
+		}
317
+	}
318
+	// .uni-button{
319
+	// 	padding-left: 30px !important;
320
+	// 	padding-right: 30px !important;
321
+	// 	line-height: 2px !important;
322
+	// }
323
+
324
+}
325
+</style>

+ 180 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/detailReassignment/detailReassignment.vue

@@ -0,0 +1,180 @@
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="工单编号">
7
+					<view class="detailContent" v-model="valiFormData.wid">{{detailContentData.F_WorkOrderId}}</view>
8
+				</uni-forms-item>
9
+				<uni-forms-item label="受理时间">
10
+					<view class="detailContent" v-model="valiFormData.acceptTime">{{detailContentData.F_CreateTime}}</view>
11
+				</uni-forms-item>
12
+				<uni-forms-item label="签收时间">
13
+					<view class="detailContent" v-model="valiFormData.signTime">{{jbdata.F_SureTime}}</view>
14
+				</uni-forms-item>
15
+				<uni-forms-item label="来电人">
16
+					<view class="detailContent" v-model="valiFormData.callIn">{{detailContentData.F_CusName}}</view>
17
+				</uni-forms-item>
18
+				<uni-forms-item label="联系电话">
19
+					<view class="detailContent" v-model="valiFormData.phone">{{detailContentData.F_CusPhone}}</view>
20
+				</uni-forms-item>
21
+				<uni-forms-item label="秘密等级">
22
+					<view class="detailContent" v-model="valiFormData.level">{{detailContentData.F_IsProtect | levelFilters}}</view>
23
+				</uni-forms-item>
24
+				<uni-forms-item label="地址">
25
+					<view class="detailContent" v-model="valiFormData.address">{{detailContentData.F_SourceAddress}}</view>
26
+				</uni-forms-item>
27
+				<uni-forms-item label="内容摘要">
28
+					<view class="detailContent" v-model="valiFormData.content">{{detailContentData.F_ComContent}}</view>
29
+				</uni-forms-item>
30
+				<uni-forms-item label="派单意见">
31
+					<view class="detailContent" v-model="valiFormData.opinion">{{valiFormData.opinion}}</view>
32
+				</uni-forms-item>
33
+				<uni-forms-item label="交办单位" required name="assignDep">
34
+					<depart-select @post-select-data = "postSelectData"></depart-select>
35
+				</uni-forms-item>
36
+				<uni-forms-item label="办理时限" required name="handleTime">
37
+					<view class="example-body">
38
+						<uni-datetime-picker type="date" :clear-icon="true" v-model="valiFormData.handleTime"  :end="endTime"/>
39
+					</view>
40
+				</uni-forms-item>
41
+			</uni-forms>
42
+			<view class="btnClass">
43
+				<button type="warn" @click="Submit('valiForm')">提交</button>
44
+			</view>
45
+		</view>
46
+
47
+		
48
+	</view>
49
+	
50
+</template>
51
+
52
+<script>
53
+	import departSelect from '@/pages/components/commonSelect/departSelect/departSelect.vue' 
54
+	export default {
55
+		components: {
56
+			departSelect
57
+		},
58
+		data() {
59
+			return {
60
+				// 校验表单数据
61
+				valiFormData: {
62
+					workorderid: '', // 工单编号
63
+					acceptTime: '', //受理时间
64
+					signTime: '', //签收时间
65
+					callIn: '', //来电人
66
+					phone: '', //联系人Department/GetDeptList
67
+					level: '', //秘密等级
68
+					content: '', //内容摘要
69
+					address: '', // 地址
70
+					opinion: '请认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。', //派单意见
71
+					assignDep: '', //交办单位
72
+					handleTime:'' // 办理时限
73
+				},
74
+				startTime: '',
75
+				endTime:'',
76
+				deptData: [],
77
+				detailContentData: {},
78
+				jbdata: {},
79
+				// 校验规则
80
+				rules: {
81
+					assignDep: {
82
+						rules: [{
83
+							required: true,
84
+							errorMessage: '请选择交办单位'
85
+						}]
86
+					},
87
+					handleTime: {
88
+						rules: [{
89
+							required: true,
90
+							errorMessage: '请选择办理时限'
91
+						}]
92
+					}
93
+				},
94
+			}
95
+		},
96
+		onLoad(option) {
97
+			this.valiFormData.workorderid = option.wid
98
+			// 获取详情
99
+			this.getDetail("0",option.wid);
100
+			
101
+		},
102
+		filters: {
103
+			levelFilters(value) {
104
+				let str;
105
+				switch (value) {
106
+					case 0 :
107
+					 str = '普通'
108
+					 break;
109
+					default:
110
+					 str = '保密'
111
+					 break;					 
112
+				}
113
+				return str;
114
+			}
115
+		},
116
+		methods: {
117
+			// 详情
118
+			getDetail(type,id) {
119
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrder",type,id,(res)=>{
120
+					if (type === "0") {
121
+						this.detailContentData = res.data[0];
122
+						if(res.jbdata.length > 0) {
123
+							this.jbdata = res.jbdata[0]
124
+						}
125
+						if(this.detailContentData.F_LimitTime) {
126
+							this.endTime = this.detailContentData.F_LimitTime.substring(0, 10)
127
+							this.valiFormData.handleTime = this.detailContentData.F_LimitTime.substring(0, 10)
128
+						}
129
+					}
130
+				})
131
+			},
132
+			postSelectData(data) {
133
+				this.valiFormData.assignDep = data
134
+			},
135
+			//提交
136
+			Submit(ref){
137
+				this.$refs[ref].validate().then(res => {
138
+					const params = {
139
+					  workorderid: this.valiFormData.workorderid, 
140
+					  maindeptid: this.valiFormData.assignDep,
141
+						assignedopinion: this.valiFormData.opinion,
142
+						assignid: 0,
143
+					  state:1,
144
+						limittime: this.valiFormData.handleTime,
145
+					  token: uni.getStorageSync("token"),
146
+					}
147
+					this.$mHelper.httpPost("/WorkOrder/SplitWorkOrder", params, 2, (res) => {})
148
+				}).catch(err => {
149
+					console.log('err', err);
150
+				})
151
+			},
152
+		}
153
+	}
154
+</script>
155
+
156
+<style lang="scss">
157
+.wrapper {
158
+  padding: 10px 15px;
159
+  background-color: #fff;
160
+  .form {
161
+		.uni-stat__select{
162
+		    display: block;
163
+		    align-items: center;
164
+		    padding: 0px;
165
+		    cursor: pointer;
166
+			width: 75%;
167
+		}
168
+		.detailContent{
169
+			line-height: 36px;
170
+		}
171
+  }
172
+  .uniFilePicker{
173
+	  padding-top: 5px;
174
+  }
175
+  .btnClass{
176
+	  display: flex;
177
+  }
178
+
179
+}
180
+</style>

+ 355 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/editWorkOrder/editWorkOrder.vue

@@ -0,0 +1,355 @@
1
+<template>
2
+	<view class="wrapper" style="background-color: #fff;">
3
+		<view class="form" style="padding: 15px;">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="formData">
6
+				<uni-forms-item label="标题" name="workOrderTitle" required>
7
+					<uni-easyinput v-model="formData.workOrderTitle" placeholder="请输入标题" />
8
+				</uni-forms-item>
9
+				<uni-forms-item label="内容" name="callContent" required>
10
+					<uni-easyinput type="textarea" v-model="formData.callContent" placeholder="请输入来电内容" />
11
+				</uni-forms-item>
12
+				<uni-forms-item label="处理方式" name="processingMethod">
13
+					<uni-data-checkbox v-model="formData.processingMethod" :localdata="processingMethod" />
14
+				</uni-forms-item>
15
+				<uni-forms-item label="办理内容" name="result" v-show="formData.processingMethod == 1">
16
+					<uni-easyinput type="textarea" v-model="formData.result" placeholder="请输入办理内容" />
17
+				</uni-forms-item>
18
+				<uni-forms-item label="姓名" name="name" required>
19
+					<uni-easyinput v-model="formData.name" placeholder="请输入姓名" />
20
+				</uni-forms-item>
21
+				<uni-forms-item label="性别" name="detailRsult">
22
+					<uni-data-checkbox v-model="formData.gender" :localdata="gender" />
23
+				</uni-forms-item>
24
+				<uni-forms-item label="来源" name="source" required>
25
+					<dic-value-select @post-select-data="postDicSourceData" :type="1" :valueInfo="formData.source"></dic-value-select>
26
+				</uni-forms-item>
27
+				<uni-forms-item label="来电号码" name="callerNumber" required>
28
+					<uni-easyinput v-model="formData.callerNumber" placeholder="请输入来电号码" />
29
+				</uni-forms-item>
30
+				<uni-forms-item label="联系电话" name="conphone" required>
31
+					<uni-easyinput v-model="formData.conphone" placeholder="请输入联系电话" />
32
+				</uni-forms-item>
33
+				<uni-forms-item label="类型" name="workOrderType" required>
34
+					<dic-value-select @post-select-data="postDicTypeData" :type="2" :valueInfo="formData.workOrderType"></dic-value-select>
35
+				</uni-forms-item>
36
+				<uni-forms-item label="保密程度" name="numberSecurityLevel">
37
+					<uni-data-checkbox v-model="formData.numberSecurityLevel" :localdata="numberSecurityLevel" />
38
+				</uni-forms-item>
39
+				<uni-forms-item label="事发区域" name="sourcearea">
40
+					<area-select @post-select-data="postSelectData" :showState='1' :valueInfo="formData.sourcearea"></area-select>
41
+				</uni-forms-item>
42
+				<uni-forms-item label="乡镇" name="township">
43
+					<area-select @post-select-data="postTownData" :townshipPid="townshipPid" :townInfo="formData.township"></area-select>
44
+				</uni-forms-item>
45
+				<uni-forms-item label="村" name="village">
46
+					<area-select @post-select-data="postVillageData" :villagePid="villagePid" :villageInfo="formData.village"></area-select>
47
+				</uni-forms-item>
48
+				</uni-forms-item>
49
+				<uni-forms-item label="详细地址" name="sourceaddress">
50
+					<uni-easyinput type="textarea" v-model="formData.sourceaddress" placeholder="请输入详细地址" />
51
+				</uni-forms-item>
52
+				<uni-forms-item label="附件">
53
+					<view class="example-body">
54
+						<upload :imgUrlList="imgUrlList" @post-string-data="getImgData"></upload>
55
+					</view>
56
+				</uni-forms-item>
57
+			</uni-forms>
58
+
59
+			<button type="primary" @click="formSubmit('valiForm')" class="btn">提交</button>
60
+		</view>
61
+	</view>
62
+</template>
63
+
64
+<script>
65
+	import upload from '@/pages/components/upload/upload.vue' //upload
66
+	import areaSelect from '@/pages/components/commonSelect/areaSelect/areaSelect.vue'
67
+	import dicValueSelect from '@/pages/components/commonSelect/dicValueSelect/dicValueSelect.vue'
68
+	export default {
69
+		components: {
70
+			upload,
71
+			areaSelect,
72
+			dicValueSelect
73
+		},
74
+		data() {
75
+			return {
76
+				wid: "", // 工单id
77
+				getFileState: 0, // 
78
+				imgUrlList: [], //编辑图片回显
79
+				imgList: [], //点击上传的的id
80
+				imgIdList: [], //不修改图片的id
81
+				clickImgState: 0,
82
+				formData: {
83
+					workOrderTitle: "", // 标题
84
+					callContent: "", // 来电内容
85
+					workOrderContent: "", // 工单内容
86
+					processingMethod: "", // 处理方式
87
+					result: "", // 办理内容
88
+					name: "", // 姓名
89
+					gender: "", // 性别
90
+					source: 0, // 来源
91
+					callerNumber: "", // 来电号码
92
+					conphone: "", //联系电话
93
+					workOrderType: 0, // 工单类型
94
+					responseCategory: "", // 反映类别
95
+					responseCategoryId: "", // 反映类别id
96
+					numberSecurityLevel: "", // 来电号码密级
97
+					emergencyLevel: 1,
98
+					sourcearea: 0, // 事发区域
99
+					township: 0, // 乡镇
100
+					village: 0, // 村
101
+					sourceaddress: "", // 详细地址
102
+					imgid: '',
103
+					keys: '',
104
+					departId: ''
105
+				},
106
+				townshipPid: 0,
107
+				villagePid: 0,
108
+				processingMethod: [{
109
+					text: '当即办理',
110
+					value: 1
111
+				}, {
112
+					text: '网络转办',
113
+					value: 0
114
+				}],
115
+				gender: [{
116
+					text: '女',
117
+					value: '1'
118
+				}, {
119
+					text: '男',
120
+					value: '0'
121
+				}],
122
+				numberSecurityLevel: [{
123
+					text: '保密',
124
+					value: 1
125
+				}, {
126
+					text: '普通',
127
+					value: 0
128
+				}],
129
+				// 校验规则
130
+				rules: {
131
+					workOrderTitle: {
132
+						rules: [{
133
+							required: true,
134
+							errorMessage: '请输入标题'
135
+						}]
136
+					},
137
+					callContent: {
138
+						rules: [{
139
+							required: true,
140
+							errorMessage: '请输入内容'
141
+						}]
142
+					},
143
+					name: {
144
+						rules: [{
145
+							required: true,
146
+							errorMessage: '请输入姓名'
147
+						}]
148
+					},
149
+					callerNumber: {
150
+						rules: [{
151
+							required: true,
152
+							errorMessage: '请输入来电号码'
153
+						}]
154
+					},
155
+					conphone: {
156
+						rules: [{
157
+							required: true,
158
+							errorMessage: '请输入联系电话'
159
+						}]
160
+					},
161
+					source: {
162
+						rules: [{
163
+							validateFunction: function(rule, value, data, callback) {
164
+								if (value == 0) {
165
+									callback('请选择来源')
166
+								}
167
+								return true
168
+							}
169
+						}]
170
+					},
171
+					workOrderType: {
172
+						rules: [{
173
+							validateFunction: function(rule, value, data, callback) {
174
+								if (value == 0) {
175
+									callback('请选择类型')
176
+								}
177
+								return true
178
+							}
179
+						}]
180
+					}
181
+				},
182
+			}
183
+		},
184
+		onLoad(option) {
185
+			this.wid = option.wid;
186
+			this.simpleDetail('0', this.wid) // 获取详情
187
+		},
188
+		methods: {
189
+			// 图片
190
+			getImgData(data) {
191
+				this.clickImgState = 1
192
+				this.imgList = data
193
+			},
194
+			// 事件发源地
195
+			postSelectData(data) {
196
+				if (data) {
197
+					this.townshipPid = data
198
+					this.formData.sourcearea = data
199
+				} else {
200
+					this.townshipPid = 0
201
+					this.formData.sourcearea = 0
202
+				}
203
+			},
204
+			//镇
205
+			postTownData(data) {
206
+				if (data) {
207
+					this.villagePid = data
208
+					this.formData.township = data
209
+				} else {
210
+					this.villagePid = 0
211
+					this.formData.township = 0
212
+				}
213
+			},
214
+			//乡村
215
+			postVillageData(data) {
216
+				if (data) {
217
+					this.formData.village = data
218
+				} else {
219
+					this.formData.village = 0
220
+				}
221
+			},
222
+			//工单类型
223
+			postDicTypeData(data) {
224
+				this.formData.workOrderType = data
225
+			},
226
+			// 来源
227
+			postDicSourceData(data) {
228
+				this.formData.source = data
229
+			},
230
+			// 工单提交
231
+			formSubmit(ref) {
232
+				if(this.clickImgState == 1) {
233
+					this.formData.imgid = this.$mHelper.getImgString(this.imgList)
234
+				}else{
235
+					this.formData.imgid = this.$mHelper.getImgString(this.imgIdList)
236
+				}
237
+				this.$refs[ref].validate().then(res => {
238
+					const params = {
239
+						workorderid: this.wid,
240
+						cusname: this.formData.name, // 姓名
241
+						cussex: this.formData.gender, // 性别
242
+						cusphone: this.formData.callerNumber, // 电话
243
+						conphone: this.formData.conphone, //联系电话
244
+						title: this.formData.workOrderTitle, // 标题
245
+						content: this.formData.callContent, // 来电内容
246
+						workcontent: this.formData.callContent, // 工单内容
247
+						contsents: this.formData.callContent,
248
+						files: this.formData.imgid,
249
+						sourcearea: this.formData.sourcearea, // 事发区域
250
+						township: this.formData.township, // 乡镇
251
+						village: this.formData.village, // 村
252
+						sourceaddress: this.formData.sourceaddress, // 详细地址
253
+						source: this.formData.source, // 来源
254
+						business: "0",
255
+						result: this.formData.result, // 办理内容
256
+						type: this.formData.workOrderType, // 类型
257
+						isprotect: this.formData.numberSecurityLevel, //=(0普通1保密)
258
+						isresult: this.formData.processingMethod, // 办理方式
259
+						issubmit: 0, //=(0保存1保存并提交)
260
+						level: this.formData.emergencyLevel, //紧急程度
261
+						keys: this.formData.keys, // 放映类别
262
+						maindeptids: this.formData.departId, //部门
263
+						token: uni.getStorageSync("token"),
264
+					}
265
+					// console.log(params)
266
+					// return
267
+					this.$mHelper.httpPost("/WorkOrder/EditWorkOrder", params, 2, (res) => {})
268
+				}).catch(err => {
269
+					console.log('err', err);
270
+				})
271
+			},
272
+			// 详情
273
+			simpleDetail(type, id) {
274
+				this.$mHelper.httpGetDetail("WorkOrder/GetWorkOrderNew", type, id, (res) => {
275
+					if (type === "0") {
276
+						console.log(res)
277
+						let data = res.data[0];
278
+						this.formData.name = data.F_CusName; // 姓名
279
+						this.formData.gender = data.F_CusSex; // 性别
280
+						this.formData.callerNumber = data.F_CusPhone; // 电话
281
+						this.formData.workOrderTitle = data.F_ComTitle; // 标题
282
+						this.formData.callContent = data.F_ComContent; // 来电内容
283
+						this.formData.sourceaddress = data.F_SourceAddress, // 详细地址
284
+						this.formData.result = data.F_Result; // 办理内容
285
+						this.formData.numberSecurityLevel = data.F_IsProtect // 保密程度
286
+						this.formData.processingMethod = data.F_IsResult // 处理方式
287
+						this.formData.source = data.F_InfoSource // 来源
288
+						this.formData.workOrderType = data.F_InfoType // 类型
289
+						this.formData.emergencyLevel = data.F_Level
290
+						if(data.F_SourceArea) {
291
+							this.townshipPid = data.F_SourceArea
292
+						}
293
+						if(data.F_Township) {
294
+							this.villagePid = data.F_Township
295
+						}
296
+						// 事发区域
297
+						this.formData.sourcearea = data.F_SourceArea 
298
+						this.formData.township = data.F_Township
299
+						this.formData.village = data.F_Village
300
+						this.formData.conphone = data.F_ConPhone // 联系电话
301
+						this.formData.keys = data.F_Key // 放映类别
302
+						this.formData.departId = data.F_DealDeptId == null ? '' : data.F_DealDeptId //部门
303
+						if (data.File) {
304
+							data.File.forEach((v, n) => {
305
+								this.imgIdList.push(v.F_FileId)
306
+								//详情图片回显
307
+								this.imgUrlList.push({
308
+									url: v.F_FileUrl,
309
+									extname: v.F_FileType,
310
+									name: v.F_FileName,
311
+									id: v.F_FileId
312
+								})
313
+							})
314
+						}
315
+					}
316
+				})
317
+			}
318
+		}
319
+	}
320
+</script>
321
+
322
+<style scoped>
323
+	.example-body {
324
+		padding: 10px;
325
+		padding-top: 0;
326
+	}
327
+
328
+	.custom-image-box {
329
+		/* #ifndef APP-NVUE */
330
+		display: flex;
331
+		/* #endif */
332
+		flex-direction: row;
333
+		justify-content: space-between;
334
+		align-items: center;
335
+	}
336
+
337
+	.text {
338
+		font-size: 14px;
339
+		color: #333;
340
+	}
341
+
342
+	.item__label {
343
+		display: flex;
344
+		flex-shrink: 0;
345
+		box-sizing: border-box;
346
+		flex-direction: row;
347
+		align-items: center;
348
+		width: 65px;
349
+		padding: 5px 0;
350
+		height: 36px;
351
+		width: 70px;
352
+		justify-content: flex-start;
353
+		float: left;
354
+	}
355
+</style>

+ 271 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/handleWordOrder/handleWordOrder.vue

@@ -0,0 +1,271 @@
1
+<template>
2
+	<view class="wrapper" style="background-color: #fff;">
3
+		<view class="form" style="padding: 15px;">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="formData">
6
+				<uni-forms-item label="承办人" name="undertaker" required>
7
+					<uni-easyinput v-model="formData.undertaker" placeholder="请输入承办人" />
8
+				</uni-forms-item>
9
+				<uni-forms-item label="职务" name="undertaker_position">
10
+					<uni-easyinput v-model="formData.undertaker_position" placeholder="请输入职务" />
11
+				</uni-forms-item>
12
+				<uni-forms-item label="联系方式" name="undertaker_phone" required>
13
+					<uni-easyinput v-model="formData.undertaker_phone" placeholder="请输入联系方式" />
14
+				</uni-forms-item>
15
+				<uni-forms-item label="审核领导" name="auditLeader" required>
16
+					<uni-easyinput v-model="formData.auditLeader" placeholder="请输入审核领导" />
17
+				</uni-forms-item>
18
+				<uni-forms-item label="职务" name="auditLeader_position" required>
19
+					<uni-easyinput v-model="formData.auditLeader_position" placeholder="请输入职务" />
20
+				</uni-forms-item>
21
+				<uni-forms-item label="联系方式" name="auditLeader_phone" required>
22
+					<uni-easyinput v-model="formData.auditLeader_phone" placeholder="请输入联系方式" />
23
+				</uni-forms-item>
24
+				<uni-forms-item label="处理结果" name="detailRsult" required>
25
+					<uni-easyinput type="textarea" v-model="formData.detailRsult" placeholder="请输入处理结果" maxlength="1000"/>
26
+				</uni-forms-item>
27
+				<uni-forms-item label="是否向当事人反馈" name="feedback" required>
28
+					<uni-data-checkbox v-model="formData.feedback" :localdata="isfeedback" />
29
+				</uni-forms-item>
30
+				<uni-forms-item label="不反馈原因" name="feedbackReason" v-if="formData.feedback == 0" required>
31
+					<uni-easyinput type="textarea" v-model="formData.feedbackReason" placeholder="请输入不反馈原因" />
32
+				</uni-forms-item>
33
+				<uni-forms-item label="是否满意" name="staisfied" v-if="formData.feedback == 1" required>
34
+					<uni-data-checkbox v-model="formData.staisfied" :localdata="isstaisfied" />
35
+				</uni-forms-item>
36
+				<uni-forms-item label="附件">
37
+					<view class="example-body">
38
+						<upload @post-string-data="getImgData" :imgUrlList="imgUrlList"></upload>
39
+					</view>
40
+				</uni-forms-item>
41
+			</uni-forms>
42
+			<button type="primary" @click="formSubmit('valiForm')">提交</button>
43
+		</view>
44
+	</view>
45
+</template>
46
+
47
+<script>
48
+	import upload from '@/pages/components/upload/upload.vue' //upload
49
+	export default {
50
+		
51
+		components: {upload},
52
+		data() {
53
+			return {
54
+				wid: "", // 工单id
55
+				stingText: '', // 菜单标题
56
+				simpleDetailStrStart: '',
57
+				imgList: [],
58
+				imgUrlList: [],
59
+				formData: {
60
+					undertaker: '',
61
+					undertaker_position: '',
62
+					undertaker_phone: '',
63
+					auditLeader: '',
64
+					auditLeader_position: '',
65
+					auditLeader_phone: '',
66
+					detailRsult: '',
67
+					feedback: 1,
68
+					feedbackReason: '',
69
+					imgid: '',
70
+					result: '',
71
+					staisfied: 0
72
+				},
73
+				isfeedback: [{
74
+					text: '是',
75
+					value: 1
76
+				}, {
77
+					text: '否',
78
+					value: 0
79
+				}],
80
+				isstaisfied: [{
81
+					text: '满意',
82
+					value: 1
83
+				}, {
84
+					text: '基本满意',
85
+					value: 2
86
+				}, {
87
+					text: '不满意',
88
+					value: 3
89
+				}],
90
+				// 校验规则
91
+				rules: {
92
+					undertaker: {
93
+						rules: [{
94
+							required: true,
95
+							errorMessage: '请输入承办人'
96
+						}]
97
+					},
98
+					undertaker_phone: {
99
+						rules: [{
100
+							required: true,
101
+							errorMessage: '请输入承办人联系方式'
102
+						}]
103
+					},
104
+					auditLeader: {
105
+						rules: [{
106
+							required: true,
107
+							errorMessage: '请输入审核领导'
108
+						}]
109
+					},
110
+					auditLeader_position: {
111
+						rules: [{
112
+							required: true,
113
+							errorMessage: '请输入审核领导职务'
114
+						}]
115
+					},
116
+					auditLeader_phone: {
117
+						rules: [{
118
+							required: true,
119
+							errorMessage: '请输入审核领导联系方式'
120
+						}]
121
+					},
122
+					detailRsult: {
123
+						rules: [{
124
+							required: true,
125
+							errorMessage: '请输入处理结果'
126
+						}]
127
+					},
128
+					feedback: {
129
+						rules: [{
130
+							required: true,
131
+							errorMessage: '请输入是否向当事人反馈'
132
+						}]
133
+					}
134
+				},
135
+				// 附件样式
136
+				imageStyles: {
137
+					width: 64,
138
+					height: 64,
139
+					border: {
140
+						radius: '50%'
141
+					}
142
+				},
143
+				listStyles: {
144
+					// 是否显示边框
145
+					border: true,
146
+					// 是否显示分隔线
147
+					dividline: true,
148
+					// 线条样式
149
+					borderStyle: {
150
+						width: 1,
151
+						color: 'blue',
152
+						style: 'dashed',
153
+						radius: 2
154
+					}
155
+				},
156
+			}
157
+		},
158
+		onLoad(option) {
159
+			this.wid = option.wid;
160
+			this.stingText = option.stingText;
161
+			this.simpleDetail()
162
+		},
163
+		methods: {
164
+			// 工单提交
165
+			formSubmit(ref) {
166
+				
167
+				if (!this.formData.detailRsult) {
168
+					this.$mHelper.toast('请输入办理结果');
169
+					return
170
+				}
171
+				if(this.formData.feedback == 1) {
172
+					if(!this.formData.staisfied) {
173
+						this.$mHelper.toast('请选择是否满意');
174
+						return
175
+					}
176
+					this.formData.feedbackReason = ''
177
+					
178
+				}else if(this.formData.feedback == 0){
179
+					if(!this.formData.feedbackReason) {
180
+						this.$mHelper.toast('请输入不反馈原因');
181
+						return
182
+					}
183
+					this.formData.staisfied = 0
184
+				}
185
+				this.$refs[ref].validate().then(res => {
186
+					const params = {
187
+						workorderid: this.wid, // 工单id
188
+						dealman: this.formData.undertaker, //承办人
189
+						dealcontact: this.formData.undertaker_phone, //联系方式
190
+						duties: this.formData.undertaker_position, //职务
191
+						AuditUser: this.formData.auditLeader, //审核领导
192
+						post: this.formData.auditLeader_position, //审核领导职务
193
+						auditContact: this.formData.auditLeader_phone, //审核领导联系方式
194
+						result:this.simpleDetailStrStart + this.formData.detailRsult ,
195
+						situation: this.formData.detailRsult, //处理情况
196
+						isproresult: this.formData.feedback, //处理结果
197
+						isstaisfied: this.formData.staisfied, // 满意选项
198
+						feedbackReason: this.formData.feedbackReason, //不反馈原因
199
+						files: this.$mHelper.getImgString(this.imgList),
200
+						state: 1,
201
+						token: uni.getStorageSync("token")
202
+					}
203
+					if(uni.getStorageSync("roleCode") == 'WLDW' ) {
204
+						this.$mHelper.httpPost("WorkOrder/FeedBackWorkOrder",params,2)
205
+					}else if(uni.getStorageSync("roleCode") == 'EJWLDW') {
206
+						this.$mHelper.httpPost("WorkOrder/DealWorkOrder",params,2)
207
+					}
208
+					
209
+				}).catch(err => {
210
+					console.log('err', err);
211
+				})
212
+			},
213
+			getImgData(data){
214
+				this.imgList = data
215
+			},
216
+
217
+			// 详情
218
+			simpleDetail() {
219
+				let params = {
220
+					workorderid: this.wid, // 工单id
221
+					token: uni.getStorageSync("token")
222
+				}
223
+				this.$http.get("WorkOrder/GetWorkorderSimp", params).then((response) => {
224
+					if (response.state.toLowerCase() === "success") {
225
+						var data = response.data[0];
226
+						if(uni.getStorageSync("roleCode") == 'WLDW' ) {
227
+							this.simpleDetailStrStart = data.deptname + "于时间(" + this.$mHelper.CurentTimeType() + ")回复:"
228
+						}
229
+					}
230
+				}).catch((e) => {
231
+					console.log(e)
232
+				})
233
+			}
234
+		}
235
+	}
236
+</script>
237
+
238
+<style>
239
+	.example-body {
240
+		padding: 10px;
241
+		padding-top: 0;
242
+	}
243
+
244
+	.custom-image-box {
245
+		/* #ifndef APP-NVUE */
246
+		display: flex;
247
+		/* #endif */
248
+		flex-direction: row;
249
+		justify-content: space-between;
250
+		align-items: center;
251
+	}
252
+
253
+	.text {
254
+		font-size: 14px;
255
+		color: #333;
256
+	}
257
+
258
+	.item__label {
259
+		display: flex;
260
+		flex-shrink: 0;
261
+		box-sizing: border-box;
262
+		flex-direction: row;
263
+		align-items: center;
264
+		width: 65px;
265
+		padding: 5px 0;
266
+		height: 36px;
267
+		width: 70px;
268
+		justify-content: flex-start;
269
+		float: left;
270
+	}
271
+</style>

+ 74 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/buttons/components/template/index.vue

@@ -0,0 +1,74 @@
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="name">
7
+					<uni-easyinput v-model="valiFormData.name" placeholder="请输入姓名" />
8
+				</uni-forms-item>
9
+				<uni-forms-item label="年龄" required name="age">
10
+					<uni-easyinput v-model="valiFormData.age" placeholder="请输入年龄" />
11
+				</uni-forms-item>
12
+				<uni-forms-item label="自我介绍" name="introduction">
13
+					<uni-easyinput type="textarea" v-model="valiFormData.introduction" placeholder="请输入自我介绍" />
14
+				</uni-forms-item>
15
+			</uni-forms>
16
+			<button type="primary" @click="submit('valiForm')">提交</button>
17
+		</view>
18
+	</view>
19
+</template>
20
+
21
+<script>
22
+	export default {
23
+		data() {
24
+			return {
25
+				// 校验表单数据
26
+				valiFormData: {
27
+					name: '',
28
+					age: '',
29
+					introduction: '',
30
+				},
31
+				// 校验规则
32
+				rules: {
33
+					name: {
34
+						rules: [{
35
+							required: true,
36
+							errorMessage: '姓名不能为空'
37
+						}]
38
+					},
39
+					age: {
40
+						rules: [{
41
+							required: true,
42
+							errorMessage: '年龄不能为空'
43
+						}, {
44
+							format: 'number',
45
+							errorMessage: '年龄只能输入数字'
46
+						}]
47
+					}
48
+				},
49
+			}
50
+		},
51
+		methods: {
52
+			submit(ref) {
53
+				this.$refs[ref].validate().then(res => {
54
+					console.log('success', res);
55
+					uni.showToast({
56
+						title: `校验通过`
57
+					})
58
+				}).catch(err => {
59
+					console.log('err', err);
60
+				})
61
+			},
62
+		}
63
+	}
64
+</script>
65
+
66
+<style lang="scss">
67
+.wrapper {
68
+  padding: 10px 15px;
69
+  background-color: #fff;
70
+  .form {
71
+		
72
+  }
73
+}
74
+</style>

+ 910 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/viewWorkOrder/viewWorkOrder.vue

@@ -0,0 +1,910 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view>
4
+			<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" styleType="text"
5
+				activeColor="#4cd964"></uni-segmented-control>
6
+			<view>
7
+				<view v-show="current === 0">
8
+					<view class="detailContent">
9
+						<view class="contentTable">
10
+							<text class="contentTitle">工单编号:</text>
11
+							<text class="contentText">{{ detailContentData.F_WorkOrderId }}</text>
12
+						</view>
13
+						<view class="contentTable">
14
+							<text class="contentTitle">状态:</text>
15
+							<text
16
+								class="contentText">{{ detailContentData.F_WorkState | workStateFilters(detailContentData) }}</text>
17
+						</view>
18
+						<view class="contentTable">
19
+							<text class="contentTitle">受理人:</text>
20
+							<text
21
+								class="contentText">{{ detailContentData.F_CreateUser | acceptPersonFilters(detailContentData) }}</text>
22
+						</view>
23
+						<view class="contentTable">
24
+							<text class="contentTitle">处理方式:</text>
25
+							<text class="contentText">{{ detailContentData.F_IsResult | dealWithWayFilters }}</text>
26
+						</view>
27
+						<view class="contentTable">
28
+							<text class="contentTitle">录入时间:</text>
29
+							<text class="contentText">{{ detailContentData.F_CreateTime }}</text>
30
+						</view>
31
+						<view class="contentTable">
32
+							<text class="contentTitle">提交时间:</text>
33
+							<text class="contentText">{{ detailContentData.F_SubmitTime }}</text>
34
+						</view>
35
+						<view class="contentTable">
36
+							<text class="contentTitle">办理时间:</text>
37
+							<text class="contentText">{{ detailContentData.F_DealTime }}</text>
38
+						</view>
39
+						<view class="contentTable">
40
+							<text class="contentTitle">结案时间:</text>
41
+							<text class="contentText">{{ detailContentData.F_CloseTime }}</text>
42
+						</view>
43
+						<view class="contentTable">
44
+							<text class="contentTitle">反映类型:</text>
45
+							<text class="contentText">{{ detailContentData.TypeName1 }}</text>
46
+						</view>
47
+						<view class="contentTable">
48
+							<text class="contentTitle">紧急程度:</text>
49
+							<text class="contentText">{{ detailContentData.F_Level | levelFilters }}</text>
50
+						</view>
51
+						<view class="contentTable">
52
+							<text class="contentTitle">反映类别:</text>
53
+							<text class="contentText">{{ detailContentData.KeyName }}</text>
54
+						</view>
55
+						<view class="contentTable">
56
+							<text class="contentTitle">密级:</text>
57
+							<text class="contentText">{{ detailContentData.F_IsProtect | isProtectFilters }}</text>
58
+						</view>
59
+						<view class="contentTable">
60
+							<text class="contentTitle">事件地址:</text>
61
+							<text class="contentText">{{ detailContentData.AreaName + ' - ' + detailContentData.Township + " " + detailContentData.F_SourceAddress  }}</text>
62
+						</view>
63
+						<view class="contentTable">
64
+							<text class="contentTitle">办理单位:</text>
65
+							<text class="contentText">{{ detailContentData.deptname }}</text>
66
+						</view>
67
+						<view class="contentTable">
68
+							<text class="contentTitle">处理结果:</text>
69
+							<text class="contentText">{{ detailContentData.F_Result }}</text>
70
+						</view>
71
+						<view class="contentTable">
72
+							<text class="contentTitle">追加回复:</text>
73
+							<text class="contentText">{{ detailContentData.F_AdditionalReply }}</text>
74
+						</view>
75
+						<view class="contentTable">
76
+							<text class="contentTitle">结案意见:</text>
77
+							<text class="contentText">{{ detailContentData.F_FinalOpinion }}</text>
78
+						</view>
79
+						<view class="contentTable">
80
+							<text class="contentTitle">附件:</text>
81
+							<view class="contentText">
82
+								<uni-file-picker readonly :value="detailContentData.File" :imageStyles="imageStyles"
83
+									file-mediatype="image" />
84
+							</view>
85
+						</view>
86
+					</view>
87
+				</view>
88
+				<view v-show="current === 1">
89
+					<view class="detailContent">
90
+						<view class="contentBlock">
91
+							<text class="title">二级办理单位</text>
92
+							<view class="content" v-for="item in twoAssignedInformation" :key="item.F_Id">
93
+								<view class="contentTable">
94
+									<text class="contentTitle">交办时间:</text>
95
+									<text class="contentText">{{ item.F_CreateTime }}</text>
96
+								</view>
97
+								<view class="contentTable">
98
+									<text class="contentTitle">办理时限:</text>
99
+									<text class="contentText">{{ item.F_LimitTime }}</text>
100
+								</view>
101
+								<view class="contentTable">
102
+									<text class="contentTitle">承办单位:</text>
103
+									<text class="contentText">{{ item.DeptName }}</text>
104
+								</view>
105
+								<view class="contentTable">
106
+									<text class="contentTitle">交办意见:</text>
107
+									<text class="contentText">{{ item.F_AssignedOpinion }}</text>
108
+								</view>
109
+							</view>
110
+							<yiLine>
111
+								<view></view>
112
+							</yiLine>
113
+						</view>
114
+						<view class="contentBlock">
115
+							<text class="title">三级办理单位</text>
116
+							<view class="content" v-for="item in threeAssignedInformation" :key="item.F_Id">
117
+								<view class="contentTable">
118
+									<text class="contentTitle">交办时间:</text>
119
+									<text class="contentText">{{ item.F_CreateTime }}</text>
120
+								</view>
121
+								<view class="contentTable">
122
+									<text class="contentTitle">办理时限:</text>
123
+									<text class="contentText">{{ item.F_LimitTime }}</text>
124
+								</view>
125
+								<view class="contentTable">
126
+									<text class="contentTitle">承办单位:</text>
127
+									<text class="contentText">{{ item.DeptName }}</text>
128
+								</view>
129
+								<view class="contentTable">
130
+									<text class="contentTitle">交办意见:</text>
131
+									<text class="contentText">{{ item.F_AssignedOpinion }}</text>
132
+								</view>
133
+							</view>
134
+							<yiLine>
135
+								<view></view>
136
+							</yiLine>
137
+						</view>
138
+					</view>
139
+				</view>
140
+				<view v-show="current === 2">
141
+					<view class="detailContent">
142
+						<view class="contentBlock">
143
+							<text class="title">工单驳回</text>
144
+							<view class="content" v-for="item in workOrderRejectedList" :key="item.F_Id">
145
+								<view class="contentTable">
146
+									<text class="contentTitle">退回人:</text>
147
+									<text class="contentText">{{ item.UserName }}</text>
148
+								</view>
149
+								<view class="contentTable">
150
+									<text class="contentTitle">退回内容:</text>
151
+									<text class="contentText">{{ item.F_SuperOpinion }}</text>
152
+								</view>
153
+								<view class="contentTable">
154
+									<text class="contentTitle">退回时间:</text>
155
+									<text class="contentText">{{ item.F_CreateTime }}</text>
156
+								</view>
157
+							</view>
158
+							<yiLine>
159
+								<view></view>
160
+							</yiLine>
161
+						</view>
162
+					</view>
163
+				</view>
164
+				<view v-show="current === 3">
165
+					<view class="detailContent">
166
+						<view class="contentBlock">
167
+							<text class="title">二级单位办理情况</text>
168
+							<view class="content" v-for="item in workOrderDealWithSecondLevelList" :key="item.F_Id">
169
+								<view class="contentTable">
170
+									<text class="contentTitle">承办人:</text>
171
+									<text class="contentText">{{ item.F_DealUser }}</text>
172
+								</view>
173
+								<view class="contentTable">
174
+									<text class="contentTitle">联系方式:</text>
175
+									<text class="contentText">{{ item.F_DealUserContact }}</text>
176
+								</view>
177
+								<view class="contentTable">
178
+									<text class="contentTitle">职务:</text>
179
+									<text class="contentText">{{ item.F_Duties }}</text>
180
+								</view>
181
+								<view class="contentTable">
182
+									<text class="contentTitle">处理结果:</text>
183
+									<text class="contentText">{{ item.F_Situation }}</text>
184
+								</view>
185
+								<view class="contentTable">
186
+									<text class="contentTitle">单位:</text>
187
+									<text class="contentText">{{ item.DeptName }}</text>
188
+								</view>
189
+								<view class="contentTable">
190
+									<text class="contentTitle">办理结果:</text>
191
+									<text class="contentText">{{ item.F_Result }}</text>
192
+								</view>
193
+								<view class="contentTable">
194
+									<text class="contentTitle">办理时间:</text>
195
+									<text class="contentText">{{ item.F_CreateTime }}</text>
196
+								</view>
197
+								<view class="contentTable">
198
+									<text class="contentTitle">是/否向当事人反馈:</text>
199
+									<text
200
+										class="contentText">{{ item.F_IsProResult | dealWithIsProResultFilters }}</text>
201
+								</view>
202
+								<view class="contentTable">
203
+									<text class="contentTitle">是否满意:</text>
204
+									<text
205
+										class="contentText">{{ item.F_IsSatisfied | dealWithIsSatisfiedFilters }}</text>
206
+								</view>
207
+								<view class="contentTable">
208
+									<text class="contentTitle">不反馈原因:</text>
209
+									<text class="contentText">{{ item.F_FeedbackReason }}</text>
210
+								</view>
211
+								<view class="contentTable">
212
+									<text class="contentTitle">审核领导:</text>
213
+									<text class="contentText">{{ item.F_AuditUser }}</text>
214
+								</view>
215
+								<view class="contentTable">
216
+									<text class="contentTitle">审核领导职务:</text>
217
+									<text class="contentText">{{ item.F_AuditPost }}</text>
218
+								</view>
219
+								<view class="contentTable">
220
+									<text class="contentTitle">审核领导联系方式:</text>
221
+									<text class="contentText">{{ item.F_AuditContact }}</text>
222
+								</view>
223
+								<view class="contentTable">
224
+									<text class="contentTitle">附件:</text>
225
+									<view class="contentText">
226
+										<uni-file-picker readonly :value="getFileData(item.File)"
227
+											:imageStyles="imageStyles" file-mediatype="image" />
228
+									</view>
229
+								</view>
230
+								<view class="contentTable">
231
+									<text class="contentTitle">追加回复附件:</text>
232
+									<view class="contentText">
233
+										<uni-file-picker readonly :value="getFileData(item.Files)"
234
+											:imageStyles="imageStyles" file-mediatype="image" />
235
+
236
+									</view>
237
+								</view>
238
+							</view>
239
+							<yiLine>
240
+								<view></view>
241
+							</yiLine>
242
+						</view>
243
+						<view class="contentBlock">
244
+							<text class="title">三级单位办理情况</text>
245
+							<view class="content" v-for="item in workOrderDealWithThreeLevelList" :key="item.F_Id">
246
+								<view class="contentTable">
247
+									<text class="contentTitle">承办人:</text>
248
+									<text class="contentText">{{ item.F_DealUser }}</text>
249
+								</view>
250
+								<view class="contentTable">
251
+									<text class="contentTitle">联系方式:</text>
252
+									<text class="contentText">{{ item.F_DealUserContact }}</text>
253
+								</view>
254
+								<view class="contentTable">
255
+									<text class="contentTitle">职务:</text>
256
+									<text class="contentText">{{ item.F_Duties }}</text>
257
+								</view>
258
+								<view class="contentTable">
259
+									<text class="contentTitle">处理结果:</text>
260
+									<text class="contentText">{{ item.F_Situation }}</text>
261
+								</view>
262
+								<view class="contentTable">
263
+									<text class="contentTitle">单位:</text>
264
+									<text class="contentText">{{ item.DeptName }}</text>
265
+								</view>
266
+								<view class="contentTable">
267
+									<text class="contentTitle">办理结果:</text>
268
+									<text class="contentText">{{ item.F_Result }}</text>
269
+								</view>
270
+								<view class="contentTable">
271
+									<text class="contentTitle">办理时间:</text>
272
+									<text class="contentText">{{ item.F_CreateTime }}</text>
273
+								</view>
274
+								<view class="contentTable">
275
+									<text class="contentTitle">是/否向当事人反馈:</text>
276
+									<text
277
+										class="contentText">{{ item.F_IsProResult | dealWithIsProResultFilters }}</text>
278
+								</view>
279
+								<view class="contentTable">
280
+									<text class="contentTitle">是否满意:</text>
281
+									<text
282
+										class="contentText">{{ item.F_IsSatisfied | dealWithIsSatisfiedFilters }}</text>
283
+								</view>
284
+								<view class="contentTable">
285
+									<text class="contentTitle">审核领导:</text>
286
+									<text class="contentText">{{ item.F_AuditUser }}</text>
287
+								</view>
288
+								<view class="contentTable">
289
+									<text class="contentTitle">审核领导职务:</text>
290
+									<text class="contentText">{{ item.F_AuditPost }}</text>
291
+								</view>
292
+								<view class="contentTable">
293
+									<text class="contentTitle">审核领导联系方式:</text>
294
+									<text class="contentText">{{ item.F_AuditContact }}</text>
295
+								</view>
296
+								<view class="contentTable">
297
+									<text class="contentTitle">附件:</text>
298
+									<view class="contentText">
299
+										<uni-file-picker readonly :value="getFileData(item.File)"
300
+											:imageStyles="imageStyles" file-mediatype="image" />
301
+									</view>
302
+								</view>
303
+								<view class="contentTable">
304
+									<text class="contentTitle">追加回复附件:</text>
305
+									<view class="contentText">
306
+										<uni-file-picker readonly :value="getFileData(item.Files)"
307
+											:imageStyles="imageStyles" file-mediatype="image" />
308
+									</view>
309
+								</view>
310
+							</view>
311
+							<yiLine>
312
+								<view></view>
313
+							</yiLine>
314
+						</view>
315
+					</view>
316
+				</view>
317
+				<view v-show="current === 4">
318
+					<view class="detailContent">
319
+						<view class="contentBlock">
320
+							<text class="title">延时审核</text>
321
+							<view class="content" v-for="item in delayAuditList" :key="item.F_Id">
322
+								<view class="contentTable">
323
+									<text class="contentTitle">状态:</text>
324
+									<text class="contentText">{{ item.F_IsAudit | delayAuditFilters }}</text>
325
+								</view>
326
+								<view class="contentTable">
327
+									<text class="contentTitle">申请时间:</text>
328
+									<text class="contentText">{{ item.F_CreateTime }}</text>
329
+								</view>
330
+								<view class="contentTable">
331
+									<text class="contentTitle">申请原因:</text>
332
+									<text class="contentText">{{ item.F_Reason }}</text>
333
+								</view>
334
+								<view class="contentTable">
335
+									<text class="contentTitle">审核时间:</text>
336
+									<text class="contentText">{{ item.F_AuditTime }}</text>
337
+								</view>
338
+								<view class="contentTable">
339
+									<text class="contentTitle">审核意见:</text>
340
+									<text class="contentText">{{ item.F_RefuseReason }}</text>
341
+								</view>
342
+							</view>
343
+							<yiLine>
344
+								<view></view>
345
+							</yiLine>
346
+						</view>
347
+					</view>
348
+				</view>
349
+				<view v-show="current === 5">
350
+					<view class="detailContent">
351
+						<view class="contentBlock">
352
+							<text class="title">回访信息</text>
353
+							<view class="content" v-for="item in returnInformationList" :key="item.F_Id">
354
+								<view class="contentTable">
355
+									<text class="contentTitle">回访人:</text>
356
+									<text class="contentText">{{ item.F_VisitUser }}</text>
357
+								</view>
358
+								<view class="contentTable">
359
+									<text class="contentTitle">回访方式:</text>
360
+									<text class="contentText">{{ item.F_Type | returnTypeFilters }}</text>
361
+								</view>
362
+								<view class="contentTable">
363
+									<text class="contentTitle">回访信息:</text>
364
+									<text class="contentText">{{ item.F_Result }}</text>
365
+								</view>
366
+								<view class="contentTable">
367
+									<text class="contentTitle">回访结果:</text>
368
+									<text class="contentText">{{ item.F_IsSatisfie | returnIsSatisfieFilters }}</text>
369
+								</view>
370
+								<view class="contentTable">
371
+									<text class="contentTitle">操作时间:</text>
372
+									<text class="contentText">{{ item.F_CreateTime }}</text>
373
+								</view>
374
+								<view class="contentTable">
375
+									<text class="contentTitle">回访号码:</text>
376
+									<text class="contentText">{{ item.F_Phone }}</text>
377
+								</view>
378
+								<view class="contentTable">
379
+									<text class="contentTitle">重办原因:</text>
380
+									<text class="contentText">{{ item.F_Remark }}</text>
381
+								</view>
382
+								<!-- <view class="contentTable">
383
+                  <text class="contentTitle">录音:</text>
384
+                  <text class="contentText">{{ item.F_RefuseReason }}</text>
385
+                </view> -->
386
+							</view>
387
+							<yiLine>
388
+								<view></view>
389
+							</yiLine>
390
+						</view>
391
+					</view>
392
+				</view>
393
+				<view v-show="current === 6">
394
+					<view class="detailContent">
395
+						<view class="contentBlock">
396
+							<text class="title">督办信息</text>
397
+							<view class="content" v-for="item in supervisoryInformationList" :key="item.F_Id">
398
+								<view class="contentTable">
399
+									<text class="contentTitle">转督办人:</text>
400
+									<text class="contentText">{{ item.F_CreateUser }}</text>
401
+								</view>
402
+								<view class="contentTable">
403
+									<text class="contentTitle">督办原因:</text>
404
+									<text class="contentText">{{ item.F_Remark }}</text>
405
+								</view>
406
+								<view class="contentTable">
407
+									<text class="contentTitle">督办人:</text>
408
+									<text class="contentText">{{ item.Supervisor }}</text>
409
+								</view>
410
+								<view class="contentTable">
411
+									<text class="contentTitle">督办意见:</text>
412
+									<text class="contentText">{{ item.F_Content }}</text>
413
+								</view>
414
+								<view class="contentTable">
415
+									<text class="contentTitle">督办时间:</text>
416
+									<text class="contentText">{{ item.F_CreateTime }}</text>
417
+								</view>
418
+							</view>
419
+							<yiLine>
420
+								<view></view>
421
+							</yiLine>
422
+						</view>
423
+					</view>
424
+				</view>
425
+				<view v-show="current === 7">
426
+					<view class="detailContent">
427
+						<view class="contentBlock">
428
+							<text class="title">市民催办</text>
429
+							<view class="content" v-for="item in citizensCuiBanList" :key="item.F_Id">
430
+								<view class="contentTable">
431
+									<text class="contentTitle">催办内容:</text>
432
+									<text class="contentText">{{ item.F_Content }}</text>
433
+								</view>
434
+								<view class="contentTable">
435
+									<text class="contentTitle">催办时间:</text>
436
+									<text class="contentText">{{ item.F_CreateTime }}</text>
437
+								</view>
438
+							</view>
439
+							<yiLine>
440
+								<view></view>
441
+							</yiLine>
442
+						</view>
443
+					</view>
444
+				</view>
445
+			</view>
446
+		</view>
447
+	</view>
448
+</template>
449
+
450
+<script>
451
+	import yiLine from "@/components/yi-line/yi-line.vue"
452
+	import showFile from "@/components/showFile/index.vue"
453
+
454
+	export default {
455
+		components: {
456
+			yiLine,
457
+			showFile
458
+		},
459
+		data() {
460
+			return {
461
+				wid: "", // 工单编号
462
+				detailContentData: {}, // 详情内容
463
+				twoAssignedInformation: [], // 二级交办信息
464
+				threeAssignedInformation: [], // 三级交办信息
465
+				backAuditList: [], // 退回审核
466
+				workOrderRejectedList: [], // 工单驳回
467
+				workOrderDealWithSecondLevelList: [], // 二级办理情况
468
+				workOrderDealWithThreeLevelList: [], // 三级办理情况
469
+				delayAuditList: [], // 延时审核
470
+				returnInformationList: [], // 回访信息
471
+				supervisoryInformationList: [], // 督办信息
472
+				citizensCuiBanList: [], // 市民催办
473
+				imageStyles: {
474
+					width: 64,
475
+					height: 64,
476
+					border: {
477
+						radius: '20%'
478
+					}
479
+				},
480
+				listStyles: {
481
+					borderStyle: {
482
+						color: "#eee", // 边框颜色
483
+						width: "1px", // 边框宽度
484
+						style: "solid", // 边框样式
485
+						radius: "5px" // 边框圆角,不支持百分比
486
+					},
487
+					border: false, // 是否显示边框
488
+					dividline: true // 是否显示分隔线
489
+				},
490
+				current: 0,
491
+				items: ["工单信息", "交办信息", "工单驳回", "办理情况", "延时审核", "回访信息", "督办信息", "市民催办"],
492
+			}
493
+		},
494
+		onLoad(option) {
495
+			this.wid = option.wid
496
+			// 获取详情
497
+			this.getDetail("0")
498
+			// 获取交办信息
499
+			// this.getDetail("1")
500
+		},
501
+		methods: {
502
+			// 返回列表页
503
+			returnPage() {
504
+				uni.$emit("updateList", {})
505
+				uni.navigateBack({
506
+					delta: 2,
507
+				})
508
+			},
509
+
510
+			//获取详情
511
+			getDetail(type) {
512
+				let params = {
513
+					type: type,
514
+					workorderid: this.wid,
515
+					token: uni.getStorageSync("token"),
516
+				}
517
+				this.$http
518
+					.get("/WorkOrder/GetWorkOrderNew", params)
519
+					.then((response) => {
520
+						if (response.state.toLowerCase() === "success") {
521
+							let data = response.data
522
+							if (String(type) === "0") {
523
+								this.detailContentData = Object.assign({}, data.data[0])
524
+								if(!this.detailContentData.AreaName) {
525
+									this.detailContentData.AreaName = ''
526
+								}
527
+								if(!this.detailContentData.Township) {
528
+									this.detailContentData.Township = ''
529
+								}
530
+								this.detailContentData.File = this.getFileData(this.detailContentData.File)
531
+							} else if (String(type) === "1") {
532
+								this.twoAssignedInformation = data.jbdata;
533
+								this.threeAssignedInformation = data.ejjbdata;
534
+								this.backAuditList = data.thdata;
535
+							}
536
+							else if (String(type) === "3") {
537
+								this.workOrderRejectedList = data;
538
+							} else if (String(type) === "4") {
539
+								this.workOrderDealWithSecondLevelList = data.bldata;
540
+								this.workOrderDealWithThreeLevelList = data.ejbldata;
541
+							} else if (String(type) === "5") {
542
+								this.delayAuditList = data;
543
+							} else if (String(type) === "6") {
544
+								this.returnInformationList = data;
545
+							} else if (String(type) === "7") {
546
+								this.supervisoryInformationList = data;
547
+							} else if (String(type) === "8") {
548
+								this.citizensCuiBanList = data;
549
+							}
550
+						}
551
+					})
552
+					.catch((e) => {
553
+						console.log(e)
554
+					})
555
+			},
556
+			onClickItem(e) {
557
+				console.log(e.currentIndex)
558
+				this.current = e.currentIndex;
559
+				switch (e.currentIndex) {
560
+					case 1:
561
+						// 获取交办信息
562
+						this.getDetail("1");
563
+						break;
564
+					case 2:
565
+						// 工单驳回
566
+						this.getDetail("3");
567
+						break;
568
+					case 3:
569
+						// 办理情况
570
+						this.getDetail("4");
571
+						break;
572
+					case 4:
573
+						// 延时审核
574
+						this.getDetail("5");
575
+						break;
576
+					case 5:
577
+						// 回访信息
578
+						this.getDetail("6");
579
+						break;
580
+					case 6:
581
+						// 督办信息
582
+						this.getDetail("7");
583
+						break;
584
+					case 7:
585
+						// 市民催办
586
+						this.getDetail("8");
587
+						break;
588
+					default:
589
+						break;
590
+				}
591
+			},
592
+			getFileData(fileData) {
593
+				let newFile = []
594
+				if (fileData && fileData.length > 0) {
595
+
596
+					console.log(fileData)
597
+					fileData.forEach((element, index) => {
598
+						const obj = {}
599
+						obj.url = element.F_FileUrl
600
+						obj.extname = element.F_FileType.split('.')[1]
601
+						obj.name = element.F_FileName
602
+						newFile.push(obj);
603
+					});
604
+
605
+				}
606
+				return newFile
607
+			}
608
+		},
609
+		filters: {
610
+			workStateFilters(value, data) {
611
+				let str;
612
+				switch (value) {
613
+					case 0:
614
+						let entryTimeDate = new Date(Date.parse(Data[0].F_CreateTime));
615
+						let defaultTimeDate = new Date(Date.parse("2020-10-16 00:00:00"));
616
+						if (entryTimeDate >= defaultTimeDate) {
617
+							str = "新工单";
618
+						} else {
619
+							str = "新工单(历史工单)";
620
+						}
621
+						break;
622
+					case 1:
623
+						str = "待交办";
624
+						break;
625
+					case 2:
626
+						str = "待查收";
627
+						break;
628
+					case 3:
629
+						str = "退回审核中";
630
+						break;
631
+					case 4:
632
+						str = "办理中";
633
+						break;
634
+					case 5:
635
+						str = "延时审核中";
636
+						break;
637
+					case 6:
638
+						str = "已办待审核";
639
+						break;
640
+					case 7:
641
+						str = "已回访";
642
+						break;
643
+					case 8:
644
+						if (String(data.F_Identification) === "0") {
645
+							str = "重置转发";
646
+						} else if (String(data.F_Identification) === "1") {
647
+							str = "退回重办";
648
+						} else {
649
+							str = "重办中";
650
+						}
651
+						break;
652
+					case 9:
653
+						str = "已结案";
654
+						break;
655
+					case 10:
656
+						str = "待审核";
657
+						break;
658
+					case 11:
659
+						str = "重办待交办";
660
+						break;
661
+					case 13:
662
+						str = "重办驳回";
663
+						break;
664
+					default:
665
+						str = "";
666
+						break;
667
+				}
668
+				return str
669
+			},
670
+			acceptPersonFilters(value, data) {
671
+				let str;
672
+				switch (data.F_InfoSource) {
673
+					case 1:
674
+						str = data.F_CreateUser;
675
+						break;
676
+					default:
677
+						str = data.F_CusName;
678
+						break;
679
+				}
680
+				return str;
681
+			},
682
+			dealWithWayFilters(value) {
683
+				let str;
684
+				switch (value) {
685
+					case 0:
686
+						str = "网络转办";
687
+						break;
688
+					case 1:
689
+						str = "当即办理";
690
+						break;
691
+					default:
692
+						str = "";
693
+						break;
694
+				}
695
+				return str;
696
+			},
697
+			threeWayCallFilters(value) {
698
+				let str;
699
+				switch (value) {
700
+					case 1:
701
+						str = "是";
702
+						break;
703
+					default:
704
+						str = "否";
705
+						break;
706
+				}
707
+				return str;
708
+			},
709
+			levelFilters(value) {
710
+				let str;
711
+				switch (value) {
712
+					case 1:
713
+						str = "普通";
714
+						break;
715
+					default:
716
+						str = "紧急";
717
+						break;
718
+				}
719
+				return str;
720
+			},
721
+			isProtectFilters(value) {
722
+				let str;
723
+				switch (value) {
724
+					case 0:
725
+						str = "普通";
726
+						break;
727
+					default:
728
+						str = "保密";
729
+						break;
730
+				}
731
+				return str;
732
+			},
733
+			backauditFilters(value) {
734
+				let str;
735
+				switch (String(value)) {
736
+					case "1":
737
+						str = "同意";
738
+						break;
739
+					case "2":
740
+						str = "拒绝";
741
+						break;
742
+					default:
743
+						str = "";
744
+						break;
745
+				}
746
+				return str;
747
+			},
748
+			delayAuditFilters(value) {
749
+				let str;
750
+				switch (String(value)) {
751
+					case "1":
752
+						str = "同意";
753
+						break;
754
+					case "2":
755
+						str = "拒绝";
756
+						break;
757
+					default:
758
+						str = "未审核";
759
+						break;
760
+				}
761
+				return str;
762
+			},
763
+			returnTypeFilters(value) {
764
+				let str;
765
+				switch (String(value)) {
766
+					case "0":
767
+						str = "电话";
768
+						break;
769
+					case "1":
770
+						str = "微信";
771
+						break;
772
+					case "2":
773
+						str = "APP";
774
+						break;
775
+					case "3":
776
+						str = "网站";
777
+						break;
778
+					case "4":
779
+						str = "微博";
780
+						break;
781
+					case "5":
782
+						str = "信箱";
783
+						break;
784
+					default:
785
+						str = "";
786
+						break;
787
+				}
788
+				return str;
789
+			},
790
+			returnIsSatisfieFilters(value) {
791
+				let str;
792
+				switch (String(value)) {
793
+					case "0":
794
+						str = "不满意";
795
+						break;
796
+					case "1":
797
+						str = "满意";
798
+						break;
799
+					default:
800
+						str = "基本满意";
801
+						break;
802
+				}
803
+				return str;
804
+			},
805
+			citizensReviewTypeFilters(value) {
806
+				let str;
807
+				switch (String(value)) {
808
+					case "1":
809
+						str = "短信评议";
810
+						break;
811
+					default:
812
+						str = "网站评议";
813
+						break;
814
+				}
815
+				return str;
816
+			},
817
+			dealWithIsProResultFilters(value) {
818
+				let str;
819
+				switch (String(value)) {
820
+					case "0":
821
+						str = "否";
822
+						break;
823
+					case "1":
824
+						str = "是";
825
+						break;
826
+					case "2":
827
+						str = "已办未果";
828
+						break;
829
+					default:
830
+						str = "";
831
+						break;
832
+				}
833
+				return str;
834
+			},
835
+			dealWithIsSatisfiedFilters(value) {
836
+				let str;
837
+				switch (String(value)) {
838
+					case "0":
839
+						str = "未评价";
840
+						break;
841
+					case "1":
842
+						str = "满意";
843
+						break;
844
+					case "2":
845
+						str = "基本满意";
846
+						break;
847
+					case "3":
848
+						str = "不满意";
849
+						break;
850
+					default:
851
+						str = "";
852
+						break;
853
+				}
854
+				return str;
855
+			}
856
+
857
+
858
+		}
859
+	}
860
+</script>
861
+
862
+<style lang="scss">
863
+	.wrapper {
864
+		padding: 10px 10px 0 10px;
865
+
866
+		.segmented-control {
867
+			width: 100%;
868
+			overflow: auto;
869
+
870
+			/deep/ .segmented-control__item {
871
+				white-space: nowrap;
872
+				margin-right: 8px;
873
+			}
874
+
875
+			/deep/ .segmented-control__item:last-child {
876
+				margin-right: 0px;
877
+			}
878
+		}
879
+
880
+		.detailContent {
881
+			margin: 15px 0 15px 0;
882
+
883
+			.contentBlock {
884
+				margin: 18px 0 0 0;
885
+
886
+				.title {
887
+					font-weight: 700;
888
+				}
889
+
890
+				.content {
891
+					margin: 5px 0 5px 0;
892
+				}
893
+			}
894
+
895
+			.contentTable {
896
+				margin: 0 0 5px 0;
897
+
898
+				.contentTitle {
899
+					font-weight: 700;
900
+					font-size: 14px;
901
+				}
902
+
903
+				.contentText {
904
+					color: #525252;
905
+					font-size: 14px;
906
+				}
907
+			}
908
+		}
909
+	}
910
+</style>

+ 195 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderDetail/workOrderDetail.vue

@@ -0,0 +1,195 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="detailContent">
4
+			<view class="contentTable">
5
+				<text class="contentTitle">工单编号:</text>
6
+				<text class="contentText">{{ detailContentData.F_WorkOrderId }}</text>
7
+			</view>
8
+			<view class="contentTable">
9
+				<text class="contentTitle">标题:</text>
10
+				<text class="contentText">{{ detailContentData.F_ComTitle }}</text>
11
+			</view>
12
+			<view class="contentTable">
13
+				<text class="contentTitle">来电内容:</text>
14
+				<text class="contentText">{{ detailContentData.F_ComContent }}</text>
15
+			</view>
16
+			<!-- <view class="contentTable">
17
+        <text class="contentTitle">工单内容:</text>
18
+        <text class="contentText">{{ detailContentData.F_Content == null ? detailContentData.F_ComContent : detailContentData.F_Content}}</text>
19
+      </view> -->
20
+			<view class="contentTable">
21
+				<text class="contentTitle">来电人:</text>
22
+				<text class="contentText" v-if="(roleCode == 'WLDW' || roleCode == 'EJWLDW' ) && detailContentData.F_IsProtect == 0">{{ detailContentData.F_CusName }}</text>
23
+				<text class="contentText" v-else-if="roleCode != 'WLDW' && roleCode != 'EJWLDW' ">{{ detailContentData.F_CusName }}</text>
24
+			</view>
25
+			<view class="contentTable">
26
+				<text class="contentTitle">来电号码:</text>
27
+				<text class="contentText" v-if="(roleCode == 'WLDW' || roleCode == 'EJWLDW' )  && detailContentData.F_IsProtect == 0">{{ detailContentData.F_CusPhone }}</text>
28
+				<text class="contentText" v-else-if="roleCode != 'WLDW' && roleCode != 'EJWLDW'">{{ detailContentData.F_CusPhone }}</text>
29
+			</view>
30
+			<view class="contentTable">
31
+				<text class="contentTitle">联系电话:</text>
32
+				<text class="contentText" v-if="(roleCode == 'WLDW' || roleCode == 'EJWLDW' )  && detailContentData.F_IsProtect == 0">{{ detailContentData.F_ConPhone }}</text>
33
+				<text class="contentText" v-else-if="roleCode != 'WLDW' && roleCode != 'EJWLDW'">{{ detailContentData.F_ConPhone }}</text>
34
+			</view>
35
+			<view class="contentTable">
36
+				<text class="contentTitle">来源:</text>
37
+				<text class="contentText" >{{ detailContentData.SourceName }}</text>
38
+			</view>
39
+		</view>
40
+		<yiLine>
41
+			<view></view>
42
+		</yiLine>
43
+
44
+
45
+		<view class="operationButton">
46
+			<view>
47
+				<text class="operationButtonTitle">操作</text>
48
+				<buttonsComponents class="buttons" :order-button-data="orderButtonData" :wid="wid" :tap='tap'/>
49
+			</view>
50
+		</view>
51
+
52
+		<yiLine>
53
+			<view></view>
54
+		</yiLine>
55
+		<view class="handleProcess">
56
+			<view>
57
+				<text class="handleProcessTitle">办理过程</text>
58
+				<view class="handleProcessContent" v-for="item in handleProcessListData" :key=item.F_Id>
59
+					<view class="handleProcessContentTime">
60
+						<text>{{ item.F_CreateTime }}</text>
61
+					</view>
62
+					<view class="handleProcessContentText">
63
+						<text>{{ item.F_Message }}</text>
64
+					</view>
65
+				</view>
66
+			</view>
67
+		</view>
68
+	</view>
69
+</template>
70
+
71
+<script>
72
+	import yiLine from "@/components/yi-line/yi-line.vue"
73
+	import buttonsComponents from "@/pages/myTask/workOrderList/workOrderDetail/buttons/buttons.vue"
74
+	export default {
75
+		components: {
76
+			yiLine,
77
+			buttonsComponents
78
+		},
79
+		data() {
80
+			return {
81
+				wid: "", // 工单id
82
+				tap: '', //工单切换
83
+				stingText: '', //菜单标题
84
+				roleCode: "", //角色
85
+				detailContentData: {}, // 详情内容
86
+				orderButtonData: [],
87
+				handleProcessListData: [], // 办理过程
88
+				workOrderButton: [], // 工单按钮权限
89
+			}
90
+		},
91
+		onLoad(option) {
92
+			this.tap = option.tap
93
+			this.wid = option.wid;;
94
+			this.roleCode = uni.getStorageSync("roleCode")
95
+			// 获取详情
96
+			this.getDetail("0");
97
+			// 获取办理过程
98
+			this.getDetail("9");
99
+		},
100
+		methods: {
101
+			getDetail(type) {
102
+				let params = {
103
+					type: type,
104
+					workorderid: this.wid,
105
+					token: uni.getStorageSync("token"),
106
+				}
107
+				this.$http.get("/WorkOrder/GetWorkOrderNew", params).then((response) => {
108
+					if (response.state.toLowerCase() === "success") {
109
+						let data = response.data;
110
+						if (type === "0") {
111
+							this.detailContentData = data.data[0];
112
+							let btnData = data.btndata;
113
+							if (btnData.length > 0) {
114
+								this.orderButtonData = btnData
115
+								// btnData.forEach((element, index) => {
116
+								// 	let btn = this.$mButtonConfig[element.key];
117
+								// 	console.log(btn)
118
+								// 	if (btn != undefined) {
119
+								// 		this.workOrderButton.push(btn);
120
+								// 	}
121
+								// 	this.orderButtonData = this.workOrderButton
122
+								// });
123
+							}
124
+						} else if (type === "9") {
125
+							this.handleProcessListData = data;
126
+						}
127
+					}
128
+				}).catch((e) => {
129
+					console.log(e);
130
+				})
131
+			},
132
+
133
+
134
+		},
135
+	}
136
+</script>
137
+
138
+<style lang="scss">
139
+	.wrapper {
140
+		padding: 10px 10px 0 10px;
141
+
142
+		.detailContent {
143
+			margin: 0 0 15px 0;
144
+
145
+			.contentTable {
146
+				margin: 0 0 5px 0;
147
+
148
+				.contentTitle {
149
+					font-weight: 700;
150
+					font-size: 14px;
151
+				}
152
+
153
+				.contentText {
154
+					color: #525252;
155
+					font-size: 14px;
156
+				}
157
+			}
158
+		}
159
+
160
+		.operationButton {
161
+			margin: 15px 0;
162
+
163
+			.operationButtonTitle {
164
+				font-weight: 700;
165
+			}
166
+
167
+			.buttons {
168
+				margin: 10px 0 0 0;
169
+
170
+			}
171
+		}
172
+
173
+		.handleProcess {
174
+			margin: 15px 0;
175
+
176
+			.handleProcessTitle {
177
+				font-weight: 700;
178
+			}
179
+
180
+			.handleProcessContent {
181
+				margin: 8px 0 0 0;
182
+
183
+				.handleProcessContentTime text {
184
+					font-size: 14px;
185
+					color: #73d13d;
186
+				}
187
+
188
+				.handleProcessContentText text {
189
+					font-size: 14px;
190
+					color: #525252;
191
+				}
192
+			}
193
+		}
194
+	}
195
+</style>

+ 434 - 0
anyangWebAPP/pages/myTask - 副本/workOrderList/workOrderList.vue

@@ -0,0 +1,434 @@
1
+<template>
2
+	<view class="wrapper">
3
+
4
+		<div  style="width: 96%;margin:10px  auto; ">
5
+			<input type="text" v-model="keyWords" placeholder="请输入工单标题" class="orderState key" @confirm="searchList">
6
+		</div>
7
+		<div style="width: 96%;margin: 0 auto;" v-if=" tap == '查询工单' ">
8
+			<uni-data-select v-model="orderState" :localdata="range" class="orderState" @change="chageList" placeholder="请输入工单状态"></uni-data-select>
9
+			<depart-select @post-select-data = "postSelectData" class="orderState"></depart-select>
10
+		</div>
11
+
12
+		<view v-if="isDisplay.displaySegmentedControl" class="segmentedControlWrapper">
13
+			<uni-segmented-control :current="segmenter.current" :values="segmenter.items"
14
+				@clickItem="onClickSegmentedControl" styleType="text" activeColor="#007aff"/>
15
+		</view>
16
+		<view class="tableWrapper">
17
+			<!-- 基于 uni-list 的页面布局 -->
18
+			<uni-list>
19
+				<!-- to 属性携带参数跳转详情页面-->
20
+				<uni-list-item direction="column" v-for="(item, index) in listData" :key="index"
21
+					:to="'/pages/myTask/workOrderList/workOrderDetail/workOrderDetail?wid='+item.F_WorkOrderId + '&tap=' + paramsData.stingText">
22
+					<!-- 通过header插槽定义列表的标题 -->
23
+					<template v-slot:header>
24
+						<view class="uni-title">{{item.F_ComTitle}}</view>
25
+					</template>
26
+					<!-- 通过body插槽定义列表内容显示 -->
27
+					<template v-slot:body>
28
+						<view class="uni-list-box">
29
+							<view class="uni-content">
30
+								<view class="uni-title-sub uni-ellipsis-1">
31
+									<view class="textLeft">
32
+										工单类型:{{item.TypeName}}
33
+									</view>
34
+								</view>
35
+								<view class="uni-note">{{item.F_CreateTime}}</view>
36
+							</view>
37
+							<view class="textState">{{ item.F_WorkState | workOrderState(item)}}</view>
38
+						</view>
39
+					</template>
40
+					
41
+				</uni-list-item>
42
+			</uni-list>
43
+			<uni-load-more :status="loadMoreState"></uni-load-more>
44
+		</view>
45
+
46
+	</view>
47
+</template>
48
+
49
+<script>
50
+	import departSelect from '@/pages/components/commonSelect/departSelect/departSelect.vue'
51
+	const urlData = [
52
+		"WorkOrder/GetList",
53
+		"WorkOrder/GetLDDealList",
54
+		"WorkOrder/GetDWDealList",
55
+		"WorkOrder/GetZXDealList",
56
+		"WorkOrder/GetTimeOutList",
57
+		"workorder/GetSupervList",
58
+		"workorder/GetEJDWDealList"
59
+	]
60
+	const segmenterData = {
61
+		0: ["热线件", "督办件"], // 已办待回访
62
+		1: ["未追加回复", "已追加回复"], // 已办未果
63
+		2: ["督办待办", "督办重办"], // 督办工单
64
+	}
65
+	export default {
66
+		components: {
67
+			departSelect
68
+		},
69
+		data() {
70
+			return {
71
+				tap: '',
72
+				keyWords: '',
73
+				departid: '',
74
+				orderState: '',
75
+				departList: [],
76
+				range: [{
77
+					value: 0,
78
+					text: '新工单'
79
+				},{
80
+					value: 1,
81
+					text: '待交办'
82
+				},{
83
+					value: 2,
84
+					text: '待查收'
85
+				},{
86
+					value: 3,
87
+					text: '退回审核中'
88
+				},{
89
+					value: 4,
90
+					text: '办理中'
91
+				},{
92
+					value: 5,
93
+					text: '延时审核中'
94
+				},{
95
+					value: 6,
96
+					text: '已办待审核'
97
+				},{
98
+					value: 7,
99
+					text: '已办待回访'
100
+				},{
101
+					value: 8,
102
+					text: '重办中'
103
+				},{
104
+					value: 9,
105
+					text: '已结案'
106
+				},{
107
+					value: 11,
108
+					text: '重办待交办'
109
+				},{
110
+					value: 13,
111
+					text: '重办驳回'
112
+				}],
113
+				listData: [],
114
+				paramsData: {},
115
+				loadMoreState: 'more', //more loading  no-more
116
+				segmenter: {
117
+					current: 0,
118
+					items: ["0", "1", "2"],
119
+					type: "",
120
+				},
121
+				isDisplay: {
122
+					displaySegmentedControl: false, // 分段器
123
+				},
124
+			}
125
+		},
126
+		onLoad(optioin) {
127
+			this.tap = optioin.stingText
128
+			this.init(optioin)
129
+		},
130
+		onUnload() {
131
+			// 移除监听事件
132
+			uni.$off("updateList")
133
+		},
134
+		onPullDownRefresh() {
135
+			this.resetListData()
136
+			this.getList(this.paramsData)
137
+		},
138
+		methods: {
139
+			postSelectData(data) {
140
+				this.resetListData()
141
+				this.paramsData.departid = data
142
+				this.getList(this.paramsData)
143
+				// this.departid = data
144
+			},
145
+			init(optioin){
146
+				
147
+				optioin.page = 1 // 页码
148
+				optioin.pagesize = 10 // 条数
149
+				optioin.keyWords = ''
150
+				this.paramsData = optioin
151
+
152
+				this.getList(optioin)
153
+				if (optioin.segmenter == undefined || optioin.segmenter == null || optioin.segmenter == "") {
154
+					this.isDisplay.displaySegmentedControl = false
155
+				} else {
156
+					this.isDisplay.displaySegmentedControl = true
157
+					this.segmenter.type = optioin.segmenter
158
+					this.segmenter.items = segmenterData[optioin.segmenter]
159
+				}
160
+				// 页面
161
+				uni.$on("updateList", (res) => {
162
+					this.listData = []
163
+					this.paramsData.page = 1
164
+					this.paramsData.pagesize = 10
165
+					this.getList(this.paramsData)
166
+				})
167
+			},
168
+			
169
+			getList(optioin) {
170
+				const params = {
171
+					page: optioin.page,
172
+					pagesize: optioin.pagesize,
173
+					ComTitle: optioin.keyWords,
174
+					deptid:  optioin.departid == undefined ? "" : optioin.departid,
175
+					tab: optioin.tab == undefined ? "" : optioin.tab,
176
+					state: optioin.state == undefined ? "" : optioin.state,
177
+					db: optioin.db == undefined ? "" : optioin.db,
178
+					isproresult: optioin.isproresult == undefined ? "" : optioin.isproresult,
179
+					Supervisor: optioin.Supervisor == undefined ? "" : optioin.Supervisor,
180
+					iscb: optioin.iscb == undefined ? "" : optioin.iscb,
181
+					tobereply: optioin.tobereply == undefined ? "" : optioin.tobereply,
182
+					distribute: optioin.distribute == undefined ? "" : optioin.distribute,
183
+					token: uni.getStorageSync("token"),
184
+				}
185
+				let workOrderListType = Number(optioin.workOrderListType)
186
+				let url = urlData[workOrderListType]
187
+				this.$http
188
+					.get(url, params)
189
+					.then((response) => {
190
+						if (response.state.toLowerCase() === "success") {
191
+							let data = response.rows
192
+							uni.stopPullDownRefresh();
193
+							this.listData = this.listData.concat(data)
194
+							if (this.listData.length >= 6) {
195
+								this.loadMoreState = 'more'
196
+							} else {
197
+								this.loadMoreState = 'no-more'
198
+							}
199
+
200
+						}
201
+					})
202
+					.catch((e) => {
203
+						console.log(e)
204
+					})
205
+			},
206
+			workOrderIdClick(value) {
207
+				console.log(this.paramsData.tab)
208
+				uni.navigateTo({
209
+					url: "/pages/workOrderDetail/workOrderDetail?wid=" + value + '&tap=' + this.paramsData.tab,
210
+				})
211
+			},
212
+			searchList(e) {
213
+				this.resetListData()
214
+				this.paramsData.keyWords = e.detail.value
215
+				this.getList(this.paramsData)
216
+			},
217
+			chageList(e) {
218
+				this.resetListData()
219
+				this.paramsData.state = e
220
+				this.getList(this.paramsData)
221
+			},
222
+
223
+			onClickSegmentedControl(e) {
224
+				this.resetListData()
225
+				switch (String(this.segmenter.type)) {
226
+					case "0":
227
+						if (String(e.currentIndex) === "0") {
228
+							this.paramsData.db = 0
229
+						} else if (String(e.currentIndex) === "1") {
230
+							this.paramsData.db = 1
231
+						}
232
+						break
233
+					case "1":
234
+						if (String(e.currentIndex) === "0") {
235
+							this.paramsData.isproresult = 1
236
+						} else if (String(e.currentIndex) === "1") {
237
+							this.paramsData.isproresult = 2
238
+						}
239
+						break
240
+					case "2":
241
+						if (String(e.currentIndex) === "0") {
242
+							this.paramsData.iscb = 0
243
+						} else if (String(e.currentIndex) === "1") {
244
+							this.paramsData.iscb = 1
245
+						}
246
+						break
247
+				}
248
+
249
+				this.getList(this.paramsData)
250
+			},
251
+			resetListData(){
252
+				this.listData = []
253
+				this.paramsData.page = 1
254
+				this.paramsData.pagesize = 10
255
+			}
256
+		},
257
+		filters: {
258
+			// 工单状态过滤
259
+			workOrderState(value, options) {
260
+				var resultData = ""
261
+				switch (value + "") {
262
+					case "0":
263
+						resultData = "新工单"
264
+						if (options.F_IsReturn == 1) {
265
+							resultData = "新工单(回退)"
266
+						}
267
+						break
268
+					case "1":
269
+						resultData = "待交办"
270
+						break
271
+					case "2":
272
+						resultData = "待查收"
273
+						break
274
+					case "3":
275
+						resultData = "退回审核中"
276
+						break
277
+					case "4":
278
+						resultData = "办理中"
279
+						break
280
+					case "5":
281
+						resultData = "延时审核"
282
+						break
283
+					case "6":
284
+						if (options.F_IsProtect === 2 || options.F_IsProtect === 3) {
285
+							resultData = "已办未果"
286
+						} else {
287
+							resultData = "已办待审核"
288
+						}
289
+						break
290
+					case "7":
291
+						resultData = "待回访"
292
+						break
293
+					case "8":
294
+						if (options.F_Identification === 0) {
295
+							resultData = "重置转发"
296
+						} else if (options.F_Identification === 1) {
297
+							resultData = "退回重办"
298
+						} else {
299
+							resultData = "重办中"
300
+						}
301
+						break
302
+					case "9":
303
+						resultData = "已结案"
304
+						break
305
+					case "10":
306
+						resultData = "待审核"
307
+						break
308
+					case "11":
309
+						resultData = "重办待交办"
310
+						break
311
+					case "13":
312
+						resultData = "重办驳回"
313
+						break
314
+				}
315
+				return resultData
316
+			},
317
+		},
318
+		/**
319
+		 * 上拉加载回调函数
320
+		 */
321
+		onReachBottom() {
322
+			if (this.listData.length >= 6) {
323
+				console.loh(22222)
324
+				this.loadMoreState = 'loading'
325
+				this.paramsData.page = this.paramsData.page + 1
326
+				this.getList(this.paramsData)
327
+			} else {
328
+				this.loadMoreState = 'no-more'
329
+			}
330
+
331
+		}
332
+	}
333
+</script>
334
+
335
+<style lang="scss">
336
+	@import '@/common/uni-ui.scss';
337
+	.orderState{
338
+		background-color: #fff;
339
+		border: none; 
340
+		padding:2px 15px !important;
341
+		outline: none !important;
342
+		margin-bottom: 10px;
343
+	}
344
+	.key{
345
+		border-radius: 4px;
346
+		padding:8px 15px !important;
347
+		font-size: 14px !important;
348
+	}
349
+	.wrapper {
350
+		padding: 5px 0 0 0;
351
+
352
+		// .segmentedControlWrapper {
353
+		// }
354
+		.tableWrapper {
355
+			margin: 15px 0 0 0;
356
+		}
357
+	}
358
+
359
+	page {
360
+		display: flex;
361
+		flex-direction: column;
362
+		box-sizing: border-box;
363
+		background-color: #efeff4;
364
+		min-height: 100%;
365
+		height: auto;
366
+	}
367
+
368
+	.uni-list-box {
369
+		position: relative;
370
+
371
+		.textState {
372
+			position: absolute;
373
+			right: 15px;
374
+			top: 0px;
375
+			font-size: 14px;
376
+		}
377
+	}
378
+
379
+	.tips {
380
+		color: #67c23a;
381
+		font-size: 14px;
382
+		line-height: 40px;
383
+		text-align: center;
384
+		background-color: #f0f9eb;
385
+		height: 0;
386
+		opacity: 0;
387
+		transform: translateY(-100%);
388
+		transition: all 0.3s;
389
+	}
390
+
391
+	.tips-ani {
392
+		transform: translateY(0);
393
+		height: 40px;
394
+		opacity: 1;
395
+	}
396
+
397
+	.content {
398
+		width: 100%;
399
+		display: flex;
400
+	}
401
+
402
+	.list-picture {
403
+		width: 100%;
404
+		height: 145px;
405
+	}
406
+
407
+	.thumb-image {
408
+		width: 100%;
409
+		height: 100%;
410
+	}
411
+
412
+	.ellipsis {
413
+		display: flex;
414
+		overflow: hidden;
415
+	}
416
+
417
+	.uni-ellipsis-1 {
418
+		overflow: hidden;
419
+		white-space: nowrap;
420
+		text-overflow: ellipsis;
421
+	}
422
+
423
+	.uni-ellipsis-2 {
424
+		overflow: hidden;
425
+		text-overflow: ellipsis;
426
+		display: -webkit-box;
427
+		-webkit-line-clamp: 2;
428
+		-webkit-box-orient: vertical;
429
+	}
430
+
431
+	.uni-content {
432
+		display: flex;
433
+	}
434
+</style>

+ 87 - 10
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/buttons.vue

@@ -2,8 +2,8 @@
2 2
 
3 3
 	<view>
4 4
 		<button class="mini-btn" type="default" size="mini" v-for="item in orderButtonData"
5
-			@click="callBtnMethods(item.eventName)" :key="item.id">
6
-			{{ item.text }}
5
+			@click="callBtnMethods(item.key)" :key="item.key">
6
+			{{ item.value }}
7 7
 		</button>
8 8
 		<button class="mini-btn" type="default" size="mini" @click="superviseBtn" v-show="tap == '正在办理'">催办</button>
9 9
 		<button class="mini-btn" type="default" size="mini" @click="additionalReplyBtn" v-show="tap == '三级已办未果'">追加回复</button>
@@ -12,6 +12,7 @@
12 12
 			<uni-popup ref="inputDialog" type="dialog">
13 13
 				<uni-popup-dialog ref="inputClose" mode="input" title="输入内容" @confirm="dialogInputConfirm">
14 14
 					<view style="width:100%;">
15
+						<uni-data-select v-model="days" :clear="false" :localdata="datatime" placeholder = "请选择申请延时时间" v-show="auditPlaceholder == '请输入申请延时原因'" style="margin-bottom: 30px;"></uni-data-select>
15 16
 						<uni-easyinput type="textarea" autoHeight v-model="cbreason" :placeholder="auditPlaceholder" />
16 17
 					</view>
17 18
 				</uni-popup-dialog>
@@ -39,21 +40,92 @@
39 40
 			}
40 41
 		},
41 42
 		watch: {
42
-			orderButtonData(val) {}
43
+			orderButtonData(val) {
44
+				console.log(this.orderButtonData)
45
+			}
43 46
 		},
44 47
 		data() {
45 48
 			return {
49
+				days: '',
50
+				datatime: [{
51
+					text: '一天',
52
+					value: 1
53
+				},{
54
+					text: '三天',
55
+					value: 3
56
+				},{
57
+					text: '五天',
58
+					value: 5
59
+				}],
46 60
 				workOrderButton: [], // 工单按钮权限
47 61
 				cbreason: '', //审核原因
48 62
 				auditPlaceholder: '请输入不通过审核原因'
49 63
 			}
50 64
 		},
51 65
 		onLoad(option) {
52
-			console.log(option)
66
+			console.log(option.orderButtonData)
53 67
 		},
54 68
 		methods: {
55
-			callBtnMethods(methodName) {
56
-				this[methodName]();
69
+			callBtnMethods(key) {
70
+				if(key == 3) { // 删除
71
+					this.confirmationAPI("WorkOrder/DelWorkOrder", "删除", "是否要删除", "取消了删除")
72
+				}else if(key == 4) { // 提交
73
+					this.confirmationAPI("WorkOrder/SubmitWorkOrder", "提交", "是否要提交", "取消了提交")
74
+				}else if(key == 10) { // 收回
75
+					this.confirmationAPI("WorkOrder/TakeBackWorkOrder", "收回", "是否要收回", "取消了收回")
76
+				}else if(key == 11) { // 查收
77
+					this.confirmationAPI("WorkOrder/ReceiveWorkOrder", "查收", "是否要查收", "取消了查收")
78
+				}else if(key == 25) { // 签收
79
+					this.confirmationAPI("WorkOrder/SignWorkOrder", "签收", "是否要签收", "取消了签收")
80
+				}else if(key == 27) { // 撤单
81
+					this.confirmationAPI("WorkOrder/WithdrawDWorkOrder", "撤单", "是否要撤单", "取消了撤单")
82
+				}else if(key == 14) { // 申请延时
83
+					this.cbreason = ''
84
+					this.auditPlaceholder = '请输入申请延时原因'
85
+					this.$refs.inputDialog.open()
86
+				}else if(key == 32) { // 驳回重办
87
+					this.cbreason = ''
88
+					this.auditPlaceholder = '请输入驳回重办原因'
89
+					this.$refs.inputDialog.open()
90
+				}else if(key == 51) { // 51审核通过
91
+					uni.showLoading({
92
+						title: '加载中'
93
+					})
94
+					uni.showModal({
95
+						title: '审核通过',
96
+						content: '是否审核通过',
97
+						success: (res) => {
98
+							if (res.confirm) {
99
+								this.toExamineWorkOrder(0, '')
100
+							} else if (res.cancel) {
101
+								uni.hideLoading()
102
+								this.$mHelper.toast('用户点击取消');
103
+							}
104
+						}
105
+					});
106
+				}else if(key == 52) { // 52不通过原因
107
+					this.cbreason = ''
108
+					this.auditPlaceholder = '请输入审核不通过原因'
109
+					this.$refs.inputDialog.open()
110
+				}else if(key == 53) { // 53审核通过转办
111
+					this.cbreason = ''
112
+					this.auditPlaceholder = '请输入审核通过并转办原因'
113
+					this.$refs.inputDialog.open()
114
+				}else if(key == 21) { // 21回退
115
+					this.cbreason = ''
116
+					this.auditPlaceholder = '请输入回退原因'
117
+					this.$refs.inputDialog.open()
118
+				}else if(key == 29) { // 21转督办
119
+					this.cbreason = ''
120
+					this.auditPlaceholder = '请输入转督办原因'
121
+					this.$refs.inputDialog.open()
122
+				}
123
+				else {
124
+					uni.navigateTo({
125
+						url: "/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_" + key + "/wid="+ this.wid,
126
+					})
127
+				}
128
+				
57 129
 			},
58 130
 			// 1查看
59 131
 			viewBtn() {
@@ -88,7 +160,7 @@
88 160
 					url: "/pages/workOrderDetail/components/handleWordOrder/handleWordOrder?wid=" + this.wid,
89 161
 				})
90 162
 			},
91
-			// 14延时审核
163
+			// 14申请延时
92 164
 			applyDelayBtn() {
93 165
 				this.cbreason = ''
94 166
 				this.auditPlaceholder = '请输入申请延时原因'
@@ -229,7 +301,7 @@
229 301
 					});
230 302
 
231 303
 				} else if (this.auditPlaceholder === '请输入申请延时原因') {
232
-					const addParams = {reason: this.cbreason,workorderid:this.wid}
304
+					const addParams = {reason: this.cbreason,workorderid:this.wid,newlimittime:this.days}
233 305
 					this.workOrderContent("WorkOrder/DelayWorkOrder", addParams)
234 306
 				} else if (this.auditPlaceholder === '请输入驳回重办原因') {
235 307
 					const addParams = {reason: this.cbreason,id: this.wid}
@@ -275,10 +347,15 @@
275 347
 					content: content,
276 348
 					success: (res) => {
277 349
 						if (res.confirm) {
278
-							const params = {
279
-								workorderid: this.wid,
350
+							let params = {
280 351
 								token: uni.getStorageSync("token")
281 352
 							}
353
+							if(title == '删除' || title == '提交') {
354
+								params.ids = this.wid
355
+							}else{
356
+								params.workorderid = this.wid
357
+							}
358
+							
282 359
 							this.$mHelper.httpPost(url,params,1)
283 360
 						} else if (res.cancel) {
284 361
 							this.$mHelper.toast(canceContent);

+ 76 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_12/button_12.vue

@@ -0,0 +1,76 @@
1
+<template>
2
+	<page-meta :root-font-size="getFontSizeValue"></page-meta>
3
+	<view class="wrapper">
4
+		<view class="form">
5
+			<!-- 基础表单校验 -->
6
+			<uni-forms >
7
+				<uni-forms-item label="申请退回原因" name="reason" required>
8
+					<uni-easyinput type="textarea" v-model="reason" placeholder="请输入申请退回原因" />
9
+				</uni-forms-item>
10
+				<uni-forms-item label="附件" name="">
11
+					<view class="example-body">
12
+						<upload @post-string-data="getImgData" :imgUrlList="imgUrlList"></upload>
13
+					</view>
14
+				</uni-forms-item>
15
+			</uni-forms>
16
+			<view class="btnClass">
17
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交</button>
18
+			</view>
19
+			
20
+		</view>
21
+	</view>
22
+</template>
23
+
24
+<script>
25
+	import upload from '@/pages/components/upload/upload.vue' //upload
26
+	export default {
27
+		components: {
28
+			upload
29
+		},
30
+		data() {
31
+			return {
32
+				workorderid: '',
33
+				reason: '',
34
+				imgUrlList: [], // 附件数据
35
+				imgIdList: [], //上传附件id
36
+			}
37
+		},
38
+		onLoad(option) {
39
+			this.workorderid = option.wid
40
+		},
41
+		methods: {
42
+			submit(ref) {
43
+				const params = {
44
+				  workorderid: this.workorderid,
45
+				  file: this.$mHelper.getImgString(this.imgIdList),
46
+				  backreason: this.reason,
47
+				  token: uni.getStorageSync("token"),
48
+				}
49
+				this.$mHelper.httpPost("WorkOrder/RebackWorkOrder",params,2)
50
+				
51
+			},
52
+			// 上传图片
53
+			getImgData(data) {
54
+				this.imgIdList = data
55
+			},
56
+		}
57
+	}
58
+</script>
59
+
60
+<style lang="scss">
61
+.wrapper {
62
+  padding: 10px 15px;
63
+  background-color: #fff;
64
+  .form {
65
+		.uni-stat__select{
66
+		    display: block;
67
+		    align-items: center;
68
+		    padding: 0px;
69
+		    cursor: pointer;
70
+			width: 80%;
71
+		}
72
+		
73
+  }
74
+
75
+}
76
+</style>

+ 253 - 4
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_13/button_13.vue

@@ -1,22 +1,271 @@
1 1
 <template>
2
-	<view>
3
-		
2
+	<view class="wrapper" style="background-color: #fff;">
3
+		<view class="form" style="padding: 15px;">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="formData">
6
+				<uni-forms-item label="承办人" name="undertaker" required>
7
+					<uni-easyinput v-model="formData.undertaker" placeholder="请输入承办人" />
8
+				</uni-forms-item>
9
+				<uni-forms-item label="职务" name="undertaker_position">
10
+					<uni-easyinput v-model="formData.undertaker_position" placeholder="请输入职务" />
11
+				</uni-forms-item>
12
+				<uni-forms-item label="联系方式" name="undertaker_phone" required>
13
+					<uni-easyinput v-model="formData.undertaker_phone" placeholder="请输入联系方式" />
14
+				</uni-forms-item>
15
+				<uni-forms-item label="审核领导" name="auditLeader" required>
16
+					<uni-easyinput v-model="formData.auditLeader" placeholder="请输入审核领导" />
17
+				</uni-forms-item>
18
+				<uni-forms-item label="职务" name="auditLeader_position" required>
19
+					<uni-easyinput v-model="formData.auditLeader_position" placeholder="请输入职务" />
20
+				</uni-forms-item>
21
+				<uni-forms-item label="联系方式" name="auditLeader_phone" required>
22
+					<uni-easyinput v-model="formData.auditLeader_phone" placeholder="请输入联系方式" />
23
+				</uni-forms-item>
24
+				<uni-forms-item label="处理结果" name="detailRsult" required>
25
+					<uni-easyinput type="textarea" v-model="formData.detailRsult" placeholder="请输入处理结果" maxlength="1000"/>
26
+				</uni-forms-item>
27
+				<uni-forms-item label="是否向当事人反馈" name="feedback" required>
28
+					<uni-data-checkbox v-model="formData.feedback" :localdata="isfeedback" />
29
+				</uni-forms-item>
30
+				<uni-forms-item label="不反馈原因" name="feedbackReason" v-if="formData.feedback == 0" required>
31
+					<uni-easyinput type="textarea" v-model="formData.feedbackReason" placeholder="请输入不反馈原因" />
32
+				</uni-forms-item>
33
+				<uni-forms-item label="是否满意" name="staisfied" v-if="formData.feedback == 1" required>
34
+					<uni-data-checkbox v-model="formData.staisfied" :localdata="isstaisfied" />
35
+				</uni-forms-item>
36
+				<uni-forms-item label="附件">
37
+					<view class="example-body">
38
+						<upload @post-string-data="getImgData" :imgUrlList="imgUrlList"></upload>
39
+					</view>
40
+				</uni-forms-item>
41
+			</uni-forms>
42
+			<button type="primary" @click="formSubmit('valiForm')">提交</button>
43
+		</view>
4 44
 	</view>
5 45
 </template>
6 46
 
7 47
 <script>
48
+	import upload from '@/pages/components/upload/upload.vue' //upload
8 49
 	export default {
50
+		
51
+		components: {upload},
9 52
 		data() {
10 53
 			return {
11
-				
54
+				wid: "", // 工单id
55
+				stingText: '', // 菜单标题
56
+				simpleDetailStrStart: '',
57
+				imgList: [],
58
+				imgUrlList: [],
59
+				formData: {
60
+					undertaker: '',
61
+					undertaker_position: '',
62
+					undertaker_phone: '',
63
+					auditLeader: '',
64
+					auditLeader_position: '',
65
+					auditLeader_phone: '',
66
+					detailRsult: '',
67
+					feedback: 1,
68
+					feedbackReason: '',
69
+					imgid: '',
70
+					result: '',
71
+					staisfied: 0
72
+				},
73
+				isfeedback: [{
74
+					text: '是',
75
+					value: 1
76
+				}, {
77
+					text: '否',
78
+					value: 0
79
+				}],
80
+				isstaisfied: [{
81
+					text: '满意',
82
+					value: 1
83
+				}, {
84
+					text: '基本满意',
85
+					value: 2
86
+				}, {
87
+					text: '不满意',
88
+					value: 3
89
+				}],
90
+				// 校验规则
91
+				rules: {
92
+					undertaker: {
93
+						rules: [{
94
+							required: true,
95
+							errorMessage: '请输入承办人'
96
+						}]
97
+					},
98
+					undertaker_phone: {
99
+						rules: [{
100
+							required: true,
101
+							errorMessage: '请输入承办人联系方式'
102
+						}]
103
+					},
104
+					auditLeader: {
105
+						rules: [{
106
+							required: true,
107
+							errorMessage: '请输入审核领导'
108
+						}]
109
+					},
110
+					auditLeader_position: {
111
+						rules: [{
112
+							required: true,
113
+							errorMessage: '请输入审核领导职务'
114
+						}]
115
+					},
116
+					auditLeader_phone: {
117
+						rules: [{
118
+							required: true,
119
+							errorMessage: '请输入审核领导联系方式'
120
+						}]
121
+					},
122
+					detailRsult: {
123
+						rules: [{
124
+							required: true,
125
+							errorMessage: '请输入处理结果'
126
+						}]
127
+					},
128
+					feedback: {
129
+						rules: [{
130
+							required: true,
131
+							errorMessage: '请输入是否向当事人反馈'
132
+						}]
133
+					}
134
+				},
135
+				// 附件样式
136
+				imageStyles: {
137
+					width: 64,
138
+					height: 64,
139
+					border: {
140
+						radius: '50%'
141
+					}
142
+				},
143
+				listStyles: {
144
+					// 是否显示边框
145
+					border: true,
146
+					// 是否显示分隔线
147
+					dividline: true,
148
+					// 线条样式
149
+					borderStyle: {
150
+						width: 1,
151
+						color: 'blue',
152
+						style: 'dashed',
153
+						radius: 2
154
+					}
155
+				},
12 156
 			}
13 157
 		},
158
+		onLoad(option) {
159
+			this.wid = option.wid;
160
+			this.stingText = option.stingText;
161
+			this.simpleDetail()
162
+		},
14 163
 		methods: {
15
-			
164
+			// 工单提交
165
+			formSubmit(ref) {
166
+				
167
+				if (!this.formData.detailRsult) {
168
+					this.$mHelper.toast('请输入办理结果');
169
+					return
170
+				}
171
+				if(this.formData.feedback == 1) {
172
+					if(!this.formData.staisfied) {
173
+						this.$mHelper.toast('请选择是否满意');
174
+						return
175
+					}
176
+					this.formData.feedbackReason = ''
177
+					
178
+				}else if(this.formData.feedback == 0){
179
+					if(!this.formData.feedbackReason) {
180
+						this.$mHelper.toast('请输入不反馈原因');
181
+						return
182
+					}
183
+					this.formData.staisfied = 0
184
+				}
185
+				this.$refs[ref].validate().then(res => {
186
+					const params = {
187
+						workorderid: this.wid, // 工单id
188
+						dealman: this.formData.undertaker, //承办人
189
+						dealcontact: this.formData.undertaker_phone, //联系方式
190
+						duties: this.formData.undertaker_position, //职务
191
+						AuditUser: this.formData.auditLeader, //审核领导
192
+						post: this.formData.auditLeader_position, //审核领导职务
193
+						auditContact: this.formData.auditLeader_phone, //审核领导联系方式
194
+						result:this.simpleDetailStrStart + this.formData.detailRsult ,
195
+						situation: this.formData.detailRsult, //处理情况
196
+						isproresult: this.formData.feedback, //处理结果
197
+						isstaisfied: this.formData.staisfied, // 满意选项
198
+						feedbackReason: this.formData.feedbackReason, //不反馈原因
199
+						files: this.$mHelper.getImgString(this.imgList),
200
+						state: 1,
201
+						token: uni.getStorageSync("token")
202
+					}
203
+					if(uni.getStorageSync("roleCode") == 'WLDW' ) {
204
+						this.$mHelper.httpPost("WorkOrder/FeedBackWorkOrder",params,2)
205
+					}else if(uni.getStorageSync("roleCode") == 'EJWLDW') {
206
+						this.$mHelper.httpPost("WorkOrder/DealWorkOrder",params,2)
207
+					}
208
+					
209
+				}).catch(err => {
210
+					console.log('err', err);
211
+				})
212
+			},
213
+			getImgData(data){
214
+				this.imgList = data
215
+			},
216
+
217
+			// 详情
218
+			simpleDetail() {
219
+				let params = {
220
+					workorderid: this.wid, // 工单id
221
+					token: uni.getStorageSync("token")
222
+				}
223
+				this.$http.get("WorkOrder/GetWorkorderSimp", params).then((response) => {
224
+					if (response.state.toLowerCase() === "success") {
225
+						var data = response.data[0];
226
+						if(uni.getStorageSync("roleCode") == 'WLDW' ) {
227
+							this.simpleDetailStrStart = data.deptname + "于时间(" + this.$mHelper.CurentTimeType() + ")回复:"
228
+						}
229
+					}
230
+				}).catch((e) => {
231
+					console.log(e)
232
+				})
233
+			}
16 234
 		}
17 235
 	}
18 236
 </script>
19 237
 
20 238
 <style>
239
+	.example-body {
240
+		padding: 10px;
241
+		padding-top: 0;
242
+	}
243
+
244
+	.custom-image-box {
245
+		/* #ifndef APP-NVUE */
246
+		display: flex;
247
+		/* #endif */
248
+		flex-direction: row;
249
+		justify-content: space-between;
250
+		align-items: center;
251
+	}
21 252
 
253
+	.text {
254
+		font-size: 14px;
255
+		color: #333;
256
+	}
257
+
258
+	.item__label {
259
+		display: flex;
260
+		flex-shrink: 0;
261
+		box-sizing: border-box;
262
+		flex-direction: row;
263
+		align-items: center;
264
+		width: 65px;
265
+		padding: 5px 0;
266
+		height: 36px;
267
+		width: 70px;
268
+		justify-content: flex-start;
269
+		float: left;
270
+	}
22 271
 </style>

+ 132 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_15/button_15.vue

@@ -0,0 +1,132 @@
1
+<template>
2
+	<page-meta :root-font-size="getFontSizeValue"></page-meta>
3
+	<view class="wrapper">
4
+		<view class="form">
5
+			<!-- 基础表单校验 -->
6
+			<uni-forms >
7
+				<uni-forms-item label="申请退回原因" name="reason" >
8
+					<uni-easyinput type="textarea" v-model="reason" placeholder="请输入申请退回原因"  readonly='true'/>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="附件" name="">
11
+					<view class="example-body">
12
+						<uni-file-picker readonly :value="imgUrlList" :imageStyles="imageStyles" file-mediatype="image" />
13
+					</view>
14
+				</uni-forms-item>
15
+				<uni-forms-item label="审核意见" name="reason" required>
16
+					<uni-easyinput type="textarea" v-model="shReason" placeholder="请输入审核意见" />
17
+				</uni-forms-item>
18
+			</uni-forms>
19
+			<view class="btnClass" style="margin: 20px 0;">
20
+				<button type="warn" @click="agreeSubmit()" size="mini">同意</button>
21
+				<button type="warn" @click="agreeTrunSubmit()" size="mini">同意并转办</button>
22
+				<button type="warn" @click="refuseSubmit()" size="mini">拒绝</button>
23
+			</view>
24
+			<view class="btnClass">
25
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交</button>
26
+			</view>
27
+			
28
+		</view>
29
+	</view>
30
+</template>
31
+
32
+<script>
33
+	import upload from '@/pages/components/upload/upload.vue' //upload
34
+	export default {
35
+		components: {
36
+			upload
37
+		},
38
+		data() {
39
+			return {
40
+				rebackid: '',
41
+				workorderid: '',
42
+				reason: '',
43
+				shReason: '',
44
+				imgUrlList: [], // 附件数据
45
+				imgIdList: [], //上传附件id
46
+			}
47
+		},
48
+		onLoad(option) {
49
+			this.workorderid = option.wid
50
+		},
51
+		methods: {
52
+			// 同意
53
+			agreeSubmit() {
54
+				this.submit(1,0)
55
+			},
56
+			// 同意并转办
57
+			agreeTrunSubmit() {
58
+				this.submit(1,1)
59
+			},
60
+			// 拒绝
61
+			refuseSubmit() {
62
+				this.submit(2,0)
63
+			},
64
+			submit(state,zb) {
65
+				const params = {
66
+					workorderid: this.workorderid,
67
+					reason: this.shReason,
68
+					state: state,
69
+					rebackid: this.rebackid,
70
+					zb: zb,
71
+					token: uni.getStorageSync("token"),
72
+				}
73
+				this.$mHelper.httpPost("WorkOrder/AuditRebackWorkOrder",params,2)
74
+				
75
+			},
76
+			getDetail() {
77
+				const params = {
78
+					workorderid:this.workorderid,
79
+					type:1,
80
+					token: uni.getStorageSync("token")
81
+				}
82
+				this.$http.get("/WorkOrder/GetAuditInfo", params).then((result) => {
83
+					this.reason = result.data[0].F_Result
84
+					this.rebackid = result.data[0].F_Id
85
+					this.imgUrlList = this.getFileData(result.data[0].File)
86
+				})
87
+			},
88
+			getFileData(fileData) {
89
+				let newFile = []
90
+				if (fileData && fileData.length > 0) {
91
+			
92
+					console.log(fileData)
93
+					fileData.forEach((element, index) => {
94
+						const obj = {}
95
+						obj.url = element.F_FileUrl
96
+						obj.extname = element.F_FileType.split('.')[1]
97
+						obj.name = element.F_FileName
98
+						newFile.push(obj);
99
+					});
100
+			
101
+				}
102
+				return newFile
103
+			},
104
+			// 上传图片
105
+			getImgData(data) {
106
+				this.imgIdList = data
107
+			},
108
+		}
109
+	}
110
+</script>
111
+
112
+<style lang="scss">
113
+	// @import '@/common/addFormDeep.scss';
114
+	// /deep/ .uni-data-checklist[data-v-84d5d996]{
115
+	// 	margin-top: 7px !important;
116
+	// }
117
+.wrapper {
118
+  padding: 10px 15px;
119
+  background-color: #fff;
120
+  .form {
121
+		.uni-stat__select{
122
+		    display: block;
123
+		    align-items: center;
124
+		    padding: 0px;
125
+		    cursor: pointer;
126
+			width: 80%;
127
+		}
128
+		
129
+  }
130
+
131
+}
132
+</style>

+ 117 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_17/button_17.vue

@@ -0,0 +1,117 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="原延时时间" required name="maindeptid">
8
+					<view class="detailContent">{{auditInfotData.F_OldTime}}</view>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="申请延时原因" required name="maindeptid">
11
+					<view class="detailContent">{{auditInfotData.F_Reason}}</view>
12
+				</uni-forms-item>
13
+				<uni-forms-item label="申请延时时间" required name="limittime">
14
+					<view class="detailContent" v-model="valiFormData.newlimittime">{{valiFormData.newlimittime}}</view>
15
+				</uni-forms-item>
16
+				<uni-forms-item label="审核意见" required name="reason">
17
+					<uni-easyinput type="textarea" autoHeight v-model="valiFormData.reason" placeholder="请输入审核意见"/>
18
+				</uni-forms-item>
19
+				
20
+				
21
+			</uni-forms>
22
+			<view class="btnClass">
23
+				<button type="warn" @click="submit('valiForm',1)">同意</button>
24
+				<button type="warn" @click="submit('valiForm',2)">拒绝</button>
25
+			</view>
26
+			
27
+		</view>
28
+	</view>
29
+</template>
30
+
31
+<script>
32
+	export default {
33
+		data() {
34
+			return {
35
+				// 校验表单数据
36
+				valiFormData: {
37
+					workorderid: '',
38
+					reason: '', //审核意见
39
+					newlimittime:'',
40
+					state: 1, // 0保存,1保存并提交
41
+					delayid:'',
42
+				},
43
+				auditInfotData:{}, //审核信息
44
+				// 校验规则
45
+				rules: {
46
+					reason: {
47
+						rules: [{
48
+							required: true,
49
+							errorMessage: '审核原因不能为空'
50
+						}]
51
+					}
52
+				},
53
+			}
54
+		},
55
+		onLoad(option) {
56
+			this.valiFormData.workorderid = option.wid
57
+			// 获取详情
58
+			this.getDetail("2",option.wid);
59
+		},
60
+		methods: {
61
+			
62
+			getDetail(type,id) {
63
+				
64
+				this.$mHelper.httpGetDetail("/WorkOrder/GetAuditInfo",type,id,(res)=>{
65
+					if (type === "2") {
66
+					  this.auditInfotData = res[0]
67
+						this.auditInfotData.F_OldTime = res[0].F_OldTime.split(" ")[0]
68
+						this.valiFormData.newlimittime = res[0].F_NewTime.split(" ")[0]
69
+						this.valiFormData.delayid = res[0].F_Id
70
+						this.valiFormData.F_Reason = res[0].F_Reason
71
+					}
72
+				})
73
+			},
74
+			submit(ref,state) {
75
+				this.$refs[ref].validate().then(res => {
76
+					
77
+					const params = {
78
+					  workorderid: this.valiFormData.workorderid,
79
+					  reason: this.valiFormData.reason, // 审核原因
80
+					  newlimittime: this.valiFormData.newlimittime, // 审核时间
81
+					  state:state, // 来电内容
82
+					  delayid: this.valiFormData.delayid, // 工单内容
83
+					  token: uni.getStorageSync("token"),
84
+					}
85
+					this.$mHelper.httpPost("WorkOrder/AuditDelayWorkOrder",params,2)
86
+					
87
+				}).catch(err => {
88
+					console.log('err', err);
89
+				})
90
+			},
91
+
92
+		}
93
+	}
94
+</script>
95
+
96
+<style lang="scss">
97
+.wrapper {
98
+  padding: 10px 15px;
99
+  background-color: #fff;
100
+  .form {
101
+		.uni-stat__select{
102
+		    display: block;
103
+		    align-items: center;
104
+		    padding: 0px;
105
+		    cursor: pointer;
106
+			width: 80%;
107
+
108
+			
109
+		}
110
+		
111
+  }
112
+  .btnClass{
113
+	  display: flex;
114
+  }
115
+
116
+}
117
+</style>

+ 206 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_18/button_18.vue

@@ -0,0 +1,206 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="工单内容">
8
+					<view class="detailContent" v-model="valiFormData.content">{{detailContentData.F_ComContent}}</view>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="紧急程度" required name="leave">
11
+					<uni-data-select v-model="valiFormData.leave" :localdata="levelData" @change="changeLeave" />
12
+				</uni-forms-item>
13
+				<uni-forms-item label="办理时限" required name="limittime" v-show="valiFormData.leave===1">
14
+					<uni-data-select v-model="valiFormData.limittime" :localdata="limittimeData" @change="changeLimittime" />
15
+				</uni-forms-item>
16
+				<uni-forms-item label="紧急办理时限" required name="limittimes" v-show="valiFormData.leave===2">
17
+					<uni-datetime-picker v-model="valiFormData.limittimes"/>
18
+				</uni-forms-item>
19
+				<uni-forms-item label="是否短信提醒" required name="isms" >
20
+					<uni-data-select v-model="valiFormData.isms" :localdata="ismsData"/>
21
+				</uni-forms-item>
22
+				<uni-forms-item label="承办单位" required name="maindeptid">
23
+					<depart-select @post-select-data = "postSelectData"></depart-select>
24
+				</uni-forms-item>
25
+				
26
+			</uni-forms>
27
+			<view class="btnClass">
28
+				<button type="warn" @click="submit('valiForm')">提交</button>
29
+			</view>
30
+		</view>
31
+	</view>
32
+</template>
33
+
34
+<script>
35
+	import departSelect from '@/pages/components/commonSelect/departSelect/departSelect.vue'
36
+	export default {
37
+		components: {
38
+			departSelect
39
+		},
40
+		data() {
41
+			return {
42
+				// 校验表单数据
43
+				valiFormData: {
44
+					workorderid: '',
45
+					maindeptid: '', //承办单位
46
+					leave:'',	//紧急程度
47
+					limittime: 5, //办理时限
48
+					limittimes: '', //紧急办理时限
49
+					assignedopinion: '', //交办意见
50
+					state: 1, // 0保存,1保存并提交
51
+					content: '',
52
+					isms: '',
53
+				},
54
+				assignState:'',
55
+				detailContentData:{}, //工单信息
56
+				limittimeData:[{
57
+					value:5,
58
+					text:'五个工作日'
59
+				},{
60
+					value:1,
61
+					text:'一个工作日'
62
+				},{
63
+					value:7,
64
+					text:'七个工作日'
65
+				}],
66
+				limittimes:'',
67
+				levelData: [{
68
+					value:1,
69
+					text:'普通'
70
+				},{
71
+					value:2,
72
+					text:'紧急'
73
+				}],
74
+				ismsData:[{
75
+					value: 0,
76
+					text:'否'
77
+				},{
78
+					value: 1,
79
+					text:'是'
80
+				}],
81
+				// 校验规则
82
+				rules: {
83
+					leave: {
84
+						rules: [{
85
+							required: true,
86
+							errorMessage: '紧急程度不能为空'
87
+						}]
88
+					},
89
+					maindeptid: {
90
+						rules: [{
91
+							required: true,
92
+							errorMessage: '承办单位不能为空'
93
+						}]
94
+					},
95
+					isms: {
96
+						rules: [{
97
+							required: true,
98
+							errorMessage: '短信提醒不能为空'
99
+						}]
100
+					}
101
+					
102
+				},
103
+			}
104
+		},
105
+		onLoad(option) {
106
+			this.valiFormData.workorderid = option.wid
107
+			this.assignState = option.assignState
108
+			// 获取详情
109
+			this.getDetail("0",option.wid);
110
+		},
111
+		methods: {
112
+			postSelectData(data) {
113
+				this.valiFormData.maindeptid = data
114
+			},
115
+			changeLeave(e){
116
+				// 1是普通,2是紧急
117
+				this.valiFormData.leave = e
118
+				if(e){
119
+					e===1?this.valiFormData.limittimes = '':this.valiFormData.limittime = 5
120
+					e===1?this.valiFormData.isms = 0:this.valiFormData.isms = 1
121
+				}
122
+				
123
+			},
124
+			changeLimittime(e){
125
+				console.log(e)
126
+			},
127
+			getDetail(type,id) {
128
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrderNew",type,id,(res)=>{
129
+					if (type === "0") {
130
+						this.detailContentData = res.data[0];
131
+						this.valiFormData.content = res.data[0].F_ComContent
132
+						this.valiFormData.leave = Number(res.data[0].F_Level)
133
+						this.valiFormData.leave===1?this.valiFormData.isms = 0:this.valiFormData.isms = 1
134
+					}
135
+				})
136
+			},
137
+			submit(ref) {
138
+				this.$refs[ref].validate().then(res => {
139
+					 this.postAssignAPI("WorkOrder/NewReloadWorkOrder")					
140
+				}).catch(err => {
141
+					console.log('err', err);
142
+				})
143
+			},
144
+			
145
+			//交办接口
146
+			postAssignAPI(url){
147
+				
148
+				if(this.valiFormData.leave ===1 ){
149
+					if(!this.valiFormData.limittime){
150
+						this.$mHelper.toast("请选择办理时限");
151
+						return
152
+					}
153
+					this.valiFormData.assignedopinion ="请认真调查处理并答复来电人,在" + this.valiFormData.limittime +
154
+					"个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。"
155
+				} else if(this.valiFormData.leave ===2 ){
156
+					if(!this.valiFormData.limittimes){
157
+						this.$mHelper.toast("请选择紧急办理时限");
158
+						return
159
+					}
160
+					this.valiFormData.assignedopinion ="请认真调查处理并答复来电人,在" + this.valiFormData.limittimes +
161
+					"内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。"
162
+				}else{
163
+					this.$mHelper.toast("请选择紧急程度");
164
+					return
165
+				}
166
+				const params = {
167
+				  workorderid: this.valiFormData.workorderid,
168
+				  maindeptid: this.valiFormData.maindeptid, // 单位
169
+				  limittime: this.valiFormData.limittime, // 办理时限
170
+				  limittimes: this.valiFormData.limittimes, // 紧急办理时限
171
+				  assignedopinion: this.valiFormData.assignedopinion, // 交办意见
172
+					isms:this.valiFormData.isms, // 是否短信提醒
173
+				  state: this.valiFormData.state, // 0保存,1保存并提交
174
+				  content: this.valiFormData.content, // 工单内容
175
+				  token: uni.getStorageSync("token"),
176
+				}
177
+				this.$mHelper.httpPost(url,params,2)
178
+				
179
+			}
180
+			
181
+		}
182
+	}
183
+</script>
184
+
185
+<style lang="scss">
186
+.wrapper {
187
+  padding: 10px 15px;
188
+  background-color: #fff;
189
+  .form {
190
+		.uni-stat__select{
191
+		    display: block;
192
+		    align-items: center;
193
+		    padding: 0px;
194
+		    cursor: pointer;
195
+				width: 80%;
196
+		}
197
+		.uni-date{
198
+			width: 80%;
199
+		}
200
+		.detailContent{
201
+			line-height: 36px;
202
+		}
203
+  }
204
+
205
+}
206
+</style>

+ 80 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_22/button_22.vue

@@ -0,0 +1,80 @@
1
+<template>
2
+	<page-meta :root-font-size="getFontSizeValue"></page-meta>
3
+	<view class="wrapper">
4
+		<view class="form">
5
+			<!-- 基础表单校验 -->
6
+			<uni-forms >
7
+				<uni-forms-item label="是否向市民发送短信" name="detailRsult">
8
+					<uni-data-checkbox v-model="siSend" :localdata="list" />
9
+				</uni-forms-item>
10
+				<uni-forms-item label="结案意见" name="finalopinion" required>
11
+					<uni-easyinput type="textarea" v-model="finalopinion" placeholder="请输入结案意见" />
12
+				</uni-forms-item>
13
+			</uni-forms>
14
+			<view class="btnClass">
15
+				<button type="primary" :disabled="disabledButton" @click="submit('valiForm')">提交</button>
16
+			</view>
17
+		</view>
18
+	</view>
19
+</template>
20
+
21
+<script>
22
+	import upload from '@/pages/components/upload/upload.vue' //upload
23
+	export default {
24
+		components: {
25
+			upload
26
+		},
27
+		data() {
28
+			return {
29
+				siSend: 1,
30
+				workorderid: '',
31
+				finalopinion: '',
32
+				list: [{
33
+					text:'是',
34
+					value:1
35
+				},{
36
+					text:'否',
37
+					value:0
38
+				}]
39
+			}
40
+		},
41
+		onLoad(option) {
42
+			this.workorderid = option.wid
43
+		},
44
+		methods: {
45
+			submit(ref) {
46
+				const params = {
47
+					workorderid: this.workorderid,
48
+					finalopinion: this.finalopinion,
49
+					issms : this.siSend,
50
+					issatisfie: 1,
51
+					token: uni.getStorageSync("token"),
52
+				}
53
+				this.$mHelper.httpPost("WorkOrder/ForceFinishWorkOrder",params,2)
54
+				
55
+			},
56
+		}
57
+	}
58
+</script>
59
+
60
+<style lang="scss">
61
+	// @import '@/common/addFormDeep.scss';
62
+	// /deep/ .uni-data-checklist[data-v-84d5d996]{
63
+	// 	margin-top: 7px !important;
64
+	// }
65
+.wrapper {
66
+  padding: 10px 15px;
67
+  background-color: #fff;
68
+  .form {
69
+		.uni-stat__select{
70
+		    display: block;
71
+		    align-items: center;
72
+		    padding: 0px;
73
+		    cursor: pointer;
74
+			width: 80%;
75
+		}
76
+		
77
+  }
78
+
79
+}
80
+</style>

+ 180 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_23/button_23.vue

@@ -0,0 +1,180 @@
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="工单编号">
7
+					<view class="detailContent" v-model="valiFormData.wid">{{detailContentData.F_WorkOrderId}}</view>
8
+				</uni-forms-item>
9
+				<uni-forms-item label="受理时间">
10
+					<view class="detailContent" v-model="valiFormData.acceptTime">{{detailContentData.F_CreateTime}}</view>
11
+				</uni-forms-item>
12
+				<uni-forms-item label="签收时间">
13
+					<view class="detailContent" v-model="valiFormData.signTime">{{jbdata.F_SureTime}}</view>
14
+				</uni-forms-item>
15
+				<uni-forms-item label="来电人">
16
+					<view class="detailContent" v-model="valiFormData.callIn">{{detailContentData.F_CusName}}</view>
17
+				</uni-forms-item>
18
+				<uni-forms-item label="联系电话">
19
+					<view class="detailContent" v-model="valiFormData.phone">{{detailContentData.F_CusPhone}}</view>
20
+				</uni-forms-item>
21
+				<uni-forms-item label="秘密等级">
22
+					<view class="detailContent" v-model="valiFormData.level">{{detailContentData.F_IsProtect | levelFilters}}</view>
23
+				</uni-forms-item>
24
+				<uni-forms-item label="地址">
25
+					<view class="detailContent" v-model="valiFormData.address">{{detailContentData.F_SourceAddress}}</view>
26
+				</uni-forms-item>
27
+				<uni-forms-item label="内容摘要">
28
+					<view class="detailContent" v-model="valiFormData.content">{{detailContentData.F_ComContent}}</view>
29
+				</uni-forms-item>
30
+				<uni-forms-item label="派单意见">
31
+					<view class="detailContent" v-model="valiFormData.opinion">{{valiFormData.opinion}}</view>
32
+				</uni-forms-item>
33
+				<uni-forms-item label="交办单位" required name="assignDep">
34
+					<depart-select @post-select-data = "postSelectData"></depart-select>
35
+				</uni-forms-item>
36
+				<uni-forms-item label="办理时限" required name="handleTime">
37
+					<view class="example-body">
38
+						<uni-datetime-picker type="date" :clear-icon="true" v-model="valiFormData.handleTime"  :end="endTime"/>
39
+					</view>
40
+				</uni-forms-item>
41
+			</uni-forms>
42
+			<view class="btnClass">
43
+				<button type="warn" @click="Submit('valiForm')">提交</button>
44
+			</view>
45
+		</view>
46
+
47
+		
48
+	</view>
49
+	
50
+</template>
51
+
52
+<script>
53
+	import departSelect from '@/pages/components/commonSelect/departSelect/departSelect.vue' 
54
+	export default {
55
+		components: {
56
+			departSelect
57
+		},
58
+		data() {
59
+			return {
60
+				// 校验表单数据
61
+				valiFormData: {
62
+					workorderid: '', // 工单编号
63
+					acceptTime: '', //受理时间
64
+					signTime: '', //签收时间
65
+					callIn: '', //来电人
66
+					phone: '', //联系人Department/GetDeptList
67
+					level: '', //秘密等级
68
+					content: '', //内容摘要
69
+					address: '', // 地址
70
+					opinion: '请认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。', //派单意见
71
+					assignDep: '', //交办单位
72
+					handleTime:'' // 办理时限
73
+				},
74
+				startTime: '',
75
+				endTime:'',
76
+				deptData: [],
77
+				detailContentData: {},
78
+				jbdata: {},
79
+				// 校验规则
80
+				rules: {
81
+					assignDep: {
82
+						rules: [{
83
+							required: true,
84
+							errorMessage: '请选择交办单位'
85
+						}]
86
+					},
87
+					handleTime: {
88
+						rules: [{
89
+							required: true,
90
+							errorMessage: '请选择办理时限'
91
+						}]
92
+					}
93
+				},
94
+			}
95
+		},
96
+		onLoad(option) {
97
+			this.valiFormData.workorderid = option.wid
98
+			// 获取详情
99
+			this.getDetail("0",option.wid);
100
+			
101
+		},
102
+		filters: {
103
+			levelFilters(value) {
104
+				let str;
105
+				switch (value) {
106
+					case 0 :
107
+					 str = '普通'
108
+					 break;
109
+					default:
110
+					 str = '保密'
111
+					 break;					 
112
+				}
113
+				return str;
114
+			}
115
+		},
116
+		methods: {
117
+			// 详情
118
+			getDetail(type,id) {
119
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrder",type,id,(res)=>{
120
+					if (type === "0") {
121
+						this.detailContentData = res.data[0];
122
+						if(res.jbdata.length > 0) {
123
+							this.jbdata = res.jbdata[0]
124
+						}
125
+						if(this.detailContentData.F_LimitTime) {
126
+							this.endTime = this.detailContentData.F_LimitTime.substring(0, 10)
127
+							this.valiFormData.handleTime = this.detailContentData.F_LimitTime.substring(0, 10)
128
+						}
129
+					}
130
+				})
131
+			},
132
+			postSelectData(data) {
133
+				this.valiFormData.assignDep = data
134
+			},
135
+			//提交
136
+			Submit(ref){
137
+				this.$refs[ref].validate().then(res => {
138
+					const params = {
139
+					  workorderid: this.valiFormData.workorderid, 
140
+					  maindeptid: this.valiFormData.assignDep,
141
+						assignedopinion: this.valiFormData.opinion,
142
+						assignid: 0,
143
+					  state:1,
144
+						limittime: this.valiFormData.handleTime,
145
+					  token: uni.getStorageSync("token"),
146
+					}
147
+					this.$mHelper.httpPost("/WorkOrder/SplitWorkOrder", params, 2, (res) => {})
148
+				}).catch(err => {
149
+					console.log('err', err);
150
+				})
151
+			},
152
+		}
153
+	}
154
+</script>
155
+
156
+<style lang="scss">
157
+.wrapper {
158
+  padding: 10px 15px;
159
+  background-color: #fff;
160
+  .form {
161
+		.uni-stat__select{
162
+		    display: block;
163
+		    align-items: center;
164
+		    padding: 0px;
165
+		    cursor: pointer;
166
+			width: 75%;
167
+		}
168
+		.detailContent{
169
+			line-height: 36px;
170
+		}
171
+  }
172
+  .uniFilePicker{
173
+	  padding-top: 5px;
174
+  }
175
+  .btnClass{
176
+	  display: flex;
177
+  }
178
+
179
+}
180
+</style>

+ 325 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_24/button_24.vue

@@ -0,0 +1,325 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<view class="detailContent" v-for="item in workOrderDealWithSecondLevelList" :key="item.F_Id">
5
+				<view class="contentTable">
6
+					<text class="contentTitle">承办人:</text>
7
+					<text class="contentText">{{ item.F_DealUser }}</text>
8
+				</view>
9
+				<view class="contentTable">
10
+					<text class="contentTitle">联系方式:</text>
11
+					<text class="contentText">{{ item.F_DealUserContact }}</text>
12
+				</view>
13
+				<view class="contentTable">
14
+					<text class="contentTitle">职务:</text>
15
+					<text class="contentText">{{ item.F_Duties }}</text>
16
+				</view>
17
+				<view class="contentTable">
18
+					<text class="contentTitle">处理结果:</text>
19
+					<text class="contentText">{{ item.F_Situation }}</text>
20
+				</view>
21
+				<view class="contentTable">
22
+					<text class="contentTitle">单位:</text>
23
+					<text class="contentText">{{ item.DeptName }}</text>
24
+				</view>
25
+				<view class="contentTable">
26
+					<text class="contentTitle">办理结果:</text>
27
+					<text class="contentText">{{ item.F_Result }}</text>
28
+				</view>
29
+				<view class="contentTable">
30
+					<text class="contentTitle">办理时间:</text>
31
+					<text class="contentText">{{ item.F_CreateTime }}</text>
32
+				</view>
33
+				<view class="contentTable">
34
+					<text class="contentTitle">是/否向当事人反馈:</text>
35
+					<text
36
+						class="contentText">{{ item.F_IsProResult | dealWithIsProResultFilters }}</text>
37
+				</view>
38
+				<view class="contentTable">
39
+					<text class="contentTitle">是否满意:</text>
40
+					<text
41
+						class="contentText">{{ item.F_IsSatisfied | dealWithIsSatisfiedFilters }}</text>
42
+				</view>
43
+				<view class="contentTable">
44
+					<text class="contentTitle">审核领导:</text>
45
+					<text class="contentText">{{ item.F_AuditUser }}</text>
46
+				</view>
47
+				<view class="contentTable">
48
+					<text class="contentTitle">附件:</text>
49
+					<view class="contentText">
50
+						<uni-file-picker readonly :value="getFileData(item.File)" :imageStyles="imageStyles" file-mediatype="image" />
51
+					</view>
52
+				</view>
53
+			</view>
54
+		</view>
55
+		<view class="btnClass" style="margin: 20px 0;">
56
+			<button type="warn" @click="editSubmit()" size="mini">修改</button>
57
+			<button type="warn" @click="agreeSubmit()" size="mini">同意</button>
58
+			<button type="warn" @click="refuseSubmit()" size="mini">拒绝</button>
59
+		</view>
60
+		<view class="detailContent">
61
+			<view class="contentTable">
62
+				<text class="contentTitle" style="font-size: 18px;">工单内容:</text>
63
+				<text class="contentText"  style="font-size: 17px;">{{ content}}</text>
64
+			</view>
65
+		</view>
66
+		<view>
67
+			<uni-popup ref="inputDialog" type="dialog">
68
+				<uni-popup-dialog ref="inputClose" mode="input" :title="title" @confirm="dialogInputConfirm" @close="close">
69
+					<view style="width:100%;">
70
+						<uni-easyinput type="textarea" autoHeight v-model="handleResult"/>
71
+						<upload @post-string-data="getImgData" :imgUrlList="imgUrlList" v-show=" title != '拒绝原因' "></upload>
72
+					</view>
73
+				</uni-popup-dialog>
74
+			</uni-popup>
75
+		</view>
76
+	</view>
77
+	
78
+</template>
79
+
80
+<script>
81
+	import upload from '@/pages/components/upload/upload.vue' //upload
82
+	export default {
83
+		components: {
84
+			upload
85
+		},
86
+		data() {
87
+			return {
88
+				title: '',
89
+				workorderid: '',
90
+				clickImgState: 0,
91
+				workOrderDealWithSecondLevelList: [],
92
+				content: '',
93
+				handleResult: '',
94
+				imgid: '',
95
+				backid: 0,
96
+				imgUrlList: [],
97
+				imgList: [], //点击上传的的id
98
+				imgIdList: [], //不修改图片的id
99
+				imageStyles: {
100
+					width: 64,
101
+					height: 64,
102
+					border: {
103
+						radius: '20%'
104
+					}
105
+				},
106
+			}
107
+		},
108
+		onLoad(option) {
109
+			this.workorderid = option.wid
110
+			// 获取详情
111
+			this.getDetail("0",option.wid);
112
+			
113
+		},
114
+		filters: {
115
+			dealWithIsProResultFilters(value) {
116
+				let str;
117
+				switch (String(value)) {
118
+					case "0":
119
+						str = "否";
120
+						break;
121
+					case "1":
122
+						str = "是";
123
+						break;
124
+					case "2":
125
+						str = "已办未果";
126
+						break;
127
+					default:
128
+						str = "";
129
+						break;
130
+				}
131
+				return str;
132
+			},
133
+			dealWithIsSatisfiedFilters(value) {
134
+				let str;
135
+				switch (String(value)) {
136
+					case "0":
137
+						str = "未评价";
138
+						break;
139
+					case "1":
140
+						str = "满意";
141
+						break;
142
+					case "2":
143
+						str = "基本满意";
144
+						break;
145
+					case "3":
146
+						str = "不满意";
147
+						break;
148
+					default:
149
+						str = "";
150
+						break;
151
+				}
152
+				return str;
153
+			}
154
+		},
155
+		methods: {
156
+			// 详情
157
+			getDetail(type,id) {
158
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrder",type,id,(res)=>{
159
+					if (res.data[0].F_Content === "" || res.data[0].F_Content === null) {
160
+						this.content = res.data[0].F_ComContent
161
+					} else {
162
+						this.content = res.data[0].F_Content
163
+					}
164
+					this.backid = res.ejbldata[res.ejbldata.length - 1].F_Id
165
+					this.workOrderDealWithSecondLevelList.push(res.ejbldata[res.ejbldata.length - 1])
166
+				})
167
+			},
168
+			getImgData(data) {
169
+				this.clickImgState = 1
170
+				this.imgList = data
171
+			},
172
+			editSubmit() {
173
+				this.title = '修改办理结果'
174
+				this.$refs.inputDialog.open()
175
+				const params = {
176
+					workorderid: this.workorderid, // 工单id
177
+					token: uni.getStorageSync("token")
178
+				}
179
+				this.$http.get("WorkOrder/GetNewSecondDealInfo", params).then((response) => {
180
+					if (response.state.toLowerCase() === "success") {
181
+						this.handleResult = response.data[0].F_Result
182
+						if (response.data[0].File) {
183
+							response.data[0].File.forEach((v, n) => {
184
+								this.imgIdList.push(v.F_FileId)
185
+								//详情图片回显
186
+								this.imgUrlList.push({
187
+									url: v.F_FileUrl,
188
+									extname: v.F_FileType,
189
+									name: v.F_FileName,
190
+									id: v.F_FileId
191
+								})
192
+							})
193
+						}
194
+					}
195
+				}).catch((e) => {
196
+					console.log(e)
197
+				})
198
+			},
199
+			dialogInputConfirm() {
200
+				this.$refs.inputDialog.close()
201
+				if(this.title == '修改办理结果') {
202
+					if(this.clickImgState == 1) {
203
+						this.imgid = this.$mHelper.getImgString(this.imgList)
204
+					}else{
205
+						this.imgid = this.$mHelper.getImgString(this.imgIdList)
206
+					}
207
+					const params = {
208
+						workorderid: this.workorderid,
209
+						result: this.handleResult,
210
+						flies: this.imgid,
211
+						token: uni.getStorageSync("token")
212
+					}
213
+					this.$mHelper.httpPost("WorkOrder/EditDealWorkOrder",params,2)
214
+				}else if(this.title == '拒绝原因') {
215
+					if(!this.handleResult) {
216
+						this.$mHelper.toast('请输入拒绝原因');
217
+						return
218
+					}
219
+					const params = {
220
+						workorderid: this.workorderid,
221
+						reason: this.handleResult,
222
+						state: 2,
223
+						backid: this.backid,
224
+						token: uni.getStorageSync("token")
225
+					}
226
+					this.$mHelper.httpPost("WorkOrder/AuditSplitWorkOrder",params,2)
227
+				}
228
+				
229
+			},
230
+			close() {
231
+				this.handleResult = ''
232
+			},
233
+			//同意
234
+			agreeSubmit(){
235
+				const params = {
236
+					workorderid: this.workorderid,
237
+					state: 1,
238
+					backid: this.backid,
239
+					token: uni.getStorageSync("token")
240
+				}
241
+				this.$mHelper.httpPost("WorkOrder/AuditSplitWorkOrder",params,2)
242
+			},
243
+		  refuseSubmit() {
244
+				this.title = '拒绝原因'
245
+				this.$refs.inputDialog.open()
246
+			},
247
+			getFileData(fileData) {
248
+				let newFile = []
249
+				if (fileData && fileData.length > 0) {
250
+			
251
+					console.log(fileData)
252
+					fileData.forEach((element, index) => {
253
+						const obj = {}
254
+						obj.url = element.F_FileUrl
255
+						obj.extname = element.F_FileType.split('.')[1]
256
+						obj.name = element.F_FileName
257
+						newFile.push(obj);
258
+					});
259
+			
260
+				}
261
+				return newFile
262
+			}
263
+		}
264
+	}
265
+</script>
266
+
267
+<style lang="scss">
268
+.wrapper {
269
+  padding: 10px 15px;
270
+  background-color: #fff;
271
+  .form {
272
+		.uni-stat__select{
273
+		    display: block;
274
+		    align-items: center;
275
+		    padding: 0px;
276
+		    cursor: pointer;
277
+			width: 75%;
278
+		}
279
+		.detailContent{
280
+			line-height: 36px;
281
+		}
282
+  }
283
+  .uniFilePicker{
284
+	  padding-top: 5px;
285
+  }
286
+  .btnClass{
287
+	  display: flex;
288
+  }
289
+	.detailContent {
290
+		// margin: 15px 0 15px 0;
291
+	
292
+		.contentBlock {
293
+			margin: 18px 0 0 0;
294
+	
295
+			.title {
296
+				font-weight: 700;
297
+			}
298
+	
299
+			.content {
300
+				margin: 5px 0 5px 0;
301
+			}
302
+		}
303
+	
304
+		.contentTable {
305
+			margin: 0 0 5px 0;
306
+	
307
+			.contentTitle {
308
+				font-weight: 700;
309
+				font-size: 14px;
310
+			}
311
+	
312
+			.contentText {
313
+				color: #525252;
314
+				font-size: 14px;
315
+			}
316
+		}
317
+	}
318
+	// .uni-button{
319
+	// 	padding-left: 30px !important;
320
+	// 	padding-right: 30px !important;
321
+	// 	line-height: 2px !important;
322
+	// }
323
+
324
+}
325
+</style>

+ 206 - 0
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/buttons/components/button_5/button_5.vue

@@ -0,0 +1,206 @@
1
+<template>
2
+	<view class="wrapper">
3
+		<view class="form">
4
+			<!-- 基础表单校验 -->
5
+			<uni-forms ref="valiForm" :rules="rules" :modelValue="valiFormData">
6
+				
7
+				<uni-forms-item label="工单内容">
8
+					<view class="detailContent" v-model="valiFormData.content">{{detailContentData.F_ComContent}}</view>
9
+				</uni-forms-item>
10
+				<uni-forms-item label="紧急程度" required name="leave">
11
+					<uni-data-select v-model="valiFormData.leave" :localdata="levelData" @change="changeLeave" />
12
+				</uni-forms-item>
13
+				<uni-forms-item label="办理时限" required name="limittime" v-show="valiFormData.leave===1">
14
+					<uni-data-select v-model="valiFormData.limittime" :localdata="limittimeData" @change="changeLimittime" />
15
+				</uni-forms-item>
16
+				<uni-forms-item label="紧急办理时限" required name="limittimes" v-show="valiFormData.leave===2">
17
+					<uni-datetime-picker v-model="valiFormData.limittimes"/>
18
+				</uni-forms-item>
19
+				<uni-forms-item label="是否短信提醒" required name="isms" >
20
+					<uni-data-select v-model="valiFormData.isms" :localdata="ismsData"/>
21
+				</uni-forms-item>
22
+				<uni-forms-item label="承办单位" required name="maindeptid">
23
+					<depart-select @post-select-data = "postSelectData"></depart-select>
24
+				</uni-forms-item>
25
+				
26
+			</uni-forms>
27
+			<view class="btnClass">
28
+				<button type="warn" @click="submit('valiForm')">提交</button>
29
+			</view>
30
+		</view>
31
+	</view>
32
+</template>
33
+
34
+<script>
35
+	import departSelect from '@/pages/components/commonSelect/departSelect/departSelect.vue'
36
+	export default {
37
+		components: {
38
+			departSelect
39
+		},
40
+		data() {
41
+			return {
42
+				// 校验表单数据
43
+				valiFormData: {
44
+					workorderid: '',
45
+					maindeptid: '', //承办单位
46
+					leave:'',	//紧急程度
47
+					limittime: 5, //办理时限
48
+					limittimes: '', //紧急办理时限
49
+					assignedopinion: '', //交办意见
50
+					state: 1, // 0保存,1保存并提交
51
+					content: '',
52
+					isms: '',
53
+				},
54
+				assignState:'',
55
+				detailContentData:{}, //工单信息
56
+				limittimeData:[{
57
+					value:5,
58
+					text:'五个工作日'
59
+				},{
60
+					value:1,
61
+					text:'一个工作日'
62
+				},{
63
+					value:7,
64
+					text:'七个工作日'
65
+				}],
66
+				limittimes:'',
67
+				levelData: [{
68
+					value:1,
69
+					text:'普通'
70
+				},{
71
+					value:2,
72
+					text:'紧急'
73
+				}],
74
+				ismsData:[{
75
+					value: 0,
76
+					text:'否'
77
+				},{
78
+					value: 1,
79
+					text:'是'
80
+				}],
81
+				// 校验规则
82
+				rules: {
83
+					leave: {
84
+						rules: [{
85
+							required: true,
86
+							errorMessage: '紧急程度不能为空'
87
+						}]
88
+					},
89
+					maindeptid: {
90
+						rules: [{
91
+							required: true,
92
+							errorMessage: '承办单位不能为空'
93
+						}]
94
+					},
95
+					isms: {
96
+						rules: [{
97
+							required: true,
98
+							errorMessage: '短信提醒不能为空'
99
+						}]
100
+					}
101
+					
102
+				},
103
+			}
104
+		},
105
+		onLoad(option) {
106
+			this.valiFormData.workorderid = option.wid
107
+			this.assignState = option.assignState
108
+			// 获取详情
109
+			this.getDetail("0",option.wid);
110
+		},
111
+		methods: {
112
+			postSelectData(data) {
113
+				this.valiFormData.maindeptid = data
114
+			},
115
+			changeLeave(e){
116
+				// 1是普通,2是紧急
117
+				this.valiFormData.leave = e
118
+				if(e){
119
+					e===1?this.valiFormData.limittimes = '':this.valiFormData.limittime = 5
120
+					e===1?this.valiFormData.isms = 0:this.valiFormData.isms = 1
121
+				}
122
+				
123
+			},
124
+			changeLimittime(e){
125
+				console.log(e)
126
+			},
127
+			getDetail(type,id) {
128
+				this.$mHelper.httpGetDetail("/WorkOrder/GetWorkOrderNew",type,id,(res)=>{
129
+					if (type === "0") {
130
+						this.detailContentData = res.data[0];
131
+						this.valiFormData.content = res.data[0].F_ComContent
132
+						this.valiFormData.leave = Number(res.data[0].F_Level)
133
+						this.valiFormData.leave===1?this.valiFormData.isms = 0:this.valiFormData.isms = 1
134
+					}
135
+				})
136
+			},
137
+			submit(ref) {
138
+				this.$refs[ref].validate().then(res => {
139
+					this.postAssignAPI("WorkOrder/AssignWorkOrderNew")					
140
+				}).catch(err => {
141
+					console.log('err', err);
142
+				})
143
+			},
144
+			
145
+			//交办接口
146
+			postAssignAPI(url){
147
+				
148
+				if(this.valiFormData.leave ===1 ){
149
+					if(!this.valiFormData.limittime){
150
+						this.$mHelper.toast("请选择办理时限");
151
+						return
152
+					}
153
+					this.valiFormData.assignedopinion ="请认真调查处理并答复来电人,在" + this.valiFormData.limittime +
154
+					"个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。"
155
+				} else if(this.valiFormData.leave ===2 ){
156
+					if(!this.valiFormData.limittimes){
157
+						this.$mHelper.toast("请选择紧急办理时限");
158
+						return
159
+					}
160
+					this.valiFormData.assignedopinion ="请认真调查处理并答复来电人,在" + this.valiFormData.limittimes +
161
+					"内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。"
162
+				}else{
163
+					this.$mHelper.toast("请选择紧急程度");
164
+					return
165
+				}
166
+				const params = {
167
+				  workorderid: this.valiFormData.workorderid,
168
+				  maindeptid: this.valiFormData.maindeptid, // 单位
169
+				  limittime: this.valiFormData.limittime, // 办理时限
170
+				  limittimes: this.valiFormData.limittimes, // 紧急办理时限
171
+				  assignedopinion: this.valiFormData.assignedopinion, // 交办意见
172
+					isms:this.valiFormData.isms, // 是否短信提醒
173
+				  state: this.valiFormData.state, // 0保存,1保存并提交
174
+				  content: this.valiFormData.content, // 工单内容
175
+				  token: uni.getStorageSync("token"),
176
+				}
177
+				this.$mHelper.httpPost(url,params,2)
178
+				
179
+			}
180
+			
181
+		}
182
+	}
183
+</script>
184
+
185
+<style lang="scss">
186
+.wrapper {
187
+  padding: 10px 15px;
188
+  background-color: #fff;
189
+  .form {
190
+		.uni-stat__select{
191
+		    display: block;
192
+		    align-items: center;
193
+		    padding: 0px;
194
+		    cursor: pointer;
195
+				width: 80%;
196
+		}
197
+		.uni-date{
198
+			width: 80%;
199
+		}
200
+		.detailContent{
201
+			line-height: 36px;
202
+		}
203
+  }
204
+
205
+}
206
+</style>

+ 9 - 8
anyangWebAPP/pages/myTask/workOrderList/workOrderDetail/workOrderDetail.vue

@@ -111,14 +111,15 @@
111 111
 							this.detailContentData = data.data[0];
112 112
 							let btnData = data.btndata;
113 113
 							if (btnData.length > 0) {
114
-								btnData.forEach((element, index) => {
115
-									let btn = this.$mButtonConfig[element.key];
116
-									console.log(btn)
117
-									if (btn != undefined) {
118
-										this.workOrderButton.push(btn);
119
-									}
120
-									this.orderButtonData = this.workOrderButton
121
-								});
114
+								this.orderButtonData = btnData
115
+								// btnData.forEach((element, index) => {
116
+								// 	let btn = this.$mButtonConfig[element.key];
117
+								// 	console.log(btn)
118
+								// 	if (btn != undefined) {
119
+								// 		this.workOrderButton.push(btn);
120
+								// 	}
121
+								// 	this.orderButtonData = this.workOrderButton
122
+								// });
122 123
 							}
123 124
 						} else if (type === "9") {
124 125
 							this.handleProcessListData = data;