style:证书打印
Showing
4 changed files
with
228 additions
and
189 deletions
1 | /* | 1 | /* |
2 | * @Description: 不动产权证 | 2 | * @Description: 不动产权证 |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-05-16 14:04:18 | 4 | * @LastEditTime: 2023-09-05 13:24:14 |
5 | */ | 5 | */ |
6 | import request from '@/utils/request'; | 6 | import request from '@/utils/request'; |
7 | let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl')) | 7 | let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl')) |
... | @@ -131,3 +131,13 @@ export function bdcqzPreview (data) { | ... | @@ -131,3 +131,13 @@ export function bdcqzPreview (data) { |
131 | responseType: 'blob' | 131 | responseType: 'blob' |
132 | }) | 132 | }) |
133 | } | 133 | } |
134 | // 获取不动产权证详细信息 | ||
135 | export function getBdcqzDetail (bsmBdcqz) { | ||
136 | return request({ | ||
137 | url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/getBdcqzDetail', | ||
138 | method: 'get', | ||
139 | params: { | ||
140 | bsmBdcqz: bsmBdcqz | ||
141 | } | ||
142 | }) | ||
143 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-08-30 17:33:06 | 4 | * @LastEditTime: 2023-09-05 15:14:08 |
5 | --> | 5 | --> |
6 | <template> | 6 | <template> |
7 | <div> | 7 | <div> |
... | @@ -12,7 +12,9 @@ | ... | @@ -12,7 +12,9 @@ |
12 | ref="ruleForm" | 12 | ref="ruleForm" |
13 | label-width="120px"> | 13 | label-width="120px"> |
14 | <el-form-item label="印刷序列号:" prop="ysxlh"> | 14 | <el-form-item label="印刷序列号:" prop="ysxlh"> |
15 | <el-select v-model="ruleForm.ysxlh" placeholder="请选择"> | 15 | <el-row> |
16 | <el-col :span="22"> | ||
17 | <el-select v-model="ruleForm.ysxlh" @change="handleSelect" :disabled="disabled" placeholder="请选择"> | ||
16 | <el-option | 18 | <el-option |
17 | v-for="item in ysxlh" | 19 | v-for="item in ysxlh" |
18 | :key="item.ysxlh" | 20 | :key="item.ysxlh" |
... | @@ -20,11 +22,17 @@ | ... | @@ -20,11 +22,17 @@ |
20 | :value="item.ysxlh"> | 22 | :value="item.ysxlh"> |
21 | </el-option> | 23 | </el-option> |
22 | </el-select> | 24 | </el-select> |
25 | </el-col> | ||
26 | <el-col :span="2" v-if="this.formData.ysxlh"> | ||
27 | <el-button type="primary" @click="invalidDiglog=true">作废</el-button> | ||
28 | </el-col> | ||
29 | </el-row> | ||
30 | |||
23 | </el-form-item> | 31 | </el-form-item> |
24 | </el-form> | 32 | </el-form> |
25 | <div class="zs-content"> | 33 | <div class="zs-content"> |
26 | <canvas ref="zs" width="1000" v-show="this.formData.bdcqz.bdcqzlx==1" height="700"></canvas> | 34 | <canvas ref="zs" width="1000" v-show="this.formData.bdcqzlx==1" height="700"></canvas> |
27 | <canvas ref="zm" width="1180" v-show="this.formData.bdcqz.bdcqzlx==2" height="780"></canvas> | 35 | <canvas ref="zm" width="1180" v-show="this.formData.bdcqzlx==2" height="780"></canvas> |
28 | </div> | 36 | </div> |
29 | </div> | 37 | </div> |
30 | <!-- 打印模板需要此模块 --> | 38 | <!-- 打印模板需要此模块 --> |
... | @@ -33,9 +41,25 @@ | ... | @@ -33,9 +41,25 @@ |
33 | </object> | 41 | </object> |
34 | <div class="text-center pt-10"> | 42 | <div class="text-center pt-10"> |
35 | <el-button @click="$popupCacel">取消</el-button> | 43 | <el-button @click="$popupCacel">取消</el-button> |
36 | <el-button type="primary" @click="handleSubmit">确定</el-button> | 44 | <el-button type="primary" @click="handlePrint" v-if="this.formData.ysxlh">打印</el-button> |
45 | <el-button type="primary" @click="handleSubmit" v-else>确定</el-button> | ||
46 | </div> | ||
47 | |||
48 | <el-dialog title="证书作废" :visible.sync="invalidDiglog" width="40%" :modal-append-to-body="false" top="30vh"> | ||
49 | <div class="invalid-diglog"> | ||
50 | <div class="invalid-title"> | ||
51 | <i class="el-icon-question invalid-icon"></i> | ||
52 | <div class="invalid-body">您确定作废证书并再次打印?印刷序列号{{bdcqz.ysxlh}}</div> | ||
53 | </div> | ||
54 | <div class="invalid-reson">作废原因:</div> | ||
55 | <el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input> | ||
56 | <div class="text-center pt-10"> | ||
57 | <el-button @click="closeInvalidDiglog">取 消</el-button> | ||
58 | <el-button type="primary" @click="confirmInvalid">确 定</el-button> | ||
37 | </div> | 59 | </div> |
38 | </div> | 60 | </div> |
61 | </el-dialog> | ||
62 | </div> | ||
39 | </template> | 63 | </template> |
40 | 64 | ||
41 | <script> | 65 | <script> |
... | @@ -43,7 +67,7 @@ | ... | @@ -43,7 +67,7 @@ |
43 | import { datas } from "../../javascript/zsyl.js"; | 67 | import { datas } from "../../javascript/zsyl.js"; |
44 | import { getPrintTemplateByCode } from "@/api/print"; | 68 | import { getPrintTemplateByCode } from "@/api/print"; |
45 | import { getLodop } from "@/utils/LodopFuncs" | 69 | import { getLodop } from "@/utils/LodopFuncs" |
46 | import { readYsxlh, certificate, getSlsqBdcqzList } from "@/api/bdcqz.js"; | 70 | import { readYsxlh, certificate, getBdcqzDetail, invalidCertificate } from "@/api/bdcqz.js"; |
47 | export default { | 71 | export default { |
48 | props: { | 72 | props: { |
49 | formData: { | 73 | formData: { |
... | @@ -55,18 +79,22 @@ | ... | @@ -55,18 +79,22 @@ |
55 | }, | 79 | }, |
56 | data () { | 80 | data () { |
57 | return { | 81 | return { |
82 | // 详细信息 | ||
83 | bdcqz: {}, | ||
58 | key: 0, | 84 | key: 0, |
85 | disabled: false, | ||
59 | // 不动产证书图片地址 | 86 | // 不动产证书图片地址 |
60 | imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'), | 87 | imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'), |
61 | bdczmSrc: require('@/image/bdcqz/bdczm.jpg'), | 88 | bdczmSrc: require('@/image/bdcqz/bdczm.jpg'), |
62 | loading: false, | 89 | loading: false, |
63 | bdcqz: [], | ||
64 | //印刷序列号集合 | 90 | //印刷序列号集合 |
65 | ysxlh: [], | 91 | ysxlh: [], |
66 | //列名称对象 | 92 | //列名称对象 |
67 | columns: [], | 93 | columns: [], |
68 | //tab选择绑定值 | 94 | //tab选择绑定值 |
69 | activeName: '', | 95 | activeName: '', |
96 | invalidDiglog: false, | ||
97 | zfyy: "", | ||
70 | ruleForm: { | 98 | ruleForm: { |
71 | bsmBdcqz: "", | 99 | bsmBdcqz: "", |
72 | szmc: "不动产权证书", | 100 | szmc: "不动产权证书", |
... | @@ -85,24 +113,82 @@ | ... | @@ -85,24 +113,82 @@ |
85 | store.dispatch('user/refreshPage', false) | 113 | store.dispatch('user/refreshPage', false) |
86 | this.columns = datas.columns() | 114 | this.columns = datas.columns() |
87 | this.ysxlhList() | 115 | this.ysxlhList() |
88 | if (this.formData.bdcqz.bdcqzlx == 1) { | 116 | // 获取详细信息 |
117 | this.getDetail() | ||
118 | if (this.formData.ysxlh) { | ||
119 | this.disabled = true | ||
120 | } else { | ||
121 | this.disabled = false | ||
122 | } | ||
123 | }, | ||
124 | methods: { | ||
125 | /** | ||
126 | * @description: 获取详细信息 | ||
127 | * @author: renchao | ||
128 | */ | ||
129 | getDetail () { | ||
130 | this.loading = true | ||
131 | getBdcqzDetail(this.formData.bsmBdcqz).then(res => { | ||
132 | this.bdcqz = res.result | ||
133 | this.loading = false | ||
134 | if (this.bdcqz.ysxlh) this.ruleForm.ysxlh = this.bdcqz.ysxlh | ||
135 | if (this.bdcqz.bdcqzlx == 1) { | ||
89 | this.drawTextOnImage() | 136 | this.drawTextOnImage() |
90 | } else { | 137 | } else { |
91 | this.drawTextzmImage() | 138 | this.drawTextzmImage() |
92 | } | 139 | } |
140 | }) | ||
93 | }, | 141 | }, |
94 | methods: { | ||
95 | /** | 142 | /** |
96 | * @description: 获取印刷序列号列表 | 143 | * @description: 获取印刷序列号列表 |
97 | * @author: renchao | 144 | * @author: renchao |
98 | */ | 145 | */ |
99 | ysxlhList () { | 146 | ysxlhList () { |
100 | readYsxlh({ zslx: this.formData.bdcqz.bdcqzlx }).then((res) => { | 147 | readYsxlh({ zslx: this.formData.bdcqzlx }).then((res) => { |
101 | if (res.code === 200) { | 148 | if (res.code === 200) { |
102 | this.ysxlh = res.result; | 149 | this.ysxlh = res.result; |
103 | } | 150 | } |
104 | }) | 151 | }) |
105 | }, | 152 | }, |
153 | handleSelect (val) { | ||
154 | this.bdcqz.ysxlh = this.ruleForm.ysxlh | ||
155 | if (this.bdcqz.bdcqzlx == 1) { | ||
156 | this.drawTextOnImage() | ||
157 | } else { | ||
158 | this.drawTextzmImage() | ||
159 | } | ||
160 | }, | ||
161 | /** | ||
162 | * @description: closeInvalidDiglog | ||
163 | * @author: renchao | ||
164 | */ | ||
165 | closeInvalidDiglog () { | ||
166 | this.zfyy = ""; | ||
167 | this.invalidDiglog = false | ||
168 | }, | ||
169 | /** | ||
170 | * @description: 作废缮证信息 | ||
171 | * @author: renchao | ||
172 | */ | ||
173 | confirmInvalid () { | ||
174 | invalidCertificate({ bsmBdcqz: this.bdcqz.bsmBdcqz, zfyy: this.zfyy }).then((res) => { | ||
175 | if (res.code === 200) { | ||
176 | this.$message.success("作废成功"); | ||
177 | this.disabled = false | ||
178 | this.invalidDiglog = false; | ||
179 | this.zfyy = '' | ||
180 | this.ruleForm.ysxlh = '' | ||
181 | this.bdcqz.ysxlh = '' | ||
182 | if (this.bdcqz.bdcqzlx == 1) { | ||
183 | this.drawTextOnImage() | ||
184 | } else { | ||
185 | this.drawTextzmImage() | ||
186 | } | ||
187 | } else { | ||
188 | this.$message.error(res.message); | ||
189 | } | ||
190 | }) | ||
191 | }, | ||
106 | /** | 192 | /** |
107 | * @description: 不动产证书 | 193 | * @description: 不动产证书 |
108 | * @author: renchao | 194 | * @author: renchao |
... | @@ -128,25 +214,24 @@ | ... | @@ -128,25 +214,24 @@ |
128 | context.drawImage(image, 0, 0); | 214 | context.drawImage(image, 0, 0); |
129 | context.font = '16px 楷体'; | 215 | context.font = '16px 楷体'; |
130 | context.fillStyle = '#000000'; | 216 | context.fillStyle = '#000000'; |
131 | context.fillText(this.formData.bdcqz.sjjc ? this.formData.bdcqz.sjjc : '', 60, 56); | 217 | context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56); |
132 | context.fillText(this.formData.bdcqz.djnd ? this.formData.bdcqz.djnd : '', 113, 56); | 218 | context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56); |
133 | context.fillText(this.formData.bdcqz.sxqc ? this.formData.bdcqz.sxqc : '', 180, 56); | 219 | context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56); |
134 | context.fillText(this.formData.bdcqz.sxh ? this.formData.bdcqz.sxh : '', 370, 56); | 220 | context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56); |
135 | context.fillText(this.formData.bdcqz.qlr ? this.formData.bdcqz.qlr : '', 129, 97); | 221 | context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97); |
136 | context.fillText(this.formData.bdcqz.gyqk ? this.formData.bdcqz.gyqk : '', 129, 136); | 222 | context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136); |
137 | 223 | ||
138 | this.bdcdyh = this.formData.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.formData.bdcqz.bdcdyh.slice(6, 12) + ' ' + | 224 | this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' + |
139 | this.formData.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.formData.bdcqz.bdcdyh.slice(19, this.formData.bdcqz.bdcdyh.length) | 225 | this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length) |
140 | context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223); | 226 | context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223); |
141 | 227 | ||
142 | 228 | ||
143 | 229 | ||
144 | context.fillText(this.formData.bdcqz.qllx ? this.formData.bdcqz.qllx : '', 129, 263); | 230 | context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263); |
145 | context.fillText(this.formData.bdcqz.qlxz ? this.formData.bdcqz.qlxz : '', 129, 303); | 231 | context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303); |
146 | context.fillText(this.formData.bdcqz.yt ? this.formData.bdcqz.yt : '', 129, 346); | 232 | context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346); |
147 | // context.fillText(this.formData.bdcqz.mj ? this.formData.bdcqz.mj : '', 129, 386); | 233 | let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : []; |
148 | let lines6 = this.formData.bdcqz.mj ? this.formData.bdcqz.mj.split(' ') : []; | 234 | if (getByteLen(this.bdcqz.mj) > 41) { |
149 | if (getByteLen(this.formData.bdcqz.mj) > 41) { | ||
150 | lines6.forEach((line, index) => { | 235 | lines6.forEach((line, index) => { |
151 | const y = 378 + (index * 27); // 每行文本的垂直位置 | 236 | const y = 378 + (index * 27); // 每行文本的垂直位置 |
152 | let currentLine = ''; | 237 | let currentLine = ''; |
... | @@ -189,7 +274,7 @@ | ... | @@ -189,7 +274,7 @@ |
189 | } | 274 | } |
190 | // 权利其他状态 | 275 | // 权利其他状态 |
191 | const maxWidth = 332; // 最大宽度限制 | 276 | const maxWidth = 332; // 最大宽度限制 |
192 | let lines = this.formData.bdcqz.qlqtzk ? this.formData.bdcqz.qlqtzk.split('\n') : []; | 277 | let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n') : []; |
193 | for (let i = 0; i < lines.length; i++) { | 278 | for (let i = 0; i < lines.length; i++) { |
194 | let num = Math.ceil(getByteLen(lines[i]) / 41) | 279 | let num = Math.ceil(getByteLen(lines[i]) / 41) |
195 | if (getByteLen(lines[i]) > 41) { | 280 | if (getByteLen(lines[i]) > 41) { |
... | @@ -224,7 +309,7 @@ | ... | @@ -224,7 +309,7 @@ |
224 | } | 309 | } |
225 | } | 310 | } |
226 | 311 | ||
227 | let lines1 = this.formData.bdcqz.fj ? this.formData.bdcqz.fj.split('\n') : []; | 312 | let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n') : []; |
228 | lines1.forEach((line, index) => { | 313 | lines1.forEach((line, index) => { |
229 | const y = 100 + (index * 30); // 每行文本的垂直位置 | 314 | const y = 100 + (index * 30); // 每行文本的垂直位置 |
230 | let currentLine = ''; | 315 | let currentLine = ''; |
... | @@ -244,8 +329,8 @@ | ... | @@ -244,8 +329,8 @@ |
244 | context.fillText(line, 580, y + (index * 30)); // 调整行高 | 329 | context.fillText(line, 580, y + (index * 30)); // 调整行高 |
245 | }) | 330 | }) |
246 | }) | 331 | }) |
247 | let lines3 = this.formData.bdcqz.syqx ? this.formData.bdcqz.syqx.split(' ') : []; | 332 | let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : []; |
248 | if (getByteLen(this.formData.bdcqz.syqx) > 41) { | 333 | if (getByteLen(this.bdcqz.syqx) > 41) { |
249 | lines3.forEach((line, index) => { | 334 | lines3.forEach((line, index) => { |
250 | const y = 423 + (index * 27); // 每行文本的垂直位置 | 335 | const y = 423 + (index * 27); // 每行文本的垂直位置 |
251 | let currentLine = ''; | 336 | let currentLine = ''; |
... | @@ -287,8 +372,8 @@ | ... | @@ -287,8 +372,8 @@ |
287 | }) | 372 | }) |
288 | } | 373 | } |
289 | 374 | ||
290 | let lines2 = this.formData.bdcqz.zl ? this.formData.bdcqz.zl.split(' ') : []; | 375 | let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : []; |
291 | if (getByteLen(this.formData.bdcqz.zl) > 41) { | 376 | if (getByteLen(this.bdcqz.zl) > 41) { |
292 | lines2.forEach((line, index) => { | 377 | lines2.forEach((line, index) => { |
293 | const y = 170 + (index * 20); // 每行文本的垂直位置 | 378 | const y = 170 + (index * 20); // 每行文本的垂直位置 |
294 | let currentLine = ''; | 379 | let currentLine = ''; |
... | @@ -359,25 +444,24 @@ | ... | @@ -359,25 +444,24 @@ |
359 | context.font = '16px 楷体'; | 444 | context.font = '16px 楷体'; |
360 | context.fillStyle = '#000000'; | 445 | context.fillStyle = '#000000'; |
361 | // ysxlh | 446 | // ysxlh |
362 | context.fillText(this.formData.bdcqz.ysxlh ? this.formData.bdcqz.ysxlh : '', 280, 712); | 447 | context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712); |
363 | // djsj | 448 | // djsj |
364 | if (this.formData.bdcqz.djsj) { | 449 | if (this.bdcqz.djsj) { |
365 | let djsjList = this.formData.bdcqz.djsj.split(' ')[0].split('/') | 450 | let djsjList = this.bdcqz.djsj.split(' ')[0].split('/') |
366 | context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580); | 451 | context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580); |
367 | context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580); | 452 | context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580); |
368 | context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580); | 453 | context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580); |
369 | } | 454 | } |
370 | context.fillText(this.formData.bdcqz.sjjc ? this.formData.bdcqz.sjjc : '', 620, 125); | 455 | context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125); |
371 | context.fillText(this.formData.bdcqz.djnd ? this.formData.bdcqz.djnd : '', 665, 125); | 456 | context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125); |
372 | context.fillText(this.formData.bdcqz.sxqc ? this.formData.bdcqz.sxqc : '', 750, 125); | 457 | context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 750, 125); |
373 | context.fillText(this.formData.bdcqz.sxh ? this.formData.bdcqz.sxh : '', 960, 123); | 458 | context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123); |
374 | context.fillText(this.formData.bdcqz.zmqlhsx ? this.formData.bdcqz.zmqlhsx : '', 775, 180); | 459 | context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180); |
375 | context.fillText(this.formData.bdcqz.qlr ? this.formData.bdcqz.qlr : '', 775, 228); | 460 | context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228); |
376 | // 义务人 | 461 | // 义务人 |
377 | context.fillText(this.formData.bdcqz.ywr ? this.formData.bdcqz.ywr : '', 775, 275); | 462 | context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275); |
378 | // context.fillText(this.formData.bdcqz.zl ? this.formData.bdcqz.zl : '', 775, 325); | 463 | let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : []; |
379 | let lines2 = this.formData.bdcqz.zl ? this.formData.bdcqz.zl.split(' ') : []; | 464 | if (getByteLen(this.bdcqz.zl) > 41) { |
380 | if (getByteLen(this.formData.bdcqz.zl) > 41) { | ||
381 | lines2.forEach((line, index) => { | 465 | lines2.forEach((line, index) => { |
382 | const y = 315 + (index * 20); // 每行文本的垂直位置 | 466 | const y = 315 + (index * 20); // 每行文本的垂直位置 |
383 | let currentLine = ''; | 467 | let currentLine = ''; |
... | @@ -419,15 +503,15 @@ | ... | @@ -419,15 +503,15 @@ |
419 | }) | 503 | }) |
420 | } | 504 | } |
421 | // bdcdyh | 505 | // bdcdyh |
422 | this.bdcdyh = this.formData.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.formData.bdcqz.bdcdyh.slice(6, 12) + ' ' + | 506 | this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' + |
423 | this.formData.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.formData.bdcqz.bdcdyh.slice(19, this.formData.bdcqz.bdcdyh.length) | 507 | this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length) |
424 | context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373); | 508 | context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373); |
425 | // qlqtzk | 509 | // qlqtzk |
426 | const maxWidth = 295; // 最大宽度限制 | 510 | const maxWidth = 290; // 最大宽度限制 |
427 | let lines = this.formData.bdcqz.qlqtzk ? this.formData.bdcqz.qlqtzk.split('\n') : []; | 511 | let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n') : []; |
428 | for (let i = 0; i < lines.length; i++) { | 512 | for (let i = 0; i < lines.length; i++) { |
429 | let num = Math.ceil(getByteLen(lines[i]) / 41) | 513 | let num = Math.ceil(getByteLen(lines[i]) / 37) |
430 | if (getByteLen(lines[i]) > 41) { | 514 | if (getByteLen(lines[i]) > 37) { |
431 | let currentLine = ''; | 515 | let currentLine = ''; |
432 | let arr = []; | 516 | let arr = []; |
433 | for (let word of lines[i]) { | 517 | for (let word of lines[i]) { |
... | @@ -459,10 +543,10 @@ | ... | @@ -459,10 +543,10 @@ |
459 | } | 543 | } |
460 | } | 544 | } |
461 | // fj | 545 | // fj |
462 | let lines1 = this.formData.bdcqz.fj ? this.formData.bdcqz.fj.split('\n') : []; | 546 | let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n') : []; |
463 | for (let i = 0; i < lines1.length; i++) { | 547 | for (let i = 0; i < lines1.length; i++) { |
464 | let num = Math.ceil(getByteLen(lines1[i]) / 41) | 548 | let num = Math.ceil(getByteLen(lines1[i]) / 37) |
465 | if (getByteLen(lines1[i]) > 41) { | 549 | if (getByteLen(lines1[i]) > 37) { |
466 | let currentLine = ''; | 550 | let currentLine = ''; |
467 | let arr = []; | 551 | let arr = []; |
468 | for (let word of lines1[i]) { | 552 | for (let word of lines1[i]) { |
... | @@ -494,74 +578,72 @@ | ... | @@ -494,74 +578,72 @@ |
494 | } | 578 | } |
495 | } | 579 | } |
496 | } | 580 | } |
497 | |||
498 | image.src = this.bdczmSrc; | 581 | image.src = this.bdczmSrc; |
499 | }, | 582 | }, |
500 | /** | 583 | // 打印 |
501 | * @description: handleSubmit | 584 | handlePrint () { |
502 | * @author: renchao | 585 | if (this.bdcqz.bdcqzlx == 1) { |
503 | */ | 586 | getPrintTemplateByCode({ tmpno: 'zsdy' }).then(resInfo => { |
504 | handleSubmit () { | 587 | if (resInfo.code == 200) { |
505 | this.savePrintRecord() | ||
506 | }, | ||
507 | /** | ||
508 | * @description: 保存打印记录 | ||
509 | * @author: renchao | ||
510 | */ | ||
511 | savePrintRecord () { | ||
512 | let that = this | ||
513 | this.ruleForm.bsmBdcqz = this.formData.bdcqz.bsmBdcqz; | ||
514 | this.ruleForm.bdcqzlx = this.formData.bdcqz.bdcqzlx; | ||
515 | this.ruleForm.szzh = this.formData.bdcqz.bdcqzh; | ||
516 | certificate(this.ruleForm).then((res) => { | ||
517 | if (res.code === 200) { | ||
518 | that.$popupCacel() | ||
519 | if (this.formData.bdcqz.bdcqzlx == 1) { | ||
520 | getPrintTemplateByCode({ tmpno: 'zsdy' }).then(res => { | ||
521 | if (res.code == 200) { | ||
522 | //打开模板设计 | 588 | //打开模板设计 |
523 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); | 589 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); |
524 | LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent); //装载模板 | 590 | LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板 |
525 | 591 | ||
526 | this.formData.bdcqz.bdcdyh1 = this.formData.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.formData.bdcqz.bdcdyh.slice(6, 12) + ' ' + | 592 | this.bdcqz.bdcdyh1 = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' + |
527 | this.formData.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.formData.bdcqz.bdcdyh.slice(19, this.formData.bdcqz.bdcdyh.length) | 593 | this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length) |
528 | //todo 调取后端接口获取数据 循环set | 594 | //todo 调取后端接口获取数据 循环set |
529 | for (let key in this.formData.bdcqz) { | 595 | for (let key in this.bdcqz) { |
530 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.formData.bdcqz[key]); | 596 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.bdcqz[key]); |
531 | } | 597 | } |
532 | LODOP.PREVIEW(); | 598 | LODOP.PREVIEW(); |
533 | that.$popupCacel() | ||
534 | } else { | 599 | } else { |
535 | this.$message.error(res.message) | 600 | this.$message.error(resInfo.message) |
536 | } | 601 | } |
537 | }) | 602 | }) |
538 | } else { | 603 | } else { |
539 | getPrintTemplateByCode({ tmpno: 'zmdy' }).then(res => { | 604 | getPrintTemplateByCode({ tmpno: 'zmdy' }).then(resInfo => { |
540 | if (res.code == 200) { | 605 | if (resInfo.code == 200) { |
541 | //打开模板设计 | 606 | //打开模板设计 |
542 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); | 607 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); |
543 | LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent); //装载模板 | 608 | LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板 |
544 | 609 | ||
545 | // 年月日 | 610 | // 年月日 |
546 | this.formData.bdcqz.nian = this.formData.bdcqz.djsj.split(' ')[0].split('/')[0] | 611 | this.bdcqz.nian = this.bdcqz.djsj.split(' ')[0].split('/')[0] |
547 | this.formData.bdcqz.yue = this.formData.bdcqz.djsj.split(' ')[0].split('/')[1] | 612 | this.bdcqz.yue = this.bdcqz.djsj.split(' ')[0].split('/')[1] |
548 | this.formData.bdcqz.ri = this.formData.bdcqz.djsj.split(' ')[0].split('/')[1] | 613 | this.bdcqz.ri = this.bdcqz.djsj.split(' ')[0].split('/')[1] |
549 | this.formData.bdcqz.bdcdyh1 = this.formData.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.formData.bdcqz.bdcdyh.slice(6, 12) + ' ' + | 614 | this.bdcqz.bdcdyh1 = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' + |
550 | this.formData.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.formData.bdcqz.bdcdyh.slice(19, this.formData.bdcqz.bdcdyh.length) | 615 | this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length) |
551 | //todo 调取后端接口获取数据 循环set | 616 | //todo 调取后端接口获取数据 循环set |
552 | for (let key in this.formData.bdcqz) { | 617 | for (let key in this.bdcqz) { |
553 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.formData.bdcqz[key]); | 618 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.bdcqz[key]); |
554 | } | 619 | } |
555 | LODOP.PREVIEW(); | 620 | LODOP.PREVIEW(); |
556 | that.$popupCacel() | ||
557 | } else { | 621 | } else { |
558 | this.$message.error(res.message) | 622 | this.$message.error(resInfo.message) |
559 | } | 623 | } |
560 | }) | 624 | }) |
561 | } | 625 | } |
562 | |||
563 | //刷新列表 | 626 | //刷新列表 |
564 | store.dispatch('user/reWorkFresh', true) | 627 | store.dispatch('user/reWorkFresh', true) |
628 | }, | ||
629 | /** | ||
630 | * @description: 保存打印记录 | ||
631 | * @author: renchao | ||
632 | */ | ||
633 | handleSubmit () { | ||
634 | let that = this | ||
635 | if (this.ruleForm.ysxlh == '') { | ||
636 | this.$message.error('请选择印刷序列号'); | ||
637 | return; | ||
638 | } | ||
639 | this.ruleForm.bsmBdcqz = this.bdcqz.bsmBdcqz; | ||
640 | this.ruleForm.bdcqzlx = this.bdcqz.bdcqzlx; | ||
641 | this.ruleForm.szzh = this.bdcqz.bdcqzh; | ||
642 | this.bdcqz.ysxlh = this.ruleForm.ysxlh | ||
643 | certificate(this.ruleForm).then((res) => { | ||
644 | if (res.code === 200) { | ||
645 | that.$popupCacel() | ||
646 | this.handlePrint() | ||
565 | } else { | 647 | } else { |
566 | this.$message.error(res.message) | 648 | this.$message.error(res.message) |
567 | } | 649 | } |
... | @@ -579,4 +661,36 @@ | ... | @@ -579,4 +661,36 @@ |
579 | .zs-content { | 661 | .zs-content { |
580 | text-align: center; | 662 | text-align: center; |
581 | } | 663 | } |
664 | .invalid-diglog { | ||
665 | padding-bottom: 20px; | ||
666 | font-size: 16px; | ||
667 | font-weight: bold; | ||
668 | color: rgb(99, 99, 99); | ||
669 | |||
670 | .invalid-title { | ||
671 | display: flex; | ||
672 | align-content: center; | ||
673 | |||
674 | .invalid-icon { | ||
675 | color: rgb(254, 148, 0); | ||
676 | font-size: 34px; | ||
677 | margin-right: 10px; | ||
678 | } | ||
679 | |||
680 | .invalid-body { | ||
681 | line-height: 40px; | ||
682 | margin-bottom: 10px; | ||
683 | } | ||
684 | } | ||
685 | |||
686 | .invalid-reson { | ||
687 | margin-bottom: 10px; | ||
688 | } | ||
689 | |||
690 | .dialog-footer { | ||
691 | margin-top: 10px; | ||
692 | display: flex; | ||
693 | justify-content: flex-end; | ||
694 | } | ||
695 | } | ||
582 | </style> | 696 | </style> | ... | ... |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-09-04 17:12:05 | 4 | * @LastEditTime: 2023-09-05 14:28:25 |
5 | --> | 5 | --> |
6 | <template> | 6 | <template> |
7 | <div class="szxx"> | 7 | <div class="szxx"> |
... | @@ -55,28 +55,14 @@ | ... | @@ -55,28 +55,14 @@ |
55 | </div> | 55 | </div> |
56 | </div> | 56 | </div> |
57 | </el-card> | 57 | </el-card> |
58 | <el-dialog title="证书作废" :visible.sync="invalidDiglog" width="30%" :modal-append-to-body="false" top="30vh"> | 58 | |
59 | <div class="invalid-diglog"> | ||
60 | <div class="invalid-title"> | ||
61 | <i class="el-icon-question invalid-icon"></i> | ||
62 | <div class="invalid-body">您确定作废证书并再次打印?印刷序列号{{ysxlh}}</div> | ||
63 | </div> | ||
64 | <div class="invalid-reson">作废原因:</div> | ||
65 | <el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input> | ||
66 | <div class="text-center pt-10"> | ||
67 | <el-button @click="closeInvalidDiglog">取 消</el-button> | ||
68 | <el-button type="primary" @click="confirmInvalid">确 定</el-button> | ||
69 | </div> | ||
70 | </div> | ||
71 | </el-dialog> | ||
72 | <el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty> | 59 | <el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty> |
73 | </div> | 60 | </div> |
74 | </template> | 61 | </template> |
75 | <script> | 62 | <script> |
76 | import { mapGetters } from 'vuex' | 63 | import { mapGetters } from 'vuex' |
77 | import store from '@/store/index.js' | 64 | import store from '@/store/index.js' |
78 | import { getPrintTemplateByCode } from "@/api/print"; | 65 | import { getSlsqBdcqzList } from "@/api/bdcqz.js"; |
79 | import { getSlsqBdcqzList, invalidCertificate } from "@/api/bdcqz.js"; | ||
80 | export default { | 66 | export default { |
81 | props: {}, | 67 | props: {}, |
82 | data () { | 68 | data () { |
... | @@ -86,13 +72,8 @@ | ... | @@ -86,13 +72,8 @@ |
86 | dialog: false, | 72 | dialog: false, |
87 | tableData: [], | 73 | tableData: [], |
88 | bdcqzlx: 1, | 74 | bdcqzlx: 1, |
89 | bdcqz: {}, | 75 | bdcqz: {} |
90 | zfyy: "", | 76 | } |
91 | invalidDiglog: false, | ||
92 | bsmSz: "", | ||
93 | bsmBdcqz: "", | ||
94 | ysxlh: "" | ||
95 | }; | ||
96 | }, | 77 | }, |
97 | computed: { | 78 | computed: { |
98 | ...mapGetters(['workFresh']) | 79 | ...mapGetters(['workFresh']) |
... | @@ -135,12 +116,11 @@ | ... | @@ -135,12 +116,11 @@ |
135 | */ | 116 | */ |
136 | openZsylDialog (item, type) { | 117 | openZsylDialog (item, type) { |
137 | store.dispatch('user/reWorkFresh', false) | 118 | store.dispatch('user/reWorkFresh', false) |
138 | |||
139 | if (type == 1) { | 119 | if (type == 1) { |
140 | //证书证明预览 | 120 | //证书证明预览 |
141 | this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", { bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq }, "76%", true); | 121 | this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", { bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq }, "76%", true); |
142 | } else { | 122 | } else { |
143 | this.$popupDialog("证书证明打印", "workflow/components/dialog/zsdy", { bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq }, "76%", true); | 123 | this.$popupDialog("证书证明打印", "workflow/components/dialog/zsdy", { ...item }, "76%", true); |
144 | } | 124 | } |
145 | }, | 125 | }, |
146 | /** | 126 | /** |
... | @@ -149,38 +129,7 @@ | ... | @@ -149,38 +129,7 @@ |
149 | * @author: renchao | 129 | * @author: renchao |
150 | */ | 130 | */ |
151 | openInvalidDiglog (item) { | 131 | openInvalidDiglog (item) { |
152 | this.bdcqz = item | 132 | this.$popupDialog("证书证明打印", "workflow/components/dialog/zsdy", { ...item }, "76%", true); |
153 | this.ysxlh = item.ysxlh | ||
154 | this.bsmSz = item.bsmSz; | ||
155 | this.invalidDiglog = true; | ||
156 | this.bsmBdcqz = item.bsmBdcqz | ||
157 | }, | ||
158 | /** | ||
159 | * @description: closeInvalidDiglog | ||
160 | * @author: renchao | ||
161 | */ | ||
162 | closeInvalidDiglog () { | ||
163 | this.invalidDiglog = false; | ||
164 | this.bsmSz = ""; | ||
165 | this.zfyy = ""; | ||
166 | }, | ||
167 | /** | ||
168 | * @description: 作废缮证信息 | ||
169 | * @author: renchao | ||
170 | */ | ||
171 | confirmInvalid () { | ||
172 | invalidCertificate({ bsmBdcqz: this.bsmBdcqz, zfyy: this.zfyy }).then(async (res) => { | ||
173 | if (res.code === 200) { | ||
174 | this.list(); | ||
175 | this.$message.success("作废成功"); | ||
176 | this.invalidDiglog = false; | ||
177 | this.zfyy = '' | ||
178 | let res = await this.list() | ||
179 | if (res && res == 200) this.openZsylDialog(this.bdcqz); | ||
180 | } else { | ||
181 | this.$message.error(res.message); | ||
182 | } | ||
183 | }) | ||
184 | }, | 133 | }, |
185 | /** | 134 | /** |
186 | * @description: openRecordPop | 135 | * @description: openRecordPop |
... | @@ -263,39 +212,6 @@ | ... | @@ -263,39 +212,6 @@ |
263 | padding-top: 8px; | 212 | padding-top: 8px; |
264 | font-size: 16px; | 213 | font-size: 16px; |
265 | } | 214 | } |
266 | |||
267 | .invalid-diglog { | ||
268 | padding-bottom: 20px; | ||
269 | font-size: 16px; | ||
270 | font-weight: bold; | ||
271 | color: rgb(99, 99, 99); | ||
272 | |||
273 | .invalid-title { | ||
274 | display: flex; | ||
275 | align-content: center; | ||
276 | |||
277 | .invalid-icon { | ||
278 | color: rgb(254, 148, 0); | ||
279 | font-size: 34px; | ||
280 | margin-right: 10px; | ||
281 | } | ||
282 | |||
283 | .invalid-body { | ||
284 | line-height: 40px; | ||
285 | margin-bottom: 10px; | ||
286 | } | ||
287 | } | ||
288 | |||
289 | .invalid-reson { | ||
290 | margin-bottom: 10px; | ||
291 | } | ||
292 | |||
293 | .dialog-footer { | ||
294 | margin-top: 10px; | ||
295 | display: flex; | ||
296 | justify-content: flex-end; | ||
297 | } | ||
298 | } | ||
299 | .box-card { | 215 | .box-card { |
300 | .szxx_header { | 216 | .szxx_header { |
301 | color: #303133; | 217 | color: #303133; | ... | ... |
1 | /* | 1 | /* |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-07-11 13:59:14 | 4 | * @LastEditTime: 2023-09-05 15:05:56 |
5 | */ | 5 | */ |
6 | import { getForm } from "../flowform"; | 6 | import { getForm } from "../flowform"; |
7 | import { getHomeNoticeList } from "@/api/home.js" | 7 | import { getHomeNoticeList } from "@/api/home.js" |
... | @@ -49,7 +49,6 @@ export default { | ... | @@ -49,7 +49,6 @@ export default { |
49 | * @author: renchao | 49 | * @author: renchao |
50 | */ | 50 | */ |
51 | getFromRouter (tabname) { | 51 | getFromRouter (tabname) { |
52 | console.log(tabname, 'tabnametabnametabnametabnametabname'); | ||
53 | //根据tabname获取选中的表单 此操作为了获取后端返回的表单对象,使用里面的是否可操作的属性 | 52 | //根据tabname获取选中的表单 此操作为了获取后端返回的表单对象,使用里面的是否可操作的属性 |
54 | for (let item of this.tabList) { | 53 | for (let item of this.tabList) { |
55 | if (item.value === tabname) { | 54 | if (item.value === tabname) { | ... | ... |
-
Please register or sign in to post a comment