作者 雷海东

合同变更

1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> 3 + <el-form
  4 + :model="queryParams"
  5 + ref="queryForm"
  6 + size="small"
  7 + :inline="true"
  8 + v-show="showSearch"
  9 + label-width="68px"
  10 + >
4 <el-form-item label="合同编号" prop="contractno"> 11 <el-form-item label="合同编号" prop="contractno">
5 <el-input 12 <el-input
6 v-model="queryParams.contractno" 13 v-model="queryParams.contractno"
@@ -18,8 +25,16 @@ @@ -18,8 +25,16 @@
18 /> 25 />
19 </el-form-item> 26 </el-form-item>
20 <el-form-item> 27 <el-form-item>
21 - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>  
22 - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> 28 + <el-button
  29 + type="primary"
  30 + icon="el-icon-search"
  31 + size="mini"
  32 + @click="handleQuery"
  33 + >搜索</el-button
  34 + >
  35 + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  36 + >重置</el-button
  37 + >
23 </el-form-item> 38 </el-form-item>
24 </el-form> 39 </el-form>
25 40
@@ -54,7 +69,8 @@ @@ -54,7 +69,8 @@
54 :disabled="multiple" 69 :disabled="multiple"
55 @click="handleDelete" 70 @click="handleDelete"
56 v-hasPermi="['system:contract:remove']" 71 v-hasPermi="['system:contract:remove']"
57 - >删除</el-button> 72 + >删除</el-button
  73 + >
58 </el-col> 74 </el-col>
59 <el-col :span="1.5"> 75 <el-col :span="1.5">
60 <el-button 76 <el-button
@@ -64,46 +80,120 @@ @@ -64,46 +80,120 @@
64 size="mini" 80 size="mini"
65 @click="handleExport" 81 @click="handleExport"
66 v-hasPermi="['system:contract:export']" 82 v-hasPermi="['system:contract:export']"
67 - >导出</el-button> 83 + >导出</el-button
  84 + >
68 </el-col> 85 </el-col>
69 - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> 86 + <right-toolbar
  87 + :showSearch.sync="showSearch"
  88 + @queryTable="getList"
  89 + ></right-toolbar>
70 </el-row> 90 </el-row>
71 91
72 - <el-table v-loading="loading" :data="contractList" @selection-change="handleSelectionChange"> 92 + <el-table
  93 + v-loading="loading"
  94 + :data="contractList"
  95 + @selection-change="handleSelectionChange"
  96 + >
73 <el-table-column type="selection" width="55" align="center" /> 97 <el-table-column type="selection" width="55" align="center" />
74 - <el-table-column label="合同编号" align="center" prop="contractno" width="100"/>  
75 - <el-table-column label="合同名称" align="center" prop="contractName" width="200"/>  
76 - <el-table-column label="合同类型" align="center" prop="contractType" width="100"/>  
77 - <el-table-column label="合同金额" align="center" prop="contractAmount" width="100"/>  
78 - <el-table-column label="生效日期" align="center" prop="effectiveDate" width="100"> 98 + <el-table-column
  99 + label="合同编号"
  100 + align="center"
  101 + prop="contractno"
  102 + width="100"
  103 + />
  104 + <el-table-column
  105 + label="合同名称"
  106 + align="center"
  107 + prop="contractName"
  108 + width="200"
  109 + />
  110 + <el-table-column
  111 + label="合同类型"
  112 + align="center"
  113 + prop="contractType"
  114 + width="100"
  115 + />
  116 + <el-table-column
  117 + label="合同金额"
  118 + align="center"
  119 + prop="contractAmount"
  120 + width="100"
  121 + />
  122 + <el-table-column
  123 + label="生效日期"
  124 + align="center"
  125 + prop="effectiveDate"
  126 + width="100"
  127 + >
79 <template slot-scope="scope"> 128 <template slot-scope="scope">
80 - <span>{{ parseTime(scope.row.effectiveDate, '{y}-{m}-{d}') }}</span> 129 + <span>{{ parseTime(scope.row.effectiveDate, "{y}-{m}-{d}") }}</span>
81 </template> 130 </template>
82 </el-table-column> 131 </el-table-column>
83 - <el-table-column label="到期日期" align="center" prop="expirationDate" width="100"> 132 + <el-table-column
  133 + label="到期日期"
  134 + align="center"
  135 + prop="expirationDate"
  136 + width="100"
  137 + >
84 <template slot-scope="scope"> 138 <template slot-scope="scope">
85 - <span>{{ parseTime(scope.row.expirationDate, '{y}-{m}-{d}') }}</span> 139 + <span>{{ parseTime(scope.row.expirationDate, "{y}-{m}-{d}") }}</span>
86 </template> 140 </template>
87 </el-table-column> 141 </el-table-column>
88 <el-table-column label="甲方" align="center" prop="partyA" width="200"> 142 <el-table-column label="甲方" align="center" prop="partyA" width="200">
89 <template slot-scope="scope"> 143 <template slot-scope="scope">
90 - <a :href="scope.row.partyAAddress" target="_blank" style="color: blue;">{{ scope.row.partyA }}</a> 144 + <a
  145 + :href="scope.row.partyAAddress"
  146 + target="_blank"
  147 + style="color: blue"
  148 + >{{ scope.row.partyA }}</a
  149 + >
91 </template> 150 </template>
92 </el-table-column> 151 </el-table-column>
93 <el-table-column label="乙方" align="center" prop="partyB" width="200"> 152 <el-table-column label="乙方" align="center" prop="partyB" width="200">
94 <template slot-scope="scope"> 153 <template slot-scope="scope">
95 - <a :href="scope.row.partyBAddress" target="_blank" style="color: blue;">{{ scope.row.partyB }}</a> 154 + <a
  155 + :href="scope.row.partyBAddress"
  156 + target="_blank"
  157 + style="color: blue"
  158 + >{{ scope.row.partyB }}</a
  159 + >
