Browse Source

修改项目生产、用车审批

余思翰 1 year ago
parent
commit
2f80a44aff

+ 6
- 4
oa-ui/src/views/flowable/form/budget/addBudget.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-25 15:05:59
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-22 18:48:24
5
+ * @LastEditTime: 2024-05-23 17:40:09
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -162,7 +162,7 @@
162 162
             <!-- 选择车辆 -->
163 163
             <el-form-item label="选择车辆:">
164 164
               <span v-if="chooseCar.length != 0">
165
-                <el-tag effect="plain" type="" v-for="item in chooseCar" style="margin: 5px; font-size: 14px"
165
+                <el-tag effect="plain" v-for="item in chooseCar" style="margin: 5px; font-size: 14px"
166 166
                   :key="item.licensePlate">
167 167
                   {{ item.licensePlate + item.brand }}
168 168
                 </el-tag>
@@ -372,7 +372,7 @@
372 372
         </div>
373 373
         <el-divider></el-divider>
374 374
         <div class="btn">
375
-          <el-button @click="activeStep -= 1" :disabled="activeStep == 0">上一步</el-button>
375
+          <el-button @click="activeStep -= 1" :disabled="activeStep == 0 || activeStep == 4">上一步</el-button>
376 376
           <el-button @click="confirmStep" type="primary" v-if="activeStep < 4">下一步</el-button>
377 377
           <el-button @click="submitComplete" type="primary" v-if="activeStep == 4">完成</el-button>
378 378
         </div>
@@ -701,7 +701,9 @@ export default {
701 701
       }
702 702
       for (let work of form.contentList) {
703 703
         work.budgetId = form.budgetId;
704
-        addBudgetSettle(work)
704
+        addBudgetSettle(work).then(res=>{
705
+          this.$message.success('预算添加成功')
706
+        })
705 707
       }
706 708
     },
707 709
     calculateThatCost() {

+ 22
- 14
oa-ui/src/views/flowable/form/budget/budgetInfo.vue View File

@@ -2,16 +2,17 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-03 16:28:09
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-22 19:10:22
5
+ * @LastEditTime: 2024-05-23 11:21:44
6 6
 -->
7 7
 <template>
8 8
   <div class="main">
9 9
     <h2 style="text-align: center">项目直接生产成本预算表</h2>
10
+    <p style="text-align: right;padding-right:80px;">编制人:{{ budgetForm.compilerUser? budgetForm.compilerUser.nickName: '' }}</p>
10 11
     <table border="1" class="table">
11 12
       <tr>
12 13
         <td style="width: 100px;">项目名称</td>
13 14
         <td colspan="6">{{ budgetForm.project ? budgetForm.project.projectName : '' }}</td>
14
-        <td>项目编号</td>
15
+        <td style="min-width: 100px;">项目编号</td>
15 16
         <td colspan="1">{{ budgetForm.project ? budgetForm.project.projectNumber : '' }}</td>
16 17
       </tr>
17 18
       <tr>
@@ -23,11 +24,11 @@
23 24
         <td>单位</td>
24 25
         <td>系数</td>
25 26
         <td>金额</td>
26
-        <td style="width: 250px;">备注</td>
27
+        <td style="min-width: 150px;">备注</td>
27 28
       </tr>
28 29
       <tr v-for="work in workList">
29 30
         <td>{{ work.content }}</td>
30
-        <td>{{ work.cmcPrice ? work.cmcPrice.workItem:''}}</td>
31
+        <td>{{ work.cmcPrice ? work.cmcPrice.workItem : '' }}</td>
31 32
         <td>{{ work.workload }}</td>
32 33
         <td>{{ work.price }}</td>
33 34
         <td>{{ work.unit }}</td>
@@ -132,11 +133,11 @@
132 133
         <td colspan="3" class="head">成本合计</td>
133 134
         <td colspan="5" class="head">{{ budgetForm.totalBudget }}</td>
134 135
       </tr>
135
-      <tr v-if="budgetForm.contract">
136
+      <tr v-if="contract.contractId">
136 137
         <td colspan="3" class="head">利润</td>
137 138
         <td colspan="2" class="head">{{ profit }}</td>
138 139
         <td colspan="3" class="head">合同总价约</td>
139
-        <td colspan="1" class="head">{{ budgetForm.contract ? budgetForm.contract.amount : '' }}</td>
140
+        <td colspan="1" class="head">{{ contract.contractId ? contract.amount : '' }}</td>
140 141
       </tr>
141 142
     </table>
142 143
   </div>
@@ -150,6 +151,8 @@ import { listBudgetSettle } from "@/api/oa/budget/budgetSettle";
150 151
 import { listBudgetStaff } from "@/api/oa/budget/budgetStaff";
151 152
 import { listProjectWork } from "@/api/oa/project/projectWork";
152 153
 import { mapGetters } from 'vuex';
154
+import { listProjectContract, addProjectContract } from "@/api/oa/contract/projectContract";
155
+import { listContract, getContract, delContract, addContract, updateContract } from "@/api/oa/contract/contract";
153 156
 export default {
154 157
   computed: {
155 158
     ...mapGetters(["name", "userId"]),
@@ -170,20 +173,17 @@ export default {
170 173
       carLen: 1,
171 174
       deviceLen: 1,
172 175
       workLen: 1,
173
-      totalBudget: 0,
174 176
       chooseCar: [],
175 177
       chooseDevice: [],
176 178
       chooseUser: [],
177 179
       workList: [],
178
-      workContentList: []
180
+      workContentList: [],
181
+      contract: {},
182
+      profit: 0
179 183
     };
180 184
   },
181 185
   created() {
182 186
     this.initBudgetForm();
183
-    this.totalBudget = (
184
-      (Number(this.budgetForm.directExpense) + Number(this.budgetForm.fixCost)) *
185
-      1.2
186
-    ).toFixed(2);
187 187
   },
188 188
   methods: {
189 189
     initBudgetForm() {
@@ -204,7 +204,6 @@ export default {
204 204
           this.budgetForm.inOutPriceSum = Number(days) * Number(this.chooseUser[0].inOutPrice)
205 205
         })
206 206
         listBudgetCar({ budgetId: this.budgetForm.budgetId }).then(res => {
207
-          console.log(res.rows);
208 207
           this.chooseCar = res.rows;
209 208
           this.carLen = res.rows.length + 1;
210 209
         })
@@ -225,10 +224,19 @@ export default {
225 224
           }
226 225
           this.getProjectWorkList();
227 226
         })
227
+        listProjectContract({ projectId: this.taskForm.formId }).then(res => {
228
+          console.log(res);
229
+          if (res.total == 1) {
230
+            getContract(res.rows[0].contractId).then(response => {
231
+              this.contract = response.data;
232
+              this.profit = Number(this.contract.amount) - Number(this.budgetForm.totalBudget)
233
+            })
234
+          }
235
+        })
228 236
       });
