浏览代码

修改项目流转

余思翰 11 个月前
父节点
当前提交
ee6d104566

+ 20
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java 查看文件

81
         return success(deptLeader);
81
         return success(deptLeader);
82
     }
82
     }
83
 
83
 
84
+    /**
85
+     * 通过deptId获取部门主任
86
+     */
87
+    @GetMapping("/deptLeaders")
88
+    public AjaxResult getDeptLeaders(String userId)
89
+    {
90
+        List<SysUser> deptLeaderList =  postService.selectDeptLeadersByDeptId(userId);
91
+        return success(deptLeaderList);
92
+    }
93
+
84
     /**
94
     /**
85
      * 获取部门副主任
95
      * 获取部门副主任
86
      */
96
      */
109
         return success(deptLeader);
119
         return success(deptLeader);
110
     }
120
     }
111
 
121
 
122
+    /**
123
+     * 通过deptId获取部门主任
124
+     */
125
+    @GetMapping("/deptLeadersByDept")
126
+    public AjaxResult getDeptLeadersByDeptId(String deptId)
127
+    {
128
+        List<SysUser> deptLeaderList =  postService.selectDeptLeadersByDeptId(deptId);
129
+        return success(deptLeaderList);
130
+    }
131
+
112
     /**
132
     /**
113
      * 通过deptId获取是否部门负责人
133
      * 通过deptId获取是否部门负责人
114
      */
134
      */

+ 16
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java 查看文件

92
      */
92
      */
93
     public SysUser selectDeptLeaderByUserId(String userId);
93
     public SysUser selectDeptLeaderByUserId(String userId);
94
 
94
 
95
+    /**
96
+     * 查询部门主任
97
+     *
98
+     * @param
99
+     * @return 查询部门主任
100
+     */
101
+    public List<SysUser> selectDeptLeadersByUserId(String userId);
102
+
95
     /**
103
     /**
96
      * 查询部门副主任
104
      * 查询部门副主任
97
      *
105
      *
132
      */
140
      */
133
     public SysUser selectDeptLeaderByDeptId(String deptId);
141
     public SysUser selectDeptLeaderByDeptId(String deptId);
134
 
142
 
143
+    /**
144
+     * 查询部门主任
145
+     *
146
+     * @param
147
+     * @return 查询部门主任
148
+     */
149
+    public List<SysUser> selectDeptLeadersByDeptId(String deptId);
150
+
135
     /**
151
     /**
136
      * 查询部门副主任
152
      * 查询部门副主任
137
      *
153
      *

+ 16
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java 查看文件

148
      */
148
      */
149
     public SysUser selectDeptLeaderByUserId(String userId);
149
     public SysUser selectDeptLeaderByUserId(String userId);
150
 
150
 
151
+    /**
152
+     * 查询部门主任
153
+     *
154
+     * @param
155
+     * @return 查询部门主任
156
+     */
157
+    public List<SysUser> selectDeptLeadersByUserId(String userId);
158
+
151
     /**
159
     /**
152
      * 查询部门副主任
160
      * 查询部门副主任
153
      *
161
      *
188
      */
196
      */
189
     public SysUser selectDeptLeaderByDeptId(String deptId);
197
     public SysUser selectDeptLeaderByDeptId(String deptId);
190
 
198
 