96 </template> 160 </template>
97 </el-table-column> 161 </el-table-column>
98 - <el-table-column label="付款方式" align="center" prop="paymentMethod" width="200"/>  
99 - <el-table-column label="签订日期" align="center" prop="signingDate" width="100"> 162 + <el-table-column
  163 + label="付款方式"
  164 + align="center"
  165 + prop="paymentMethod"
  166 + width="200"
  167 + />
  168 + <el-table-column
  169 + label="签订日期"
  170 + align="center"
  171 + prop="signingDate"
  172 + width="100"
  173 + >
100 <template slot-scope="scope"> 174 <template slot-scope="scope">
101 - <span>{{ parseTime(scope.row.signingDate, '{y}-{m}-{d}') }}</span> 175 + <span>{{ parseTime(scope.row.signingDate, "{y}-{m}-{d}") }}</span>
102 </template> 176 </template>
103 </el-table-column> 177 </el-table-column>
104 - <el-table-column label="标的物信息" align="center" prop="subjectInformation" width="200" />  
105 - <el-table-column label="附件" align="center" prop="attachments" width="100"/>  
106 - <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200"> 178 + <el-table-column
  179 + label="标的物信息"
  180 + align="center"
  181 + prop="subjectInformation"
  182 + width="200"
  183 + />
  184 + <el-table-column
  185 + label="附件"
  186 + align="center"
  187 + prop="attachments"
  188 + width="100"
  189 + />
  190 + <el-table-column
  191 + label="操作"
  192 + align="center"
  193 + class-name="small-padding fixed-width"
  194 + fixed="right"
  195 + width="200"
  196 + >
107 <template slot-scope="scope"> 197 <template slot-scope="scope">
108 <el-button 198 <el-button
109 type="text" 199 type="text"
@@ -111,7 +201,8 @@ @@ -111,7 +201,8 @@
111 icon="el-icon-tickets" 201 icon="el-icon-tickets"
112 @click="handleFlowRecord(scope.row)" 202 @click="handleFlowRecord(scope.row)"
113 v-hasPermi="['workflow:process:query']" 203 v-hasPermi="['workflow:process:query']"
114 - >详情</el-button> 204 + >详情</el-button
  205 + >
115 <el-button 206 <el-button
116 type="text" 207 type="text"
117 size="mini" 208 size="mini"
@@ -119,27 +210,37 @@ @@ -119,27 +210,37 @@
119 @click="handleDelete(scope.row)" 210 @click="handleDelete(scope.row)"
120 v-if="scope.row.finishTime" 211 v-if="scope.row.finishTime"
121 v-hasPermi="['workflow:process:remove']" 212 v-hasPermi="['workflow:process:remove']"
122 - >删除</el-button> 213 + >删除</el-button
  214 + >
123 <el-button 215 <el-button
124 type="text" 216 type="text"
125 size="mini" 217 size="mini"
126 icon="el-icon-circle-close" 218 icon="el-icon-circle-close"
127 @click="handleStop(scope.row)" 219 @click="handleStop(scope.row)"
128 v-hasPermi="['workflow:process:cancel']" 220 v-hasPermi="['workflow:process:cancel']"
129 - >取消</el-button> 221 + >取消</el-button
  222 + >
130 <el-button 223 <el-button
131 type="text" 224 type="text"
132 size="mini" 225 size="mini"
133 icon="el-icon-refresh-right" 226 icon="el-icon-refresh-right"
134 v-hasPermi="['workflow:process:start']" 227 v-hasPermi="['workflow:process:start']"
135 @click="handleAgain(scope.row)" 228 @click="handleAgain(scope.row)"
136 - >重新发起</el-button> 229 + >重新发起</el-button
  230 + >
  231 + <el-button
  232 + type="text"
  233 + size="mini"
  234 + icon="el-icon-edit-outline"
  235 + @click="handleEdit(scope.row)"
  236 + >合同变更</el-button
  237 + >
137 </template> 238 </template>
138 </el-table-column> 239 </el-table-column>
139 </el-table> 240 </el-table>
140 241
141 <pagination 242 <pagination
142 - v-show="total>0" 243 + v-show="total > 0"
143 :total="total" 244 :total="total"
144 :page.sync="queryParams.pageNum" 245 :page.sync="queryParams.pageNum"
145 :limit.sync="queryParams.pageSize" 246 :limit.sync="queryParams.pageSize"
@@ -159,13 +260,22 @@ @@ -159,13 +260,22 @@
159 <el-input v-model="form.contractType" placeholder="请输入合同类型" /> 260 <el-input v-model="form.contractType" placeholder="请输入合同类型" />
160 </el-form-item> 261 </el-form-item>
161 <el-form-item label="合同金额" prop="contractAmount"> 262 <el-form-item label="合同金额" prop="contractAmount">
162 - <el-input v-model="form.contractAmount" placeholder="请输入合同金额" /> 263 + <el-input
  264 + v-model="form.contractAmount"
  265 + placeholder="请输入合同金额"
  266 + />
163 </el-form-item> 267 </el-form-item>
164 <el-form-item label="生效日期" prop="effectiveDate"> 268 <el-form-item label="生效日期" prop="effectiveDate">
165 - <el-date-picker v-model="form.effectiveDate" placeholder="请输入生效日期" /> 269 + <el-date-picker
  270 + v-model="form.effectiveDate"
  271 + placeholder="请输入生效日期"
  272 + />
166 </el-form-item> 273 </el-form-item>
167 <el-form-item label="到期日期" prop="expirationDate"> 274 <el-form-item label="到期日期" prop="expirationDate">
168 - <el-date-picker v-model="form.expirationDate" placeholder="请输入到期日期" /> 275 + <el-date-picker
  276 + v-model="form.expirationDate"
  277 + placeholder="请输入到期日期"
  278 + />