229 237
     },
230 238
     getProjectWorkList() {
231
-      listProjectWork({ projectId: this.$route.query.formId }).then(res => {
239
+      listProjectWork({ projectId: this.taskForm.formId }).then(res => {
232 240
         this.workContentList = res.rows;
233 241
       })
234 242
     },

+ 3
- 3
oa-ui/src/views/flowable/form/budget/components/chooseCar.vue View File

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-27 11:10:16
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-05-22 17:55:15
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-23 15:37:34
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -20,7 +20,7 @@
20 20
     <el-table ref="chooseCar" :data="list" @selection-change="handleSelectionChange" :row-key="getRowKeys">
21 21
       <el-table-column type="selection" width="50" align="center" :reserve-selection="true" />
22 22
       <el-table-column label="车牌号" align="center" prop="licensePlate" />
23
-      <el-table-column label="驾驶员" align="center" prop="driver" />
23
+      <el-table-column label="驾驶员" align="center" prop="driverUser.nickName" />
24 24
       <el-table-column label="品牌" align="center" prop="brand" />
25 25
       <el-table-column label="单日成本" align="center" prop="dayCost" />
26 26
     </el-table>

+ 15
- 5
oa-ui/src/views/flowable/form/budget/components/choosePeople.vue View File

@@ -6,7 +6,7 @@
6 6
       </el-form-item>
7 7
       <el-form-item label="部门:">
8 8
         <el-select v-model="queryParams.deptId" clearable @change="getList">
9
-          <el-option v-for="item in deptList" :key="item.id" :label="item.label" :value="item.id">
9
+          <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
10 10
           </el-option>
11 11
         </el-select>
12 12
       </el-form-item>
@@ -53,8 +53,14 @@
53 53
 
54 54
 <script>
55 55
 import { listUser, deptTreeSelect } from "@/api/system/user";
56
+import { listDept } from "@/api/system/dept";
56 57
 export default {
57 58
   dicts: ['sys_normal_disable', 'sys_user_sex', 'sys_user_titles', 'sys_user_certificates', 'sys_user_pmlevel', 'sys_user_postlevel', 'sys_user_salarylevel'],
59
+  props: {
60
+    deptId: {
61
+      type: Number
62
+    }
63
+  },
58 64
   data() {
59 65
     return {
60 66
       queryParams: {
@@ -70,6 +76,7 @@ export default {
70 76
     }
71 77
   },
72 78
   created() {
79
+    this.queryParams.deptId = this.deptId
73 80
     this.getList();
74 81
     this.getDeptTree();
75 82
   },
@@ -84,10 +91,13 @@ export default {
84 91
     },
85 92
     /** 查询部门 */
86 93
     getDeptTree() {
87
-      deptTreeSelect().then(response => {
88
-        this.deptOptions = response.data;
89
-        this.deptList = response.data[0].children
90
-      });
94
+      // deptTreeSelect().then(response => {
95
+      //   this.deptOptions = response.data;
96
+      //   this.deptList = response.data[0].children
97
+      // });
98
+      listDept().then(res => {
99
+        this.deptList = res.data.filter(item => item.deptName != '四川中水成勘院测绘工程有限责任公司')
100
+      })
91 101
     },
92 102
     // 格式化表格里的薪资岗级
93 103
     formatLevel(postLevel, salaryLevel, postLevelList, salaryLevelList) {

+ 103
- 51
oa-ui/src/views/flowable/form/oa/carForm.vue View File

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-29 11:44:28
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-05-22 18:54:31
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-23 19:22:26
6 6
 -->
7 7
 
8 8
 <template>
@@ -46,25 +46,27 @@
46 46
                 </el-radio-group>
47 47
               </el-form-item>
48 48
               <el-form-item label="项目编号:" prop="projectId" v-if="form.carUsage == '0'">
49
-                <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
49
+                <el-button type="primary" size="mini" @click="openProject = true"
50
+                  v-if="taskName == '用车申请'">选择项目</el-button>
51
+                <!-- <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
50 52
                   :disabled="taskName != '用车申请'" clearable>
51 53
                   <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
52 54
                     :value="item.projectId">
53 55
                   </el-option>
54
-                </el-select>
56
+                </el-select> -->
55 57
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
56 58
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
57
-                  }}</el-descriptions-item>
59
+                    }}</el-descriptions-item>
58 60
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
59
-                  }}</el-descriptions-item>
61
+                    }}</el-descriptions-item>
60 62
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
61
-                    chooseProject.projectLeaderUser.nickName : ''
62
-                  }}</el-descriptions-item>
63
+    chooseProject.projectLeaderUser.nickName : ''
64
+                    }}</el-descriptions-item>
63 65
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
64 66
                     <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
65 67
                   </el-descriptions-item>
