浏览代码

修改付款进度权限

余思翰 3 个月前
父节点
当前提交
7b17b4ebe3

+ 134
- 110
oa-ui-app/pages/components/ProjectPicker.vue 查看文件

@@ -1,38 +1,41 @@
1 1
 <!-- components/ProjectPicker.vue -->
2 2
 <template>
3
-		<uni-popup ref="popup" type="bottom" @maskClick="close">
4
-			<view class="modal-container">
5
-				<!-- 搜索框 -->
6
-				<view class="search-box">
7
-					<uni-icons type="search" size="18" color="#999" />
8
-					<input class="search-input" placeholder="输入项目编号/名称搜索" v-model="searchKeyword" @input="handleSearch" />
9
-				</view>
3
+	<uni-popup ref="popup" type="bottom" @maskClick="close">
4
+		<view class="modal-container">
5
+			<!-- 搜索框 -->
6
+			<view class="search-box">
7
+				<uni-data-select v-model="keyword" :localdata="keywordData" :clear="false" style="width: 30rpx;"></uni-data-select>
8
+				<uni-icons type="search" size="18" color="#999" />
9
+				<input class="search-input" placeholder="输入项目编号/名称搜索" v-model="searchKeyword" @input="handleSearch" />
10
+			</view>
10 11
 
11
-				<!-- 项目列表 -->
12
-				<scroll-view scroll-y class="list-container" @scrolltolower="loadMore" :scroll-top="scrollTop">
13
-					<view v-for="(item,index) in projectList" :key="'p' + index" class="list-item"
14
-						:class="{ selected: selectedProject && selectedProject.projectId === item.projectId }" @click="handleSelect(item)">
15
-						<view class="item-content">
16
-							<text class="project-id">{{ item.projectId }}</text>
17
-							<text class="project-name">{{ item.projectName }}</text>
18
-						</view>
19
-						<uni-icons v-if="selectedProject && selectedProject.projectId === item.projectId" type="checkmarkempty" color="#007AFF" size="18" />
12
+			<!-- 项目列表 -->
13
+			<scroll-view scroll-y class="list-container" @scrolltolower="loadMore" :scroll-top="scrollTop">
14
+				<view v-for="(item,index) in projectList" :key="'p' + index" class="list-item"
15
+					:class="{ selected: selectedProject && selectedProject.projectId === item.projectId }"
16
+					@click="handleSelect(item)">
17
+					<view class="item-content">
18
+						<text class="project-id">{{ item.projectNumber }}</text>
19
+						<text class="project-name">{{ item.projectName }}</text>
20 20
 					</view>
21
-					
22
-					<!-- 加载状态 -->
23
-					<view class="loading-status">
24
-						<text v-if="loading">加载中...</text>
25
-						<text v-else-if="!hasMore">没有更多了</text>
26
-					</view>
27
-				</scroll-view>
21
+					<uni-icons v-if="selectedProject && selectedProject.projectId === item.projectId" type="checkmarkempty"
22
+						color="#007AFF" size="18" />
23
+				</view>
28 24
 
29
-				<!-- 底部操作 -->
30
-				<view class="footer">
31
-					<button class="btn" @click="close">取消</button>
32
-					<button class="btn confirm-btn" @click="confirm">确定</button>
25
+				<!-- 加载状态 -->
26
+				<view class="loading-status">
27
+					<text v-if="loading">加载中...</text>
28
+					<text v-else-if="!hasMore">没有更多了</text>
33 29
 				</view>
30
+			</scroll-view>
31
+
32
+			<!-- 底部操作 -->
33
+			<view class="footer">
34
+				<button class="btn" @click="close">取消</button>
35
+				<button class="btn confirm-btn" @click="confirm">确定</button>
34 36
 			</view>
35
-		</uni-popup>
37
+		</view>
38
+	</uni-popup>
36 39
 </template>
37 40
 
38 41
 <script>
@@ -68,7 +71,17 @@
68 71
 				hasMore: true, // 是否还有更多
69 72
 				loading: false, // 加载状态
70 73
 				scrollTop: 0, // 滚动位置