169 </el-form-item> 279 </el-form-item>
170 <el-form-item label="甲方" prop="partyA"> 280 <el-form-item label="甲方" prop="partyA">
171 <el-input v-model="form.partyA" placeholder="请输入甲方" /> 281 <el-input v-model="form.partyA" placeholder="请输入甲方" />
@@ -177,17 +287,25 @@ @@ -177,17 +287,25 @@
177 <el-input v-model="form.paymentMethod" placeholder="请输入付款方式" /> 287 <el-input v-model="form.paymentMethod" placeholder="请输入付款方式" />
178 </el-form-item> 288 </el-form-item>
179 <el-form-item label="签订日期" prop="signingDate"> 289 <el-form-item label="签订日期" prop="signingDate">
180 - <el-date-picker v-model="form.signingDate" placeholder="请输入签订日期" /> 290 + <el-date-picker
  291 + v-model="form.signingDate"
  292 + placeholder="请输入签订日期"
  293 + />
181 </el-form-item> 294 </el-form-item>
182 <el-form-item label="标的物信息" prop="subjectInformation"> 295 <el-form-item label="标的物信息" prop="subjectInformation">
183 - <el-input v-model="form.subjectInformation" placeholder="请输入标的物信息" /> 296 + <el-input
  297 + v-model="form.subjectInformation"
  298 + placeholder="请输入标的物信息"
  299 + />
184 </el-form-item> 300 </el-form-item>
185 <el-form-item label="附件" prop="attachments"> 301 <el-form-item label="附件" prop="attachments">
186 <el-input v-model="form.attachments" placeholder="请输入附件" /> 302 <el-input v-model="form.attachments" placeholder="请输入附件" />
187 </el-form-item> 303 </el-form-item>
188 </el-form> 304 </el-form>
189 <div slot="footer" class="dialog-footer"> 305 <div slot="footer" class="dialog-footer">
190 - <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button> 306 + <el-button :loading="buttonLoading" type="primary" @click="submitForm"
  307 + >确 定</el-button
  308 + >
191 <el-button @click="cancel">取 消</el-button> 309 <el-button @click="cancel">取 消</el-button>
192 </div> 310 </div>
193 </el-dialog> 311 </el-dialog>
@@ -195,12 +313,18 @@ @@ -195,12 +313,18 @@
195 </template> 313 </template>
196 314
197 <script> 315 <script>
198 -import { listContract, getContract, delContract, addContract, updateContract } from "@/api/compliancemanagement/contract";  
199 -import FileUpload from '@/components/FileUpload'; 316 +import {
  317 + listContract,
  318 + getContract,
  319 + delContract,
  320 + addContract,
  321 + updateContract,
  322 +} from "@/api/compliancemanagement/contract";
  323 +import FileUpload from "@/components/FileUpload";