199
+    /**
200
+     * 查询部门主任
201
+     *
202
+     * @param
203
+     * @return 查询部门主任
204
+     */
205
+    public List<SysUser> selectDeptLeadersByDeptId(String deptId);
206
+
191
     /**
207
     /**
192
      * 查询部门副主任
208
      * 查询部门副主任
193
      *
209
      *

+ 22
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java 查看文件

244
         return userPostMapper.selectDeptLeaderByUserId(userId);
244
         return userPostMapper.selectDeptLeaderByUserId(userId);
245
     }
245
     }
246
 
246
 
247
+    /**
248
+     * 查询部门主任
249
+     *
250
+     * @param
251
+     * @return 查询部门主任
252
+     */
253
+    @Override
254
+    public List<SysUser> selectDeptLeadersByUserId(String userId) {
255
+        return userPostMapper.selectDeptLeadersByUserId(userId);
256
+    }
257
+
247
     /**
258
     /**
248
      * 查询部门副主任
259
      * 查询部门副主任
249
      *
260
      *
299
         return userPostMapper.selectDeptLeaderByDeptId(deptId);
310
         return userPostMapper.selectDeptLeaderByDeptId(deptId);
300
     }
311
     }
301
 
312
 
313
+    /**
314
+     * 查询部门主任
315
+     *
316
+     * @param
317
+     * @return 查询部门主任
318
+     */
319
+    @Override
320
+    public List<SysUser> selectDeptLeadersByDeptId(String userId) {
321
+        return userPostMapper.selectDeptLeadersByDeptId(userId);
322
+    }
323
+
302
     /**
324
     /**
303
      * 查询部门副主任
325
      * 查询部门副主任
304
      *
326
      *

+ 18
- 0
oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml 查看文件

130
 		where p.post_name = '主任'
130
 		where p.post_name = '主任'
131
 	</select>
131
 	</select>
132
 
132
 
133
+	<select id="selectDeptLeadersByUserId" parameterType="String" resultMap="SysUserResult">
134
+		select r.user_id, r.nick_name from
135
+		(select u1.user_id, u1.nick_name, u.dept_id from
136
+		sys_user as u, sys_user as u1 where u.user_id = #{param} and u1.dept_id = u.dept_id) as r
137
+		left join sys_user_post as up on r.user_id = up.user_id
138
+		left join sys_post as p on p.post_id = up.post_id
139
+		where p.post_name = '主任'
140
+	</select>
141
+
133
 	<select id="selectViceDeptLeaderByUserId" parameterType="String" resultMap="SysUserResult">
142
 	<select id="selectViceDeptLeaderByUserId" parameterType="String" resultMap="SysUserResult">
134
 		select r.user_id, r.nick_name from
143
 		select r.user_id, r.nick_name from
135
 		(select u1.user_id, u1.nick_name, u.dept_id from
144
 		(select u1.user_id, u1.nick_name, u.dept_id from
175
 		where p.post_name = '主任'
184
 		where p.post_name = '主任'
176
 	</select>
185
 	</select>
177
 
186
 
187
+	<select id="selectDeptLeadersByDeptId" parameterType="String" resultMap="SysUserResult">
188
+		select r.user_id, r.nick_name from
189
+		(select user_id, nick_name, dept_id from
190
+		sys_user where dept_id = #{param}) as r
191
+		left join sys_user_post as up on r.user_id = up.user_id
192
+		left join sys_post as p on p.post_id = up.post_id
193
+		where p.post_name = '主任'
194
+	</select>
195
+
178
 	<select id="selectViceDeptLeaderByDeptId" parameterType="String" resultMap="SysUserResult">
196
 	<select id="selectViceDeptLeaderByDeptId" parameterType="String" resultMap="SysUserResult">
179
 		select r.user_id, r.nick_name from
197
 		select r.user_id, r.nick_name from
180
 		(select user_id, nick_name, dept_id from
198
 		(select user_id, nick_name, dept_id from

+ 9
- 0
oa-ui/src/api/system/post.js 查看文件

84
   })
84
   })
85
 }
85
 }
86
 
86
 
87
+// 查询经营部门的部门负责人
88
+export function getDeptLeadersByDeptId(query) {
89
+  return request({
90
+    url: '/system/post/deptLeadersByDept',
91
+    method: 'get',
92
+    params: query
93
+  })
94
+}
95
+
87
 // 查询当前用户的部门负责人
96
 // 查询当前用户的部门负责人
88
 export function getUsersViceDeptLeader(query) {
97
 export function getUsersViceDeptLeader(query) {
89
   return request({
98
   return request({

+ 6
- 6
oa-ui/src/views/flowable/form/business/contractForm.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-05-10 15:31:57
3
  * @Date: 2024-05-10 15:31:57
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-02 09:46:00
5
+ * @LastEditTime: 2024-07-05 10:31:53
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
228
                 </td>
228
                 </td>
229
                 <td>
229
                 <td>
230
                   <el-select v-model="comment.deptId" clearable style="width:120px"
230
                   <el-select v-model="comment.deptId" clearable style="width:120px"
231
-                    :disabled="(index < 4 && taskName == '合同拟稿') || taskName != '合同拟稿'" @change="getDeptLeader">
231
+                    :disabled="(index < 3 && taskName == '合同拟稿') || taskName != '合同拟稿'" @change="getDeptLeader">
232
                     <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
232
                     <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
233
                     </el-option>
233
                     </el-option>
234
                   </el-select>
234
                   </el-select>
235
                 </td>
235
                 </td>
236
                 <td>
236
                 <td>
237
                   <el-select v-model="comment.userId" clearable style="width:120px"
237
                   <el-select v-model="comment.userId" clearable style="width:120px"
238
-                    :disabled="(index < 4 && taskName == '合同拟稿') || taskName != '合同拟稿'">
238
+                    :disabled="(index < 3 && taskName == '合同拟稿') || taskName != '合同拟稿'">
239
                     <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
239
                     <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
240
                     </el-option>
240
                     </el-option>
241
                   </el-select>
241
                   </el-select>
583
         //   commentTime: undefined
583
         //   commentTime: undefined
584
         // },
584
         // },
585
         {
585
         {
586
-          deptId: 106,
586
+          deptId: 107,
587
           userId: '',
587
           userId: '',
588
           comment: '',
588
           comment: '',
589
           document: '',
589
           document: '',
705
                   commentTime: undefined
705
                   commentTime: undefined
706
                 },
706
                 },
707
                 {
707
                 {
708
-                  deptId: 110,
708
+                  deptId: 106,
709
                   userId: '',
709
                   userId: '',
710
                   comment: '',
710
                   comment: '',
711
                   document: '',
711
                   document: '',
719
                 //   commentTime: undefined
719
                 //   commentTime: undefined
720
                 // },
720
                 // },
721
                 {
721
                 {
722
-                  deptId: 106,
722
+                  deptId: 109,
723
                   userId: '',
723
                   userId: '',
724
                   comment: '',
724
                   comment: '',
725
                   document: '',
725
                   document: '',

+ 3
- 3
oa-ui/src/views/flowable/form/components/chooseContract.vue 查看文件

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-05-22 11:12:57
3
  * @Date: 2024-05-22 11:12:57
4
- * @LastEditors: 
5
- * @LastEditTime: 2024-06-14 18:26:54
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-05 09:09:03
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
29
       <el-table-column label="合同编号" align="center" prop="contractNumber" min-width="100px" />
29
       <el-table-column label="合同编号" align="center" prop="contractNumber" min-width="100px" />
30
       <el-table-column label="合同金额" align="center" prop="amount" min-width="100px" />
30
       <el-table-column label="合同金额" align="center" prop="amount" min-width="100px" />
31
       <el-table-column label="拟稿人" align="center" prop="draftUser.nickName" min-width="100px" />
31
       <el-table-column label="拟稿人" align="center" prop="draftUser.nickName" min-width="100px" />
32
-      <el-table-column label="合同备注" align="center" prop="remark" min-width="100px" />
32
+      <el-table-column label="合同备注" align="center" prop="remark" min-width="250px" />
33
     </el-table>
33
     </el-table>
34
     <div style="text-align: right;" class="mt20 mr20">
34
     <div style="text-align: right;" class="mt20 mr20">
35
       <el-pagination @current-change="getList" :current-page.sync="queryParams.pageNum"
35
       <el-pagination @current-change="getList" :current-page.sync="queryParams.pageNum"

+ 49
- 28
oa-ui/src/views/flowable/form/projectProcess/addproject.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-18 11:00:04
3
  * @Date: 2024-03-18 11:00:04
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-02 18:17:03
5
+ * @LastEditTime: 2024-07-05 15:04:22
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="project-wrapper">
8
   <div class="project-wrapper">
148
 import { mapGetters } from "vuex";
148
 import { mapGetters } from "vuex";
149
 import { listProject, getProject, addProject, updateProject, delProject } from "@/api/oa/project/project";
149
 import { listProject, getProject, addProject, updateProject, delProject } from "@/api/oa/project/project";
150
 import { getUser } from "@/api/system/user";
150
 import { getUser } from "@/api/system/user";
151
-import { getUsersDeptLeaderByDept } from "@/api/system/post";
151
+import { getUsersDeptLeaderByDept,getDeptLeadersByDeptId } from "@/api/system/post";
152
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
152
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
153
 import { listProjectWork, addProjectWork, delProjectWork } from "@/api/oa/project/projectWork";
153
 import { listProjectWork, addProjectWork, delProjectWork } from "@/api/oa/project/projectWork";
154
 import { listProjectContract, addProjectContract } from "@/api/oa/contract/projectContract";
154
 import { listProjectContract, addProjectContract } from "@/api/oa/contract/projectContract";
328
         })
328
         })
329
       } else {
329
       } else {
330
         let updateLog = await updateProject(this.addForm).then(
330
         let updateLog = await updateProject(this.addForm).then(
331
-          this.$modal.msgSuccess("修改成功")
331
+          this.$modal.msgSuccess("保存成功")
332
         );
332
         );
333
-        console.log(updateLog);
334
         if (updateLog.code == 200) {
333
         if (updateLog.code == 200) {
335
           this.$refs.arrange.save()
334
           this.$refs.arrange.save()
336
         }
335
         }
344
       }
343
       }
345
 
344
 
346
     },
345
     },
347
-    confirmAddForm() {
348
-      this.addForm.projectId = this.taskForm.formId;
349
-      for (let work of this.workList) {
350
-        work.projectId = this.taskForm.formId;
351
-        addProjectWork(work);
352
-      }
353
-      addProject(this.addForm).then(response => {
354
-        this.$modal.msgSuccess("新增成功");
355
-        this.getList();
356
-      });
357
-      let contractId = this.chooseContractInfo.contractId ? this.chooseContractInfo.contractId : ''
358
-      let pcobj = { projectId: this.taskForm.formId, contractId }
359
-      if (contractId != '') {
360
-        addProjectContract(pcobj).then(response => {
361
-          this.$modal.msgSuccess("合同关联成功");
346
+    async confirmAddForm() {
347
+      let leaderData = await getDeptLeadersByDeptId({ deptId: 105 })
348
+      let approvalId = [];
349
+      if (leaderData.data) {
350
+        leaderData.data.forEach(item =>{
351
+          approvalId.push(item.userId)
362
         })
352
         })
363
       }
353
       }
364
-      const params = { taskId: this.taskForm.taskId };
365
-      // 获取下一个流程节点
366
-      getNextFlowNode(params).then(res => {
367
-        getUsersDeptLeaderByDept({ deptId: 107 }).then(res => {
368
-          let userId = res.data.userId;
369
-          this.$set(this.taskForm.variables, "approval", userId);
354
+      console.log(approvalId);
355
+      this.$set(this.taskForm.variables, "approvalList", approvalId);
356
+      // this.addForm.projectId = this.taskForm.formId;
357
+      // for (let work of this.workList) {
358
+      //   work.projectId = this.taskForm.formId;
359
+      //   addProjectWork(work);
360
+      // }
361
+      // addProject(this.addForm).then(response => {
362
+      //   this.$modal.msgSuccess("新增成功");
363
+      //   this.getList();
364
+      // });
365
+      // let contractId = this.chooseContractInfo.contractId ? this.chooseContractInfo.contractId : ''
366
+      // let pcobj = { projectId: this.taskForm.formId, contractId }
367
+      // if (contractId != '') {
368
+      //   addProjectContract(pcobj).then(response => {
369
+      //     this.$modal.msgSuccess("合同关联成功");
370
+      //   })
371
+      // }
372
+      this.save();
373
+      this.$confirm('项目安排之后会自动发起预算编制、技术方案、技术交底、安全交底四个子流程,将无法进行撤回操作,是否继续提交?', '提示', {
374
+        confirmButtonText: '确定',
375
+        cancelButtonText: '取消',
376
+        type: 'warning'
377
+      }).then(() => {
378
+        let budgetInitiator = this.$refs.arrange.peopleForm
379
+        if (this.addForm.projectLeader) {
380
+          budgetInitiator = this.addForm.projectLeader
381
+        } else {
382
+          budgetInitiator = this.$refs.arrange.peopleForm.userId
383
+        }
384
+        this.$set(this.taskForm.variables, "formId", this.taskForm.formId);
385
+        this.$set(this.taskForm.variables, "budgetInitiator", budgetInitiator);
386
+        // return
387
+        const params = { taskId: this.taskForm.taskId };
388
+        // 获取下一个流程节点
389
+        getNextFlowNode(params).then(res => {
390
+          console.log(this.taskForm);
370
           complete(this.taskForm).then(response => {
391
           complete(this.taskForm).then(response => {
371
             this.$modal.msgSuccess(response.msg);
392
             this.$modal.msgSuccess(response.msg);
372
-            this.$emit("goBack");
393
+            this.$emit('goBack');
373
           });
394
           });
374
-        });
375
-      });
395
+        })
396
+      })
376
     },
397
     },
377
     // 查询业主单位列表
398
     // 查询业主单位列表
378
     getPartyAList() {
399
     getPartyAList() {

+ 7
- 7
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-19 09:24:06
3
  * @Date: 2024-03-19 09:24:06
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-04 17:41:05
5
+ * @LastEditTime: 2024-07-05 09:31:26
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
96
         </el-form-item>
96
         </el-form-item>
97
       </el-form>
97
       </el-form>
98
     </el-dialog>
98
     </el-dialog>
99
-    <div slot="footer" class="dialog-footer" style="text-align: center;">
99
+    <!-- <div slot="footer" class="dialog-footer" style="text-align: center;">
100
       <el-button type="primary" @click="confirmPlanForm" :disabled="disabled">提 交</el-button>
100
       <el-button type="primary" @click="confirmPlanForm" :disabled="disabled">提 交</el-button>
101
-      <!-- <el-button @click="cancel" :disabled="disabled">取 消</el-button> -->
102
-    </div>
101
+      <el-button @click="cancel" :disabled="disabled">取 消</el-button>
102
+    </div> -->
103
   </div>
103
   </div>
104
 </template>
104
 </template>
105
 
105
 
230
     save() {
230
     save() {
231
       this.form.projectId = this.taskForm.formId;
231
       this.form.projectId = this.taskForm.formId;
232
       this.form.undertakingDept = this.form.deptId.join(',');
232
       this.form.undertakingDept = this.form.deptId.join(',');
233
-      console.log(this.form);
234
       updateProject(this.form)
233
       updateProject(this.form)
235
     },
234
     },
236
     confirmPlanForm() {
235
     confirmPlanForm() {
239
         cancelButtonText: '取消',
238
         cancelButtonText: '取消',
240
         type: 'warning'
239
         type: 'warning'
241
       }).then(() => {
240
       }).then(() => {
242
-        this.form.undertakingDept = this.form.deptId.join(',');
243
-        updateProject(this.form)
241
+        // this.form.undertakingDept = this.form.deptId.join(',');
242
+        // updateProject(this.form)
243
+        this.save();
244
         const params = { taskId: this.taskForm.taskId };
244
         const params = { taskId: this.taskForm.taskId };
245
         // 获取下一个流程节点
245
         // 获取下一个流程节点
246
         getNextFlowNode(params).then(res => {
246
         getNextFlowNode(params).then(res => {

+ 4
- 4
oa-ui/src/views/flowable/form/projectProcess/businessReview.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-04-08 13:56:14
3
  * @Date: 2024-04-08 13:56:14
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-30 11:27:44
5
+ * @LastEditTime: 2024-07-05 14:33:37
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
113
       const params = { taskId: this.taskForm.taskId };
113
       const params = { taskId: this.taskForm.taskId };
114
       // 获取下一个流程节点
114
       // 获取下一个流程节点
115
       getNextFlowNode(params).then(res => {
115
       getNextFlowNode(params).then(res => {
116
-        this.managerList.push(10)
117
-        this.managerList.push(7)
118
-        this.managerList = Array.from(new Set(this.managerList));
116
+        // this.managerList.push(10)
117
+        // this.managerList.push(7)
118
+        // this.managerList = Array.from(new Set(this.managerList));
119
         this.$set(this.taskForm.variables, "approvalList", this.managerList);
119
         this.$set(this.taskForm.variables, "approvalList", this.managerList);
120
         complete(this.taskForm).then(response => {
120
         complete(this.taskForm).then(response => {
121
           this.$modal.msgSuccess(response.msg);
121
           this.$modal.msgSuccess(response.msg);

+ 3
- 3
oa-ui/src/views/flowable/form/projectProcess/index.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-27 14:49:15
3
  * @Date: 2024-02-27 14:49:15
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-03 09:08:28
5
+ * @LastEditTime: 2024-07-05 09:31:03
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
14
             <addproject :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '项目登记'" @goBack="goBack">
14
             <addproject :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '项目登记'" @goBack="goBack">
15
             </addproject>
15
             </addproject>
16
           </el-tab-pane>
16
           </el-tab-pane>
17
-          <el-tab-pane label="项目安排" name="项目安排">
17
+          <!-- <el-tab-pane label="项目安排" name="项目安排">
18
             <arrangeProject :taskForm="taskForm" :taskName="'项目安排'" :disabled="taskName != '项目安排'" @goBack="goBack">
18
             <arrangeProject :taskForm="taskForm" :taskName="'项目安排'" :disabled="taskName != '项目安排'" @goBack="goBack">
19
             </arrangeProject>
19
             </arrangeProject>
20
-          </el-tab-pane>
20
+          </el-tab-pane> -->
21
           <el-tab-pane label="项目预算" name="项目预算">
21
           <el-tab-pane label="项目预算" name="项目预算">
22
             <budget-tab :taskForm="taskForm" @goBack="goBack"></budget-tab>
22
             <budget-tab :taskForm="taskForm" @goBack="goBack"></budget-tab>
23
           </el-tab-pane>
23
           </el-tab-pane>

正在加载...
取消
保存