66 68
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
67
-                  }}</el-descriptions-item>
69
+                    }}</el-descriptions-item>
68 70
                 </el-descriptions>
69 71
               </el-form-item>
70 72
               <el-form-item label="用车事由:" prop="applyReason">
@@ -75,7 +77,8 @@
75 77
               <el-row>
76 78
                 <el-col :span="7" :xs="24">
77 79
                   <el-form-item label="乘车人数:" prop="passengers">
78
-                    <el-input-number v-model="form.passengers" :min="1" :disabled="taskName != '用车申请'"></el-input-number>
80
+                    <el-input-number v-model="form.passengers" :min="1"
81
+                      :disabled="taskName != '用车申请'"></el-input-number>
79 82
                   </el-form-item>
80 83
                 </el-col>
81 84
                 <el-col :span="6" :xs="24">
@@ -195,19 +198,15 @@
195 198
                 <el-checkbox-group v-model="form.cars" :disabled="taskName != '安排用车'">
196 199
                   <el-checkbox :label="item.carId" v-for="item in carList" :key="item.carId" :value="item.carId"
197 200
                     v-if="item.remark == null">
198
-                    {{ item.licensePlate }}
201
+                    {{ item.licensePlate + item.brand }}
199 202
                   </el-checkbox>
200 203
                 </el-checkbox-group>
201 204
               </el-form-item>
202 205
               <el-form-item label="驾驶员:">
203
-                <!-- <el-checkbox-group v-model="form.drivers" :disabled="taskName != '安排用车'"
204
-                  v-if="chooseOtherDrivers == false">
205
-                  <el-checkbox :label="item.userId" v-for="item in driverList" :key="item.userId" :value="item.userId">
206
-                    {{ item.nickName }}
207
-                  </el-checkbox>
208
-                </el-checkbox-group> -->
209
-                <el-select v-model="form.drivers" filterable multiple clearable style="width:220px"
210
-                  :disabled="taskName != '安排用车'">
206
+                <el-tag :key="'d' + index" class="mr10" v-for="item, index in chooseDriver">{{ item.nickName }}</el-tag>
207
+                <el-button v-if="taskName == '安排用车'" icon="el-icon-plus" @click="openCar = true"></el-button>
208
+                <el-select v-if="taskName != '安排用车'" v-model="form.drivers" filterable multiple clearable
209
+                  style="width:420px" :disabled="taskName != '安排用车'">
211 210
                   <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
212 211
                     v-if="item.nickName != 'admin'">
213 212
                   </el-option>
@@ -219,7 +218,7 @@
219 218
             </el-row>
220 219
             <el-row style="text-align: center;" v-else>
221 220
               <el-button type="primary" :disabled="taskName == ''" @click="completeApply">{{ taskName == '申请确认' ? "确认" :
222
-                "完成审批" }}</el-button>
221
+    "完成审批" }}</el-button>
223 222
             </el-row>
224 223
           </div>
225 224
         </el-card>
@@ -234,7 +233,12 @@
234 233
         </el-card>
235 234
       </el-col>
236 235
     </el-row>
237
-
236
+    <el-dialog title="选择驾驶员" :visible.sync="openCar" width="700px" append-to-body>
237
+      <choose-user :deptId="200" @chooseUser="getChooseDriver"></choose-user>
238
+    </el-dialog>
239
+    <el-dialog title="选择项目" :visible.sync="openProject" width="70%" append-to-body>
240
+      <project-choose @chooseProject="confirmProject"></project-choose>
241
+    </el-dialog>
238 242
   </div>
239 243
 </template>
240 244
 
@@ -250,9 +254,13 @@ import flow from '@/views/flowable/task/todo/detail/flow'
250 254
 import { flowXmlAndNode } from "@/api/flowable/definition";
251 255
 import { listUser } from '@/api/system/user';
252 256
 import { getUserByRole } from "@/api/system/role";
