|
@@ -2,16 +2,50 @@
|
2
|
2
|
<div class="app-container">
|
3
|
3
|
<el-row :gutter="20">
|
4
|
4
|
<el-col :span="18" :xs="24">
|
5
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
6
|
|
- <el-form-item label="合同编号" prop="contractNumber">
|
7
|
|
- <el-input v-model="form.contractNumber" placeholder="请输入合同编号" />
|
8
|
|
- </el-form-item>
|
9
|
|
- <el-form-item label="合同金额" prop="amount">
|
10
|
|
- <el-input v-model="form.amount" placeholder="请输入合同金额" />
|
11
|
|
- </el-form-item>
|
12
|
|
- <el-form-item label="履约保证金" prop="deposit">
|
13
|
|
- <el-input v-model="form.deposit" placeholder="请输入履约保证金" />
|
|
5
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
6
|
+ <el-form-item label="项目名称:" prop="tenderName">
|
|
7
|
+ <el-select v-model="form.tenderId" filterable placeholder="请选择" @change="handleSelectTender"
|
|
8
|
+ :disabled="taskName != '合同拟稿'" clearable>
|
|
9
|
+ <el-option v-for="item in tenderList" :key="item.value" :label="item.projectName" :value="item.tenderId">
|
|
10
|
+ </el-option>
|
|
11
|
+ </el-select>
|
|
12
|
+ <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
|
|
13
|
+ <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseTender.projectName
|
|
14
|
+ }}</el-descriptions-item>
|
|
15
|
+ <el-descriptions-item label="项目来源" label-class-name="my-label">{{ getProjectSource(chooseTender)
|
|
16
|
+ }}</el-descriptions-item>
|
|
17
|
+ <el-descriptions-item label="甲方单位" label-class-name="my-label">{{ chooseTender.partyA
|
|
18
|
+ }}</el-descriptions-item>
|
|
19
|
+ <el-descriptions-item label="联系人" label-class-name="my-label">{{ chooseTender.aPerson
|
|
20
|
+ }}</el-descriptions-item>
|
|
21
|
+ <el-descriptions-item label="联系电话" label-class-name="my-label">{{ chooseTender.aPhone
|
|
22
|
+ }}</el-descriptions-item>
|
|
23
|
+ </el-descriptions>
|
14
|
24
|
</el-form-item>
|
|
25
|
+ <el-row>
|
|
26
|
+ <el-col :span="6">
|
|
27
|
+ <el-form-item label="合同编码" prop="contractId">
|
|
28
|
+ <el-input v-model="form.contractId" :disabled="true"></el-input>
|
|
29
|
+ </el-form-item>
|
|
30
|
+ </el-col>
|
|
31
|
+ <el-col :span="6">
|
|
32
|
+ <el-form-item label="合同编号" prop="contractNumber">
|
|
33
|
+ <el-input v-model="form.contractNumber" placeholder="请输入合同编号"></el-input>
|
|
34
|
+ </el-form-item>
|
|
35
|
+ </el-col>
|
|
36
|
+ </el-row>
|
|
37
|
+ <el-row>
|
|
38
|
+ <el-col :span="6">
|
|
39
|
+ <el-form-item label="合同金额" prop="amount">
|
|
40
|
+ <el-input v-model="form.amount" placeholder="请输入合同金额" />
|
|
41
|
+ </el-form-item>
|
|
42
|
+ </el-col>
|
|
43
|
+ <el-col :span="6">
|
|
44
|
+ <el-form-item label="履约保证金" prop="deposit">
|
|
45
|
+ <el-input v-model="form.deposit" placeholder="请输入履约保证金" />
|
|
46
|
+ </el-form-item>
|
|
47
|
+ </el-col>
|
|
48
|
+ </el-row>
|
15
|
49
|
<el-form-item label="合同文件" prop="contractDocument">
|
16
|
50
|
<el-input v-model="form.contractDocument" placeholder="请输入合同文件" />
|
17
|
51
|
</el-form-item>
|
|
@@ -63,7 +97,7 @@ import { parseTime } from "@/utils/ruoyi";
|
63
|
97
|
import { listContract, getContract, delContract, addContract, updateContract } from "@/api/oa/contract/contract";
|
64
|
98
|
import { getContractWork } from "@/api/oa/contract/contractWork";
|
65
|
99
|
import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
|
66
|
|
-import { listProject, getProject } from "@/api/oa/project/project";
|
|
100
|
+import { listTender, getTender } from "@/api/oa/tender/tender";
|
67
|
101
|
import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
|
68
|
102
|
import flow from '@/views/flowable/task/todo/detail/flow'
|
69
|
103
|
import { flowXmlAndNode } from "@/api/flowable/definition";
|
|
@@ -125,8 +159,8 @@ export default {
|
125
|
159
|
rules: {
|
126
|
160
|
},
|
127
|
161
|
workList: [],
|
128
|
|
- projectList: [],
|
129
|
|
- chooseProject: {},
|
|
162
|
+ tenderList: [],
|
|
163
|
+ chooseTender: {},
|
130
|
164
|
isSelect: false,
|
131
|
165
|
formTotal: 0,
|
132
|
166
|
flowData: {},
|
|
@@ -137,6 +171,7 @@ export default {
|
137
|
171
|
this.drafter = this.$store.getters.name;
|
138
|
172
|
this.draftTime = parseTime(new Date(), '{y}-{m}-{d}')
|
139
|
173
|
}
|
|
174
|
+ this.getTenderList();
|
140
|
175
|
this.getList();
|
141
|
176
|
flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
|
142
|
177
|
this.flowData = res.data;
|
|
@@ -158,6 +193,12 @@ export default {
|
158
|
193
|
else {
|
159
|
194
|
this.formTotal = 1;
|
160
|
195
|
this.form = res.data;
|
|
196
|
+ if (data.tenderId) {
|
|
197
|
+ getTender(data.tenderId).then(response => {
|
|
198
|
+ this.chooseTender = response.data;
|
|
199
|
+ this.isSelect = true
|
|
200
|
+ })
|
|
201
|
+ }
|
161
|
202
|
}
|
162
|
203
|
})
|
163
|
204
|
},
|
|
@@ -171,21 +212,22 @@ export default {
|
171
|
212
|
});
|
172
|
213
|
},
|
173
|
214
|
// 查询项目列表
|
174
|
|
- getProjectList() {
|
|
215
|
+ getTenderList() {
|
175
|
216
|
this.loading = true
|
176
|
|
- listProject({
|
|
217
|
+ listTender({
|
177
|
218
|
pageNum: 1,
|
178
|
219
|
pageSize: 99999999
|
179
|
220
|
}).then(response => {
|
180
|
|
- this.projectList = response.rows;
|
|
221
|
+ this.tenderList = response.rows;
|
181
|
222
|
})
|
182
|
223
|
},
|
183
|
224
|
// 选择项目
|
184
|
|
- handleSelectProject(val) {
|
|
225
|
+ handleSelectTender(val) {
|
185
|
226
|
if (val != "" && val != undefined && val != null) {
|
186
|
|
- getProject(val).then(res => {
|
187
|
|
- this.chooseProject = res.data;
|
188
|
|
- this.isSelect = true
|
|
227
|
+ getTender(val).then(res => {
|
|
228
|
+ this.chooseTender = res.data;
|
|
229
|
+ this.isSelect = true;
|
|
230
|
+ this.getContractId(this.chooseTender)
|
189
|
231
|
})
|
190
|
232
|
} else {
|
191
|
233
|
this.isSelect = false
|
|
@@ -204,6 +246,43 @@ export default {
|
204
|
246
|
}
|
205
|
247
|
return true;
|
206
|
248
|
},
|
|
249
|
+ getProjectSource(chooseTender) {
|
|
250
|
+ let partyAList = ['中国电建集团成都勘测设计研究院勘测设计分公司', '成勘院 水环境与城建工程分公司'];
|
|
251
|
+ return partyAList.indexOf(chooseTender.partyA) != -1 ? '院内' : '院外';
|
|
252
|
+ },
|
|
253
|
+ getContractId(chooseTender) {
|
|
254
|
+ let contractId = '';
|
|
255
|
+ if (chooseTender) {
|
|
256
|
+ if (this.getProjectSource(chooseTender) == '院内') {
|
|
257
|
+ listContract({ contractId: 'C' }).then(res => {
|
|
258
|
+ if (res.total == 0)
|
|
259
|
+ contractId = 'HT' + new Date().getFullYear() + 'C' + '001';
|
|
260
|
+ else
|
|
261
|
+ contractId = 'HT' + new Date().getFullYear() + 'C' + this.fillZero(Number(res.rows[0].contractId.substring(7, 10)) + 1);
|
|
262
|
+ this.$set(this.form, 'contractId', contractId);
|
|
263
|
+ })
|
|
264
|
+ }
|
|
265
|
+ else {
|
|
266
|
+ listContract({ contractId: 'W' }).then(res => {
|
|
267
|
+ if (res.total == 0)
|
|
268
|
+ contractId = 'HT' + new Date().getFullYear() + 'W' + '001';
|
|
269
|
+ else
|
|
270
|
+ contractId = 'HT' + new Date().getFullYear() + 'W' + this.fillZero(Number(res.rows[0].contractId.substring(7, 10)) + 1);
|
|
271
|
+ this.$set(this.form, 'contractId', contractId);
|
|
272
|
+ })
|
|
273
|
+ }
|
|
274
|
+ }
|
|
275
|
+ },
|
|
276
|
+ fillZero(number) {
|
|
277
|
+ let fullNumber = '';
|
|
278
|
+ if (number < 10)
|
|
279
|
+ fullNumber = '00' + number;
|
|
280
|
+ else if (number >= 10 & number < 100)
|
|
281
|
+ fullNumber = '0' + number;
|
|
282
|
+ else
|
|
283
|
+ fullNumber = number;
|
|
284
|
+ return fullNumber;
|
|
285
|
+ },
|
207
|
286
|
// 表单重置
|
208
|
287
|
reset() {
|
209
|
288
|
this.form = {
|
|
@@ -303,7 +382,7 @@ export default {
|
303
|
382
|
}, `contract_${new Date().getTime()}.xlsx`)
|
304
|
383
|
}
|
305
|
384
|
}
|
306
|
|
-};
|
|
385
|
+}
|
307
|
386
|
</script>
|
308
|
387
|
|
309
|
388
|
<style>
|