Sfoglia il codice sorgente

修改经营选承担部门,并可以填工作量,由部门负责人安排项目负责人

余思翰 9 mesi fa
parent
commit
3557d56fef

+ 6
- 2
oa-ui/src/views/flowable/form/components/chooseContract.vue Vedi File

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-05-22 11:12:57
3
  * @Date: 2024-05-22 11:12:57
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-04 11:20:46
5
+ * @LastEditTime: 2024-09-05 14:08:32
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
9
     <el-row>
9
     <el-row>
10
       <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="88px">
10
       <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="88px">
11
+        <el-form-item label="合同名称" prop="contractName">
12
+          <el-input v-model="queryParams.contractName" placeholder="请输入合同名称" clearable
13
+            @keyup.enter.native="handleQuery" />
14
+        </el-form-item>
11
         <el-form-item label="合同编码" prop="contractCode">
15
         <el-form-item label="合同编码" prop="contractCode">
12
           <el-input v-model="queryParams.contractCode" placeholder="请输入合同编码" clearable
16
           <el-input v-model="queryParams.contractCode" placeholder="请输入合同编码" clearable
13
             @keyup.enter.native="handleQuery" />
17
             @keyup.enter.native="handleQuery" />
30
       <el-table-column label="合同金额" align="center" prop="amount" min-width="100px" />
34
       <el-table-column label="合同金额" align="center" prop="amount" min-width="100px" />
31
     </el-table>
35
     </el-table>
32
     <div style="text-align: right;" class="mt20 mr20">
36
     <div style="text-align: right;" class="mt20 mr20">
33
-      <el-pagination @current-change="getList" :current-page.sync="queryParams.pageNum"
37
+      <el-pagination @current-change="getList" :current-page.sync="queryParams.pageNum" :autoScroll="false"
34
         :page-size="queryParams.pageSize" layout="total, prev, pager, next" :total="total">
38
         :page-size="queryParams.pageSize" layout="total, prev, pager, next" :total="total">
35
       </el-pagination>
39
       </el-pagination>
36
     </div>
40
     </div>

+ 1
- 1
oa-ui/src/views/flowable/form/components/choosePartner.vue Vedi File

30
       <el-table-column label="擅长业务方向" align="center" prop="strength" />
30
       <el-table-column label="擅长业务方向" align="center" prop="strength" />
31
       <el-table-column label="履约能力评价" align="center" prop="fulfill" />
31
       <el-table-column label="履约能力评价" align="center" prop="fulfill" />
32
     </el-table>
32
     </el-table>
33
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
33
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" :autoScroll="false"
34
       @pagination="getList" />
34
       @pagination="getList" />
35
     <div>
35
     <div>
36
       已选单位:<el-tag v-for="item in partners" style="margin: 5px;" :key="item.partnerId">{{ item.partnerName }}</el-tag>
36
       已选单位:<el-tag v-for="item in partners" style="margin: 5px;" :key="item.partnerId">{{ item.partnerName }}</el-tag>

+ 2
- 2
oa-ui/src/views/flowable/form/components/choosePartyA.vue Vedi File

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-06-18 17:38:50
3
  * @Date: 2024-06-18 17:38:50
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-30 11:25:29
5
+ * @LastEditTime: 2024-09-05 14:09:31
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
32
       <el-table-column label="备注说明" align="center" prop="remark" />
32
       <el-table-column label="备注说明" align="center" prop="remark" />
33
     </el-table>
33
     </el-table>
34
 
34
 
35
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
35
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" :autoScroll="false"
36
       @pagination="getList" />
36
       @pagination="getList" />
37
     <div>
37
     <div>
38
       已选单位:<el-tag v-for="item in choosePartyA" style="margin: 5px;" :key="item.partyAId">{{ item.partyAName }}</el-tag>
38
       已选单位:<el-tag v-for="item in choosePartyA" style="margin: 5px;" :key="item.partyAId">{{ item.partyAName }}</el-tag>