257
+import chooseUser from "@/views/flowable/form/budget/components/choosePeople.vue";
258
+import projectChoose from '@/views/flowable/form/components/chooseProject.vue';
253 259
 export default {
254 260
   components: {
255
-    flow
261
+    flow,
262
+    chooseUser,
263
+    projectChoose
256 264
   },
257 265
   props: {
258 266
     taskName: {
@@ -348,7 +356,10 @@ export default {
348 356
       flowData: {},
349 357
       dept: 0,
350 358
       dgtAdvice: '审核意见',//党工团审核意见的label
351
-      userList: []
359
+      userList: [],
360
+      chooseDriver: [],
361
+      openCar: false,
362
+      openProject: false,
352 363
     }
353 364
   },
354 365
   mounted() {
@@ -372,10 +383,13 @@ export default {
372 383
           let data = res.data;
373 384
           // 初始化党工团审核意见的label
374 385
           if (data.carUsage == '2') {
386
+            this.dept = 0;
375 387
             this.dgtAdvice = '工会审核意见'
376 388
           } else if (data.carUsage == '3') {
389
+            this.dept = 0;
377 390
             this.dgtAdvice = '党委审核意见'
378
-          } else {
391
+          } else if (data.carUsage == '4') {
392
+            this.dept = 0;
379 393
             this.dgtAdvice = '团委审核意见'
380 394
           }
381 395
           if (res.data.drivers == null || res.data.drivers == undefined || res.data.drivers == "") {
@@ -399,6 +413,7 @@ export default {
399 413
             data.cars = arr;
400 414
           }
401 415
           this.form = data;
416
+          console.log(this.form);
402 417
           if (data.projectId) {
403 418
             getProject(data.projectId).then(response => {
404 419
               this.chooseProject = response.data;
@@ -413,6 +428,7 @@ export default {
413 428
       this.$refs['carForm'].validate((valid) => {
414 429
         if (valid) {
415 430
           this.form.carApplyId = this.taskForm.formId;
431
+          this.form.drivers = this.chooseDriver;
416 432
           let formData = new FormData();
417 433
           let jsonForm = JSON.stringify(this.form);
418 434
           formData.append("form", jsonForm);
@@ -424,7 +440,7 @@ export default {
424 440
             this.form.drivers = '';
425 441
             addCarApproval(this.form);
426 442
           }
427
-          // 获取下一个流程节点
443
+          // // 获取下一个流程节点
428 444
           getNextFlowNode(params).then(res => {
429 445
             const data = res.data;
430 446
             this.taskForm.formData = formData;
@@ -451,33 +467,38 @@ export default {
451 467
     // 获取下一个审批人
452 468
     getNextFlowNodeApproval() {
453 469
       if (this.taskName == '用车申请') {
454
-        getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
455
-          this.$set(this.taskForm.variables, "dept", this.dept);
456
-          if (res.data && this.dept != 0) {
457
-            this.$set(this.taskForm.variables, "approval", res.data.userId);
470
+        this.$set(this.taskForm.variables, "dept", this.dept);
471
+        if (this.dept == 102) {
472
+          getUserByPost({ postName: '总经理' }).then(result => {
473
+            this.$set(this.taskForm.variables, "approval", result.data[0].userId);
458 474
             complete(this.taskForm).then(response => {
459 475
               this.$modal.msgSuccess(response.msg);
460 476
               this.$emit('goBack')
461 477
             })
462
-          } else if (this.dept == 102) {
463
-            getUserByPost({ postName: '总经理' }).then(result => {
464
-              this.$set(this.taskForm.variables, "approval", result.data[0].userId);
465
-              complete(this.taskForm).then(response => {
466
-                this.$modal.msgSuccess(response.msg);
467
-                this.$emit('goBack')
468
-              })
478
+          })
479
+        }
480
+        else if (this.dept == 0) {
481
+          let postName = this.getChooseType()
482
+          getUserByPost({ postName: postName }).then(result => {
483
+            this.$set(this.taskForm.variables, "approval", result.data[0].userId);
484
+            complete(this.taskForm).then(response => {
485
+              this.$modal.msgSuccess(response.msg);
486
+              this.$emit('goBack')
469 487
             })
470
-          } else {
471
-            let postName = this.getChooseType()
472
-            getUserByPost({ postName: postName }).then(result => {
473
-              this.$set(this.taskForm.variables, "approval", result.data[0].userId);
488
+          })
489
+        }
490
+        else {
491
+          getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
492
+            debugger
493
+            if (res.data) {
494
+              this.$set(this.taskForm.variables, "approval", res.data.userId);
474 495
               complete(this.taskForm).then(response => {
475 496
                 this.$modal.msgSuccess(response.msg);
476 497
                 this.$emit('goBack')
477 498
               })
478
-            })
479
-          }
480
-        })
499
+            }
500
+          })
501
+        }
481 502
       } else if (this.taskName == '部门审核') {
482 503
         getUsersManageLeader({ userId: this.$store.getters.userId }).then(res => {
483 504
           let userId = res.data.userId;
@@ -556,6 +577,29 @@ export default {
556 577
         this.userList = res.rows
557 578
       })
558 579
     },
580
+
581
+    getChooseDriver(val) {
582
+      this.chooseDriver = val;
583
+      if (val.length != 0) {
584
+        let drivers = []
585
+        for (let d of this.chooseDriver) {
586
+          drivers.push(d.userId)
587
+        }
588
+        this.form.drivers = drivers;
589
+      }
590
+      this.openCar = false;
591
+    },
592
+    confirmProject(val) {
593
+      if (val.length > 1) {
594
+        this.$message.error('请选择一个项目');
595
+        return
596
+      } else if (val.length == 1) {
597
+        this.chooseProject = val[0]
598
+        this.isSelect = true
599
+        this.form.projectId = val[0].projectId
600
+      }
601
+      this.openProject = false
602
+    },
559 603
     calculateDay() {
560 604
       if (this.form.beginDate && this.form.endDate) {
561 605
         let y1 = new Date(this.form.beginDate);
@@ -591,21 +635,29 @@ export default {
591 635
     showFormItem(name) {
592 636
       let isShow = false;
593 637
       if (name == '部门审核')
594
-        isShow = (this.dept > 102 && this.taskName == '用车申请') || (this.taskName == '部门审核' || this.taskName == '分管审核') || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.deptUserId != null);
638
+        isShow = (this.dept > 102 && this.taskName == '用车申请') || (this.taskName == '部门审核' || this.taskName == '分管审核') || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.deptUserId != null)
639
+          || (this.dept > 102 && this.taskName == '' && (this.form.carUsage == '0' || this.form.carUsage == '1'));
595 640
       else if (name == '分管审核')
596
-        isShow = (this.dept > 102 && this.taskName == '用车申请') || (this.taskName == '部门审核' || this.taskName == '分管审核') || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.managerUserId != null);
641
+        isShow = (this.dept > 102 && this.taskName == '用车申请') || (this.taskName == '部门审核' || this.taskName == '分管审核') || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.managerUserId != null)
642
+          || (this.dept > 102 && this.taskName == '' && (this.form.carUsage == '0' || this.form.carUsage == '1'));
597 643
       else if (name == '党工团审核')
598
-        isShow = (this.dept == 0 && this.taskName == '用车申请') || this.taskName == '党工团审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.unionUserId != null);
644
+        isShow = (this.dept == 0 && this.taskName == '用车申请') || this.taskName == '党工团审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.unionUserId != null)
645
+          || (this.dept == 0 && this.taskName == '' && (this.form.carUsage == 2 || this.form.carUsage == 3 || this.form.carUsage == 4));
599 646
       else if (name == '总经理审核')
600
-        isShow = (this.dept == 102 && this.taskName == '用车申请') || this.taskName == '总经理审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.gmUserId != null);
647
+        isShow = (this.dept == 102 && this.taskName == '用车申请') || this.taskName == '总经理审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.gmUserId != null)
648
+          || (this.dept == 102 && this.taskName == '' && (this.form.carUsage == '0' || this.form.carUsage == '1'));
601 649
       else if (name == '部门审核签名')
602
-        isShow = (this.taskName == '部门审核' || this.taskName == '分管审核') || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.deptUserId != null);
650
+        isShow = (this.taskName == '部门审核' || this.taskName == '分管审核') || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.deptUserId != null)
651
+          || (this.dept > 102 && this.taskName == '' && (this.form.carUsage == '0' || this.form.carUsage == '1'));
603 652
       else if (name == '分管审核签名')
604
-        isShow = this.taskName == '分管审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.managerUserId != null);
653
+        isShow = this.taskName == '分管审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.managerUserId != null)
654
+          || (this.dept > 102 && this.taskName == '' && (this.form.carUsage == '0' || this.form.carUsage == '1'));
605 655
       else if (name == '党工团审核签名')
606
-        isShow = this.taskName == '党工团审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.unionUserId != null);
656
+        isShow = this.taskName == '党工团审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.unionUserId != null)
657
+          || (this.dept == 0 && this.taskName == '' && (this.form.carUsage == 2 || this.form.carUsage == 3 || this.form.carUsage == 4));
607 658
       else if (name == '总经理审核签名')
608
-        isShow = this.taskName == '总经理审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.gmUserId != null);
659
+        isShow = this.taskName == '总经理审核' || ((this.taskName == '安排用车' || this.taskName == '申请确认') && this.form.gmUserId != null)
660
+          || (this.dept == 102 && this.taskName == '' && (this.form.carUsage == '0' || this.form.carUsage == '1'));
609 661
       return isShow;
610 662
     },
611 663
   },

+ 12
- 16
oa-ui/src/views/flowable/form/projectProcess/addproject.vue View File

@@ -2,15 +2,8 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 11:00:04
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-22 13:51:57
5
+ * @LastEditTime: 2024-05-23 10:23:07
6 6
 -->
7
-<!--
8
- * @Author: ysh
9
- * @Date: 2024-02-27 14:49:15
10
- * @LastEditors: Please set LastEditors
11
- * @LastEditTime: 2024-05-22 11:00:26
12
--->
13
-
14 7
 <template>
15 8
   <div class="project-wrapper">
16 9
     <!-- 项目登记 -->
@@ -175,7 +168,7 @@ export default {
175 168
   },
176 169
   data() {
177 170
     return {
178
-      openContract:false,
171
+      openContract: false,
179 172
       registerTime: undefined,
180 173
       // 查询参数
181 174
       queryParams: {
@@ -195,7 +188,7 @@ export default {
195 188
         projectRegistrant: "",
196 189
         projectSource: "0"
197 190
       },
198
-      chooseContractInfo:{},
191
+      chooseContractInfo: {},
199 192
       contractCode: "",
200 193
       contractNumber: "",
201 194
       rules: {
@@ -249,7 +242,7 @@ export default {
249 242
         this.loading = false;
250 243
       });
251 244
     },
252
-    
245
+
253 246
     getProjectInfo() {
254 247
       getProject(this.taskForm.formId).then(res => {
255 248
         this.addForm = res.data;
@@ -282,7 +275,7 @@ export default {
282 275
         }
283 276
       })
284 277
     },
285
-    setContract(val){
278
+    setContract(val) {
286 279
       this.chooseContractInfo = val;
287 280
       this.openContract = false;
288 281
     },
@@ -296,10 +289,13 @@ export default {
296 289
         this.$modal.msgSuccess("新增成功");
297 290
         this.getList();
298 291
       });
299
-      let pcobj = {projectId:this.taskForm.formId,contractId:this.chooseContractInfo.contractId}
300
-      addProjectContract(pcobj).then(response =>{
301
-        this.$modal.msgSuccess("合同关联成功");
302
-      })
292
+      let contractId = this.chooseContractInfo.contractId ? this.chooseContractInfo.contractId : ''
293
+      let pcobj = { projectId: this.taskForm.formId, contractId }
294
+      if (contractId != '') {
295
+        addProjectContract(pcobj).then(response => {
296
+          this.$modal.msgSuccess("合同关联成功");
297
+        })
298
+      }
303 299
       const params = { taskId: this.taskForm.taskId };
304 300
       // 获取下一个流程节点
305 301
       getNextFlowNode(params).then(res => {

+ 52
- 31
oa-ui/src/views/flowable/form/projectProcess/inProgress.vue View File

@@ -2,11 +2,10 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-15 09:35:41
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-20 17:58:13
5
+ * @LastEditTime: 2024-05-23 17:41:35
6 6
 -->
7 7
 <template>
8 8
   <div>
9
-    <!-- <el-skeleton animated :rows="20" v-if="loading" class="app-container" /> -->
10 9
     <div class="app-container">
11 10
       <h2 style="text-align: center">项目运作情况</h2>
12 11
       <div class="headers">
@@ -14,30 +13,18 @@
14 13
         <div class="line"></div>
15 14
       </div>
16 15
       <el-form ref="progress" :model="form" :disabled="disabled" label-width="100px">
17
-        <el-row :gutter="20" v-if="!noBudget">
18
-          <el-col :span="11">
19
-            <el-form-item label="使用车辆(车牌号):" label-width="153px">
20
-              {{ form.licensePlate }}
21
-            </el-form-item>
22
-          </el-col>
23
-          <el-col :span="11">
24
-            <el-form-item label="驾驶员:">
25
-              <el-select v-model="form.driver" filterable multiple clearable style="width:220px">
26
-                <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
27
-                  v-if="item.nickName != 'admin'">
28
-                </el-option>
29
-              </el-select>
30
-            </el-form-item>
31
-
32
-          </el-col>
33
-        </el-row>
34
-        <el-form-item label="参与人员:" v-if="!noBudget">
35
-          {{ form.staff }}
16
+        <el-form-item label="参与人员:">
17
+          <el-tag class="mr10" :key="item" v-for="item in participates">{{ item.nickName }}</el-tag>
18
+          <el-button class="ml10" @click="openPeople = true" type="primary" size="mini" icon="el-icon-plus"></el-button>
19
+        </el-form-item>
20
+        <el-form-item label="驾驶员:">
21
+          <el-tag class="mr10" :key="item" v-for="item in chooseDriver">{{ item.nickName }}</el-tag>
22
+          <el-button class="ml10" @click="openDriver = true" type="primary" size="mini" icon="el-icon-plus"></el-button>
23
+        </el-form-item>
24
+        <el-form-item label="使用车辆:">
25
+          <el-tag class="mr10" :key="item.licensePlate" v-for="item in chooseCar">{{ item.licensePlate + item.brand }}</el-tag>
26
+          <el-button class="ml10" @click="openCar = true" type="primary" size="mini" icon="el-icon-plus"></el-button>
36 27
         </el-form-item>
37
-        <div v-if="noBudget" class="mb20">
38
-          <el-alert title="项目未做预算表,请先编制预算表" type="warning" :closable="false">
39
-          </el-alert>
40
-        </div>
41 28
         <el-row :gutter="20">
42 29
           <el-col :span="11">
43 30
             <el-form-item label="进场时间:">
@@ -56,7 +43,7 @@
56 43
           <table border="1">
57 44
             <tr>
58 45
               <td style="width: 80px">序号</td>
59
-              <td>截日期</td>
46
+              <td>截日期</td>
60 47
               <td>累计总进度(%)</td>
61 48
               <td style="width: 300px">情况说明</td>
62 49
             </tr>
@@ -104,6 +91,18 @@
104 91
         <el-button type="primary" @click="submitNextFlow()" :disabled="disabled">项目结束</el-button>
105 92
       </div>
106 93
     </div>
94
+    <!-- 选择人员对话框 -->
95
+    <el-dialog title="选择人员" :visible.sync="openPeople" width="700px" append-to-body>
96
+      <choosePeople @chooseUser="getChooseUser"></choosePeople>
97
+    </el-dialog>
98
+    <!-- 选择车辆对话框 -->
99
+    <el-dialog title="选择车辆" :visible.sync="openCar" width="700px" append-to-body>
100
+      <choose-car @chooseList="getChooseCar"></choose-car>
101
+    </el-dialog>
102
+    <!-- 选择司机对话框 -->
103
+    <el-dialog title="选择驾驶员" :visible.sync="openDriver" width="700px" append-to-body>
104
+      <choosePeople @chooseUser="getChooseDriver"></choosePeople>
105
+    </el-dialog>
107 106
   </div>
108 107
 </template>
109 108
 
@@ -140,10 +139,15 @@ import { getCar } from "@/api/oa/car/car";
140 139
 import { listUser } from '@/api/system/user';
141 140
 import borrowData from '../inProgress/borrowData.vue';
142 141
 import SettleData from '../inProgress/settleData.vue';
142
+import ChoosePeople from '../budget/components/choosePeople.vue';
143
+import ChooseCar from '../budget/components/chooseCar.vue';
144
+import ChooseDevice from "../budget/components/chooseDevice.vue";
143 145
 export default {
144 146
   components: {
145 147
     borrowData,
146
-    SettleData
148
+    SettleData,
149
+    ChoosePeople,
150
+    ChooseCar
147 151
   },
148 152
   computed: {
149 153
     ...mapGetters(["name", "userId"]),
@@ -165,6 +169,9 @@ export default {
165 169
   data() {
166 170
     return {
167 171
       loading: true,
172
+      openPeople: false,
173
+      openDriver: false,
174
+      openCar: false,
168 175
       form: {
169 176
         licensePlate: "",
170 177
         driver: [],
@@ -183,21 +190,23 @@ export default {
183 190
         },
184 191
       ],
185 192
       oldProgressList: [],
186
-      noBudget: true,
187 193
       budgetId: "",
188
-      userList: []
194
+      userList: [],
195
+      participates: [],
196
+      chooseCar: [],
197
+      chooseDriver: []
189 198
     };
190 199
   },
191 200
   watch: {
192 201
     taskName(newval, oldval) {
193 202
       if (newval == "项目生产") {
194
-        this.doesItExistBudget(this.taskForm.formId);
203
+        // this.doesItExistBudget(this.taskForm.formId);
195 204
       }
196 205
     },
197 206
   },
198 207
   created() {
199 208
     if (this.taskName == "项目生产") {
200
-      this.doesItExistBudget(this.taskForm.formId);
209
+      // this.doesItExistBudget(this.taskForm.formId);
201 210
       this.initProgress();
202 211
       this.getUserList();
203 212
     }
@@ -217,6 +226,18 @@ export default {
217 226
         }
218 227
       });
219 228
     },
229
+    getChooseUser(val) {
230
+      this.participates = val;
231
+      this.openPeople = false;
232
+    },
233
+    getChooseCar(val) {
234
+      this.chooseCar = val;
235
+      this.openCar = false;
236
+    },
237
+    getChooseDriver(val) {
238
+      this.chooseDriver = val;
239
+      this.openDriver = false;
240
+    },
220 241
     // 查询是否有预算表
221 242
     doesItExistBudget(projectId) {
222 243
       listBudget({ projectId }).then(res => {

+ 37
- 6
oa-ui/src/views/flowable/form/projectProcess/technicalTab.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-19 15:32:00
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-19 17:33:30
5
+ * @LastEditTime: 2024-05-23 14:35:16
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -53,7 +53,9 @@
53 53
           </el-col>
54 54
         </el-row>
55 55
         <el-form-item label="技术方案" prop="technicalDocument">
56
-          <el-input v-model="form.technicalDocument" placeholder="请输入技术方案" />
56
+          <el-link :href="`${baseUrl}${'/profile/upload' + form.technicalDocument}`" :underline="false" target="_blank">
57
+            <span class="el-icon-document" style="color:#00f"> {{ getFileName(form.technicalDocument) }} </span>
58
+          </el-link>
57 59
         </el-form-item>
58 60
         <el-form-item label="方案说明" prop="designDescription">
59 61
           <el-input type="textarea" v-model="form.designDescription" placeholder="请输入方案说明" />
@@ -70,6 +72,11 @@
70 72
             </el-form-item>
71 73
           </el-col>
72 74
         </el-row>
75
+        <el-form-item label="修改技术方案" prop="modifyDocument">
76
+          <el-link :href="`${baseUrl}${'/profile/upload' + form.modifyDocument}`" :underline="false" target="_blank">
77
+            <span class="el-icon-document" style="color:#00f"> {{ getFileName(form.modifyDocument) }} </span>
78
+          </el-link>
79
+        </el-form-item>
73 80
         <el-form-item label="技术部审核意见" prop="technicalComment">
74 81
           <el-input type="textarea" v-model="form.technicalComment" placeholder="请输入技术审核意见" />
75 82
         </el-form-item>
@@ -85,6 +92,11 @@
85 92
             </el-form-item>
86 93
           </el-col>
87 94
         </el-row>
95
+        <el-form-item label="最终技术方案" prop="finalDocument">
96
+          <el-link :href="`${baseUrl}${'/profile/upload' + form.finalDocument}`" :underline="false" target="_blank">
97
+            <span class="el-icon-document" style="color:#00f"> {{ getFileName(form.finalDocument) }} </span>
98
+          </el-link>
99
+        </el-form-item>
88 100
         <el-form-item label="总工程师审核意见" prop="manageComment">
89 101
           <el-input type="textarea" v-model="form.manageComment" placeholder="请输入总工审核意见" />
90 102
         </el-form-item>
@@ -96,7 +108,7 @@
96 108
           </el-col>
97 109
           <el-col :span="6">
98 110
             <el-form-item label="日期:" label-width="120px">
99
-              <span> {{ form.manageApprovalTime  }} </span>
111
+              <span> {{ form.manageApprovalTime }} </span>
100 112
             </el-form-item>
101 113
           </el-col>
102 114
         </el-row>
@@ -131,16 +143,17 @@ export default {
131 143
       return this.$store.state.projectProcess.projectName;
132 144
     },
133 145
   },
134
-  watch:{
135
-    projectNumber(newval){
146
+  watch: {
147
+    projectNumber(newval) {
136 148
       this.$set(this.form, "projectNumber", newval);
137 149
     },
138
-    projectName(newval){
150
+    projectName(newval) {
139 151
       this.$set(this.form, "projectName", newval);
140 152
     }
141 153
   },
142 154
   data() {
143 155
     return {
156
+      baseUrl:process.env.VUE_APP_BASE_API,
144 157
       haveTechnical: false,
145 158
       form: {},
146 159
       rules: {},
@@ -160,6 +173,18 @@ export default {
160 173
           this.form = res.data;
161 174
           this.$set(this.form, "projectNumber", this.projectNumber);
162 175
           this.$set(this.form, "projectName", this.projectName);
176
+          let data = res.data;
177
+          if (res.data.qualityInspector == null || res.data.qualityInspector == undefined || res.data.qualityInspector == "") {
178
+            data.qualityInspector = []
179
+          } else {
180
+            let arr = []
181
+            data.qualityInspector = data.qualityInspector.split(',');
182
+            for (let inspector of data.qualityInspector) {
183
+              arr.push(parseInt(inspector))
184
+            }
185
+            data.qualityInspector = arr
186
+          }
187
+          this.$set(this.form, "qualityInspector", data.qualityInspector);
163 188
         }
164 189
       });
165 190
     },
@@ -169,6 +194,12 @@ export default {
169 194
         this.userList = res.rows;
170 195
       });
171 196
     },
197
+    getFileName(name) {
198
+      if (name) {
199
+        let arr = name.split('/')
200
+        return arr[arr.length - 1];
201
+      }
202
+    },
172 203
   },
173 204
 };
174 205
 </script>

+ 53
- 11
oa-ui/src/views/flowable/form/technicalForm.vue View File

@@ -7,17 +7,17 @@
7 7
             <el-input v-model="chooseProject.projectNumber" placeholder="请输入项目编号" disabled style="width: 300px" />
8 8
             <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
9 9
               <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
10
-              }}</el-descriptions-item>
10
+                }}</el-descriptions-item>
11 11
               <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
12
-              }}</el-descriptions-item>
12
+                }}</el-descriptions-item>
13 13
               <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
14
-                chooseProject.projectLeaderUser.nickName : ''
15
-              }}</el-descriptions-item>
14
+      chooseProject.projectLeaderUser.nickName : ''
15
+                }}</el-descriptions-item>
16 16
               <el-descriptions-item label="承担部门" label-class-name="my-label">
17 17
                 <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
18 18
               </el-descriptions-item>
19 19
               <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
20
-              }}</el-descriptions-item>
20
+                }}</el-descriptions-item>
21 21
             </el-descriptions>
