作者 张晓杰

合同归档、删除汇总菜单的新增修改删除操作

1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 -// 查询【请填写功能名称】列表 3 +// 查询【合同审批】列表
4 export function listContract(query) { 4 export function listContract(query) {
5 return request({ 5 return request({
6 url: '/system/contract/list', 6 url: '/system/contract/list',
@@ -9,6 +9,15 @@ export function listContract(query) { @@ -9,6 +9,15 @@ export function listContract(query) {
9 }) 9 })
10 } 10 }
11 11
  12 +// 查询【合同归档】列表
  13 +export function listSealContract(query) {
  14 + return request({
  15 + url: '/system/contract/listSealContract',
  16 + method: 'get',
  17 + params: query
  18 + })
  19 +}
  20 +
12 // 查询【请填写功能名称】详细 21 // 查询【请填写功能名称】详细
13 export function getContract(Contractno) { 22 export function getContract(Contractno) {
14 return request({ 23 return request({
@@ -51,3 +60,11 @@ export function delContract(Contractno) { @@ -51,3 +60,11 @@ export function delContract(Contractno) {
51 method: 'delete' 60 method: 'delete'
52 }) 61 })
53 } 62 }
  63 +
  64 +export function updateSealByContractno(data) {
  65 + return request({
  66 + url: '/system/contract/updateSealByContractno',
  67 + method: 'post',
  68 + data: data
  69 + })
  70 +}
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
32 </el-form> 32 </el-form>
33 33
34 <el-row :gutter="10" class="mb8"> 34 <el-row :gutter="10" class="mb8">
35 - <el-col :span="1.5"> 35 + <!-- <el-col :span="1.5">
36 <el-button 36 <el-button
37 type="primary" 37 type="primary"
38 plain 38 plain
@@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@
63 @click="handleDelete" 63 @click="handleDelete"
64 v-hasPermi="['system:accountabilitysummary:remove']" 64 v-hasPermi="['system:accountabilitysummary:remove']"
65 >删除</el-button> 65 >删除</el-button>
66 - </el-col> 66 + </el-col> -->
67 <el-col :span="1.5"> 67 <el-col :span="1.5">
68 <el-button 68 <el-button
69 type="warning" 69 type="warning"
@@ -85,7 +85,7 @@ @@ -85,7 +85,7 @@
85 <el-table-column label="处理类型" align="center" prop="processingtypes" /> 85 <el-table-column label="处理类型" align="center" prop="processingtypes" />
86 <el-table-column label="经济处理" align="center" prop="economicprocessing" /> 86 <el-table-column label="经济处理" align="center" prop="economicprocessing" />
87 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> --> 87 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> -->
88 - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 88 + <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
89 <template slot-scope="scope"> 89 <template slot-scope="scope">
90 <el-button 90 <el-button
91 size="mini" 91 size="mini"
@@ -102,7 +102,7 @@ @@ -102,7 +102,7 @@
102 v-hasPermi="['system:accountabilitysummary:remove']" 102 v-hasPermi="['system:accountabilitysummary:remove']"
103 >删除</el-button> 103 >删除</el-button>
104 </template> 104 </template>
105 - </el-table-column> 105 + </el-table-column> -->
106 </el-table> 106 </el-table>
107 107
108 <pagination 108 <pagination
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 </el-form> 24 </el-form>
25 25
26 <el-row :gutter="10" class="mb8"> 26 <el-row :gutter="10" class="mb8">
27 - <el-col :span="1.5"> 27 + <!-- <el-col :span="1.5">
28 <el-button 28 <el-button
29 type="primary" 29 type="primary"
30 plain 30 plain
@@ -55,7 +55,7 @@ @@ -55,7 +55,7 @@
55 @click="handleDelete" 55 @click="handleDelete"
56 v-hasPermi="['system:assessmentsummary:remove']" 56 v-hasPermi="['system:assessmentsummary:remove']"
57 >删除</el-button> 57 >删除</el-button>
58 - </el-col> 58 + </el-col> -->
59 <el-col :span="1.5"> 59 <el-col :span="1.5">
60 <el-button 60 <el-button
61 type="warning" 61 type="warning"
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 <el-table-column label="汇总" align="center" prop="summary" /> 79 <el-table-column label="汇总" align="center" prop="summary" />
80 <el-table-column label="排名" align="center" prop="ranking" /> 80 <el-table-column label="排名" align="center" prop="ranking" />
81 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> --> 81 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> -->
82 - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 82 + <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
83 <template slot-scope="scope"> 83 <template slot-scope="scope">
84 <el-button 84 <el-button
85 size="mini" 85 size="mini"
@@ -96,7 +96,7 @@ @@ -96,7 +96,7 @@
96 v-hasPermi="['system:assessmentsummary:remove']" 96 v-hasPermi="['system:assessmentsummary:remove']"
97 >删除</el-button> 97 >删除</el-button>
98 </template> 98 </template>
99 - </el-table-column> 99 + </el-table-column> -->
100 </el-table> 100 </el-table>
101 101
102 <pagination 102 <pagination
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 </el-form> 16 </el-form>
17 17
18 <el-row :gutter="10" class="mb8"> 18 <el-row :gutter="10" class="mb8">
19 - <el-col :span="1.5"> 19 + <!-- <el-col :span="1.5">
20 <el-button 20 <el-button
21 type="primary" 21 type="primary"
22 plain 22 plain
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 @click="handleDelete" 47 @click="handleDelete"
48 v-hasPermi="['system:problemrectificationsummary:remove']" 48 v-hasPermi="['system:problemrectificationsummary:remove']"
49 >删除</el-button> 49 >删除</el-button>
50 - </el-col> 50 + </el-col> -->
51 <el-col :span="1.5"> 51 <el-col :span="1.5">
52 <el-button 52 <el-button
53 type="warning" 53 type="warning"
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
68 <el-table-column label="整改完成数" align="center" prop="completedNumber" /> 68 <el-table-column label="整改完成数" align="center" prop="completedNumber" />
69 <el-table-column label="未完成数" align="center" prop="unfinishedNumber" /> 69 <el-table-column label="未完成数" align="center" prop="unfinishedNumber" />
70 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> --> 70 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> -->
71 - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 71 + <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
72 <template slot-scope="scope"> 72 <template slot-scope="scope">
73 <el-button 73 <el-button
74 size="mini" 74 size="mini"
@@ -85,7 +85,7 @@ @@ -85,7 +85,7 @@
85 v-hasPermi="['system:problemrectificationsummary:remove']" 85 v-hasPermi="['system:problemrectificationsummary:remove']"
86 >删除</el-button> 86 >删除</el-button>
87 </template> 87 </template>
88 - </el-table-column> 88 + </el-table-column> -->
89 </el-table> 89 </el-table>
90 90
91 <pagination 91 <pagination
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 - <el-form  
4 - :model="queryParams"  
5 - ref="queryForm"  
6 - size="small"  
7 - :inline="true"  
8 - v-show="showSearch"  
9 - label-width="68px"  
10 - > 3 + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" >
11 <el-form-item label="合同编号" prop="contractno"> 4 <el-form-item label="合同编号" prop="contractno">
12 - <el-input  
13 - v-model="queryParams.contractno"  
14 - placeholder="请输入合同编号"  
15 - clearable  
16 - @keyup.enter.native="handleQuery"  
17 - /> 5 + <el-input v-model="queryParams.contractno" placeholder="请输入合同编号" clearable @keyup.enter.native="handleQuery" />
18 </el-form-item> 6 </el-form-item>
19 <el-form-item label="合同名称" prop="contractName"> 7 <el-form-item label="合同名称" prop="contractName">
20 - <el-input  
21 - v-model="queryParams.contractName"  
22 - placeholder="请输入合同名称"  
23 - clearable  
24 - @keyup.enter.native="handleQuery"  
25 - /> 8 + <el-input v-model="queryParams.contractName" placeholder="请输入合同名称" clearable @keyup.enter.native="handleQuery" />
26 </el-form-item> 9 </el-form-item>
27 <el-form-item> 10 <el-form-item>
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 - > 11 + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button >
  12 + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button >
38 </el-form-item> 13 </el-form-item>
39 </el-form> 14 </el-form>
40 15
41 <el-row :gutter="10" class="mb8"> 16 <el-row :gutter="10" class="mb8">
42 - <!--<el-col :span="1.5">  
43 - <el-button  
44 - type="primary"  
45 - plain  
46 - icon="el-icon-plus"  
47 - size="mini"  
48 - @click="handleAdd"  
49 - v-hasPermi="['system:contract:add']"  
50 - >新增</el-button>  
51 - </el-col>-->  
52 - <!-- <el-col :span="1.5">  
53 - <el-button  
54 - type="success"  
55 - plain  
56 - icon="el-icon-edit"  
57 - size="mini"  
58 - :disabled="single"  
59 - @click="handleUpdate"  
60 - v-hasPermi="['system:contract:edit']"  
61 - >修改</el-button>  
62 - </el-col> -->  
63 <el-col :span="1.5"> 17 <el-col :span="1.5">
64 - <el-button  
65 - type="danger"  
66 - plain  
67 - icon="el-icon-delete"  
68 - size="mini"  
69 - :disabled="multiple"  
70 - @click="handleDelete"  
71 - v-hasPermi="['system:contract:remove']"  
72 - >删除</el-button  
73 - > 18 + <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:contract:remove']" >删除</el-button >
74 </el-col> 19 </el-col>
75 <el-col :span="1.5"> 20 <el-col :span="1.5">
76 - <el-button  
77 - type="warning"  
78 - plain  
79 - icon="el-icon-download"  
80 - size="mini"  
81 - @click="handleExport"  
82 - v-hasPermi="['system:contract:export']"  
83 - >导出</el-button  
84 - > 21 + <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:contract:export']" >导出</el-button >
85 </el-col> 22 </el-col>
86 - <right-toolbar  
87 - :showSearch.sync="showSearch"  
88 - @queryTable="getList"  
89 - ></right-toolbar> 23 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar>
90 </el-row> 24 </el-row>
91 25
92 - <el-table  
93 - v-loading="loading"  
94 - :data="contractList"  
95 - @selection-change="handleSelectionChange"  
96 - > 26 + <el-table v-loading="loading" :data="contractList" @selection-change="handleSelectionChange" >
97 <el-table-column type="selection" width="55" align="center" /> 27 <el-table-column type="selection" width="55" align="center" />
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 - <template slot-scope="scope">  
123 - <el-button  
124 - type="text"  
125 - size="mini"  
126 - @click="handleContractAmount(scope.row)"  
127 - >{{scope.row.contractAmount}}</el-button  
128 - >  
129 - </template></el-table-column>  
130 - <el-table-column  
131 - label="生效日期"  
132 - align="center"  
133 - prop="effectiveDate"  
134 - width="100"  
135 - > 28 + <el-table-column label="合同编号" align="center" prop="contractno" width="100" />
  29 + <el-table-column label="合同名称" align="center" prop="contractName" width="200" />
  30 + <el-table-column label="合同类型" align="center" prop="contractType" width="100" />
  31 + <el-table-column label="合同金额" align="center" prop="contractAmount" width="100" />
  32 + <el-table-column label="生效日期" align="center" prop="effectiveDate" width="100" >
136 <template slot-scope="scope"> 33 <template slot-scope="scope">
137 <span>{{ parseTime(scope.row.effectiveDate, "{y}-{m}-{d}") }}</span> 34 <span>{{ parseTime(scope.row.effectiveDate, "{y}-{m}-{d}") }}</span>
138 </template> 35 </template>
139 </el-table-column> 36 </el-table-column>
140 - <el-table-column  
141 - label="到期日期"  
142 - align="center"  
143 - prop="expirationDate"  
144 - width="100"  
145 - > 37 + <el-table-column label="到期日期" align="center" prop="expirationDate" width="100" >
146 <template slot-scope="scope"> 38 <template slot-scope="scope">
147 <span>{{ parseTime(scope.row.expirationDate, "{y}-{m}-{d}") }}</span> 39 <span>{{ parseTime(scope.row.expirationDate, "{y}-{m}-{d}") }}</span>
148 </template> 40 </template>
149 </el-table-column> 41 </el-table-column>
150 <el-table-column label="甲方" align="center" prop="partyA" width="200"> 42 <el-table-column label="甲方" align="center" prop="partyA" width="200">
151 <template slot-scope="scope"> 43 <template slot-scope="scope">
152 - <a  
153 - :href="scope.row.partyAAddress"  
154 - target="_blank"  
155 - style="color: #1890ff"  
156 - >{{ scope.row.partyA }}</a  
157 - > 44 + <a :href="scope.row.partyAAddress" target="_blank" style="color: #1890ff" >{{ scope.row.partyA }}</a >
158 </template> 45 </template>
159 </el-table-column> 46 </el-table-column>
160 <el-table-column label="乙方" align="center" prop="partyB" width="200"> 47 <el-table-column label="乙方" align="center" prop="partyB" width="200">
161 <template slot-scope="scope"> 48 <template slot-scope="scope">
162 - <a  
163 - :href="scope.row.partyBAddress"  
164 - target="_blank"  
165 - style="color: #1890ff"  
166 - >{{ scope.row.partyB }}</a  
167 - > 49 + <a :href="scope.row.partyBAddress" target="_blank" style="color: #1890ff" >{{ scope.row.partyB }}</a >
168 </template> 50 </template>
169 </el-table-column> 51 </el-table-column>
170 - <el-table-column  
171 - label="付款方式"  
172 - align="center"  
173 - prop="paymentMethod"  
174 - width="200"  
175 - />  
176 - <el-table-column  
177 - label="签订日期"  
178 - align="center"  
179 - prop="signingDate"  
180 - width="100"  
181 - > 52 + <el-table-column label="付款方式" align="center" prop="paymentMethod" width="200" />
  53 + <el-table-column label="签订日期" align="center" prop="signingDate" width="100" >
182 <template slot-scope="scope"> 54 <template slot-scope="scope">
183 <span>{{ parseTime(scope.row.signingDate, "{y}-{m}-{d}") }}</span> 55 <span>{{ parseTime(scope.row.signingDate, "{y}-{m}-{d}") }}</span>
184 </template> 56 </template>
185 </el-table-column> 57 </el-table-column>
186 - <el-table-column  
187 - label="标的物信息"  
188 - align="center"  
189 - prop="subjectInformation"  
190 - width="200"  
191 - />  
192 - <el-table-column  
193 - label="附件"  
194 - align="center"  
195 - prop="attachments"  
196 - width="100"  
197 - >  
198 - <!-- <template slot-scope="scope">  
199 - <img :src="baseUrl + scope.row.attachments" width="40px" height="auto" style="cursor: pointer"/>  
200 - </template> --> 58 + <el-table-column label="标的物信息" align="center" prop="subjectInformation" width="200" />
  59 + <el-table-column label="合同状态" align="center" prop="status" width="200" >
201 <template slot-scope="scope"> 60 <template slot-scope="scope">
202 - <img  
203 - v-if="scope.row.attachments"  
204 - src="@/assets/images/PDF.png"  
205 - @click="preview(scope.row.attachments)"  
206 - width="40px"  
207 - height="auto"  
208 - style="cursor: pointer"  
209 - /> 61 + <el-tag v-if="scope.row.status == '0'">进行中</el-tag>
  62 + <el-tag type="danger" v-if="scope.row.status == '1'">已终止</el-tag>
  63 + <el-tag type="info" v-if="scope.row.status == '2'">已解除</el-tag>
  64 + <el-tag type="warning" v-if="scope.row.status == '3'">已完成</el-tag>
210 </template> 65 </template>
211 </el-table-column> 66 </el-table-column>
212 - <el-table-column  
213 - label="操作"  
214 - align="center"  
215 - class-name="small-padding fixed-width"  
216 - fixed="right"  
217 - width="200"  
218 - > 67 + <el-table-column label="审批状态" align="center" prop="approvalTatus" width="200" >
219 <template slot-scope="scope"> 68 <template slot-scope="scope">
220 - <el-button  
221 - type="text"  
222 - size="mini"  
223 - icon="el-icon-tickets"  
224 - @click="handleFlowRecord(scope.row)"  
225 - v-hasPermi="['workflow:process:query']"  
226 - >详情</el-button  
227 - >  
228 - <el-button  
229 - type="text"  
230 - size="mini"  
231 - icon="el-icon-delete"  
232 - @click="handleDelete(scope.row)"  
233 - v-if="scope.row.finishTime"  
234 - v-hasPermi="['workflow:process:remove']"  
235 - >删除</el-button  
236 - >  
237 - <el-button  
238 - type="text"  
239 - size="mini"  
240 - icon="el-icon-circle-close"  
241 - @click="handleStop(scope.row)"  
242 - v-hasPermi="['workflow:process:cancel']"  
243 - >取消</el-button  
244 - >  
245 - <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['workflow:process:start', 'workflow:process:start']"> 69 + <dict-tag :options="dict.type.wf_process_status" :value="scope.row.processStatus"/>
  70 + </template>
  71 + </el-table-column>
  72 + <el-table-column label="附件" align="center" prop="attachments" width="100" >
  73 + <template slot-scope="scope">
  74 + <img v-if="scope.row.attachments" src="@/assets/images/PDF.png" @click="preview(scope.row.attachments)" width="40px" height="auto" style="cursor: pointer" />
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200" >
  78 + <template slot-scope="scope">
  79 + <el-button type="text" size="mini" icon="el-icon-tickets" @click="handleFlowRecord(scope.row)" v-hasPermi="['workflow:process:query']" >详情</el-button >
  80 + <el-button type="text" size="mini" icon="el-icon-upload" v-if="scope.row.processStatus =='completed' && !scope.row.sealContract" @click="handleUploadSealContract(scope.row)" >上传合同</el-button >
  81 + <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" >
246 <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button> 82 <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
247 <el-dropdown-menu slot="dropdown"> 83 <el-dropdown-menu slot="dropdown">
248 <el-dropdown-item command="handleAgain" icon="el-icon-refresh-right" 84 <el-dropdown-item command="handleAgain" icon="el-icon-refresh-right"
249 - v-hasPermi="['workflow:process:start']">重新发起</el-dropdown-item>  
250 - <el-dropdown-item command="handleEvaluate" icon="el-icon-star-off"  
251 - >履行评价</el-dropdown-item>  
252 - <el-dropdown-item command="handleEdit" icon="el-icon-edit-outline"  
253 - v-hasPermi="['workflow:process:start']">合同变更</el-dropdown-item>  
254 - <el-dropdown-item command="handleUnbind" icon="el-icon-edit-outline">  
255 - 解绑</el-dropdown-item> 85 + >重新发起</el-dropdown-item>
  86 + <el-dropdown-item command="handleDelete" icon="el-icon-delete" v-hasPermi="['workflow:process:remove']"
  87 + >删除</el-dropdown-item>
  88 + <el-dropdown-item command="handleStop" icon="el-icon-delete" v-hasPermi="['workflow:process:cancel']"
  89 + >取消</el-dropdown-item>
256 </el-dropdown-menu> 90 </el-dropdown-menu>
257 </el-dropdown> 91 </el-dropdown>
258 </template> 92 </template>
@@ -266,91 +100,21 @@ @@ -266,91 +100,21 @@
266 :limit.sync="queryParams.pageSize" 100 :limit.sync="queryParams.pageSize"
267 @pagination="getList" 101 @pagination="getList"
268 /> 102 />
269 - <el-dialog  
270 - title="合同预览"  
271 - :visible.sync="dialogVisibleContract"  
272 - width="50%"  
273 - center  
274 - :before-close="handleClose"  
275 - >  
276 - <vue-pdf  
277 - :src="pdfUrl"  
278 - type="application/pdf"  
279 - width="100%"  
280 - height="800px"  
281 - v-if="pdfUrl"  
282 - /> 103 + <el-dialog title="合同预览" :visible.sync="dialogVisibleContract" width="50%" center :before-close="handleClose" >
  104 + <pdf :src="pdfUrl" type="application/pdf" width="100%" height="800px" v-if="pdfUrl" />
283 </el-dialog> 105 </el-dialog>
284 <!-- 添加或修改【请填写功能名称】对话框 --> 106 <!-- 添加或修改【请填写功能名称】对话框 -->
285 <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> 107 <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
286 <el-form ref="form" :model="form" :rules="rules" label-width="100px"> 108 <el-form ref="form" :model="form" :rules="rules" label-width="100px">
287 - <!-- <el-form-item label="合同编号" prop="contractno">  
288 - <el-input v-model="form.contractno" placeholder="请输入合同编号" />  
289 - </el-form-item>  
290 - <el-form-item label="合同名称" prop="contractName">  
291 - <el-input v-model="form.contractName" placeholder="请输入合同名称" />  
292 - </el-form-item>  
293 - <el-form-item label="合同类型" prop="contractType">  
294 - <el-input v-model="form.contractType" placeholder="请输入合同类型" />  
295 - </el-form-item>  
296 - <el-form-item label="合同金额" prop="contractAmount">  
297 - <el-input  
298 - v-model="form.contractAmount"  
299 - placeholder="请输入合同金额"  
300 - />  
301 - </el-form-item>  
302 - <el-form-item label="生效日期" prop="effectiveDate">  
303 - <el-date-picker  
304 - v-model="form.effectiveDate"  
305 - placeholder="请输入生效日期"  
306 - />  
307 - </el-form-item>  
308 - <el-form-item label="到期日期" prop="expirationDate">  
309 - <el-date-picker  
310 - v-model="form.expirationDate"  
311 - placeholder="请输入到期日期"  
312 - />  
313 - </el-form-item>  
314 - <el-form-item label="甲方" prop="partyA">  
315 - <el-input v-model="form.partyA" placeholder="请输入甲方" />  
316 - </el-form-item>  
317 - <el-form-item label="乙方" prop="partyB">  
318 - <el-input v-model="form.partyB" placeholder="请输入乙方" />  
319 - </el-form-item>  
320 - <el-form-item label="付款方式" prop="paymentMethod">  
321 - <el-input v-model="form.paymentMethod" placeholder="请输入付款方式" />  
322 - </el-form-item>  
323 - <el-form-item label="签订日期" prop="signingDate">  
324 - <el-date-picker  
325 - v-model="form.signingDate"  
326 - placeholder="请输入签订日期"  
327 - />  
328 - </el-form-item>  
329 - <el-form-item label="标的物信息" prop="subjectInformation">  
330 - <el-input  
331 - v-model="form.subjectInformation"  
332 - placeholder="请输入标的物信息"  
333 - />  
334 - </el-form-item>  
335 - <el-form-item label="附件" prop="attachments">  
336 - <el-input v-model="form.attachments" placeholder="请输入附件" />  
337 - </el-form-item> -->  
338 <el-form-item label="变更原因" prop="reasonChange"> 109 <el-form-item label="变更原因" prop="reasonChange">
339 <el-input v-model="form.reasonChange" placeholder="请输入变更原因" /> 110 <el-input v-model="form.reasonChange" placeholder="请输入变更原因" />
340 </el-form-item> 111 </el-form-item>
341 <el-form-item label="变更内容" prop="reasonText"> 112 <el-form-item label="变更内容" prop="reasonText">
342 - <el-input  
343 - type="textarea"  
344 - v-model="form.reasonText"  
345 - placeholder="请输入变更内容"  
346 - :row="3"  
347 - /> 113 + <el-input type="textarea" v-model="form.reasonText" placeholder="请输入变更内容" :row="3" />
348 </el-form-item> 114 </el-form-item>
349 </el-form> 115 </el-form>
350 <div slot="footer" class="dialog-footer"> 116 <div slot="footer" class="dialog-footer">
351 - <el-button :loading="buttonLoading" type="primary" @click="submitForm"  
352 - >确 定</el-button  
353 - > 117 + <el-button :loading="buttonLoading" type="primary" @click="submitForm" >确 定</el-button >
354 <el-button @click="cancel">取 消</el-button> 118 <el-button @click="cancel">取 消</el-button>
355 </div> 119 </div>
356 </el-dialog> 120 </el-dialog>
@@ -388,26 +152,52 @@ @@ -388,26 +152,52 @@
388 </el-table-column> 152 </el-table-column>
389 </el-table> 153 </el-table>
390 </el-dialog> 154 </el-dialog>
  155 + <el-dialog :title="title" :visible.sync="showDialogUploadSealContract" width="500px">
  156 + <el-upload
  157 + class="upload-demo"
  158 + ref="upload"
  159 + :accept="'application/pdf'"
  160 + :before-upload="beforeUpload"
  161 + :action="this.url"
  162 + :headers="this.headers"
  163 + :on-preview="handlePreview"
  164 + :on-remove="handleRemove"
  165 + :on-change="handleChange"
  166 + :file-list="this.fileList"
  167 + :auto-upload="false"
  168 + :limit="1"
  169 + :multiple="false"
  170 + :on-success="handleSuccess"
  171 + :before-remove="beforeRemove"
  172 + :on-exceed="handleExceed"
  173 + name="files"
  174 + >
  175 + <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  176 + <el-button style="margin-left: 10px" size="small" type="success" @click="submitUpload" >上传到服务器</el-button>
  177 + <div slot="tip" class="el-upload__tip">只能上传大小不超过 5MB 的 PDF 文件</div>
  178 + </el-upload>
  179 + </el-dialog>
391 </div> 180 </div>
392 </template> 181 </template>
393 182
394 <script> 183 <script>
395 -import {  
396 - listContract,  
397 - getContract,  
398 - delContract,  
399 - addContract,  
400 - updateContract,  
401 -} from "@/api/compliancemanagement/contract"; 184 +import {listContract,getContract,delContract,addContract,updateContract,updateSealByContractno} from "@/api/compliancemanagement/contract";
402 import { startProcess, stopProcess } from "@/api/workflow/process"; 185 import { startProcess, stopProcess } from "@/api/workflow/process";
403 -import VuePdf from "vue-pdf"; 186 +import pdf from 'vue-pdf';
  187 +import { getToken } from "@/utils/auth";
404 export default { 188 export default {
405 name: "Contract", 189 name: "Contract",
  190 + dicts: ['wf_process_status'],
406 components: { 191 components: {
407 - VuePdf, 192 + pdf,
408 }, 193 },
409 data() { 194 data() {
410 return { 195 return {
  196 + headers: {
  197 + Authorization: "Bearer " + getToken(),
  198 + },
  199 + url: process.env.VUE_APP_BASE_API + "/common/uploads",
  200 + fileList: [],
411 ContractAmountList:[ 201 ContractAmountList:[
412 {amountDate:'2024-07-05', 202 {amountDate:'2024-07-05',
413 amount:'100'},{amountDate:'2024-07-10', 203 amount:'100'},{amountDate:'2024-07-10',
@@ -522,17 +312,89 @@ export default { @@ -522,17 +312,89 @@ export default {
522 ], 312 ],
523 id: [{ required: true, message: "不能为空", trigger: "blur" }], 313 id: [{ required: true, message: "不能为空", trigger: "blur" }],
524 }, 314 },
525 - showDialogEvaluate:false 315 + showDialogEvaluate:false,
  316 + showDialogUploadSealContract:false,
  317 + contractnoTemp:''
526 }; 318 };
527 }, 319 },
528 created() { 320 created() {
529 this.getList(); 321 this.getList();
530 }, 322 },
531 methods: { 323 methods: {
  324 +
  325 + handleUploadSealContract(row){
  326 + this.contractnoTemp = row.contractno
  327 + this.showDialogUploadSealContract = true
  328 + this.title = '上传用印合同'
  329 + },
  330 + beforeUpload(file) {
  331 + const isPDF = file.type === 'application/pdf';
  332 + const isLt5M = file.size / 1024 / 1024 < 5;
  333 +
  334 + if (!isPDF) {
  335 + this.$message.error('只能上传 PDF 文件');
  336 + return false;
  337 + }
  338 + if (!isLt5M) {
  339 + this.$message.error('上传文件大小不能超过 5MB');
  340 + return false;
  341 + }
  342 + // 如果需要其他处理,可以在这里添加
  343 + return true; // 返回 true 允许上传
  344 + },
  345 + handleChange(file, fileList) {
  346 + this.fileList = fileList;
  347 + },
  348 + handleSuccess(response, file, fileList) {
  349 + // response 是上传成功后的响应数据
  350 + // 可以从中获取文件地址或文件名
  351 + // 假设后端返回的数据结构中有一个字段 url 表示文件地址
  352 + console.log('response',response)
  353 + this.showDialogUploadSealContract = false
  354 + const fileUrl = response.data.fileNames;
  355 + // 将文件地址或文件名赋值给表单的字段
  356 + this.form.templatefile =fileUrl;
  357 + const params = {
  358 + contractno:this.contractnoTemp,
  359 + sealContract:fileUrl
  360 + }
  361 + updateSealByContractno(params).then((response) => {
  362 + console.log('上传更新',response),
  363 + this.form.templatefile = ''
  364 + });
  365 + this.fileList = []
  366 + this.$router.push({
  367 + path: "/contract/compliancemanagement/contractmanagement/contractfiling",
  368 + });
  369 +
  370 + },
  371 + handleRemove(file, fileList) {
  372 + this.form.templatefile=''
  373 + console.log(file, fileList);
  374 + },
  375 + handlePreview(file) {
  376 + console.log(file);
  377 + },
  378 + handleExceed(files, fileList) {
  379 + this.$message.warning(
  380 + `当前限制上传 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
  381 + files.length + fileList.length
  382 + } 个文件`
  383 + );
  384 + },
  385 + beforeRemove(file, fileList) {
  386 + this.fileList = fileList;
  387 + if (file && file.status==="success") {
  388 + return this.$confirm(`确定移除 ${file.name}?`);
  389 + }
  390 + },
  391 + submitUpload() {
  392 + this.$refs.upload.submit();
  393 +
  394 + },
532 handleContractAmount(row){ 395 handleContractAmount(row){
533 this.showContractAmount = true 396 this.showContractAmount = true
534 this.title = '进度' 397 this.title = '进度'
535 -  
536 }, 398 },
537 // 更多操作触发 399 // 更多操作触发
538 handleCommand(command, row) { 400 handleCommand(command, row) {
@@ -549,7 +411,12 @@ export default { @@ -549,7 +411,12 @@ export default {
549 case "handleUnbind": 411 case "handleUnbind":
550 this.handleUnbind(row); 412 this.handleUnbind(row);
551 break; 413 break;
552 - 414 + case "handleDelete":
  415 + this.handleDelete(row);
  416 + break;
  417 + case "handleStop":
  418 + this.handleStop(row);
  419 + break;
553 default: 420 default:
554 break; 421 break;
555 } 422 }
@@ -576,7 +443,8 @@ export default { @@ -576,7 +443,8 @@ export default {
576 preview(contract) { 443 preview(contract) {
577 this.dialogVisibleContract = true; 444 this.dialogVisibleContract = true;
578 console.log("contract:", contract); 445 console.log("contract:", contract);
579 - this.pdfUrl = this.baseUrl + contract; 446 + // this.pdfUrl = process.env.VUE_APP_BASE_API+contract;
  447 + this.pdfUrl = this.baseUrl+contract;
580 }, 448 },
581 handleClose() { 449 handleClose() {
582 this.pdfUrl = ""; 450 this.pdfUrl = "";
  1 +<template>
  2 + <div class="app-container">
  3 + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" >
  4 + <el-form-item label="合同编号" prop="contractno">
  5 + <el-input v-model="queryParams.contractno" placeholder="请输入合同编号" clearable @keyup.enter.native="handleQuery" />
  6 + </el-form-item>
  7 + <el-form-item label="合同名称" prop="contractName">
  8 + <el-input v-model="queryParams.contractName" placeholder="请输入合同名称" clearable @keyup.enter.native="handleQuery" />
  9 + </el-form-item>
  10 + <el-form-item>
  11 + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button >
  12 + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button >
  13 + </el-form-item>
  14 + </el-form>
  15 + <!-- <el-row :gutter="10" class="mb8">
  16 + <el-col :span="1.5">
  17 + <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:contract:export']" >导出</el-button >
  18 + </el-col>
  19 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar>
  20 + </el-row> -->
  21 + <el-table v-loading="loading" :data="contractList" @selection-change="handleSelectionChange" >
  22 + <el-table-column type="selection" width="55" align="center" />
  23 + <el-table-column label="合同编号" align="center" prop="contractno" width="100" />
  24 + <el-table-column label="合同名称" align="center" prop="contractName" width="200" />
  25 + <el-table-column label="合同类型" align="center" prop="contractType" width="100" />
  26 + <el-table-column label="合同金额" align="center" prop="contractAmount" width="100" >
  27 + <template slot-scope="scope">
  28 + <el-button type="text" size="mini" @click="handleContractAmount(scope.row)" >{{scope.row.contractAmount}}</el-button >
  29 + </template></el-table-column>
  30 + <el-table-column label="生效日期" align="center" prop="effectiveDate" width="100" >
  31 + <template slot-scope="scope">
  32 + <span>{{ parseTime(scope.row.effectiveDate, "{y}-{m}-{d}") }}</span>
  33 + </template>
  34 + </el-table-column>
  35 + <el-table-column label="到期日期" align="center" prop="expirationDate" width="100" >
  36 + <template slot-scope="scope">
  37 + <span>{{ parseTime(scope.row.expirationDate, "{y}-{m}-{d}") }}</span>
  38 + </template>
  39 + </el-table-column>
  40 + <el-table-column label="甲方" align="center" prop="partyA" width="200">
  41 + <template slot-scope="scope">
  42 + <a :href="scope.row.partyAAddress" target="_blank" style="color: #1890ff" >{{ scope.row.partyA }}</a >
  43 + </template>
  44 + </el-table-column>
  45 + <el-table-column label="乙方" align="center" prop="partyB" width="200">
  46 + <template slot-scope="scope">
  47 + <a :href="scope.row.partyBAddress" target="_blank" style="color: #1890ff" >{{ scope.row.partyB }}</a >
  48 + </template>
  49 + </el-table-column>
  50 + <el-table-column label="付款方式" align="center" prop="paymentMethod" width="200" />
  51 + <el-table-column label="签订日期" align="center" prop="signingDate" width="100" >
  52 + <template slot-scope="scope">
  53 + <span>{{ parseTime(scope.row.signingDate, "{y}-{m}-{d}") }}</span>
  54 + </template>
  55 + </el-table-column>
  56 + <el-table-column label="标的物信息" align="center" prop="subjectInformation" width="200" />
  57 + <el-table-column label="合同状态" align="center" prop="status" width="200" >
  58 + <template slot-scope="scope">
  59 + <el-tag v-if="scope.row.status == '0'">进行中</el-tag>
  60 + <el-tag type="danger" v-if="scope.row.status == '1'">已终止</el-tag>
  61 + <el-tag type="info" v-if="scope.row.status == '2'">已解除</el-tag>
  62 + <el-tag type="warning" v-if="scope.row.status == '3'">已完成</el-tag>
  63 + </template>
  64 + </el-table-column>
  65 + <el-table-column label="用印合同" align="center" prop="seal_contract" width="100" >
  66 + <template slot-scope="scope">
  67 + <img v-if="scope.row.sealContract" src="@/assets/images/PDF.png" @click="preview(scope.row.sealContract)" width="40px" height="auto" style="cursor: pointer" />
  68 + </template>
  69 + </el-table-column>
  70 + <el-table-column
  71 + label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="250" >
  72 + <template slot-scope="scope">
  73 + <el-button type="text" size="mini" icon="el-icon-star-off" @click="handleEvaluate(scope.row)" >履行评价</el-button >
  74 + <el-button type="text" size="mini" icon="el-icon-edit-outline" @click="handleEdit(scope.row)" >合同变更</el-button >
  75 + <el-button type="text" size="mini" icon="el-icon-edit-outline" @click="handleUnbind(scope.row)" >解绑合同</el-button >
  76 + </template>
  77 + </el-table-column>
  78 + </el-table>
  79 + <pagination
  80 + v-show="total > 0"
  81 + :total="total"
  82 + :page.sync="queryParams.pageNum"
  83 + :limit.sync="queryParams.pageSize"
  84 + @pagination="getList"
  85 + />
  86 + <!-- 合同预览 -->
  87 + <el-dialog title="合同预览" :visible.sync="dialogVisibleContract" width="50%" center :before-close="handleClose" >
  88 + <pdf :src="pdfUrl" type="application/pdf" width="100%" height="800px" v-if="pdfUrl" />
  89 + </el-dialog>
  90 + <!-- 合同变更 -->
  91 + <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
  92 + <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  93 + <el-form-item label="变更原因" prop="reasonChange">
  94 + <el-input v-model="form.reasonChange" placeholder="请输入变更原因" />
  95 + </el-form-item>
  96 + <el-form-item label="变更内容" prop="reasonText">
  97 + <el-input type="textarea" v-model="form.reasonText" placeholder="请输入变更内容" :row="3" />
  98 + </el-form-item>
  99 + </el-form>
  100 + <div slot="footer" class="dialog-footer">
  101 + <el-button :loading="buttonLoading" type="primary" @click="submitForm" >确 定</el-button >
  102 + <el-button @click="cancel">取 消</el-button>
  103 + </div>
  104 + </el-dialog>
  105 + <!-- 履行评价 -->
  106 + <el-dialog :title="title" :visible.sync="showDialogEvaluate">
  107 + <el-table :data="tableData" style="width: 100%" border>
  108 + <el-table-column prop="content" label="内容" width="200"></el-table-column>
  109 + <el-table-column prop="description" label="评价描述" width="350">
  110 + <template slot-scope="scope">
  111 + <el-input v-model="scope.row.description" clearable />
  112 + </template>
  113 + </el-table-column>
  114 + <el-table-column prop="level" label="评价等级">
  115 + <template slot-scope="scope">
  116 + <el-radio v-model="scope.row.level" label="1">优秀</el-radio>
  117 + <el-radio v-model="scope.row.level" label="2">良好</el-radio>
  118 + <el-radio v-model="scope.row.level" label="3">一般</el-radio>
  119 + <el-radio v-model="scope.row.level" label="4">较差</el-radio>
  120 + </template>
  121 + </el-table-column>
  122 + </el-table>
  123 + <div slot="footer" class="dialog-footer">
  124 + <el-button :loading="buttonLoading" type="primary" @click="submitFormEvaluate">确 定</el-button >
  125 + <el-button @click="cancelEvaluate">取 消</el-button>
  126 + </div>
  127 + </el-dialog>
  128 + <!-- 付款进度 -->
  129 + <el-dialog :title="title" :visible.sync="showContractAmount" width="500px">
  130 + <el-table :data="ContractAmountList" >
  131 + <el-table-column prop="amountDate" label="日期" ></el-table-column>
  132 + <el-table-column prop="amount" label="已付/已收金额(元)" >
  133 + </el-table-column>
  134 + </el-table>
  135 + </el-dialog>
  136 + </div>
  137 +</template>
  138 +<script>
  139 +import { listSealContract, getContract, delContract, addContract, updateContract} from "@/api/compliancemanagement/contract";
  140 +import { startProcess, stopProcess } from "@/api/workflow/process";
  141 +import pdf from 'vue-pdf';
  142 +export default {
  143 + name: "contractfiling",
  144 + dicts: ['wf_process_status'],
  145 + components: {
  146 + pdf,
  147 + },
  148 + data() {
  149 + return {
  150 + ContractAmountList:[
  151 + {amountDate:'2024-07-05',
  152 + amount:'100'},{amountDate:'2024-07-10',
  153 + amount:'100'}
  154 + ],
  155 + showContractAmount:false,
  156 + tableData: [{
  157 + content: '合同规范性',
  158 + description: '',
  159 + level: ''
  160 + }, {
  161 + content: '质量',
  162 + description: '',
  163 + level: ''
  164 + }, {
  165 + content: '交期(工期)',
  166 + description: '',
  167 + level: ''
  168 + }, {
  169 + content: '成本',
  170 + description: '',
  171 + level: ''
  172 + },{
  173 + content: '合作配合情况',
  174 + description: '',
  175 + level: ''
  176 + }],
  177 + switchValue: true,
  178 + pdfUrl: "",
  179 + dialogVisibleContract: false,
  180 + baseUrl: process.env.VUE_APP_BASE_API + "/",
  181 + // 按钮loading
  182 + buttonLoading: false,
  183 + // 遮罩层
  184 + loading: true,
  185 + // 选中数组
  186 + ids: [],
  187 + // 非单个禁用
  188 + single: true,
  189 + // 非多个禁用
  190 + multiple: true,
  191 + // 显示搜索条件
  192 + showSearch: true,
  193 + // 总条数
  194 + total: 0,
  195 + // 【请填写功能名称】表格数据
  196 + contractList: [],
  197 + // 弹出层标题
  198 + title: "",
  199 + // 是否显示弹出层
  200 + open: false,
  201 + // 查询参数
  202 + queryParams: {
  203 + pageNum: 1,
  204 + pageSize: 10,
  205 + contractno: undefined,
  206 + contractName: undefined,
  207 + contractType: undefined,
  208 + contractAmount: undefined,
  209 + effectiveDate: undefined,
  210 + expirationDate: undefined,
  211 + partyA: undefined,
  212 + partyB: undefined,
  213 + paymentMethod: undefined,
  214 + signingDate: undefined,
  215 + subjectInformation: undefined,
  216 + attachments: undefined,
  217 + },
  218 + // 表单参数
  219 + form: {},
  220 + biangeng: [],
  221 +
  222 + // 表单校验
  223 + rules: {
  224 + contractno: [
  225 + { required: true, message: "合同编号不能为空", trigger: "blur" },
  226 + ],
  227 + contractName: [
  228 + { required: true, message: "合同名称不能为空", trigger: "blur" },
  229 + ],
  230 + contractType: [
  231 + { required: true, message: "合同类型不能为空", trigger: "change" },
  232 + ],
  233 + contractAmount: [
  234 + { required: true, message: "合同金额不能为空", trigger: "blur" },
  235 + ],
  236 + effectiveDate: [
  237 + { required: true, message: "生效日期不能为空", trigger: "blur" },
  238 + ],
  239 + expirationDate: [
  240 + { required: true, message: "到期日期不能为空", trigger: "blur" },
  241 + ],
  242 + partyA: [{ required: true, message: "甲方不能为空", trigger: "blur" }],
  243 + partyB: [{ required: true, message: "乙方不能为空", trigger: "blur" }],
  244 + paymentMethod: [
  245 + { required: true, message: "付款方式不能为空", trigger: "blur" },
  246 + ],
  247 + signingDate: [
  248 + { required: true, message: "签订日期不能为空", trigger: "blur" },
  249 + ],
  250 + subjectInformation: [
  251 + { required: true, message: "标的物信息不能为空", trigger: "blur" },
  252 + ],
  253 + attachments: [
  254 + { required: true, message: "附件不能为空", trigger: "blur" },
  255 + ],
  256 + reasonChange: [
  257 + { required: true, message: "变更原因不能为空", trigger: "blur" },
  258 + ],
  259 + reasonText: [
  260 + { required: true, message: "变更内容不能为空", trigger: "blur" },
  261 + ],
  262 + id: [{ required: true, message: "不能为空", trigger: "blur" }],
  263 + },
  264 + showDialogEvaluate:false,
  265 + showDialogUploadSealContract:false,
  266 + };
  267 + },
  268 + created() {
  269 + this.getList();
  270 + },
  271 + methods: {
  272 +
  273 + handleUploadSealContract(row){
  274 + this.showDialogUploadSealContract = true
  275 + this.title = '上传用印合同'
  276 + },
  277 + beforeUpload(file) {
  278 + const isPDF = file.type === 'application/pdf';
  279 + const isLt5M = file.size / 1024 / 1024 < 5;
  280 +
  281 + if (!isPDF) {
  282 + this.$message.error('只能上传 PDF 文件');
  283 + return false;
  284 + }
  285 + if (!isLt5M) {
  286 + this.$message.error('上传文件大小不能超过 5MB');
  287 + return false;
  288 + }
  289 +
  290 + // 如果需要其他处理,可以在这里添加
  291 +
  292 + return true; // 返回 true 允许上传
  293 + },
  294 + handleChange(file, fileList) {
  295 + this.fileList = fileList;
  296 + },
  297 + handleSuccess(response, file, fileList) {
  298 + // response 是上传成功后的响应数据
  299 + // 可以从中获取文件地址或文件名
  300 + // 假设后端返回的数据结构中有一个字段 url 表示文件地址
  301 + const fileUrl = response.data.fileNames;
  302 + // 将文件地址或文件名赋值给表单的字段
  303 + this.form.templatefile =fileUrl;
  304 + },
  305 + handleRemove(file, fileList) {
  306 + this.form.templatefile=''
  307 + console.log(file, fileList);
  308 + },
  309 + handlePreview(file) {
  310 + console.log(file);
  311 + },
  312 + handleExceed(files, fileList) {
  313 + this.$message.warning(
  314 + `当前限制上传 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
  315 + files.length + fileList.length
  316 + } 个文件`
  317 + );
  318 + },
  319 + beforeRemove(file, fileList) {
  320 + this.fileList = fileList;
  321 + if (file && file.status==="success") {
  322 + return this.$confirm(`确定移除 ${file.name}?`);
  323 + }
  324 +
  325 + },
  326 + handleContractAmount(row){
  327 + this.showContractAmount = true
  328 + this.title = '进度'
  329 +
  330 + },
  331 + // 更多操作触发
  332 + handleCommand(command, row) {
  333 + switch (command) {
  334 + case "handleAgain":
  335 + this.handleAgain(row);
  336 + break;
  337 + case "handleEvaluate":
  338 + this.handleEvaluate(row);
  339 + break;
  340 + case "handleEdit":
  341 + this.handleEdit(row);
  342 + break;
  343 + case "handleUnbind":
  344 + this.handleUnbind(row);
  345 + break;
  346 + case "handleDelete":
  347 + this.handleDelete(row);
  348 + break;
  349 + case "handleStop":
  350 + this.handleStop(row);
  351 + break;
  352 + default:
  353 + break;
  354 + }
  355 + },
  356 + handleUnbind(row){
  357 + console.log(row)
  358 + },
  359 + /** 查询【请填写功能名称】列表 */
  360 + getList() {
  361 + this.loading = true;
  362 + listSealContract(this.queryParams).then((response) => {
  363 + this.contractList = response.rows;
  364 + this.total = response.total;
  365 + this.loading = false;
  366 + console.log(this.contractList);
  367 + });
  368 + },
  369 + // 取消按钮
  370 + cancel() {
  371 + this.open = false;
  372 + this.reset();
  373 + },
  374 + //合同附件预览
  375 + preview(contract) {
  376 + this.dialogVisibleContract = true;
  377 + console.log("contract:", contract);
  378 + // this.pdfUrl = process.env.VUE_APP_BASE_API+contract;
  379 + this.pdfUrl = this.baseUrl+contract;
  380 + },
  381 + handleClose() {
  382 + this.pdfUrl = "";
  383 + this.dialogVisibleContract = false;
  384 + },
  385 + // 表单重置
  386 + reset() {
  387 + this.form = {
  388 + contractno: undefined,
  389 + contractName: undefined,
  390 + contractType: undefined,
  391 + contractAmount: undefined,
  392 + effectiveDate: undefined,
  393 + expirationDate: undefined,
  394 + partyA: undefined,
  395 + partyB: undefined,
  396 + paymentMethod: undefined,
  397 + signingDate: undefined,
  398 + subjectInformation: undefined,
  399 + attachments: undefined,
  400 + reasonChange: undefined,
  401 + reasonText: undefined,
  402 + id: undefined,
  403 + };
  404 + this.resetForm("form");
  405 + },
  406 + /** 搜索按钮操作 */
  407 + handleQuery() {
  408 + this.queryParams.pageNum = 1;
  409 + this.getList();
  410 + },
  411 + /** 重置按钮操作 */
  412 + resetQuery() {
  413 + this.resetForm("queryForm");
  414 + this.handleQuery();
  415 + },
  416 + // 多选框选中数据
  417 + handleSelectionChange(selection) {
  418 + this.ids = selection.map((item) => item.id);
  419 + this.single = selection.length !== 1;
  420 + this.multiple = !selection.length;
  421 + },
  422 + /** 合同变更按钮操作 */
  423 + handleEdit(row) {
  424 + this.loading = true;
  425 + this.reset();
  426 + this.biangeng = row;
  427 + console.log("变更值:", this.biangeng);
  428 + const id = row.id || this.ids;
  429 + getContract(id).then((response) => {
  430 + this.loading = false;
  431 + this.form = response.data;
  432 + this.open = true;
  433 + this.title = "合同变更";
  434 + });
  435 + },
  436 + /** 提交按钮 */
  437 + submitForm() {
  438 + this.$refs["form"].validate((valid) => {
  439 + if (valid) {
  440 + this.buttonLoading = true;
  441 + updateContract(this.form)
  442 + .then((response) => {
  443 + this.$modal.msgSuccess("合同变更成功,已重新启动流程");
  444 + this.open = false;
  445 + this.getList();
  446 + console.log("变更列表值:", this.biangeng);
  447 + this.handleAgain2(this.biangeng);
  448 + })
  449 + .finally(() => {
  450 + this.buttonLoading = false;
  451 + this.$router.push({
  452 + path: "/contract/compliancemanagement/contractmanagement/contract",
  453 + });
  454 + });
  455 + }
  456 + });
  457 + },
  458 + /** 删除按钮操作 */
  459 + handleDelete(row) {
  460 + const ids = row.id || this.ids;
  461 + this.$modal
  462 + .confirm('是否确认删除【请填写功能名称】编号为"' + ids + '"的数据项?')
  463 + .then(() => {
  464 + this.loading = true;
  465 + return delContract(ids);
  466 + })
  467 + .then(() => {
  468 + this.loading = false;
  469 + this.getList();
  470 + this.$modal.msgSuccess("删除成功");
  471 + })
  472 + .catch(() => {})
  473 + .finally(() => {
  474 + this.loading = false;
  475 + });
  476 + },
  477 + /** 导出按钮操作 */
  478 + handleExport() {
  479 + this.download(
  480 + "system/contract/export",
  481 + {
  482 + ...this.queryParams,
  483 + },
  484 + `contract_${new Date().getTime()}.xlsx`
  485 + );
  486 + },
  487 + /** 流程流转记录 */
  488 + handleFlowRecord(row) {
  489 + console.log(row);
  490 + this.$router.push({
  491 + path: "/workflow/process/detail/" + row.procInsId,
  492 + query: {
  493 + processed: false,
  494 + },
  495 + });
  496 + },
  497 + /** 取消流程申请 */
  498 + handleStop(row) {
  499 + const params = {
  500 + procInsId: row.procInsId,
  501 + };
  502 + stopProcess(params).then((res) => {
  503 + this.$modal.msgSuccess(res.msg);
  504 + this.getList();
  505 + });
  506 + },
  507 + handleAgain(row) {
  508 + console.log(row);
  509 + startProcess(row.procDefId, row).then((res) => {
  510 + if (res) {
  511 + this.$modal.msgSuccess("流程重启动成功");
  512 + }
  513 + });
  514 +
  515 + // this.$router.push({
  516 + // path: "/workflow/process/start/" + row.deployId,
  517 + // query: {
  518 + // definitionId: row.procDefId,
  519 + // procInsId: row.procInsId,
  520 + // },
  521 + // });
  522 + // console.log(row);
  523 + },
  524 + handleAgain2(row) {
  525 + console.log(row);
  526 + startProcess(row.procDefId, row).then((res) => {});
  527 + },
  528 + handleEvaluate(row){
  529 + // console.log('评价',row)
  530 + this.title = row.contractName
  531 + this.showDialogEvaluate = true
  532 + },
  533 + submitFormEvaluate(){
  534 + console.log(this.tableData)
  535 + this.showDialogEvaluate = false
  536 + },
  537 + cancelEvaluate(){
  538 + this.showDialogEvaluate = false
  539 + }
  540 + },
  541 +};
  542 +</script>
  543 +<style>
  544 +/* switch按钮样式 */
  545 +.switch .el-switch__label {
  546 + position: absolute;
  547 + display: none;
  548 + color: #fff !important;
  549 +}
  550 +/*打开时文字位置设置*/
  551 +.switch .el-switch__label--right {
  552 + z-index: 1;
  553 +}
  554 +/* 调整打开时文字的显示位子 */
  555 +.switch .el-switch__label--right span {
  556 + margin-right: 9px;
  557 +}
  558 +/*关闭时文字位置设置*/
  559 +.switch .el-switch__label--left {
  560 + z-index: 1;
  561 +}
  562 +/* 调整关闭时文字的显示位子 */
  563 +.switch .el-switch__label--left span {
  564 + margin-left: 9px;
  565 +}
  566 +/*显示文字*/
  567 +.switch .el-switch__label.is-active {
  568 + display: block;
  569 +}
  570 +/* 调整按钮的宽度 */
  571 +.switch.el-switch .el-switch__core,
  572 +.el-switch .el-switch__label {
  573 + width: 70px !important;
  574 + margin: 0;
  575 +}
  576 +</style>
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 </el-form> 17 </el-form>
18 18
19 <el-row :gutter="10" class="mb8"> 19 <el-row :gutter="10" class="mb8">
20 - <el-col :span="1.5"> 20 + <!-- <el-col :span="1.5">
21 <el-button 21 <el-button
22 type="primary" 22 type="primary"
23 plain 23 plain
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 @click="handleDelete" 48 @click="handleDelete"
49 v-hasPermi="['system:risksummary:remove']" 49 v-hasPermi="['system:risksummary:remove']"
50 >删除</el-button> 50 >删除</el-button>
51 - </el-col> 51 + </el-col> -->
52 <el-col :span="1.5"> 52 <el-col :span="1.5">
53 <el-button 53 <el-button
54 type="warning" 54 type="warning"
@@ -69,7 +69,7 @@ @@ -69,7 +69,7 @@
69 <el-table-column label="存在问题数" align="center" prop="problemsnumber" /> 69 <el-table-column label="存在问题数" align="center" prop="problemsnumber" />
70 <el-table-column label="整改落实完成情况" align="center" prop="completionnumber" /> 70 <el-table-column label="整改落实完成情况" align="center" prop="completionnumber" />
71 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> --> 71 <!-- <el-table-column label="" align="center" prop="id" v-if="true"/> -->
72 - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 72 + <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
73 <template slot-scope="scope"> 73 <template slot-scope="scope">
74 <el-button 74 <el-button
75 size="mini" 75 size="mini"
@@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
86 v-hasPermi="['system:risksummary:remove']" 86 v-hasPermi="['system:risksummary:remove']"
87 >删除</el-button> 87 >删除</el-button>
88 </template> 88 </template>
89 - </el-table-column> 89 + </el-table-column> -->
90 </el-table> 90 </el-table>
91 91
92 <pagination 92 <pagination
@@ -56,6 +56,7 @@ @@ -56,6 +56,7 @@
56 </el-form> 56 </el-form>
57 57
58 <el-row :gutter="10" class="mb8"> 58 <el-row :gutter="10" class="mb8">
  59 + <!-- v-hasPermi="['compliancemanagement:orginfoCertificate:add']" -->
59 <el-col :span="1.5"> 60 <el-col :span="1.5">
60 <el-button 61 <el-button
61 type="primary" 62 type="primary"
@@ -63,9 +64,10 @@ @@ -63,9 +64,10 @@
63 icon="el-icon-plus" 64 icon="el-icon-plus"
64 size="mini" 65 size="mini"
65 @click="handleAdd" 66 @click="handleAdd"
66 - v-hasPermi="['compliancemanagement:orginfoCertificate:add']" 67 +
67 >新增</el-button> 68 >新增</el-button>
68 </el-col> 69 </el-col>
  70 + <!-- v-hasPermi="['compliancemanagement:orginfoCertificate:edit']" -->
69 <el-col :span="1.5"> 71 <el-col :span="1.5">
70 <el-button 72 <el-button
71 type="success" 73 type="success"
@@ -74,9 +76,10 @@ @@ -74,9 +76,10 @@
74 size="mini" 76 size="mini"
75 :disabled="single" 77 :disabled="single"
76 @click="handleUpdate" 78 @click="handleUpdate"
77 - v-hasPermi="['compliancemanagement:orginfoCertificate:edit']" 79 +
78 >修改</el-button> 80 >修改</el-button>
79 </el-col> 81 </el-col>
  82 + <!-- v-hasPermi="['compliancemanagement:orginfoCertificate:remove']" -->
80 <el-col :span="1.5"> 83 <el-col :span="1.5">
81 <el-button 84 <el-button
82 type="danger" 85 type="danger"
@@ -85,9 +88,10 @@ @@ -85,9 +88,10 @@
85 size="mini" 88 size="mini"
86 :disabled="multiple" 89 :disabled="multiple"
87 @click="handleDelete" 90 @click="handleDelete"
88 - v-hasPermi="['compliancemanagement:orginfoCertificate:remove']" 91 +
89 >删除</el-button> 92 >删除</el-button>
90 </el-col> 93 </el-col>
  94 + <!-- v-hasPermi="['compliancemanagement:orginfoCertificate:export']" -->
91 <el-col :span="1.5"> 95 <el-col :span="1.5">
92 <el-button 96 <el-button
93 type="warning" 97 type="warning"
@@ -95,7 +99,7 @@ @@ -95,7 +99,7 @@
95 icon="el-icon-download" 99 icon="el-icon-download"
96 size="mini" 100 size="mini"
97 @click="handleExport" 101 @click="handleExport"
98 - v-hasPermi="['compliancemanagement:orginfoCertificate:export']" 102 +
99 >导出</el-button> 103 >导出</el-button>
100 </el-col> 104 </el-col>
101 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> 105 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -103,7 +107,6 @@ @@ -103,7 +107,6 @@
103 107
104 <el-table v-loading="loading" :data="orginfoCertificateList" @selection-change="handleSelectionChange"> 108 <el-table v-loading="loading" :data="orginfoCertificateList" @selection-change="handleSelectionChange">
105 <el-table-column type="selection" width="55" align="center" /> 109 <el-table-column type="selection" width="55" align="center" />
106 - <el-table-column label="" align="center" prop="id" v-if="true"/>  
107 <el-table-column label="单位编号" align="center" prop="orgcode" /> 110 <el-table-column label="单位编号" align="center" prop="orgcode" />
108 <el-table-column label="证书编号" align="center" prop="certificateNo" /> 111 <el-table-column label="证书编号" align="center" prop="certificateNo" />
109 <el-table-column label="认证机构名称" align="center" prop="certificationName" /> 112 <el-table-column label="认证机构名称" align="center" prop="certificationName" />
@@ -124,19 +127,21 @@ @@ -124,19 +127,21 @@
124 </el-table-column> 127 </el-table-column>
125 <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 128 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
126 <template slot-scope="scope"> 129 <template slot-scope="scope">
  130 + <!-- v-hasPermi="['compliancemanagement:orginfoCertificate:edit']" -->
127 <el-button 131 <el-button
128 size="mini" 132 size="mini"
129 type="text" 133 type="text"
130 icon="el-icon-edit" 134 icon="el-icon-edit"
131 @click="handleUpdate(scope.row)" 135 @click="handleUpdate(scope.row)"
132 - v-hasPermi="['compliancemanagement:orginfoCertificate:edit']" 136 +
133 >修改</el-button> 137 >修改</el-button>
  138 + <!-- v-hasPermi="['compliancemanagement:orginfoCertificate:remove']" -->
134 <el-button 139 <el-button
135 size="mini" 140 size="mini"
136 type="text" 141 type="text"
137 icon="el-icon-delete" 142 icon="el-icon-delete"
138 @click="handleDelete(scope.row)" 143 @click="handleDelete(scope.row)"
139 - v-hasPermi="['compliancemanagement:orginfoCertificate:remove']" 144 +
140 >删除</el-button> 145 >删除</el-button>
141 </template> 146 </template>
142 </el-table-column> 147 </el-table-column>