oa-ui/src/views/flowable/form/components/actualWork.vue → oa-ui/src/views/flowable/form/projectProcess/actualWork.vue Vedi File


+ 70
- 5
oa-ui/src/views/flowable/form/projectProcess/addproject.vue Vedi File

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-08-29 14:31:38
5
+ * @LastEditTime: 2024-09-05 16:35:08
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="project-wrapper">
8
   <div class="project-wrapper">
66
           :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setProjectDocument">
66
           :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setProjectDocument">
67
         </FileUpload>
67
         </FileUpload>
68
       </el-form-item>
68
       </el-form-item>
69
+      <el-form-item label="计划工作量:" prop="taskDocument">
70
+        <plan-workload ref="planworkRef" :projectId="taskForm.formId"></plan-workload>
71
+      </el-form-item>
72
+      <el-form-item label="承担部门:" prop="deptId">
73
+        <el-select v-model="addForm.deptId" multiple clearable style="width:100%" @change="getDeptLeader">
74
+          <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId"
75
+            v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
76
+          </el-option>
77
+        </el-select>
78
+      </el-form-item>
79
+      <el-form-item label="部门负责人:" prop="deptLeader">
80
+        <el-select v-model="addForm.deptLeader" multiple clearable style="width:100%">
81
+          <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
82
+            :value="item.userId">
83
+          </el-option>
84
+        </el-select>
85
+      </el-form-item>
69
       <el-form-item label="资料提交要求:" prop="projectRequest">
86
       <el-form-item label="资料提交要求:" prop="projectRequest">
70
         <el-input v-model="addForm.projectRequest" type="textarea" :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
87
         <el-input v-model="addForm.projectRequest" type="textarea" :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
71
       </el-form-item>
88
       </el-form-item>
104
 import { parseTime } from "@/utils/ruoyi";
121
 import { parseTime } from "@/utils/ruoyi";
105
 import { mapGetters } from "vuex";
122
 import { mapGetters } from "vuex";
106
 import { listProject, getProject, addProject, updateProject, delProject, getProjectNmuber } from "@/api/oa/project/project";
123
 import { listProject, getProject, addProject, updateProject, delProject, getProjectNmuber } from "@/api/oa/project/project";
124
+import { listDept } from '@/api/system/dept'
107
 import { getUser } from "@/api/system/user";
125
 import { getUser } from "@/api/system/user";
108
 import { getUsersDeptLeaderByDept } from "@/api/system/post";
126
 import { getUsersDeptLeaderByDept } from "@/api/system/post";
109
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
127
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
114
 import chooseContract from '../components/chooseContract.vue';
132
 import chooseContract from '../components/chooseContract.vue';
115
 import ChoosePartyA from '@/views/flowable/form/components/choosePartyA.vue';
133
 import ChoosePartyA from '@/views/flowable/form/components/choosePartyA.vue';
116
 import ArrangeProject from './arrangeProject.vue';
134
 import ArrangeProject from './arrangeProject.vue';