22 22
           </el-form-item>
23 23
           <el-row>
@@ -53,7 +53,8 @@
53 53
             </el-col>
54 54
           </el-row>
55 55
           <el-form-item label="技术安排意见" prop="planComment">
56
-            <el-input type="textarea" v-model="form.planComment" placeholder="请输入技术安排意见" :disabled="taskName != '技术安排'" />
56
+            <el-input type="textarea" v-model="form.planComment" placeholder="请输入技术安排意见"
57
+              :disabled="taskName != '技术安排'" />
57 58
           </el-form-item>
58 59
           <el-row>
59 60
             <el-col :span="6" :xs="24" :offset="12">
@@ -69,7 +70,12 @@
69 70
           </el-row>
70 71
           <el-divider></el-divider>
71 72
           <el-form-item label="技术方案" prop="technicalDocument">
72
-            <el-input v-model="form.technicalDocument" placeholder="请输入技术方案" :disabled="taskName != '方案上传'" />
73
+            <FileUpload v-if="taskName == '方案上传'" ref="bsFile" :limit="1" :filePathName="'技术方案/初始'"
74
+              :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getTechnicalDoc"></FileUpload>
75
+            <el-link v-if="taskName != '方案上传'" :href="`${baseUrl}${'/profile/upload' + form.technicalDocument}`"
76
+              :underline="false" target="_blank">
77
+              <span class="el-icon-document"> {{ getFileName(form.technicalDocument) }} </span>
78
+            </el-link>
73 79
           </el-form-item>
