|
@@ -2,10 +2,10 @@
|
2
|
2
|
* @Author: ysh
|
3
|
3
|
* @Date: 2024-08-16 09:16:36
|
4
|
4
|
* @LastEditors: Please set LastEditors
|
5
|
|
- * @LastEditTime: 2024-08-19 11:05:07
|
|
5
|
+ * @LastEditTime: 2024-08-21 14:11:13
|
6
|
6
|
-->
|
7
|
7
|
<template>
|
8
|
|
- <div class="app-container">
|
|
8
|
+ <div>
|
9
|
9
|
<el-row :gutter="20">
|
10
|
10
|
<el-col :span="isFlow ? 18 : 24" :xs="24">
|
11
|
11
|
<h2 class="text-center">项目工作填报表</h2>
|
|
@@ -14,49 +14,28 @@
|
14
|
14
|
<el-form-item label="项目名称:" prop="projectId">
|
15
|
15
|
<el-button icon="el-icon-plus" type="primary" @click="prOpen = true" size="mini"
|
16
|
16
|
v-if="taskName == '工作填报'">选择项目</el-button>
|
17
|
|
- <el-descriptions border v-if="form.projectId" style="margin-top: 10px" :column="2">
|
18
|
|
- <el-descriptions-item label="项目编号">
|
19
|
|
- {{ chooseProject.projectNumber }}
|
20
|
|
- </el-descriptions-item>
|
21
|
|
- <el-descriptions-item label="项目名称">
|
22
|
|
- {{ chooseProject.projectName }}
|
23
|
|
- </el-descriptions-item>
|
24
|
|
- <el-descriptions-item label="项目负责人">
|
25
|
|
- {{ getUserName(chooseProject.projectLeader) }}
|
26
|
|
- </el-descriptions-item>
|
27
|
|
- <el-descriptions-item label="甲方单位">
|
28
|
|
- {{ chooseProject.partyA ? chooseProject.partyA.partyAName : '' }}
|
29
|
|
- </el-descriptions-item>
|
30
|
|
- <el-descriptions-item label="联系人">
|
31
|
|
- {{ chooseProject.contactPerson }}
|
32
|
|
- </el-descriptions-item>
|
33
|
|
- <el-descriptions-item label="联系电话">
|
34
|
|
- {{ chooseProject.telephone }}
|
35
|
|
- </el-descriptions-item>
|
36
|
|
- <el-descriptions-item label="项目类型">
|
37
|
|
- {{ chooseProject.projectType }}
|
38
|
|
- </el-descriptions-item>
|
39
|
|
- <el-descriptions-item label="项目级别">
|
40
|
|
- {{ chooseProject.projectLevel == "0" ? " 一般项目" : "重大项目" }}
|
41
|
|
- </el-descriptions-item>
|
42
|
|
- <el-descriptions-item label="承担部门">
|
43
|
|
- {{ chooseProject.undertakingDeptName }}
|
44
|
|
- </el-descriptions-item>
|
45
|
|
- <el-descriptions-item label="项目登记人">
|
46
|
|
- {{ chooseProject.projectRegistrantUser ? chooseProject.projectRegistrantUser.nickName : "" }}
|
47
|
|
- </el-descriptions-item>
|
48
|
|
- </el-descriptions>
|
49
|
17
|
</el-form-item>
|
|
18
|
+ <el-descriptions class="mb20" border v-if="form.projectId" style="margin-top: 10px" :column="1">
|
|
19
|
+ <el-descriptions-item label="项目编号">
|
|
20
|
+ {{ chooseProject.projectNumber }}
|
|
21
|
+ </el-descriptions-item>
|
|
22
|
+ <el-descriptions-item label="项目名称">
|
|
23
|
+ {{ chooseProject.projectName }}
|
|
24
|
+ </el-descriptions-item>
|
|
25
|
+ <el-descriptions-item label="项目负责人">
|
|
26
|
+ {{ getUserName(chooseProject.projectLeader) }}
|
|
27
|
+ </el-descriptions-item>
|
|
28
|
+ </el-descriptions>
|
50
|
29
|
<el-form-item label="工作类别:" prop="workType">
|
51
|
|
- <el-select v-model="form.workType" @change="getWorkItemList(form.workType)" :style="{ width: '100%' }"
|
|
30
|
+ <el-select v-model="form.workType" @change="getWorkTypeList(form.workType)" :style="{ width: '100%' }"
|
52
|
31
|
:disabled="taskName != '工作填报'">
|
53
|
|
- <el-option v-for="item in workTypeList" :key="item.value" :label="item.label" :value="item.value">
|
54
|
|
- </el-option>
|
|
32
|
+ <el-option label="外业" value="外业"></el-option>
|
|
33
|
+ <el-option label="内业" value="内业"></el-option>
|
55
|
34
|
</el-select>
|
56
|
35
|
</el-form-item>
|
57
|
36
|
<el-form-item label="工作细项:" prop="workItem">
|
58
|
37
|
<el-select v-model="form.workItem" :style="{ width: '100%' }" :disabled="taskName != '工作填报'">
|
59
|
|
- <el-option v-for="item in workItemList" :key="item.value" :label="item.label" :value="item.value">
|
|
38
|
+ <el-option v-for="item in workTypeList" :key="item.value" :label="item.label" :value="item.value">
|
60
|
39
|
</el-option>
|
61
|
40
|
</el-select>
|
62
|
41
|
</el-form-item>
|
|
@@ -104,7 +83,7 @@
|
104
|
83
|
</el-card>
|
105
|
84
|
</el-col>
|
106
|
85
|
</el-row>
|
107
|
|
- <el-dialog title="选择项目" :visible.sync="prOpen" width="70%" append-to-body>
|
|
86
|
+ <el-dialog title="选择项目" :visible.sync="prOpen" :width="deviceWidth" append-to-body>
|
108
|
87
|
<choose-project @chooseProject="confirmProject"></choose-project>
|
109
|
88
|
</el-dialog>
|
110
|
89
|
</div>
|
|
@@ -113,7 +92,7 @@
|
113
|
92
|
<script>
|
114
|
93
|
import flow from '@/views/flowable/task/todo/detail/flow';
|
115
|
94
|
import { flowXmlAndNode } from "@/api/flowable/definition";
|
116
|
|
-import { getWorkTypeList, getWorkItemList } from '@/api/oa/price/price'
|
|
95
|
+import { listPrice, getWorkTypeList, getWorkItemList } from '@/api/oa/price/price'
|
117
|
96
|
import { listDeclare, getDeclare, addDeclare, updateDeclare } from '@/api/oa/declare/declare';
|
118
|
97
|
import { listProject, getProject } from "@/api/oa/project/project";
|
119
|
98
|
import { mapState } from 'vuex';
|
|
@@ -150,10 +129,12 @@ export default {
|
150
|
129
|
}
|
151
|
130
|
},
|
152
|
131
|
created() {
|
153
|
|
- this.getWorkTypeList();
|
154
|
132
|
this.initForm();
|
155
|
133
|
if (this.device == 'mobile') {
|
156
|
|
- this.isFlow = false
|
|
134
|
+ this.isFlow = false;
|
|
135
|
+ this.deviceWidth = '450px'
|
|
136
|
+ }else{
|
|
137
|
+ this.deviceWidth = '70%'
|
157
|
138
|
}
|
158
|
139
|
if (this.isFlow) {
|
159
|
140
|
flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
|
|
@@ -163,6 +144,7 @@ export default {
|
163
|
144
|
},
|
164
|
145
|
data() {
|
165
|
146
|
return {
|
|
147
|
+ deviceWidth: '400px',
|
166
|
148
|
flowData: {},
|
167
|
149
|
form: {
|
168
|
150
|
workLoad: 1,
|
|
@@ -189,6 +171,7 @@ export default {
|
189
|
171
|
chooseProject: {},
|
190
|
172
|
workTypeList: [],
|
191
|
173
|
workItemList: [],
|
|
174
|
+ projectList: [],
|
192
|
175
|
hasForm: false,
|
193
|
176
|
money: 0
|
194
|
177
|
}
|
|
@@ -199,6 +182,9 @@ export default {
|
199
|
182
|
this.$set(this.form, 'userId', this.$store.state.user.id)
|
200
|
183
|
this.form.submitTime = parseTime(new Date(), "{y}-{m}-{d}")
|
201
|
184
|
}
|
|
185
|
+ listProject({ pageSize: 20 }).then(res => {
|
|
186
|
+ this.projectList = res.rows
|
|
187
|
+ })
|
202
|
188
|
getDeclare(this.taskForm.formId).then(res => {
|
203
|
189
|
if (res.data) {
|
204
|
190
|
this.form = res.data;
|
|
@@ -304,12 +290,20 @@ export default {
|
304
|
290
|
this.$refs.form.validateField('projectId');
|
305
|
291
|
},
|
306
|
292
|
/* 获取工作类别 */
|
307
|
|
- getWorkTypeList() {
|
308
|
|
- getWorkTypeList().then(res => {
|
309
|
|
- if (res) {
|
310
|
|
- this.workTypeList = this.setArray(res);
|
|
293
|
+ getWorkTypeList(workType) {
|
|
294
|
+ listPrice({ workType: workType, pageNum: 1, pageSize: 9999 }).then(res => {
|
|
295
|
+ if (res.code == 200) {
|
|
296
|
+ let data = res.rows;
|
|
297
|
+ let list = [];
|
|
298
|
+ for (let d of data) {
|
|
299
|
+ list.push(d.workItem)
|
|
300
|
+ }
|
|
301
|
+ if (workType == '内业') {
|
|
302
|
+ list.push('其他')
|
|
303
|
+ }
|
|
304
|
+ this.workTypeList = this.setArray(list);
|
311
|
305
|
}
|
312
|
|
- });
|
|
306
|
+ })
|
313
|
307
|
},
|
314
|
308
|
/* 获取工作项目 */
|
315
|
309
|
getWorkItemList(workType) {
|
|
@@ -336,6 +330,15 @@ export default {
|
336
|
330
|
return [];
|
337
|
331
|
}
|
338
|
332
|
},
|
|
333
|
+ remoteMethod(val) {
|
|
334
|
+ listProject({
|
|
335
|
+ pageNum: 1,
|
|
336
|
+ pageSize: 20,
|
|
337
|
+ projectNumber: val
|
|
338
|
+ }).then(res => {
|
|
339
|
+ this.projectList = res.rows;
|
|
340
|
+ })
|
|
341
|
+ },
|
339
|
342
|
},
|
340
|
343
|
}
|
341
|
344
|
</script>
|