135
+import planWorkload from "./planWorkload.vue";
117
 export default {
136
 export default {
118
-  components: { chooseContract, ArrangeProject, ChoosePartyA },
137
+  components: { chooseContract, ArrangeProject, ChoosePartyA, planWorkload },
119
   dicts: ['cmc_scale_grade', 'cmc_unit'],
138
   dicts: ['cmc_scale_grade', 'cmc_unit'],
120
   props: {
139
   props: {
121
     disabled: {
140
     disabled: {
147
       },
166
       },
148
       projectList: [],
167
       projectList: [],
149
       partyAList: [],
168
       partyAList: [],
169
+      deptList: [],
170
+      deptLeaderList: [],
150
       total: 0,
171
       total: 0,
151
       loading: true,
172
       loading: true,
152
       modifyOpen: false,
173
       modifyOpen: false,
175
         partyAId: [{ required: true, message: "请选择甲方单位", trigger: "change" }],
196
         partyAId: [{ required: true, message: "请选择甲方单位", trigger: "change" }],
176
         contactPerson: [{ required: true, message: "请输入联系人", trigger: "blur" }],
197
         contactPerson: [{ required: true, message: "请输入联系人", trigger: "blur" }],
177
         telephone: [{ required: true, message: "请输入联系人联系方式", trigger: "blur" }],
198
         telephone: [{ required: true, message: "请输入联系人联系方式", trigger: "blur" }],
199
+        deptId: [
200
+          { required: true, message: "请选择承担部门", trigger: "change" }
201
+        ],
202
+        deptLeader: [
203
+          { required: true, message: "部门负责人不能为空", trigger: "change" }
204
+        ]
178
         // projectRequest: [{ required: true, message: "请输入资料提交要求", trigger: "blur" }],
205
         // projectRequest: [{ required: true, message: "请输入资料提交要求", trigger: "blur" }],
179
         // taskDocument: [{ required: true, message: "请上传任务书", trigger: "blur" }]
206
         // taskDocument: [{ required: true, message: "请上传任务书", trigger: "blur" }]
180
       },
207
       },
196
     this.registerTime = parseTime(new Date(), '{y}-{m}-{d}')
223
     this.registerTime = parseTime(new Date(), '{y}-{m}-{d}')
197
     this.initProjectForm();
224
     this.initProjectForm();
198
     this.getPartyAList();
225
     this.getPartyAList();
226
+    this.getDeptList();
199
     this.getContractDataList();
227
     this.getContractDataList();
200
     // this.getList();
228
     // this.getList();
201
   },
229
   },
219
         this.loading = false;
247
         this.loading = false;
220
       });
248
       });
221
     },
249
     },
250
+    getDeptList() {
251
+      listDept({
252
+        deptName: undefined,
253
+        status: undefined
254
+      }).then(res => {
255
+        this.deptList = res.data
256
+      })
257
+    },
222
     async initProjectForm() {
258
     async initProjectForm() {
223
       let datas = await listProject({ projectId: this.taskForm.formId });
259
       let datas = await listProject({ projectId: this.taskForm.formId });
224
       if (datas.rows.length > 0) {
260
       if (datas.rows.length > 0) {
230
         this.registrantUser = this.name;
266
         this.registrantUser = this.name;
231
       }
267
       }
232
     },
268
     },
269
+    async getDeptLeader(val) {
270
+      this.deptLeaderList = [];
271
+      for (let v of val) {
272
+        let res = await getUsersDeptLeaderByDept({ deptId: Number(v) })
273
+        this.deptLeaderList.push(res.data.userId);
274
+      }
275
+      this.$set(this.addForm, 'deptLeader', this.deptLeaderList);
276
+      this.addForm.undertakingDept = this.addForm.deptId.join(',');
277
+    },
233
     getProjectInfo() {
278
     getProjectInfo() {
234
       getProject(this.taskForm.formId).then(res => {
279
       getProject(this.taskForm.formId).then(res => {
235
         this.addForm = res.data;
280
         this.addForm = res.data;
281
+        if (this.addForm.undertakingDept != null && this.addForm.undertakingDept != "" && this.addForm.undertakingDept != undefined) {
282
+          this.addForm.deptId = this.addForm.undertakingDeptName.split(',')
283
+        }
284
+        this.$set(this.addForm, 'deptLeader', [])
285
+        if (this.addForm.undertakingDept) {
286
+          let arr = (this.addForm.undertakingDept.split(',')).map(Number)
287
+          this.$set(this.addForm, 'deptId', arr)
288
+          this.getDeptLeader(arr);
289
+        } else {
290
+          this.$set(this.addForm, 'deptId', [])
291
+        }
236
       })
292
       })
237
     },
293
     },