71
-				selectedProject: null // 当前选中项目
74
+				selectedProject: null, // 当前选中项目
75
+				keyword: 'projectNumber',
76
+				keywordData: [{
77
+						text: '项目编号',
78
+						value: 'projectNumber',
79
+					},
80
+					{
81
+						text: '项目名称',
82
+						value: 'projectName'
83
+					}
84
+				]
72 85
 			};
73 86
 		},
74 87
 		watch: {
@@ -107,11 +120,22 @@
107 120
 
108 121
 				this.loading = true;
109 122
 				try {
110
-					const res = await listProject({
111
-						keyword: this.searchKeyword,
112
-						pageNum: this.pageNum,
113
-						pageSize: this.pageSize
114
-					});
123
+					const keyword = this.keyword
124
+					let res;
125
+					if (keyword == 'projectNumber') {
126
+						res = await listProject({
127
+							projectNumber: this.searchKeyword,
128
+							pageNum: this.currentPage,
129
+							pageSize: this.pageSize
130
+						});
131
+					}else{
132
+						res = await listProject({
133
+							projectName: this.searchKeyword,
134
+							pageNum: this.currentPage,
135
+							pageSize: this.pageSize
136
+						});
137
+					}
138
+
115 139
 					console.log(res)
116 140
 					this.projectList = this.currentPage === 1 ?
117 141
 						res.rows : [...this.projectList, ...res.rows];
@@ -145,7 +169,7 @@
145 169
 
146 170
 			// 选择项目
147 171
 			handleSelect(item) {
148
-				this.selectedProject = this.selectedProject?.id === item.id ? null : item;
172
+				this.selectedProject = this.selectedProject?.projectId === item.projectId ? null : item;
149 173
 			},
150 174
 
151 175
 			// 确认选择
@@ -166,79 +190,79 @@
166 190
 </script>
167 191
 
168 192
 <style lang="scss" scoped>
169
-.modal-container {
170
-  background: #fff;
171
-  border-radius: 16px 16px 0 0;
172
-  max-height: 70vh;
173
-  padding: 20px;
174
-}
175
-
176
-.search-box {
177
-  display: flex;
178
-  align-items: center;
179
-  padding: 10px;
180
-  background: #f5f5f5;
181
-  border-radius: 8px;
182
-  margin-bottom: 15px;
183
-
184
-  .search-input {
185
-    flex: 1;
186
-    margin-left: 8px;
187
-    font-size: 14px;
188
-  }
189
-}
190
-
191
-.list-container {
192
-  max-height: 50vh;
193
-  margin-bottom: 15px;
194
-
195
-  .list-item {
196
-    display: flex;
197
-    align-items: center;
198
-    justify-content: space-between;
199
-    padding: 12px;
200
-    border-bottom: 1px solid #eee;
201
-
202
-    &.selected {
203
-      background-color: #f8f8f8;
204
-    }
205
-
206
-    .item-content {
207
-      flex: 1;
208
-
209
-      .project-id {
210
-        color: #666;
211
-        font-size: 12px;
212
-        margin-right: 8px;
213
-      }
214
-
215
-      .project-name {
216
-        color: #333;
217
-        font-size: 14px;
218
-      }
219
-    }
220
-  }
221
-
222
-  .loading-status {
223
-    text-align: center;
224
-    padding: 10px;
225
-    color: #999;
226
-    font-size: 12px;
227
-  }
228
-}
229
-
230
-.footer {
231
-  display: flex;
232
-  gap: 15px;
233
-
234
-  .btn {
235
-    flex: 1;
236
-    border-radius: 8px;
237
-
238
-    &.confirm-btn {
239
-      background-color: #007AFF;
240
-      color: #fff;
241
-    }
242
-  }
243
-}
193
+	.modal-container {
194
+		background: #fff;
195
+		border-radius: 16px 16px 0 0;
196
+		max-height: 70vh;
197
+		padding: 20px;
198
+	}
199
+
200
+	.search-box {
201
+		display: flex;
202
+		align-items: center;
203
+		padding: 10px;
204
+		background: #f5f5f5;
205
+		border-radius: 8px;
206
+		margin-bottom: 15px;
207
+
208
+		.search-input {
209
+			flex: 1;
210
+			margin-left: 8px;
211
+			font-size: 14px;
212
+		}
213
+	}
214
+
215
+	.list-container {
216
+		max-height: 50vh;
217
+		margin-bottom: 15px;
218
+
219
+		.list-item {
220
+			display: flex;
221
+			align-items: center;
222
+			justify-content: space-between;
223
+			padding: 12px;
224
+			border-bottom: 1px solid #eee;
225
+
226
+			&.selected {
227
+				background-color: #f8f8f8;
228
+			}
229
+
230
+			.item-content {
231
+				flex: 1;
232
+
233
+				.project-id {
234
+					color: #666;
235
+					font-size: 12px;
236
+					margin-right: 8px;
237
+				}
238
+
239
+				.project-name {
240
+					color: #333;
241
+					font-size: 14px;
242
+				}
243
+			}
244
+		}
245
+
246
+		.loading-status {
247
+			text-align: center;
248
+			padding: 10px;
249
+			color: #999;
250
+			font-size: 12px;
251
+		}
252
+	}
253
+
254
+	.footer {
255
+		display: flex;
256
+		gap: 15px;
257
+
258
+		.btn {
259
+			flex: 1;
260
+			border-radius: 8px;
261
+
262
+			&.confirm-btn {
263
+				background-color: #007AFF;
264
+				color: #fff;
265
+			}
266
+		}
267
+	}
244 268
 </style>

+ 49
- 8
oa-ui-app/pages/message/apply/components/declare/declare.vue 查看文件

@@ -24,17 +24,18 @@
24 24
 			</uni-forms-item>
25 25
 			<!-- 是否零星项目 -->
26 26
 			<uni-forms-item label="是否零星项目" required class="form-item" name="isScattered">
27
-				<uni-data-checkbox v-model="formData.isScattered" :localdata="isScatteredOptions"></uni-data-checkbox>
27
+				<uni-data-checkbox v-model="isScattered" :localdata="isScatteredOptions"></uni-data-checkbox>
28 28
 			</uni-forms-item>
29 29
 
30 30
 			<!-- 选择项目 -->
31
-			<uni-forms-item label="选择项目" required class="form-item" v-if="!formData.isScattered" name="projectId">
31
+			<uni-forms-item label="选择项目" required class="form-item" v-if="!isScattered" name="projectId">
32 32
 				<!-- <ProjectPicker v-model="formData.projectId" placeholder="请选择项目" :labelKey="'projectName'"
33 33
 					:valueKey="'projectId'" @change="handleProjectChange"
34 34
 					:customStyle="{ borderColor: '#e5e5e5', borderRadius: '8px' }" v-if="taskName == '工作填报'" /> -->
35 35
 				<!-- <ProjectInfo :project="projectObj" v-else></ProjectInfo> -->
36
-				<button @click="openProject = true">选择项目</button>
36
+				<u-button type="primary" @click="openProject = true" v-if="taskName == '工作填报'">选择项目</u-button>
37 37
 				<ProjectPicker :visible.sync="openProject" :selected.sync="selectedProject" @confirm="handleConfirm" />
38
+				<ProjectInfo :project="projectObj"></ProjectInfo>
38 39
 			</uni-forms-item>
39 40
 
40 41
 			<!-- 工作类别 -->
@@ -68,6 +69,19 @@
68 69
 				</uni-easyinput>
69 70
 			</uni-forms-item>
70 71
 
72
+			<uni-forms-item label="系数" required class="form-item" name="coefficient" v-if="taskName != '工作填报'">
73
+				<uni-easyinput type="number" v-model="formData.coefficient" placeholder="请输入系数" :styles="inputStyle"
74
+					@input="countMoney">
75
+				</uni-easyinput>
76
+			</uni-forms-item>
77
+
78
+			<uni-forms-item label="工天单价" class="form-item" v-if="taskName != '工作填报'">
79
+				<u-tag :text="formData.price+'/人天'" type="success" plain></u-tag>
80
+			</uni-forms-item>
81
+
82
+			<uni-forms-item label="预估绩效" class="form-item" v-if="taskName != '工作填报'">
83
+				<u-tag :text="'¥'+money" type="primary" plain></u-tag>
84
+			</uni-forms-item>
71 85
 			<!-- 提交按钮 -->
72 86
 			<button class="save-btn" @click="save">保存</button>
73 87
 			<button class="submit-btn margin-top-xs" type="primary" @click="submitForm">提交</button>
@@ -119,15 +133,18 @@
119 133
 			return {
120 134
 				openProject: false,
121 135
 				selectedProject: null,
136
+				isScattered: 0,
122 137
 				formData: {
123
-					isScattered: 0,
138
+					userId: null,
124 139
 					projectId: '',
125 140
 					workType: '',
126 141
 					workItem: '',
127 142
 					workContent: '',
128 143
 					workLoad: '',
129
-					submitTime: parseTime(new Date(), "{y}-{m}-{d}")
144
+					price: 216,
145
+					submitTime: ''
130 146
 				},
147
+				money: '',
131 148
 				rules: {
132 149
 					isScattered: {
133 150
 						rules: [{
@@ -204,24 +221,33 @@
204 221
 		methods: {
205 222
 			handleConfirm(project) {
206 223
 				console.log('选中的项目:', project);
207
-				this.selectedProject = project
224
+				this.selectedProject = project;
225
+				this.projectObj = project;
208 226
 			},
209 227
 			initForm() {
210 228
 				getDeclare(this.taskForm.formId).then(res => {
211 229
 					if (res.data) {
212 230
 						this.hasForm = true;
213 231
 						this.formData = res.data;
232
+						console.log(res.data)
214 233
 						if (res.data.projectId) {
215
-							this.formData.isScattered = 0;
234
+							this.isScattered = 0;
216 235
 						} else {
217
-							this.formData.isScattered = 1;
236
+							this.isScattered = 1;
218 237
 						}
219 238
 						res.data.project.projectLeader = res.data.projectLeader
220 239
 						this.projectObj = res.data.project;
240
+						this.selectedProject = res.data.project;
221 241
 						this.bindWorkTypeChange(this.formData.workType);
242
+						this.countMoney();
222 243
 					} else {
223 244
 						this.hasForm = false;
224 245
 					}
246
+					if (this.taskName == '工作填报') {
247
+						this.formData.submitTime = parseTime(new Date(), "{y}-{m}-{d}");
248
+						this.formData.userId = this.$store.getters.userId;
249
+						console.log(this.$store.getters)
250
+					}
225 251
 				})
226 252
 			},
227 253
 			bindProjectChange(e) {
@@ -265,12 +291,27 @@
265 291
 					this.projects = res.rows
266 292
 				})
267 293
 			},
294
+			countMoney() {
295
+				let result = parseFloat(this.formData.price * this.formData.workLoad * this.formData.coefficient)
296
+				console.log(result)
297
+				this.money = result.toFixed(2)
298
+			},
268 299
 			async save() {
300
+				if (!this.isScattered) {
301
+					this.formData.projectId = this.projectObj.projectId;
302
+				} else {
303
+					this.formData.projectId = ''
304
+				}
269 305
 				if (this.hasForm) {
270 306
 					let updateRes = await updateDeclare(this.formData);
271 307
 				} else {
272 308
 					this.formData.formId = this.taskForm.formId;
273 309
 					let addRes = await addDeclare(this.formData);
310
+					if (addRes.code == 200) {
311
+						this.hasForm = true;
312
+					} else {
313
+						this.hasForm = false;
314
+					}
274 315
 				}
275 316
 				uni.showToast({
276 317
 					title: '保存成功',

+ 7
- 6
oa-ui-app/store/getters.js 查看文件

@@ -1,8 +1,9 @@
1 1
 const getters = {
2
-  token: state => state.user.token,
3
-  avatar: state => state.user.avatar,
4
-  name: state => state.user.name,
5
-  roles: state => state.user.roles,
6
-  permissions: state => state.user.permissions
2
+	token: state => state.user.token,
3
+	avatar: state => state.user.avatar,
4
+	name: state => state.user.name,
5
+	roles: state => state.user.roles,
6
+	permissions: state => state.user.permissions,
7
+	userId: state => state.user.id,
7 8
 }
8
-export default getters
9
+export default getters

+ 9
- 3
oa-ui-app/store/modules/user.js 查看文件

@@ -12,7 +12,8 @@ const user = {
12 12
     name: storage.get(constant.name),
13 13
     avatar: storage.get(constant.avatar),
14 14
     roles: storage.get(constant.roles),
15
-    permissions: storage.get(constant.permissions)
15
+    permissions: storage.get(constant.permissions),
16
+    id: storage.get(constant.id),
16 17
   },
17 18
 
18 19
   mutations: {
@@ -34,7 +35,11 @@ const user = {
34 35
     SET_PERMISSIONS: (state, permissions) => {
35 36
       state.permissions = permissions
36 37
       storage.set(constant.permissions, permissions)
37
-    }
38
+    },
39
+    SET_ID: (state, id) => {
40
+      state.id = id
41
+      storage.set(constant.id, id)
42
+    },
38 43
   },
39 44
 
40 45
   actions: {
@@ -61,13 +66,14 @@ const user = {
61 66
         getInfo().then(res => {
62 67
           const user = res.user
63 68
           const avatar = (user == null || user.avatar == "" || user.avatar == null) ? require("@/static/images/profile.jpg") : baseUrl + user.avatar
64
-          const username = (user == null || user.userName == "" || user.userName == null) ? "" : user.userName
69
+          const username = (user == null || user.nickName == "" || user.nickName == null) ? "" : user.nickName
65 70
           if (res.roles && res.roles.length > 0) {
66 71
             commit('SET_ROLES', res.roles)
67 72
             commit('SET_PERMISSIONS', res.permissions)
68 73
           } else {
69 74
             commit('SET_ROLES', ['ROLE_DEFAULT'])
70 75
           }
76
+					commit('SET_ID', user.userId)
71 77
           commit('SET_NAME', username)
72 78
           commit('SET_AVATAR', avatar)
73 79
           resolve(res)

+ 2
- 2
oa-ui/src/views/flowable/form/components/print/projectPrint.vue 查看文件

@@ -82,7 +82,7 @@
82 82
             </el-row>
83 83
           </td>
84 84
         </tr>
85
-        <tr>
85
+        <!-- <tr>
86 86
           <td class="fontbold">
87 87
             生产部门确认
88 88
           </td>
@@ -97,7 +97,7 @@
97 97
               </el-col>
98 98
             </el-row>
99 99
           </td>
100
-        </tr>
100
+        </tr> -->
101 101
       </table>
102 102
     </div>
103 103
     <div class="text-center mt20">

+ 8
- 7
oa-ui/src/views/oa/contract/components/paymentProgress.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2025-02-12 13:40:48
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-02-13 10:29:05
5
+ * @LastEditTime: 2025-02-14 15:32:51
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -33,7 +33,7 @@
33 33
         </el-input>
34 34
       </el-form-item>
35 35
       <el-form-item label="合同备注" prop="remark">
36
-        <el-input type="textarea" disabled v-model="form.remark" :autosize="{minRows:4}" />
36
+        <el-input type="textarea" disabled v-model="form.remark" :autosize="{ minRows: 4 }" />
37 37
       </el-form-item>
38 38
       <el-form-item style="text-align: left;" label="回款进度">
39 39
         <table border="1" style="width:100%" v-loading="loading">
@@ -114,7 +114,7 @@ export default {
114 114
       sumAmount: 0,
115 115
       sumPercent: 0,
116 116
       loading: true,
117
-      isDisabled:true,
117
+      isDisabled: true,
118 118
     }
119 119
   },
120 120
   watch: {
@@ -128,10 +128,11 @@ export default {
128 128
     this.isDisabledFn();
129 129
   },
130 130
   methods: {
131
-    isDisabledFn(){
132
-      if(this.$store.getters.roles.includes('finance')){
131
+    isDisabledFn() {
132
+      let roles = ['finance', 'nfinance']
133
+      if (this.$store.getters.roles.some(e => roles.includes(e))) {
133 134
         this.isDisabled = false
134
-      }else{
135
+      } else {
135 136
         this.isDisabled = true
136 137
       }
137 138
     },
@@ -185,7 +186,7 @@ export default {
185 186
     },
186 187
     changePercentage(paid) {
187 188
       let percent = ((paid.paidAmount / this.form.amount) * 100).toFixed(2);
188
-      paid.paidPercentage = percent;
189
+      paid.paidPercentage = Number(percent);
189 190
       this.getSum();
190 191
     },
191 192
     async confirm() {

+ 4
- 3
oa-ui/src/views/oa/contract/components/subProgress.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2025-02-12 13:40:48
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-02-13 10:33:15
5
+ * @LastEditTime: 2025-02-14 15:34:18
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -123,7 +123,8 @@ export default {
123 123
   },
124 124
   methods: {
125 125
     isDisabledFn(){
126
-      if(this.$store.getters.roles.includes('finance')){
126
+      let roles = ['finance', 'nfinance']
127
+      if(this.$store.getters.roles.some(e => roles.includes(e))){
127 128
         this.isDisabled = false
128 129
       }else{
129 130
         this.isDisabled = true
@@ -179,7 +180,7 @@ export default {
179 180
     },
180 181
     changePercentage(paid) {
181 182
       let percent = ((paid.paidAmount / this.form.subAmount) * 100).toFixed(2);
182
-      paid.paidPercentage = percent;
183
+      paid.paidPercentage = Number(percent);
183 184
       this.getSum();
184 185
     },
185 186
     async confirm() {

+ 2
- 2
oa-ui/src/views/oa/contract/index.vue 查看文件

@@ -50,13 +50,13 @@
50 50
       <el-table-column label="合同编码(公司)" align="center" prop="contractCode" />
51 51
       <el-table-column label="合同编号(业主)" align="center" prop="contractNumber" />
52 52
       <!-- <el-table-column label="履约保证金" align="center" prop="deposit" /> -->
53
-      <el-table-column label="合同文件" align="center" prop="contractDocument" show-overflow-tooltip>
53
+      <!-- <el-table-column label="合同文件" align="center" prop="contractDocument" show-overflow-tooltip>
54 54
         <template slot-scope="scope">
55 55
           <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + scope.row.contractDocument}`)">
56 56
             {{ getFileName(scope.row.contractDocument) }}
57 57
           </el-link>
58 58
         </template>
59
-      </el-table-column>
59
+      </el-table-column> -->
60 60
       <el-table-column label="拟稿日期" align="center" prop="draftTime">
61 61
         <template slot-scope="scope">
62 62
           <span>{{ parseTime(scope.row.draftTime, '{y}-{m}-{d}') }}</span>

+ 4
- 3
oa-ui/src/views/oa/contract/subContract.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-21 18:52:00
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-02-13 10:40:03
5
+ * @LastEditTime: 2025-02-14 15:25:53
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -50,13 +50,13 @@
50 50
       <el-table-column label="分包合同金额" align="center" prop="subAmount" />
51 51
       <el-table-column label="承接单位" align="center" prop="partner.partnerName" />
52 52
       <!-- <el-table-column label="承接单位联系人" align="center" prop="contactPerson" /> -->
53
-      <el-table-column label="合同文件" align="center" prop="contractDocument" show-overflow-tooltip>
53
+      <!-- <el-table-column label="合同文件" align="center" prop="contractDocument" show-overflow-tooltip>
54 54
         <template slot-scope="scope">
55 55
           <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + scope.row.contractDocument}`)">
56 56
             {{ getFileName(scope.row.contractDocument) }}
57 57
           </el-link>
58 58
         </template>
59
-      </el-table-column>
59
+      </el-table-column> -->
60 60
       <el-table-column label="拟稿日期" align="center" prop="draftTime">
61 61
         <template slot-scope="scope">
62 62
           <span>{{ parseTime(scope.row.draftTime, '{y}-{m}-{d}') }}</span>
@@ -118,6 +118,7 @@
118 118
     <el-dialog :title="title" :visible.sync="openInfo" append-to-body width="60%">
119 119
       <sub-contract :taskForm="taskForm" :taskName="''" :flowDisabled="false"></sub-contract>
120 120
     </el-dialog>
121
+    
121 122
     <!-- 回款进度 -->
122 123
     <el-dialog :title="title" :visible.sync="progressOpen" width="50%" append-to-body>
123 124
       <sub-progress :form="progressContract" @cancel="progressOpen = false" @getList="getList"></sub-progress>

正在加载...
取消
保存