74 80
           <el-form-item label="方案说明" prop="designDescription">
75 81
             <el-input type="textarea" v-model="form.designDescription" placeholder="请输入方案说明"
@@ -89,7 +95,12 @@
89 95
           </el-row>
90 96
           <el-divider></el-divider>
91 97
           <el-form-item label="修改技术方案" prop="modifyDocument">
92
-            <el-input v-model="form.modifyDocument" placeholder="请输入修改技术方案" :disabled="taskName != '技术审核'" />
98
+            <FileUpload v-if="taskName == '技术审核'" ref="jssh" :limit="1" :filePathName="'技术方案/修改'"
99
+              :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getModifyDoc"></FileUpload>
100
+            <el-link v-if="taskName != '技术审核'" :href="`${baseUrl}${'/profile/upload' + form.modifyDocument}`"
101
+              :underline="false" target="_blank">
102
+              <span class="el-icon-document"> {{ getFileName(form.modifyDocument) }} </span>
103
+            </el-link>
93 104
           </el-form-item>
94 105
           <el-form-item label="技术部审核意见" prop="technicalComment">
95 106
             <el-input type="textarea" v-model="form.technicalComment" placeholder="请输入技术审核意见"
@@ -108,7 +119,12 @@
108 119
             </el-col>
109 120
           </el-row>