238
     getProjectWorkList() {
294
     getProjectWorkList() {
269
       }
325
       }
270
       this.openContract = false;
326
       this.openContract = false;
271
     },
327
     },
328
+    updatePlanWorkload() {
329
+      const workList = this.$refs.planworkRef.workList;
330
+      const projectId = this.taskForm.formId
331
+      delProjectWork(projectId).then(() => {
332
+        workList.forEach(work => {
333
+          work.projectId = projectId;
334
+          addProjectWork(work);
335
+        })
336
+      })
337
+    },
272
     // 暂存
338
     // 暂存
273
     async save() {
339
     async save() {
340
+      this.updatePlanWorkload();
274
       // 新增项目数据
341
       // 新增项目数据
275
       if (this.formTotal == 0) {
342
       if (this.formTotal == 0) {
276
         this.addForm.projectId = this.taskForm.formId;
343
         this.addForm.projectId = this.taskForm.formId;
283
           await addProjectContract(pcobj)
350
           await addProjectContract(pcobj)
284
           this.$modal.msgSuccess("合同关联成功");
351
           this.$modal.msgSuccess("合同关联成功");
285
         }
352
         }
286
-        // setTimeout(() => {
287
-        //   this.$router.go(0);
288
-        // }, 500);
289
         this.initProjectForm();
353
         this.initProjectForm();
290
       } else {
354
       } else {
291
         // 修改项目数据
355
         // 修改项目数据
304
       // 获取下一个流程节点
368
       // 获取下一个流程节点
305
       this.$refs['projectAdd'].validate((vaild) => {
369
       this.$refs['projectAdd'].validate((vaild) => {
306
         if (vaild) {
370
         if (vaild) {
371
+          this.updatePlanWorkload();
307
           if (this.formTotal == 0) {
372
           if (this.formTotal == 0) {
308
             this.addForm.projectId = this.taskForm.formId;
373
             this.addForm.projectId = this.taskForm.formId;
309
             addProject(this.addForm).then(response => {
374
             addProject(this.addForm).then(response => {

+ 4
- 4
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue Vedi File

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-19 09:24:06
3
  * @Date: 2024-03-19 09:24:06
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-08-23 15:59:39
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-09-05 16:56:04
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
9
     <h2 style="text-align: center;">项目安排</h2>
9
     <h2 style="text-align: center;">项目安排</h2>
10
     <el-form ref="arrangeForm" :model="form" :rules="rules" label-width="120px" :disabled="disabled">
10
     <el-form ref="arrangeForm" :model="form" :rules="rules" label-width="120px" :disabled="disabled">
11
-      <el-row :gutter="20">
11
+      <!-- <el-row :gutter="20">
12
         <el-col :span="12" :xs="24">
12
         <el-col :span="12" :xs="24">
13
           <el-form-item label="承担部门:" prop="deptId">
13
           <el-form-item label="承担部门:" prop="deptId">
14
             <el-select v-model="form.deptId" multiple clearable style="width:100%" @change="getDeptLeader">
14
             <el-select v-model="form.deptId" multiple clearable style="width:100%" @change="getDeptLeader">
27
             </el-select>
27
             </el-select>
28
           </el-form-item>
28
           </el-form-item>
29
         </el-col>
29
         </el-col>
30
-      </el-row>
30
+      </el-row> -->
31
       <el-row :gutter="20">
31
       <el-row :gutter="20">
32
         <el-col :span="12" :xs="24">
32
         <el-col :span="12" :xs="24">
33
           <el-form-item label="项目负责人:" prop="projectLeader">
33
           <el-form-item label="项目负责人:" prop="projectLeader">

+ 12
- 9
oa-ui/src/views/flowable/form/projectProcess/assessWork.vue Vedi File

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-07-08 16:16:27
3
  * @Date: 2024-07-08 16:16:27
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-05 14:40:00
5
+ * @LastEditTime: 2024-09-05 16:54:57
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
124
       let projectRes = await getProject(this.taskForm.formId)
124
       let projectRes = await getProject(this.taskForm.formId)
125
       if (projectRes.code == 200 && projectRes.data) {
125
       if (projectRes.code == 200 && projectRes.data) {
126
         this.form = projectRes.data
126
         this.form = projectRes.data
127
+        if (this.form.undertakingDept) {
128
+          let arr = (this.form.undertakingDept.split(',')).map(Number)
129
+          this.getDeptLeader(arr)
130
+        }
127
         this.total = 1
131
         this.total = 1
128
         this.getProjectWorkList();
132
         this.getProjectWorkList();
129
       }
133
       }
130
     },
134
     },
131
     getProjectWorkList() {
135
     getProjectWorkList() {
132
-      listProjectWork({ projectId: this.taskForm.formId }).then(res => {
136
+      listProjectWork({ pageNum: 1, pageSize: 100, projectId: this.taskForm.formId }).then(res => {
133
         if (res.rows.length != 0) {
137
         if (res.rows.length != 0) {
134
           this.workList = res.rows;
138
           this.workList = res.rows;
135
         }
139
         }
179
     },
183
     },
180
     async confirm() {
184
     async confirm() {
181
       this.save();
185
       this.save();
182
-      // let resData = await getUsersDeptLeaderByDept({ deptId: 105 });
183
-      // let approval;
184
-      // if (resData.data) {
185
-      //   approval = resData.data.userId;
186
-      // }
187
-      let approval = this.form.projectRegistrant;
188
-      this.$set(this.taskForm.variables, "approval", approval);
189
       const params = { taskId: this.taskForm.taskId };
186
       const params = { taskId: this.taskForm.taskId };
190
       getNextFlowNode(params).then(res => {
187
       getNextFlowNode(params).then(res => {
191
         complete(this.taskForm).then(response => {
188
         complete(this.taskForm).then(response => {
193
           this.$emit('goBack');
190
           this.$emit('goBack');
194
         });
191
         });
195
       })
192
       })
193
+    },
194
+    getDeptLeader(val) {
195
+      let deptId = Number(val[0])
196
+      getUsersDeptLeaderByDept({ deptId: Number(deptId) }).then(res => {
197
+        this.$set(this.taskForm.variables, "approval", res.data.userId);
198
+      })
196
     }
199
     }
197
   },
200
   },
198
 }
201
 }

+ 2
- 2
oa-ui/src/views/flowable/form/projectProcess/inProgress.vue Vedi File

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-06-21 18:51:54
3
  * @Date: 2024-06-21 18:51:54
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-05 10:30:20
5
+ * @LastEditTime: 2024-09-05 13:55:35
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
155
 import ChooseCar from '../budget/components/chooseCar.vue';
155
 import ChooseCar from '../budget/components/chooseCar.vue';
156
 import ChooseDevice from "../budget/components/chooseDevice.vue";
156
 import ChooseDevice from "../budget/components/chooseDevice.vue";
157
 import AchiData from '../inProgress/achiData.vue';
157
 import AchiData from '../inProgress/achiData.vue';
158
-import actualWork from '@/views/flowable/form/components/actualWork.vue';
158
+import actualWork from '@/views/flowable/form/projectProcess/actualWork.vue';
159
 export default {
159
 export default {
160
   components: {
160
   components: {
161
     borrowData,
161
     borrowData,

+ 132
- 0
oa-ui/src/views/flowable/form/projectProcess/planWorkload.vue Vedi File

1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-09-05 13:57:44
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-09-05 14:45:48
6
+-->
7
+<template>
8
+  <div style="width:100%">
9
+    <table class="table" border="1" style="width:100%">
10
+      <tr>
11
+        <td style="width: 180px">工作内容</td>
12
+        <td>等级或比例尺</td>
13
+        <td>单位</td>
14
+        <td>工作量</td>
15
+        <td style="width: 100px">要求完成时间</td>
16
+        <td>备注</td>
17
+      </tr>
18
+      <tr v-for="(work, index) in workList" :key="index">
19
+        <td>
20
+          <el-input v-model="work.content" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
21
+        </td>
22
+        <td>
23
+          <el-select v-model="work.scale" placeholder="请选择" clearable>
24
+            <el-option v-for="dict in dict.type.cmc_scale_grade" :key="dict.value" :label="dict.label"
25
+              :value="dict.label" />
26
+          </el-select>
27
+        </td>
28
+        <td>
29
+          <el-select v-model="work.unit" placeholder="请选择" clearable>
30
+            <el-option v-for="dict in dict.type.cmc_unit" :key="dict.value" :label="dict.label" :value="dict.label" />
31
+          </el-select>
32
+        </td>
33
+        <td>
34
+          <el-input v-model="work.workload" clearable></el-input>
35
+        </td>
36
+        <td>
37
+          <el-date-picker style="width: 140px" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
38
+            placeholder="选择日期">
39
+          </el-date-picker>
40
+        </td>
41
+        <td>
42
+          <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"></el-input>
43
+        </td>
44
+        <td>
45
+          <div class="delete-btn" @click="deletWorkItem(index)">
46
+            <i class="el-icon-circle-close"></i>
47
+          </div>
48
+        </td>
49
+      </tr>
50
+    </table>
51
+    <el-button icon="el-icon-plus" type="primary" plain size="mini" @click="addWorkList"></el-button>
52
+  </div>
53
+</template>
54
+
55
+<script>
56
+import { listProject, getProject, addProject, updateProject, delProject } from "@/api/oa/project/project";
57
+import { listProjectWork, addProjectWork, delProjectWork } from "@/api/oa/project/projectWork";
58
+export default {
59
+  dicts: ['cmc_scale_grade', 'cmc_unit'],
60
+  props: {
61
+    projectId: {
62
+      type: String,
63
+      require: true
64
+    }
65
+  },
66
+  data() {
67
+    return {
68
+      workList: [{
69
+        content: "",
70
+        scale: "",
71
+        unit: "",
72
+        workload: "",
73
+        deadline: undefined,
74
+        remark: "",
75
+      }],
76
+
77
+    }
78
+  },
79
+  created() {
80
+    this.getList();
81
+  },
82
+  methods: {
83
+    getList() {
84
+      listProjectWork({ pageNum: 1, pageSize: 100, projectId: this.projectId }).then(res => {
85
+        if (res.total != 0) {
86
+          this.workList = res.rows;
87
+        }
88
+      })
89
+    },
90
+    addWorkList() {
91
+      this.workList.push({
92
+        content: "",
93
+        scale: "",
94
+        unit: "",
95
+        workload: "",
96
+        deadline: undefined,
97
+        remark: "",
98
+      });
99
+    },
100
+    deletWorkItem(index) {
101
+      let arr = this.workList;
102
+      if (arr.length == 1) {
103
+        return;
104
+      }
105
+      if (index >= 0 && index < arr.length) {
106
+        arr.splice(index, 1);
107
+      }
108
+    },
109
+  },
110
+}
111
+</script>
112
+
113
+<style lang="scss" scoped>
114
+table {
115
+  /*居中*/
116
+  margin: 0 auto;
117
+  /*边框*/
118
+  /* border: 1px solid black; */
119
+  text-align: center;
120
+  border-collapse: collapse;
121
+  /*设置背景颜色*/
122
+  /* background-color: #bfa; */
123
+}
124
+.delete-btn {
125
+  color: #F56C6C;
126
+  cursor: pointer;
127
+
128
+  i {
129
+    font-size: 25px;
130
+  }
131
+}
132
+</style>

Loading…
Annulla
Salva