200 export default { 324 export default {
201 name: "Contract", 325 name: "Contract",
202 components: { 326 components: {
203 - FileUpload 327 + FileUpload,
204 }, 328 },
205 data() { 329 data() {
206 return { 330 return {
@@ -247,45 +371,39 @@ export default { @@ -247,45 +371,39 @@ export default {
247 // 表单校验 371 // 表单校验
248 rules: { 372 rules: {
249 contractno: [ 373 contractno: [
250 - { required: true, message: "合同编号不能为空", trigger: "blur" } 374 + { required: true, message: "合同编号不能为空", trigger: "blur" },
251 ], 375 ],
252 contractName: [ 376 contractName: [
253 - { required: true, message: "合同名称不能为空", trigger: "blur" } 377 + { required: true, message: "合同名称不能为空", trigger: "blur" },
254 ], 378 ],
255 contractType: [ 379 contractType: [
256 - { required: true, message: "合同类型不能为空", trigger: "change" } 380 + { required: true, message: "合同类型不能为空", trigger: "change" },
257 ], 381 ],
258 contractAmount: [ 382 contractAmount: [
259 - { required: true, message: "合同金额不能为空", trigger: "blur" } 383 + { required: true, message: "合同金额不能为空", trigger: "blur" },
260 ], 384 ],
261 effectiveDate: [ 385 effectiveDate: [
262 - { required: true, message: "生效日期不能为空", trigger: "blur" } 386 + { required: true, message: "生效日期不能为空", trigger: "blur" },
263 ], 387 ],
264 expirationDate: [ 388 expirationDate: [
265 - { required: true, message: "到期日期不能为空", trigger: "blur" }  
266 - ],  
267 - partyA: [  
268 - { required: true, message: "甲方不能为空", trigger: "blur" }  
269 - ],  
270 - partyB: [  
271 - { required: true, message: "乙方不能为空", trigger: "blur" } 389 + { required: true, message: "到期日期不能为空", trigger: "blur" },
272 ], 390 ],
  391 + partyA: [{ required: true, message: "甲方不能为空", trigger: "blur" }],
  392 + partyB: [{ required: true, message: "乙方不能为空", trigger: "blur" }],
273 paymentMethod: [ 393 paymentMethod: [
274 - { required: true, message: "付款方式不能为空", trigger: "blur" } 394 + { required: true, message: "付款方式不能为空", trigger: "blur" },
275 ], 395 ],
276 signingDate: [ 396 signingDate: [
277 - { required: true, message: "签订日期不能为空", trigger: "blur" } 397 + { required: true, message: "签订日期不能为空", trigger: "blur" },
278 ], 398 ],
279 subjectInformation: [ 399 subjectInformation: [
280 - { required: true, message: "标的物信息不能为空", trigger: "blur" } 400 + { required: true, message: "标的物信息不能为空", trigger: "blur" },
281 ], 401 ],
282 attachments: [ 402 attachments: [
283 - { required: true, message: "附件不能为空", trigger: "blur" } 403 + { required: true, message: "附件不能为空", trigger: "blur" },
284 ], 404 ],
285 - id: [  
286 - { required: true, message: "不能为空", trigger: "blur" }  
287 - ]  
288 - } 405 + id: [{ required: true, message: "不能为空", trigger: "blur" }],
  406 + },
289 }; 407 };
290 }, 408 },
291 created() { 409 created() {
@@ -295,11 +413,11 @@ export default { @@ -295,11 +413,11 @@ export default {
295 /** 查询【请填写功能名称】列表 */ 413 /** 查询【请填写功能名称】列表 */
296 getList() { 414 getList() {
297 this.loading = true; 415 this.loading = true;
298 - listContract(this.queryParams).then(response => { 416 + listContract(this.queryParams).then((response) => {
299 this.contractList = response.rows; 417 this.contractList = response.rows;
300 this.total = response.total; 418 this.total = response.total;
301 this.loading = false; 419 this.loading = false;
302 - console.log(this.contractList) 420 + console.log(this.contractList);
303 }); 421 });
304 }, 422 },
305 // 取消按钮 423 // 取消按钮
@@ -322,7 +440,7 @@ export default { @@ -322,7 +440,7 @@ export default {
322 signingDate: undefined, 440 signingDate: undefined,
323 subjectInformation: undefined, 441 subjectInformation: undefined,
324 attachments: undefined, 442 attachments: undefined,
325 - id: undefined 443 + id: undefined,
326 }; 444 };
327 this.resetForm("form"); 445 this.resetForm("form");
328 }, 446 },
@@ -338,9 +456,9 @@ export default { @@ -338,9 +456,9 @@ export default {
338 }, 456 },
339 // 多选框选中数据 457 // 多选框选中数据
340 handleSelectionChange(selection) { 458 handleSelectionChange(selection) {
341 - this.ids = selection.map(item => item.id)  
342 - this.single = selection.length!==1  
343 - this.multiple = !selection.length 459 + this.ids = selection.map((item) => item.id);
  460 + this.single = selection.length !== 1;
  461 + this.multiple = !selection.length;
344 }, 462 },
345 /** 新增按钮操作 */ 463 /** 新增按钮操作 */
346 // handleAdd() { 464 // handleAdd() {
@@ -362,23 +480,27 @@ export default { @@ -362,23 +480,27 @@ export default {
362 // }, 480 // },
363 /** 提交按钮 */ 481 /** 提交按钮 */
364 submitForm() { 482 submitForm() {
365 - this.$refs["form"].validate(valid => { 483 + this.$refs["form"].validate((valid) => {
366 if (valid) { 484 if (valid) {
367 this.buttonLoading = true; 485 this.buttonLoading = true;
368 if (this.form.id != null) { 486 if (this.form.id != null) {
369 - updateContract(this.form).then(response => { 487 + updateContract(this.form)
  488 + .then((response) => {
370 this.$modal.msgSuccess("修改成功"); 489 this.$modal.msgSuccess("修改成功");
371 this.open = false; 490 this.open = false;
372 this.getList(); 491 this.getList();
373 - }).finally(() => { 492 + })
  493 + .finally(() => {
374 this.buttonLoading = false; 494 this.buttonLoading = false;
375 }); 495 });
376 } else { 496 } else {
377 - addContract(this.form).then(response => { 497 + addContract(this.form)
  498 + .then((response) => {
378 this.$modal.msgSuccess("新增成功"); 499 this.$modal.msgSuccess("新增成功");
379 this.open = false; 500 this.open = false;
380 this.getList(); 501 this.getList();
381 - }).finally(() => { 502 + })
  503 + .finally(() => {
382 this.buttonLoading = false; 504 this.buttonLoading = false;
383 }); 505 });
384 } 506 }
@@ -388,53 +510,64 @@ export default { @@ -388,53 +510,64 @@ export default {
388 /** 删除按钮操作 */ 510 /** 删除按钮操作 */
389 handleDelete(row) { 511 handleDelete(row) {
390 const ids = row.id || this.ids; 512 const ids = row.id || this.ids;
391 - this.$modal.confirm('是否确认删除【请填写功能名称】编号为"' + ids + '"的数据项?').then(() => { 513 + this.$modal
  514 + .confirm('是否确认删除【请填写功能名称】编号为"' + ids + '"的数据项?')
  515 + .then(() => {
392 this.loading = true; 516 this.loading = true;
393 return delContract(ids); 517 return delContract(ids);
394 - }).then(() => { 518 + })
  519 + .then(() => {
395 this.loading = false; 520 this.loading = false;
396 this.getList(); 521 this.getList();
397 this.$modal.msgSuccess("删除成功"); 522 this.$modal.msgSuccess("删除成功");
398 - }).catch(() => {  
399 - }).finally(() => { 523 + })
  524 + .catch(() => {})
  525 + .finally(() => {
400 this.loading = false; 526 this.loading = false;
401 }); 527 });
402 }, 528 },
403 /** 导出按钮操作 */ 529 /** 导出按钮操作 */
404 handleExport() { 530 handleExport() {
405 - this.download('system/contract/export', {  
406 - ...this.queryParams  
407 - }, `contract_${new Date().getTime()}.xlsx`) 531 + this.download(
  532 + "system/contract/export",
  533 + {
  534 + ...this.queryParams,
  535 + },
  536 + `contract_${new Date().getTime()}.xlsx`
  537 + );
408 }, 538 },
409 /** 流程流转记录 */ 539 /** 流程流转记录 */
410 handleFlowRecord(row) { 540 handleFlowRecord(row) {
411 this.$router.push({ 541 this.$router.push({
412 - path: '/workflow/process/detail/' + row.procInsId, 542 + path: "/workflow/process/detail/" + row.procInsId,
413 query: { 543 query: {
414 - processed: false  
415 - }  
416 - }) 544 + processed: false,
  545 + },
  546 + });
417 }, 547 },
418 /** 取消流程申请 */ 548 /** 取消流程申请 */
419 - handleStop(row){ 549 + handleStop(row) {
420 const params = { 550 const params = {
421 - procInsId: row.procInsId  
422 - }  
423 - stopProcess(params).then( res => { 551 + procInsId: row.procInsId,
  552 + };
  553 + stopProcess(params).then((res) => {
424 this.$modal.msgSuccess(res.msg); 554 this.$modal.msgSuccess(res.msg);
425 this.getList(); 555 this.getList();
426 }); 556 });
427 }, 557 },
428 handleAgain(row) { 558 handleAgain(row) {
429 this.$router.push({ 559 this.$router.push({
430 - path: '/workflow/process/start/' + row.deployId, 560 + path: "/workflow/process/start/" + row.deployId,
431 query: { 561 query: {
432 definitionId: row.procDefId, 562 definitionId: row.procDefId,
433 - procInsId: row.procInsId  
434 - }  
435 - }) 563 + procInsId: row.procInsId,
  564 + },
  565 + });
436 console.log(row); 566 console.log(row);
437 }, 567 },
  568 + handleEdit(row){
  569 +
438 } 570 }
  571 + },
439 }; 572 };
440 </script> 573 </script>
1 <template> 1 <template>
2 <div> 2 <div>
3 <el-row :gutter="15"> 3 <el-row :gutter="15">
4 - <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px"> 4 + <el-form
  5 + ref="elForm"
  6 + :model="formData"
  7 + :rules="rules"
  8 + size="medium"
  9 + label-width="100px"
  10 + >
5 <el-col :span="24"> 11 <el-col :span="24">
6 <el-form-item label="合同编号" prop="contractno"> 12 <el-form-item label="合同编号" prop="contractno">
7 - <el-input v-model="formData.contractno" placeholder="请输入合同编号" clearable :style="{width: '50%'}"> 13 + <el-input
  14 + v-model="formData.contractno"
  15 + placeholder="请输入合同编号"
  16 + clearable
  17 + :style="{ width: '50%' }"
  18 + >
8 </el-input> 19 </el-input>
9 </el-form-item> 20 </el-form-item>
10 </el-col> 21 </el-col>
11 <el-col :span="24"> 22 <el-col :span="24">
12 <el-form-item label="合同名称" prop="contractName"> 23 <el-form-item label="合同名称" prop="contractName">
13 - <el-input v-model="formData.contractName" placeholder="请输入合同名称" clearable  
14 - :style="{width: '50%'}"></el-input> 24 + <el-input
  25 + v-model="formData.contractName"
  26 + placeholder="请输入合同名称"
  27 + clearable
  28 + :style="{ width: '50%' }"
  29 + ></el-input>
15 </el-form-item> 30 </el-form-item>
16 </el-col> 31 </el-col>
17 <el-col :span="24"> 32 <el-col :span="24">
18 <el-form-item label="合同类型" prop="contractType"> 33 <el-form-item label="合同类型" prop="contractType">
19 - <el-input v-model="formData.contractType" placeholder="请输入合同类型" clearable  
20 - :style="{width: '50%'}"></el-input> 34 + <el-input
  35 + v-model="formData.contractType"
  36 + placeholder="请输入合同类型"
  37 + clearable
  38 + :style="{ width: '50%' }"
  39 + ></el-input>
21 </el-form-item> 40 </el-form-item>
22 </el-col> 41 </el-col>
23 <el-col :span="24"> 42 <el-col :span="24">
24 <el-form-item label="合同金额" prop="contractAmount"> 43 <el-form-item label="合同金额" prop="contractAmount">
25 - <el-input v-model="formData.contractAmount" placeholder="请输入合同金额" clearable  
26 - :style="{width: '50%'}"></el-input> 44 + <el-input
  45 + v-model="formData.contractAmount"
  46 + placeholder="请输入合同金额"
  47 + clearable
  48 + :style="{ width: '50%' }"
  49 + ></el-input>
27 </el-form-item> 50 </el-form-item>
28 </el-col> 51 </el-col>
29 <el-col :span="24"> 52 <el-col :span="24">
30 <el-form-item label="生效日期" prop="effectiveDate"> 53 <el-form-item label="生效日期" prop="effectiveDate">
31 - <el-date-picker v-model="formData.effectiveDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"  
32 - :style="{width: '50%'}" placeholder="请选择生效日期" clearable></el-date-picker> 54 + <el-date-picker
  55 + v-model="formData.effectiveDate"
  56 + format="yyyy-MM-dd"
  57 + value-format="yyyy-MM-dd"
  58 + :style="{ width: '50%' }"
  59 + placeholder="请选择生效日期"
  60 + clearable
  61 + ></el-date-picker>
33 </el-form-item> 62 </el-form-item>
34 </el-col> 63 </el-col>
35 <el-col :span="24"> 64 <el-col :span="24">
36 <el-form-item label="到期日期" prop="expirationDate"> 65 <el-form-item label="到期日期" prop="expirationDate">
37 - <el-date-picker v-model="formData.expirationDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"  
38 - :style="{width: '50%'}" placeholder="请选择到期日期" clearable></el-date-picker> 66 + <el-date-picker
  67 + v-model="formData.expirationDate"
  68 + format="yyyy-MM-dd"
  69 + value-format="yyyy-MM-dd"
  70 + :style="{ width: '50%' }"
  71 + placeholder="请选择到期日期"
  72 + clearable
  73 + ></el-date-picker>
39 </el-form-item> 74 </el-form-item>
40 </el-col> 75 </el-col>
41 <el-col :span="24"> 76 <el-col :span="24">
42 <el-form-item label="甲方" prop="partyA"> 77 <el-form-item label="甲方" prop="partyA">
43 - <el-input v-model="formData.partyA" placeholder="请输入甲方" clearable :style="{width: '50%'}"> 78 + <el-input
  79 + v-model="formData.partyA"
  80 + placeholder="请输入甲方"
  81 + clearable
  82 + :style="{ width: '50%' }"
  83 + >
44 </el-input> 84 </el-input>
45 </el-form-item> 85 </el-form-item>
46 </el-col> 86 </el-col>
47 <el-col :span="24"> 87 <el-col :span="24">
48 <el-form-item label="甲方链接地址" prop="partyAAddress"> 88 <el-form-item label="甲方链接地址" prop="partyAAddress">
49 - <el-input v-model="formData.partyAAddress" placeholder="请输入甲方链接地址" clearable :style="{width: '50%'}"> 89 + <el-input
  90 + v-model="formData.partyAAddress"
  91 + placeholder="请输入甲方链接地址"
  92 + clearable
  93 + :style="{ width: '50%' }"
  94 + >
50 </el-input> 95 </el-input>
51 </el-form-item> 96 </el-form-item>
52 </el-col> 97 </el-col>
53 <el-col :span="24"> 98 <el-col :span="24">
54 <el-form-item label="乙方" prop="partyB"> 99 <el-form-item label="乙方" prop="partyB">
55 - <el-input v-model="formData.partyB" placeholder="请输入乙方" clearable :style="{width: '50%'}"> 100 + <el-input
  101 + v-model="formData.partyB"
  102 + placeholder="请输入乙方"
  103 + clearable
  104 + :style="{ width: '50%' }"
  105 + >
56 </el-input> 106 </el-input>
57 </el-form-item> 107 </el-form-item>
58 </el-col> 108 </el-col>
59 <el-col :span="24"> 109 <el-col :span="24">
60 <el-form-item label="乙方链接地址" prop="partyBAddress"> 110 <el-form-item label="乙方链接地址" prop="partyBAddress">
61 - <el-input v-model="formData.partyBAddress" placeholder="请输入乙方链接地址" clearable :style="{width: '50%'}"> 111 + <el-input
  112 + v-model="formData.partyBAddress"
  113 + placeholder="请输入乙方链接地址"
  114 + clearable
  115 + :style="{ width: '50%' }"
  116 + >
62 </el-input> 117 </el-input>
63 </el-form-item> 118 </el-form-item>
64 </el-col> 119 </el-col>
65 <el-col :span="24"> 120 <el-col :span="24">
66 <el-form-item label="付款方式" prop="paymentMethod"> 121 <el-form-item label="付款方式" prop="paymentMethod">
67 - <el-input v-model="formData.paymentMethod" placeholder="请输入付款方式" clearable  
68 - :style="{width: '50%'}"></el-input> 122 + <el-input
  123 + v-model="formData.paymentMethod"
  124 + placeholder="请输入付款方式"
  125 + clearable
  126 + :style="{ width: '50%' }"
  127 + ></el-input>
69 </el-form-item> 128 </el-form-item>
70 </el-col> 129 </el-col>
71 <el-col :span="24"> 130 <el-col :span="24">
72 <el-form-item label="签订日期" prop="signingDate"> 131 <el-form-item label="签订日期" prop="signingDate">
73 - <el-date-picker v-model="formData.signingDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"  
74 - :style="{width: '50%'}" placeholder="请选择签订日期" clearable></el-date-picker> 132 + <el-date-picker
  133 + v-model="formData.signingDate"
  134 + format="yyyy-MM-dd"
  135 + value-format="yyyy-MM-dd"
  136 + :style="{ width: '50%' }"
  137 + placeholder="请选择签订日期"
  138 + clearable
  139 + ></el-date-picker>
75 </el-form-item> 140 </el-form-item>
76 </el-col> 141 </el-col>
77 <el-col :span="24"> 142 <el-col :span="24">
78 <el-form-item label="标的物信息" prop="subjectInformation"> 143 <el-form-item label="标的物信息" prop="subjectInformation">
79 - <el-input v-model="formData.subjectInformation" placeholder="请输入标的物信息" clearable  
80 - :style="{width: '50%'}"></el-input> 144 + <el-input
  145 + v-model="formData.subjectInformation"
  146 + placeholder="请输入标的物信息"
  147 + clearable
  148 + :style="{ width: '50%' }"
  149 + ></el-input>
81 </el-form-item> 150 </el-form-item>
82 </el-col> 151 </el-col>
83 <el-col :span="24"> 152 <el-col :span="24">
@@ -104,19 +173,42 @@ @@ -104,19 +173,42 @@
104 <!-- 上传提示 --> 173 <!-- 上传提示 -->
105 <div class="el-upload__tip" slot="tip"> 174 <div class="el-upload__tip" slot="tip">
106 请上传 175 请上传
107 - <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>  
108 - <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template> 176 + <template v-if="fileSize">
  177 + 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
  178 + </template>
  179 + <template v-if="fileType">
  180 + 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b>
  181 + </template>
109 的文件 182 的文件
110 </div> 183 </div>
111 </el-upload> 184 </el-upload>
112 <!-- 文件列表 --> 185 <!-- 文件列表 -->
113 - <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">  
114 - <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">  
115 - <el-link :href="`${file.url}`" :underline="false" target="_blank">  
116 - <span class="el-icon-document"> {{ getFileName(file.name) }} </span> 186 + <transition-group
  187 + class="upload-file-list el-upload-list el-upload-list--text"
  188 + name="el-fade-in-linear"
  189 + tag="ul"
  190 + >
  191 + <li
  192 + :key="file.url"
  193 + class="el-upload-list__item ele-upload-list__item-content"
  194 + v-for="(file, index) in fileList"
  195 + >
  196 + <el-link
  197 + :href="`${file.url}`"
  198 + :underline="false"
  199 + target="_blank"
  200 + >
  201 + <span class="el-icon-document">
  202 + {{ getFileName(file.name) }}
  203 + </span>
117 </el-link> 204 </el-link>
118 <div class="ele-upload-list__item-content-action"> 205 <div class="ele-upload-list__item-content-action">
119 - <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link> 206 + <el-link
  207 + :underline="false"
  208 + @click="handleDelete(index)"
  209 + type="danger"
  210 + >删除</el-link
  211 + >
120 </div> 212 </div>
121 </li> 213 </li>
122 </transition-group> 214 </transition-group>
@@ -131,11 +223,17 @@ @@ -131,11 +223,17 @@
131 </el-form> 223 </el-form>
132 </el-row> 224 </el-row>
133 </div> 225 </div>
134 - </template> 226 +</template>
135 <script> 227 <script>
136 - import { listContract, getContract, delContract, addAndStart, updateContract } from "@/api/compliancemanagement/contract";  
137 - import { getToken } from "@/utils/auth";  
138 - export default { 228 +import {
  229 + listContract,
  230 + getContract,
  231 + delContract,
  232 + addAndStart,
  233 + updateContract,
  234 +} from "@/api/compliancemanagement/contract";
  235 +import { getToken } from "@/utils/auth";
  236 +export default {
139 components: {}, 237 components: {},
140 props: { 238 props: {
141 // 数量限制 239 // 数量限制
@@ -156,22 +254,22 @@ @@ -156,22 +254,22 @@
156 }, 254 },
157 data() { 255 data() {
158 const validatAttachments = (rule, value, callback) => { 256 const validatAttachments = (rule, value, callback) => {
159 - console.log('this.fileList',this.fileList)  
160 - if (this.fileList.length <=0 ) { 257 + console.log("this.fileList", this.fileList);
  258 + if (this.fileList.length <= 0) {
161 callback(new Error("请上传附件!")); 259 callback(new Error("请上传附件!"));
162 } else { 260 } else {
163 callback(); 261 callback();
164 } 262 }
165 }; 263 };
166 return { 264 return {
167 - fileList:[], 265 + fileList: [],
168 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传文件服务器地址 266 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传文件服务器地址
169 headers: { 267 headers: {
170 Authorization: "Bearer " + getToken(), 268 Authorization: "Bearer " + getToken(),
171 }, 269 },
172 uploadList: [], 270 uploadList: [],
173 number: 0, 271 number: 0,
174 - procDefId:null, 272 + procDefId: null,
175 formData: { 273 formData: {
176 contractno: undefined, 274 contractno: undefined,
177 contractName: undefined, 275 contractName: undefined,
@@ -180,73 +278,93 @@ @@ -180,73 +278,93 @@
180 effectiveDate: null, 278 effectiveDate: null,
181 expirationDate: null, 279 expirationDate: null,
182 partyA: undefined, 280 partyA: undefined,
183 - partyAAddress:undefined, 281 + partyAAddress: undefined,
184 partyB: undefined, 282 partyB: undefined,
185 - partyBAddress:undefined, 283 + partyBAddress: undefined,
186 paymentMethod: undefined, 284 paymentMethod: undefined,
187 signingDate: null, 285 signingDate: null,
188 subjectInformation: undefined, 286 subjectInformation: undefined,
189 attachments: undefined, 287 attachments: undefined,
190 }, 288 },
191 rules: { 289 rules: {
192 - contractno: [{ 290 + contractno: [
  291 + {
193 required: true, 292 required: true,
194 - message: '请输入合同编号',  
195 - trigger: 'blur'  
196 - }],  
197 - contractName: [{ 293 + message: "请输入合同编号",
  294 + trigger: "blur",
  295 + },
  296 + ],
  297 + contractName: [
  298 + {
198 required: true, 299 required: true,
199 - message: '请输入合同名称',  
200 - trigger: 'blur'  
201 - }],  
202 - contractType: [{ 300 + message: "请输入合同名称",
  301 + trigger: "blur",
  302 + },
  303 + ],
  304 + contractType: [
  305 + {
203 required: true, 306 required: true,
204 - message: '请输入合同类型',  
205 - trigger: 'blur'  
206 - }],  
207 - contractAmount: [{ 307 + message: "请输入合同类型",
  308 + trigger: "blur",
  309 + },
  310 + ],
  311 + contractAmount: [
  312 + {
208 required: true, 313 required: true,
209 - message: '请输入合同金额',  
210 - trigger: 'blur'  
211 - }],  
212 - effectiveDate: [{ 314 + message: "请输入合同金额",
  315 + trigger: "blur",
  316 + },
  317 + ],
  318 + effectiveDate: [
  319 + {
213 required: true, 320 required: true,
214 - message: '请选择生效日期',  
215 - trigger: 'change'  
216 - }],  
217 - expirationDate: [{ 321 + message: "请选择生效日期",
  322 + trigger: "change",
  323 + },
  324 + ],
  325 + expirationDate: [
  326 + {
218 required: true, 327 required: true,
219 - message: '请选择到期日期',  
220 - trigger: 'change'  
221 - }],  
222 - partyA: [{ 328 + message: "请选择到期日期",
  329 + trigger: "change",
  330 + },
  331 + ],
  332 + partyA: [
  333 + {
223 required: true, 334 required: true,
224 - message: '请输入甲方',  
225 - trigger: 'blur'  
226 - }],  
227 - partyAAddress: [{ 335 + message: "请输入甲方",
  336 + trigger: "blur",
  337 + },
  338 + ],
  339 + partyAAddress: [
  340 + {
228 required: true, 341 required: true,
229 - message: '请输入甲方链接',  
230 - trigger: 'blur'  
231 - }],  
232 - partyB: [{ 342 + message: "请输入甲方链接",
  343 + trigger: "blur",
  344 + },
  345 + ],
  346 + partyB: [
  347 + {
233 required: true, 348 required: true,
234 - message: '请输入乙方',  
235 - trigger: 'blur'  
236 - }],  
237 - partyBAddress: [{ 349 + message: "请输入乙方",
  350 + trigger: "blur",
  351 + },
  352 + ],
  353 + partyBAddress: [
  354 + {
238 required: true, 355 required: true,
239 - message: '请输入乙方链接',  
240 - trigger: 'blur'  
241 - }], 356 + message: "请输入乙方链接",
  357 + trigger: "blur",
  358 + },
  359 + ],
242 paymentMethod: [ 360 paymentMethod: [
243 - {required: true, message: '请输入付款方式',trigger: 'blur'} 361 + { required: true, message: "请输入付款方式", trigger: "blur" },
244 ], 362 ],
245 signingDate: [ 363 signingDate: [
246 - {required: true,message: '请选择签订日期',trigger: 'change'} 364 + { required: true, message: "请选择签订日期", trigger: "change" },
247 ], 365 ],
248 subjectInformation: [ 366 subjectInformation: [
249 - {required: true,message: '请输入标的物信息',trigger: 'blur'} 367 + { required: true, message: "请输入标的物信息", trigger: "blur" },
250 ], 368 ],
251 attachments: [ 369 attachments: [
252 // { 370 // {
@@ -254,9 +372,10 @@ @@ -254,9 +372,10 @@
254 // message: '请输入附件', 372 // message: '请输入附件',
255 // trigger: 'blur' 373 // trigger: 'blur'
256 // }, 374 // },
257 - { required: true, validator: validatAttachments, trigger: "blur" }], 375 + { required: true, validator: validatAttachments, trigger: "blur" },
  376 + ],
258 }, 377 },
259 - } 378 + };
260 }, 379 },
261 computed: {}, 380 computed: {},
262 watch: {}, 381 watch: {},
@@ -264,33 +383,36 @@ @@ -264,33 +383,36 @@
264 }, 383 },
265 mounted() {}, 384 mounted() {},
266 methods: { 385 methods: {
267 -  
268 submitForm() { 386 submitForm() {
269 - this.$refs['elForm'].validate(valid => { 387 + this.$refs["elForm"].validate((valid) => {
270 // console.log(this.formData) 388 // console.log(this.formData)
271 if (valid) { 389 if (valid) {
272 - console.log('===',this.formData)  
273 - this.formData.attachments = this.fileList[0].name 390 + console.log("===", this.formData);
  391 + this.formData.attachments = this.fileList[0].name;
274 // return 392 // return
275 - addAndStart(this.formData).then(response => { 393 + addAndStart(this.formData).then((response) => {
276 this.$modal.msgSuccess("流程启动成功"); 394 this.$modal.msgSuccess("流程启动成功");
277 - this.$router.push({ path: '/contract/compliancemanagement/contractmanagement/contract'});  
278 - }) 395 + this.$router.push({
  396 + path: "/contract/compliancemanagement/contractmanagement/contract",
  397 + });
  398 + });
279 } 399 }
280 - }) 400 + });
281 }, 401 },
282 resetForm() { 402 resetForm() {
283 - this.$refs['elForm'].resetFields() 403 + this.$refs["elForm"].resetFields();
284 }, 404 },
285 // 上传前校检格式和大小 405 // 上传前校检格式和大小
286 handleBeforeUpload(file) { 406 handleBeforeUpload(file) {
287 // 校检文件类型 407 // 校检文件类型
288 if (this.fileType) { 408 if (this.fileType) {
289 - const fileName = file.name.split('.'); 409 + const fileName = file.name.split(".");
290 const fileExt = fileName[fileName.length - 1]; 410 const fileExt = fileName[fileName.length - 1];
291 const isTypeOk = this.fileType.indexOf(fileExt) >= 0; 411 const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
292 if (!isTypeOk) { 412 if (!isTypeOk) {
293 - this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`); 413 + this.$modal.msgError(
  414 + `文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`
  415 + );
294 return false; 416 return false;
295 } 417 }
296 } 418 }
@@ -320,9 +442,13 @@ @@ -320,9 +442,13 @@
320 }, 442 },
321 // 上传成功回调 443 // 上传成功回调
322 handleUploadSuccess(res, file) { 444 handleUploadSuccess(res, file) {
323 - console.log('handleUploadSuccess',res) 445 + console.log("handleUploadSuccess", res);
324 if (res.code === 200) { 446 if (res.code === 200) {
325 - this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); 447 + this.uploadList.push({
  448 + name: res.data.fileName,
  449 + url: res.data.url,
  450 + ossId: res.data.ossId,
  451 + });
326 this.uploadedSuccessfully(); 452 this.uploadedSuccessfully();
327 } else { 453 } else {
328 this.number--; 454 this.number--;
@@ -367,10 +493,9 @@ @@ -367,10 +493,9 @@
367 } 493 }
368 return strs != "" ? strs.substr(0, strs.length - 1) : ""; 494 return strs != "" ? strs.substr(0, strs.length - 1) : "";
369 }, 495 },
370 - }  
371 - }  
372 -  
373 - </script> 496 + },
  497 +};
  498 +</script>
374 <style> 499 <style>
375 - </style> 500 +</style>
376   501  
@@ -249,7 +249,7 @@ export default { @@ -249,7 +249,7 @@ export default {
249 headers: { Authorization: "Bearer " + getToken() }, 249 headers: { Authorization: "Bearer " + getToken() },
250 // 上传的地址 250 // 上传的地址
251 url: process.env.VUE_APP_BASE_API + "/common/uploads", 251 url: process.env.VUE_APP_BASE_API + "/common/uploads",
252 - urlhead: "http://joycart.zgftlm.com", 252 + urlhead: process.env.VUE_APP_BASE_API,
253 fileList: [], 253 fileList: [],
254 dialogVisible: false, 254 dialogVisible: false,
255 dialogImageUrl: "", 255 dialogImageUrl: "",