110 121
           <el-form-item label="最终技术方案" prop="finalDocument">
111
-            <el-input v-model="form.finalDocument" placeholder="请输入最终技术方案" :disabled="taskName != '总工审核'" />
122
+            <FileUpload v-if="taskName == '总工审核'" ref="final" :limit="1" :filePathName="'技术方案/最终'"
123
+              :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getFinalDoc"></FileUpload>
124
+            <el-link v-if="taskName != '总工审核'" :href="`${baseUrl}${'/profile/upload' + form.finalDocument}`"
125
+              :underline="false" target="_blank">
126
+              <span class="el-icon-document"> {{ getFileName(form.finalDocument) }} </span>
127
+            </el-link>
112 128
           </el-form-item>
113 129
           <el-form-item label="总工程师审核意见" prop="manageComment">
114 130
             <el-input type="textarea" v-model="form.manageComment" placeholder="请输入总工审核意见"
@@ -117,7 +133,7 @@
117 133
           <el-row>
118 134
             <el-col :span="6" :xs="24" :offset="12">
119 135
               <el-form-item label="签名" prop="manager" v-if="showFormItem('总工审核')">
120
-                <span class="auditor"> {{ managerUser }} </span>
136
+                <span class="auditor"> {{ form.managerUser ? form.managerUser.nickName : managerUser }} </span>
121 137
               </el-form-item>
122 138
             </el-col>
123 139
             <el-col :span="6">
@@ -170,6 +186,7 @@ export default {
170 186
   },
171 187
   data() {
172 188
     return {
189
+      baseUrl: process.env.VUE_APP_BASE_API,
173 190
       planUser: '',
174 191
       managerUser: '',
175 192
       designUser: '',
@@ -303,6 +320,30 @@ export default {
303 320
         this.loading = false;
304 321
       });
305 322
     },
323
+    getTechnicalDoc(val) {
324
+      this.getDoc(val, 'technicalDocument')
325
+    },
326
+    getModifyDoc(val) {
327
+      this.getDoc(val, 'modifyDocument')
328
+    },
329
+    getFinalDoc(val) {
330
+      this.getDoc(val, 'finalDocument')
331
+    },
332
+    getDoc(val, name) {
333
+      if (val) {
334
+        let arr = val.split('/upload')
335
+        this.form[name] = arr[1]
336
+        if (val == "") {
337
+          this.form[name] = ""
338
+        }
339
+      }
340
+    },
341
+    getFileName(name) {
342
+      if (name) {
343
+        let arr = name.split('/')
344
+        return arr[arr.length - 1];
345
+      }
346
+    },
306 347
     // 取消按钮
307 348
     cancel() {
308 349
       this.open = false;
@@ -407,7 +448,7 @@ export default {
407 448
               }
408 449
             })
409 450
           } else {
410
-            this.form.qualityInspector = '';
451
+            this.form.qualityInspector = this.form.qualityInspector.join(',');
411 452
             this.form.technicalId = this.taskForm.formId;
412 453
             this.form.projectId = this.taskForm.formId;
413 454
             addTechnical(this.form).then(response => {
@@ -465,6 +506,7 @@ export default {
465 506
   font-family: '华文行楷';
466 507
   font-size: 20px;
467 508
 }
509
+
468 510
 ::v-deep .el-input.is-disabled .el-input__inner {
469 511
   color: #686a6e;
470 512
 }

Loading…
Cancel
Save