39820f70 by renchao@pashanhoo.com

文件夹构建

1 parent 58e82bcb
Showing 84 changed files with 18992 additions and 611 deletions
...@@ -234,7 +234,7 @@ ...@@ -234,7 +234,7 @@
234 formData.append("bsmSj", this.previewImg.bsmSj); 234 formData.append("bsmSj", this.previewImg.bsmSj);
235 formData.append("bsmSlsq", this.previewImg.bsmSlsq); 235 formData.append("bsmSlsq", this.previewImg.bsmSlsq);
236 if (this.previewImg.imgList.length > 0) { 236 if (this.previewImg.imgList.length > 0) {
237 formData.append("ssBsmClmx", this.previewImg.imgList[this.previewImg.index].bsmClmx); 237 formData.append("index", this.previewImg.imgList[this.previewImg.index].sxh);
238 } 238 }
239 uploadSjClmx(formData).then((res) => { 239 uploadSjClmx(formData).then((res) => {
240 if (res.code == 200) { 240 if (res.code == 200) {
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-11-13 14:31:09 4 * @LastEditTime: 2023-11-13 14:32:38
5 --> 5 -->
6 <template> 6 <template>
7 <!-- 受理信息 --> 7 <!-- 受理信息 -->
......
...@@ -454,7 +454,6 @@ ...@@ -454,7 +454,6 @@
454 }; 454 };
455 }, 455 },
456 key: 0, 456 key: 0,
457 tdxz: null,
458 isShow: false, 457 isShow: false,
459 disabled: true, 458 disabled: true,
460 czrOptions: [], 459 czrOptions: [],
...@@ -675,6 +674,16 @@ ...@@ -675,6 +674,16 @@
675 if (this.ruleForm.qlrData.length > 1) { 674 if (this.ruleForm.qlrData.length > 1) {
676 this.$message({ 675 this.$message({
677 showClose: true, 676 showClose: true,
677 message: "请确认权利人信息",
678 type: "error",
679 });
680 return false;
681 }
682 }
683 if (this.ruleForm.sldy.gyfs == "0") {
684 if (this.ruleForm.qlrData.length > 1) {
685 this.$message({
686 showClose: true,
678 message: "共有方式:单独所有,权利人只能是一个人", 687 message: "共有方式:单独所有,权利人只能是一个人",
679 type: "error", 688 type: "error",
680 }); 689 });
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-11-03 14:47:55 4 * @LastEditTime: 2023-11-03 14:50:46
5 --> 5 -->
6 <template> 6 <template>
7 <!-- 受理信息 --> 7 <!-- 受理信息 -->
...@@ -84,8 +84,6 @@ ...@@ -84,8 +84,6 @@
84 <el-input disabled v-model="ruleForm.qlxx.ssywh"></el-input> 84 <el-input disabled v-model="ruleForm.qlxx.ssywh"></el-input>
85 </el-form-item> 85 </el-form-item>
86 </el-col> 86 </el-col>
87 </el-row>
88 <el-row :gutter="10">
89 <el-col :span="8"> 87 <el-col :span="8">
90 <el-form-item label="权利类型:"> 88 <el-form-item label="权利类型:">
91 <el-input disabled v-model="ruleForm.qlxx.qllxmc"></el-input> 89 <el-input disabled v-model="ruleForm.qlxx.qllxmc"></el-input>
......
...@@ -591,8 +591,6 @@ ...@@ -591,8 +591,6 @@
591 this.loading = false 591 this.loading = false
592 if (res.code == 200) { 592 if (res.code == 200) {
593 this.ruleForm = res.result; 593 this.ruleForm = res.result;
594 this.ruleForm.tdsyq.mjdw = "1"
595
596 let djlx = this.ruleForm.qlxx.djlx; 594 let djlx = this.ruleForm.qlxx.djlx;
597 if (djlx == null || djlx == 100) { 595 if (djlx == null || djlx == 100) {
598 this.ssqlxxshow = false; 596 this.ssqlxxshow = false;
......
...@@ -436,7 +436,6 @@ ...@@ -436,7 +436,6 @@
436 }, 436 },
437 }; 437 };
438 }, 438 },
439
440 }; 439 };
441 </script> 440 </script>
442 <style scoped lang="scss"> 441 <style scoped lang="scss">
......
...@@ -53,7 +53,7 @@ export function getForm (tabName) { ...@@ -53,7 +53,7 @@ export function getForm (tabName) {
53 break; 53 break;
54 //森林林木使用权 54 //森林林木使用权
55 case "sllmslxx": 55 case "sllmslxx":
56 form = require("@/views/ywbl/slsqxx/sllmslxx"); 56 form = require("@/views/workflow/main/slsqxx/sllmslxx");
57 break; 57 break;
58 case "slxxjsydsyq": 58 case "slxxjsydsyq":
59 form = require("@/views/djbworkflow/djbBook/components/blxxtabs/jsydsyq.vue"); 59 form = require("@/views/djbworkflow/djbBook/components/blxxtabs/jsydsyq.vue");
......
...@@ -73,7 +73,6 @@ export default { ...@@ -73,7 +73,6 @@ export default {
73 } 73 }
74 } 74 }
75 }) 75 })
76
77 }, 76 },
78 /** 77 /**
79 * @description: 流程环节操作按钮 78 * @description: 流程环节操作按钮
...@@ -91,7 +90,7 @@ export default { ...@@ -91,7 +90,7 @@ export default {
91 case "B1": 90 case "B1":
92 getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => { 91 getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
93 let { result } = res 92 let { result } = res
94 this.$popupDialog("流程图", "workflow/components/processViewer", { 93 this.$popupDialog("流程图", "workflow/top/processViewer/index", {
95 xml: result.xml, 94 xml: result.xml,
96 finishedInfo: { 95 finishedInfo: {
97 finishedTaskSet: result.finishedActivityIds, 96 finishedTaskSet: result.finishedActivityIds,
...@@ -156,7 +155,7 @@ export default { ...@@ -156,7 +155,7 @@ export default {
156 }, '90%', true) 155 }, '90%', true)
157 break; 156 break;
158 case "back": //退回按钮 157 case "back": //退回按钮
159 this.$popupDialog("退回", "workflow/components/th", { 158 this.$popupDialog("退回", "workflow/top/back/index", {
160 bsmSlsq: this.bsmSlsq, 159 bsmSlsq: this.bsmSlsq,
161 bestepid: this.bestepid ? this.bestepid : '' 160 bestepid: this.bestepid ? this.bestepid : ''
162 }, '800px', true) 161 }, '800px', true)
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-01-19 16:30:06 4 * @LastEditTime: 2024-01-29 14:27:07
5 --> 5 -->
6 <template> 6 <template>
7 <div class="clxx"> 7 <div class="clxx">
...@@ -170,9 +170,9 @@ ...@@ -170,9 +170,9 @@
170 }) 170 })
171 } else { 171 } else {
172 var formdata = new FormData(); 172 var formdata = new FormData();
173 formdata.append("bsmSlsq", this.formData.bsmSlsq); 173 formdata.append("bsmSlsq", this.formData.bsmSlsq ? this.formData.bsmSlsq : '');
174 formdata.append("bsmSldy", this.formData.bsmSldy); 174 formdata.append("bsmSldy", this.formData.bsmSldy ? this.formData.bsmSldy : '');
175 175 console.log(this.formData);
176 InitClml(formdata).then((res) => { 176 InitClml(formdata).then((res) => {
177 if (res.code == 200) { 177 if (res.code == 200) {
178 resolve(res.code); 178 resolve(res.code);
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 16:47:02 4 * @LastEditTime: 2024-01-30 16:53:30
5 --> 5 -->
6 <template> 6 <template>
7 <div class="tableBox"> 7 <div class="tableBox">
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-01-25 13:15:05 4 * @LastEditTime: 2024-01-29 14:19:56
5 --> 5 -->
6 <template> 6 <template>
7 <div class="content"> 7 <div class="content">
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-07-19 09:52:59 4 * @LastEditTime: 2024-01-31 09:52:39
5 --> 5 -->
6 <template> 6 <template>
7 <div class="content loadingtext"> 7 <div class="content loadingtext">
...@@ -14,8 +14,7 @@ ...@@ -14,8 +14,7 @@
14 :default-expand-all="true" 14 :default-expand-all="true"
15 :expand-on-click-node="false" 15 :expand-on-click-node="false"
16 node-key="id" 16 node-key="id"
17 :default-checked-keys="[showTab]" 17 :default-checked-keys="[showTab]">
18 >
19 </el-tree> 18 </el-tree>
20 <el-collapse v-model="activeName" accordion> 19 <el-collapse v-model="activeName" accordion>
21 <el-collapse-item 20 <el-collapse-item
...@@ -23,8 +22,7 @@ ...@@ -23,8 +22,7 @@
23 ref="sfq" 22 ref="sfq"
24 v-for="(item, index) in sfqdata" 23 v-for="(item, index) in sfqdata"
25 :key="index" 24 :key="index"
26 :name="index" 25 :name="index">
27 >
28 <template slot="title"> 26 <template slot="title">
29 <span class="text" @click="tap(item)"> 27 <span class="text" @click="tap(item)">
30 <span> 28 <span>
...@@ -37,8 +35,7 @@ ...@@ -37,8 +35,7 @@
37 :re="item" 35 :re="item"
38 :key="index" 36 :key="index"
39 :class="[isActive == index ? activeCls : '', errorCls]" 37 :class="[isActive == index ? activeCls : '', errorCls]"
40 @click="taplist(item, index)" 38 @click="taplist(item, index)">
41 >
42 <span> 39 <span>
43 {{ item.label }} 40 {{ item.label }}
44 </span> 41 </span>
...@@ -53,146 +50,43 @@ ...@@ -53,146 +50,43 @@
53 <component 50 <component
54 :is="componentTag" 51 :is="componentTag"
55 @getBdcdyh="getBdcdyh" 52 @getBdcdyh="getBdcdyh"
56 v-bind="currentSelectProps" 53 v-bind="currentSelectProps" />
57 />
58 </div> 54 </div>
59 </div> 55 </div>
60 </template> 56 </template>
61 <script> 57 <script>
62 import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js"; 58 import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js";
63 import { loadTreeData, loadsfqData, getNode } from "./djbFrameData.js"; 59 import { loadTreeData, loadsfqData, getNode } from "./djbFrameData.js";
64 export default { 60 export default {
65 data() { 61 data () {
66 return { 62 return {
67 //接收参数 63 //接收参数
68 // propsParam: this.$attrs, 64 // propsParam: this.$attrs,
69 //左侧目录 65 //左侧目录
70 catalog: {}, 66 catalog: {},
71 //选择加载哪一个组件 67 //选择加载哪一个组件
72 componentTag: "", 68 componentTag: "",
73 //子组件接收参数 69 //子组件接收参数
74 currentSelectProps: {}, 70 currentSelectProps: {},
75 //左侧树形结构数据 71 //左侧树形结构数据
76 treedata: [], 72 treedata: [],
77 sfqdata: [], 73 sfqdata: [],
78 keyy: "", 74 keyy: "",
79 iskey: "", 75 iskey: "",
80 activeName: 0, 76 activeName: 0,
81 // 查询参数 77 // 查询参数
82 queryForm: {}, 78 queryForm: {},
83 79
84 defaultNode: "", 80 defaultNode: "",
85 isActive: "", 81 isActive: "",
86 activeCls: "select", 82 activeCls: "select",
87 errorCls: "unselected", 83 errorCls: "unselected",
88 defaultProps: { 84 defaultProps: {
89 value: "id", 85 value: "id",
90 children: "children", 86 children: "children",
91 label: "label", 87 label: "label",
92 }, 88 },
93 showTab: "bdcqldjml", // 选中状态,根据表格中权利类型判断 89 showTab: "bdcqldjml", // 选中状态,根据表格中权利类型判断
94 };
95 },
96 mounted() {
97 this.loadData(this.getCaption(window.location.href));
98 },
99 methods: {
100 // 截取字符的方法
101 /**
102 * @description: 截取字符的方法
103 * @param {*} obj
104 * @author: renchao
105 */
106 getCaption(obj) {
107 let index = obj.lastIndexOf("=");
108 obj = obj.substring(index + 1, obj.length);
109 return obj;
110 },
111 // 通过不动产业务号获取参数
112 /**
113 * @description: 通过不动产业务号获取参数
114 * @author: renchao
115 */
116 // getdata () {
117 // this.queryForm = {
118 // bdcdyh: this.getCaption(window.location.href),
119 // currentPage: 1,
120 // djlx: "",
121 // pageSize: 10,
122 // qllx: "",
123 // ywh: "",
124 // ywly: "",
125 // };
126 // if (this.queryForm) {
127 // this.$startLoading();
128 // searchTaskToDo({
129 // ...this.queryForm,
130 // }).then((res) => {
131 // if (res.code === 200) {
132 // let { records } = res.result;
133
134 // this.loadBdcdylist(records[0].bsmSlsq, records[0].bestepid);
135 // this.$endLoading();
136 // }
137 // });
138 // }
139 // },
140
141 // 获取不动产信息
142 /**
143 * @description: 获取不动产信息
144 * @param {*} a
145 * @param {*} b
146 * @author: renchao
147 */
148 // loadBdcdylist (a, b) {
149 // var formdata = new FormData();
150 // formdata.append("bsmSlsq", a);
151 // formdata.append("bestepid", b);
152 // leftMenu(formdata).then((res) => {
153 // if (res.code === 200) {
154 // if (res.result) {
155 // this.currentSelectProps = res.result[0];
156 // this.loadData(this.currentSelectProps.bdcdyh);
157 // }
158 // }
159 // });
160 // },
161
162 /**
163 * @description: getBdcdyh
164 * @author: miaofang
165 * 点击不动产单元号事件
166 */
167 getBdcdyh(val) {
168 this.addloadData(val);
169 },
170 /**
171 * @description: addloadData
172 * @author: miaofang
173 */
174 addloadData(val) {
175 getBdcqljqtsx({
176 bdcdyid: val.bdcdyid,
177 bdcdyh: val.bdcdyh,
178 }).then((res) => {
179 if (res.code === 200) {
180 if (this.sfqdata.some((item) => item.bdcdyid === val.bdcdyid)) {
181 let index = this.sfqdata.findIndex((item) => {
182 return item.bdcdyid == val.bdcdyid;
183 });
184 this.activeName = index;
185 } else {
186 this.sfqdata.push(loadsfqData(res.result, val.bdcdyh, val.bdcdyid));
187 this.activeName = this.sfqdata.length - 1;
188 }
189 }
190 });
191 this.currentSelectProps = {
192 bdcdyid: val.bdcdyid,
193 bdcdyh: val.bdcdyh,
194 qllx: this.currentSelectProps.qllx,
195 bsmQlxx: this.currentSelectProps.bsmQlxx,
196 }; 90 };
197 }, 91 },
198 /** 92 /**
...@@ -288,135 +182,229 @@ export default { ...@@ -288,135 +182,229 @@ export default {
288 this.loadComponent(data.form); 182 this.loadComponent(data.form);
289 this.isActive = index; 183 this.isActive = index;
290 }, 184 },
291 /** 185 methods: {
186 // 截取字符的方法
187 /**
188 * @description: 截取字符的方法
189 * @param {*} obj
190 * @author: renchao
191 */
192 getCaption (obj) {
193 let index = obj.lastIndexOf("=");
194 obj = obj.substring(index + 1, obj.length);
195 return obj;
196 },
197 /**
198 * @description: getBdcdyh
199 * @author: miaofang
200 * 点击不动产单元号事件
201 */
202 getBdcdyh (val) {
203 this.addloadData(val);
204 },
205 /**
206 * @description: addloadData
207 * @author: miaofang
208 */
209 addloadData (val) {
210 getBdcqljqtsx({
211 bdcdyid: val.bdcdyid,
212 bdcdyh: val.bdcdyh,
213 }).then((res) => {
214 if (res.code === 200) {
215 if (this.sfqdata.some((item) => item.bdcdyid === val.bdcdyid)) {
216 let index = this.sfqdata.findIndex((item) => {
217 return item.bdcdyid == val.bdcdyid;
218 });
219 this.activeName = index;
220 } else {
221 this.sfqdata.push(loadsfqData(res.result, val.bdcdyh, val.bdcdyid));
222 this.activeName = this.sfqdata.length - 1;
223 }
224 }
225 });
226 this.currentSelectProps = {
227 bdcdyid: val.bdcdyid,
228 bdcdyh: val.bdcdyh,
229 qllx: this.currentSelectProps.qllx,
230 bsmQlxx: this.currentSelectProps.bsmQlxx,
231 };
232 },
233 /**
234 * @description: loadData
235 * @author: renchao
236 */
237 loadData (val) {
238 getBdcqljqtsxBdcdyh({
239 bdcdyh: val,
240 }).then((res) => {
241 if (res.code === 200) {
242 this.treedata = loadTreeData(val);
243 this.sfqdata.push(loadsfqData(res.result, val, res.result.bdcdyid));
244 this.$nextTick(function () {
245 this.defaultNode = getNode(
246 res.result.ztqllx,
247 { linShi: 0, xianShi: 0, liShi: 0 },
248 res.result.bdcdylx || ""
249 );
250 this.sfqdata[0].children.forEach((item, index) => {
251 if (item.id == this.defaultNode.id) {
252 this.loadComponent(item.form);
253 this.isActive = index;
254 }
255 });
256 this.currentSelectProps = {
257 bdcdyid: res.result.bdcdyid,
258 bdcdyh: val,
259 qllx: res.result.qllx,
260 bsmQlxx: this.currentSelectProps.bsmQlxx,
261 };
262 })
263 }
264 })
265 },
266 /**
267 * @description: 点击登记簿菜单
268 * @param {*} data
269 * @author: renchao
270 */
271 handleNodeClick (data) {
272 this.loadComponent(data.form);
273 },
274 tap (data, index) {
275 this.loadComponent(data.form);
276 },
277 /**
278 * @description: taplist
279 * @param {*} data
280 * @author: renchao
281 * 新增列表功能
282 */
283 taplist (data, index) {
284 this.loadComponent(data.form);
285 this.isActive = index;
286 },
287 /**
292 * @description: loadComponent 288 * @description: loadComponent
293 * @param {*} form 289 * @param {*} form
294 * @author: renchao 290 * @author: renchao
295 */ 291 */
296 loadComponent(form) { 292 loadComponent (form) {
297 this.componentTag = (r) => 293 this.componentTag = (r) =>
298 require.ensure([], () => r(require("@/views/registerBook/" + form))); 294 require.ensure([], () => r(require("@/views/registerBook/" + form)));
299 }, 295 }
300 }, 296 }
301 }; 297 }
302 </script> 298 </script>
303 <style scoped lang="scss"> 299 <style scoped lang="scss">
304 /deep/.rollTable { 300 /deep/.rollTable {
305 height: calc(120vh - 254px) !important; 301 height: calc(120vh - 254px) !important;
306 }
307
308 .content {
309 width: 100%;
310 height: 100%;
311 display: flex;
312
313 .left {
314 width: 256px;
315 height: 100%;
316 background-color: #f5f5f5;
317 color: #333;
318 border: 1px solid rgb(228, 228, 228);
319 } 302 }
320 303
321 .right { 304 .content {
322 width: calc(100% - 256px); 305 width: 100%;
323 height: 100%; 306 height: 100%;
324 // overflow-y: scroll; 307 display: flex;
325 overflow: auto;
326 background-color: #f5f5f5;
327 border: 1px solid rgb(228, 228, 228);
328 }
329 }
330 308
331 /deep/ .expanded.el-tree-node__expand-icon, 309 .left {
332 /deep/ .el-tree-node__expand-icon { 310 width: 256px;
333 visibility: hidden; 311 height: 100%;
334 } 312 background-color: #f5f5f5;
313 color: #333;
314 border: 1px solid rgb(228, 228, 228);
315 }
335 316
336 /deep/ .el-tree-node__content { 317 .right {
337 border: 1px solid rgb(228, 228, 228); 318 width: calc(100% - 256px);
338 height: 45px; 319 height: 100%;
339 } 320 // overflow-y: scroll;
321 overflow: auto;
322 background-color: #f5f5f5;
323 border: 1px solid rgb(228, 228, 228);
324 }
325 }
340 326
341 /deep/ .el-tree-node:focus > .el-tree-node__content { 327 /deep/ .expanded.el-tree-node__expand-icon,
342 // background-color: #f5f5f5; 328 /deep/ .el-tree-node__expand-icon {
343 // color: #0079fe; 329 visibility: hidden;
344 // border-right: 4px solid #0079fe; 330 }
345 }
346 331
347 /deep/.el-tree-node { 332 /deep/ .el-tree-node__content {
348 white-space: pre-wrap; 333 border: 1px solid rgb(228, 228, 228);
349 } 334 height: 45px;
335 }
350 336
351 /deep/ .is-current > .el-tree-node__content { 337 /deep/.el-tree-node {
352 // background-color: #f5f5f5; 338 white-space: pre-wrap;
353 // color: #0079fe;
354 // border-right: 4px solid #0079fe;
355 }
356 /deep/.el-collapse-item__header {
357 width: 100%;
358 cursor: pointer;
359 position: relative;
360 .el-collapse-item__arrow {
361 position: absolute;
362 top: 15px;
363 right: 0px;
364 } 339 }
365 align-items: center; 340
366 .text { 341 /deep/.el-collapse-item__header {
367 width: 100%; 342 width: 100%;
343 cursor: pointer;
344 position: relative;
345 .el-collapse-item__arrow {
346 position: absolute;
347 top: 15px;
348 right: 0px;
349 }
350 align-items: center;
351 .text {
352 width: 100%;
353 height: 45px;
354 display: inline-block;
355 span {
356 margin-left: 60px;
357 padding-top: 10px;
358 display: inline-block;
359 line-height: 15px;
360 }
361 height: 45px;
362 border: 1px solid rgb(228, 228, 228);
363 border-right: 4px solid #f5f5f5;
364 }
368 height: 45px; 365 height: 45px;
369 display: inline-block; 366 display: inline-block;
367 line-height: 45px;
368 border: 1px solid rgb(228, 228, 228);
369 }
370 /deep/.el-collapse-item__content {
371 padding-bottom: 5px;
372 }
373 /deep/.unselected {
374 // white-space: wrap;
375 border: none;
376 cursor: pointer;
377 width: 250px;
378 height: 45px;
379 border: 1px solid rgb(228, 228, 228);
380 border-right: 4px solid #f5f5f5;
381 margin: auto;
382 text-align: center;
383 align-items: center;
370 span { 384 span {
371 margin-left: 60px; 385 width: 100%;
372 padding-top: 10px;
373 display: inline-block; 386 display: inline-block;
374 line-height: 15px; 387 justify-content: center;
388 align-items: center;
375 } 389 }
376 } 390 }
377 height: 45px;
378 display: inline-block;
379 line-height: 45px;
380 border: 1px solid rgb(228, 228, 228);
381 }
382 /deep/.el-collapse-item__content {
383 padding-bottom: 5px;
384 }
385 /deep/.unselected {
386 // white-space: wrap;
387 border: none;
388 cursor: pointer;
389 width: 250px;
390 height: 45px;
391 border: 1px solid rgb(228, 228, 228);
392 border-right: 4px solid #f5f5f5;
393 margin: auto;
394 text-align: center;
395 align-items: center;
396 span {
397 width: 100%;
398 display: inline-block;
399 justify-content: center;
400 align-items: center;
401 }
402 }
403 391
404 .select { 392 .select {
405 border: none; 393 border: none;
406 cursor: pointer; 394 cursor: pointer;
407 width: 250px; 395 width: 250px;
408 height: 45px; 396 height: 45px;
409 background-color: #f5f5f5; 397 background-color: #f5f5f5;
410 color: #0079fe; 398 color: #0079fe;
411 border-right: 4px solid #0079fe; 399 border-right: 4px solid #0079fe;
412 margin: auto; 400 margin: auto;
413 text-align: center; 401 text-align: center;
414 align-items: center;
415 span {
416 width: 100%;
417 display: inline-block;
418 justify-content: center;
419 align-items: center; 402 align-items: center;
403 span {
404 width: 100%;
405 display: inline-block;
406 justify-content: center;
407 align-items: center;
408 }
420 } 409 }
421 }
422 </style> 410 </style>
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-02-02 16:51:02 4 * @LastEditTime: 2024-02-02 16:52:02
5 --> 5 -->
6 <!-- 批量删除弹框 --> 6 <!-- 批量删除弹框 -->
7 <template> 7 <template>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
21 <div class="menu-con"> 21 <div class="menu-con">
22 <p>{{ item.bdcdyh }}</p> 22 <p>{{ item.bdcdyh }}</p>
23 <el-tooltip effect="dark" :content="item.zl" placement="top"> 23 <el-tooltip effect="dark" :content="item.zl" placement="top">
24 <p v-if="item.sqfl=='1'" class="title-detail">{{ item.zl }}</p> 24 <p v-if="item.zl" class="title-detail">{{ item.zl }}</p>
25 <p v-else class="title-detail">{{ item.qllxmc }}</p> 25 <p v-else class="title-detail">{{ item.qllxmc }}</p>
26 </el-tooltip> 26 </el-tooltip>
27 </div> 27 </div>
......
...@@ -4,101 +4,115 @@ ...@@ -4,101 +4,115 @@
4 * @LastEditTime: 2024-01-23 14:07:58 4 * @LastEditTime: 2024-01-23 14:07:58
5 */ 5 */
6 /** 6 /**
7 * @description: 流程环节操作按钮 7 * @description: 流程表单操作
8 * @param {*} tabName 8 * @param {*} tabName
9 * @author: renchao 9 * @author: renchao
10 */ 10 */
11 export function getForm (tabName) { 11 export function getForm(tabName) {
12 let form; 12 let form;
13 if (tabName == 0) return 13 if (tabName == 0) return
14 switch (tabName) { 14 switch (tabName) {
15 //土地所有权
15 case "tdsyqslxx": 16 case "tdsyqslxx":
16 form = require("@/views/ywbl/slsqxx/tdsyq/slxx.vue"); 17 form = require("@/views/workflow/main/slsqxx/tdsyq/slxx.vue");
17 break; 18 break;
19 //建设用地、宅基地
18 case "jsydsyqslxx100": 20 case "jsydsyqslxx100":
19 form = require("@/views/ywbl/slsqxx/jsydsyq/slxx.vue");
20 break;
21 case "jsydsyqslxx300": 21 case "jsydsyqslxx300":
22 form = require("@/views/ywbl/slsqxx/jsydsyq/slxx300.vue"); 22 form = require("@/views/workflow/main/slsqxx/jsydsyq/slxx.vue");
23 break; 23 break;
24 //土地承包经营权 24 //土地承包经营权
25 case "tdcbjyqslxx100": 25 case "tdcbjyqslxx100":
26 form = require("@/views/ywbl/slsqxx/tdcbjyq/slxx.vue"); 26 form = require("@/views/workflow/main/slsqxx/tdcbjyq/slxx.vue");
27 break; 27 break;
28 //国有建设用地使用权/房屋所有权 28 //房屋多幢
29 case "fwsyqdzslxx": 29 case "fwsyqdzslxx":
30 form = require("@/views/ywbl/slsqxx/fdcq1/slxx.vue"); 30 form = require("@/views/workflow/main/slsqxx/fdcq1/slxx.vue");
31 break; 31 break;
32 //房屋独幢
32 case "fwsyqslxx100": 33 case "fwsyqslxx100":
33 case "fwsyqslxx200": 34 case "fwsyqslxx200":
34 case "fwsyqslxx400": 35 case "fwsyqslxx400":
35 form = require("@/views/ywbl/slsqxx/fdcq2/slxx.vue");
36 break;
37 case "fwsyqslxx300": 36 case "fwsyqslxx300":
38 form = require("@/views/ywbl/slsqxx/fdcq2/slxx300.vue"); 37 form = require("@/views/workflow/main/slsqxx/fdcq2/slxx.vue");
38 break;
39 //房屋独幢(批量)
40 case "plfdcq2":
41 form = require("@/views/workflow/main/slsqxx/fdcq2/batchSlxx.vue");
39 break; 42 break;
40 //林地使用权 43 //林地使用权
41 case "lqslxx": 44 case "lqslxx":
42 form = require("@/views/ywbl/slsqxx/lqslxx"); 45 form = require("@/views/workflow/main/slsqxx/lqslxx");
43 break; 46 break;
44 //森林林木使用权 47 //森林林木使用权
45 case "sllmslxx": 48 case "sllmslxx":
46 form = require("@/views/ywbl/slsqxx/sllmslxx"); 49 form = require("@/views/workflow/main/slsqxx/sllmslxx");
47 break;
48 case "plfdcq2":
49 form = require("@/views/ywbl/slsqxx/fdcq2/slxxOverview.vue");
50 break; 50 break;
51 //农用地使用权
51 case "nydsyqslxx100": 52 case "nydsyqslxx100":
52 form = require("@/views/ywbl/slsqxx/nydsyq/slxx.vue");
53 break;
54 case "nydsyqslxx200": 53 case "nydsyqslxx200":
55 form = require("@/views/ywbl/slsqxx/nydsyq/slxx200.vue"); 54 form = require("@/views/workflow/main/slsqxx/nydsyq/slxx.vue");
56 break; 55 break;
56 //查封登记
57 case "tdslxxCfdj": 57 case "tdslxxCfdj":
58 form = require("@/views/ywbl/slsqxx/cfdj/tdslxx.vue"); 58 form = require("@/views/workflow/main/slsqxx/cfdj/slxx.vue");
59 break; 59 break;
60 //查封登记(批量)
60 case "plslxxCfdj": 61 case "plslxxCfdj":
61 form = require("@/views/ywbl/slsqxx/cfdj/plcfslxx.vue"); 62 form = require("@/views/workflow/main/slsqxx/cfdj/batchSlxx.vue");
62 break; 63 break;
64 //抵押权
63 case "diyaqSlxx": 65 case "diyaqSlxx":
64 form = require("@/views/ywbl/slsqxx/diyaq/slxx.vue"); 66 form = require("@/views/workflow/main/slsqxx/diyaq/slxx.vue");
65 break; 67 break;
68 //抵押权(批量)
66 case "batchDiyaq": 69 case "batchDiyaq":
67 form = require("@/views/ywbl/slsqxx/diyaq/batchSlxx.vue"); 70 form = require("@/views/workflow/main/slsqxx/diyaq/batchSlxx.vue");
68 break; 71 break;
69 case "clxx": 72 //预告买卖登记
70 form = require("@/views/workflow/components/clxx/clxxUnify.vue"); 73 case "ygmm100":
74 case "ygmm300":
75 form = require("@/views/workflow/main/slsqxx/ygdj/slxx.vue");
71 break; 76 break;
72 case "spyj": 77 //预告抵押登记
73 form = require("@/views/workflow/components/spyj.vue"); 78 case "ygdy100":
79 case "ygdy300":
80 form = require("@/views/workflow/main/slsqxx/ygdy/slxx.vue");
74 break; 81 break;
75 case "swxx": 82 //在建工程抵押权
76 form = require("@/views/workflow/components/swxx.vue"); 83 case "zjgcdyqSlxx":
84 form = require("@/views/workflow/main/slsqxx/zjgcdy/slxx.vue");
77 break; 85 break;
78 case "sfxx": 86 //在建工程抵押权(批量)
79 form = require("@/views/workflow/components/sfxx.vue"); 87 case "batchZjgcdyq":
88 form = require("@/views/workflow/main/slsqxx/zjgcdy/batchSlxx.vue");
80 break; 89 break;
81 case "sdqxx": 90 case "clxx"://材料信息
82 form = require("@/views/workflow/components/sdqxx.vue"); 91 form = require("@/views/workflow/main/clxx/clxxUnify.vue");
83 break; 92 break;
84 case "zdjbxx": 93 case "spyj"://审批意见
85 form = require("@/views/registerBook/zdjbxx.vue"); 94 form = require("@/views/workflow/main/spyj");
86 break; 95 break;
87 case "ygmm100": 96 case "swxx"://税务信息
88 form = require("@/views/ywbl/slsqxx/ygdj/slxx.vue"); 97 form = require("@/views/workflow/main/swxx");
89 break; 98 break;
90 case "ygmm300": 99 case "sfxx"://收费信息
91 form = require("@/views/ywbl/slsqxx/ygdj/slxx300.vue"); 100 form = require("@/views/workflow/main/sfxx");
92 break; 101 break;
93 case "ygdy100": 102 case "sdqxx"://水电气信息
94 case "ygdy300": 103 form = require("@/views/workflow/main/sdqxx");
95 form = require("@/views/ywbl/slsqxx/ygdy/slxx.vue");
96 break; 104 break;
97 case "zjgcdyqSlxx": 105 case "zdjbxx"://宗地基本信息
98 form = require("@/views/ywbl/slsqxx/zjgcdy/slxx.vue"); 106 form = require("@/views/registerBook/zdjbxx.vue");
99 break; 107 break;
100 case "batchZjgcdyq": 108 case "szxx"://缮证信息
101 form = require("@/views/ywbl/slsqxx/zjgcdy/batchSlxx.vue"); 109 form = require("@/views/workflow/main/szxx");
110 break;
111 case "fzxx"://发证信息
112 form = require("@/views/workflow/main/fzxx");
113 break;
114 case "zdjbxxImg"://宗地图
115 form = require("@/views/workflow/main/zdt");
102 break; 116 break;
103 case "cfdjxx": 117 case "cfdjxx":
104 form = require("@/views/registerBook/cfdj.vue"); 118 form = require("@/views/registerBook/cfdj.vue");
...@@ -127,16 +141,7 @@ export function getForm (tabName) { ...@@ -127,16 +141,7 @@ export function getForm (tabName) {
127 case "ygdjQlxx": 141 case "ygdjQlxx":
128 form = require("@/views/registerBook/ygdj.vue"); 142 form = require("@/views/registerBook/ygdj.vue");
129 break; 143 break;
130 case "szxx": 144 default://默认地址404空页面
131 form = require("@/views/workflow/components/szxx.vue");
132 break;
133 case "fzxx":
134 form = require("@/views/workflow/components/fzxx.vue");
135 break;
136 case "zdjbxxImg":
137 form = require("@/views/workflow/components/zdt.vue");
138 break;
139 default:
140 form = require("@/views/error-page/404.vue"); 145 form = require("@/views/error-page/404.vue");
141 break; 146 break;
142 } 147 }
......
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-19 10:15:07
5 -->
6 <template>
7 <dialogBox title="新建材料信息" width="25%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
8 :isFullscreen="false">
9 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
10 <el-row>
11 <el-col :span="24">
12 <el-form-item label="材料类型" prop="cllx">
13 <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
14 <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode">
15 </el-option>
16 </el-select>
17 </el-form-item>
18 </el-col>
19 </el-row>
20 <el-row :gutter="20">
21 <el-col :span="24">
22 <el-form-item label="材料名称" prop="clmc">
23 <el-input v-model="ruleForm.clmc"></el-input>
24 </el-form-item>
25 </el-col>
26 </el-row>
27 <el-row :gutter="20">
28 <el-col :span="24">
29 <el-form-item
30 label="是否公共材料">
31 <el-radio-group
32 v-model="ruleForm.sfggcl">
33 <el-radio label="1"></el-radio>
34 <el-radio label="0"></el-radio>
35 </el-radio-group>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 </el-form>
40 </dialogBox>
41 </template>
42
43 <script>
44 import { mapGetters } from "vuex";
45 export default {
46 props: {
47 value: { type: Boolean, default: false },
48 },
49 data () {
50 return {
51 myValue: this.value,
52 ruleForm: {
53 cllx: "",
54 clmc: "",
55 sfggcl: "0"
56 },
57 rules: {
58 cllx: [
59 { required: true, message: '请选择材料类型', trigger: 'change' }
60 ],
61 clmc: [
62 { required: true, message: '请输入材料名称', trigger: 'blur' }
63 ],
64 clbm: [
65 { required: true, message: '请输入材料编码', trigger: 'blur' }
66 ]
67 }
68 }
69 },
70 computed: {
71 ...mapGetters(["dictData"]),
72 },
73 watch: {
74 value (val) {
75 this.myValue = val;
76 },
77 },
78 methods: {
79 /**
80 * @description: closeDialog
81 * @author: renchao
82 */
83 closeDialog () {
84 this.$emit("input", false);
85 this.ruleForm = {
86 cllx: "",
87 clmc: "",
88 sfggcl: "0"
89 }
90 },
91 /**
92 * @description: handleSubmit
93 * @author: renchao
94 */
95 handleSubmit () {
96 this.$refs['ruleForm'].validate((valid) => {
97 if (valid) {
98 this.$parent.addSave(this.ruleForm);
99 this.ruleForm = {
100 cllx: "",
101 clmc: "",
102 sfggcl: "0"
103 }
104 this.$emit("input", false);
105 } else {
106 return false;
107 }
108 })
109 }
110 }
111 };
112 </script>
113 <style scoped lang="scss">
114 .submit-button {
115 text-align: center;
116 height: 52px;
117 padding-top: 10px;
118 background-color: #fff;
119 }
120 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-10-24 17:16:18
5 -->
6 <template>
7 <div class="clmlmx-box">
8 <lb-table :column="column" :key="key" row-key="bsmSj" ref="listTable" :heightNumSetting="true" :calcHeight="600"
9 :pagination="false" :data="tableData">
10 </lb-table>
11 <div class="text-center">
12 <el-button @click="$popupCacel">取消</el-button>
13 <el-button type="primary" @click="handleSubmit" :loading="loading" v-if="formData.ableOperation && tableData.length>0">保存</el-button>
14 </div>
15 </div>
16 </template>
17 <script>
18 import Vue from 'vue'
19 import Sortable from 'sortablejs'
20 import store from '@/store/index.js'
21 import { updateClml } from "@/api/clxx.js";
22 export default {
23 props: {
24 formData: {
25 type: Object,
26 default: () => {
27 return {}
28 }
29 }
30 },
31 data () {
32 return {
33 loading: false,
34 sortable: null,
35 column: [
36 {
37 prop: "isrequired",
38 label: "是否必选",
39 width: "80",
40 render: (h, scope) => {
41 if (scope.row.isrequired === "1") {
42 return (
43 <div>
44 <span>必选</span>
45 </div>
46 );
47 }
48 else {
49 return (
50 <div>
51 <span>可选</span>
52 </div>
53 )
54 }
55 }
56 },
57 {
58 label: "材料名称",
59 render: (h, scope) => {
60 return (
61 (this.formData.ableOperation && scope.row.sfxjcl == '1') ?
62 <el-input value={scope.row.sjmc} onInput={(val) => { scope.row.sjmc = val }}></el-input> : <span>{scope.row.sjmc}</span>
63 )
64 }
65 },
66 {
67 label: "材料类型",
68 width: "110",
69 render: (h, scope) => {
70 return (
71 this.formData.ableOperation ?
72 <el-select value={scope.row.sjlx}
73 onChange={(val) => { scope.row.sjlx = val }}>
74 {
75 store.getters.dictData['A40'].map(option => {
76 return (
77 <el-option label={option.dname} value={option.dcode}></el-option>
78 )
79 })
80 }
81 </el-select> : <span>{this.dicStatus(scope.row.sjlx, "A40")}</span>
82 )
83 }
84 },
85 {
86 prop: "sjsl",
87 label: "收件数量",
88 width: "80",
89 render: (h, scope) => {
90 return (
91 (this.formData.ableOperation) ?
92 <el-input value={scope.row.sjsl} onInput={(val) => { scope.row.sjsl = val }}></el-input> : <span>{
93 scope.row.sjsl
94 }</span>
95 )
96 }
97 },
98 {
99 label: "扫描时间",
100 width: "140",
101 render: (h, scope) => {
102 return (
103 <span>{scope.row.sjsj}</span>
104 )
105 }
106 },
107 {
108 label: "页数",
109 width: "60",
110 render: (h, scope) => {
111 if (scope.row.ys && scope.row.ys > 0) {
112 return (
113 <div>
114 <span>{scope.row.ys}</span>
115 </div>
116 );
117 } else {
118 return (
119 <div>
120 <span>0</span>
121 </div>
122 );
123 }
124 },
125 },
126 {
127 label: "是否新建材料",
128 width: "80",
129 render: (h, scope) => {
130 if (scope.row.sfxjcl && scope.row.sfxjcl == '1') {
131 return (
132 <span></span>
133 );
134 } else {
135 return (
136 <span></span>
137 );
138 }
139 },
140 },
141 {
142 label: "操作",
143 width: "100",
144 render: (h, scope) => {
145 return (
146 <el-button
147 type="text"
148 icon="el-icon-delete"
149 disabled={!(scope.row.ys == 0 && scope.row.sfxjcl == '1') || !this.formData.ableOperation}
150 onClick={() => {
151 this.handleDelete(scope.$index, scope.row);
152 }}
153 >
154 删除
155 </el-button>
156 )
157 }
158 }
159 ],
160 key: 0,
161 tableData: []
162 }
163 },
164 watch: {
165 'formData.data': {
166 handler: function (val, oldVal) {
167 this.tableData = _.cloneDeep(val)
168 },
169 immediate: true,
170 deep: true
171 }
172 },
173 mounted () {
174 this.initSort()
175 },
176 beforeDestroy () {
177 if (this.sortable) {
178 this.sortable.destroy();
179 }
180 },
181 methods: {
182 handleSubmit () {
183 this.loading = true
184 store.dispatch('user/reWorkFresh', false)
185 updateClml(this.tableData, this.formData.bsmSldy, Vue.prototype.$currentRoute.query.bsmSlsq).then(res => {
186 this.loading = false
187 if (res.code == 200) {
188 this.$message({
189 message: '保存成功',
190 type: 'success'
191 })
192 this.$popupCacel()
193 store.dispatch('user/reWorkFresh', true)
194 }
195 }).catch(() => {
196 this.loading = false
197 })
198 },
199 /**
200 * @description: 材料目录删除
201 * @param {*} index
202 * @param {*} row
203 */
204 handleDelete (index, row) {
205 this.$confirm('此操作将永久删除该 是否继续?', '提示', {
206 confirmButtonText: '确定',
207 cancelButtonText: '取消',
208 type: 'warning'
209 }).then(() => {
210 this.tableData.splice(index, 1);
211 }).catch(() => {
212 this.$message({
213 type: 'info',
214 message: '已取消删除'
215 })
216 })
217 },
218 initSort () {
219 const el = this.$refs.listTable.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
220 this.sortable = Sortable.create(el, {
221 ghostClass: 'sortable-ghost',
222 setData: function (dataTransfer) {
223 dataTransfer.setData('Text', '')
224 },
225 onEnd: evt => {
226 const targetRow = this.tableData.splice(evt.oldIndex, 1)[0];
227 this.tableData.splice(evt.newIndex, 0, targetRow);
228 }
229 })
230 },
231 dicStatus (val, code) {
232 let data = store.getters.dictData[code],
233 name = '暂无'
234 if (data) {
235 data.map((item) => {
236 if (item.dcode == val) {
237 name = item.dname
238 }
239 })
240 return name
241 }
242 }
243 }
244 }
245 </script>
246 <style scoped lang='scss'>
247 @import "~@/styles/mixin.scss";
248 .clmlmx-box {
249 margin: 0 auto;
250 .title {
251 text-align: center;
252 height: 60px;
253 line-height: 60px;
254 border: 1px solid #dfe6ec;
255 font-size: 20px;
256 background: #81d3f81a;
257 margin-bottom: -1px;
258 }
259 }
260 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-10-24 16:08:44
5 -->
6 <template>
7 <div class="clxx">
8 <!-- 材料预览 -->
9 <div class="clyl-box">
10 <div class="menu-tree">
11 <el-button
12 type="primary"
13 native-type="submit"
14 @click="viewDetail"
15 style="width: 100%; margin-top: 10px">申请材料目录</el-button>
16 <div class="item">
17 材料目录({{ tableData.length }})
18 <div class="tableList">
19 <div
20 style="
21 text-align: center;
22 line-height: 20px;
23 color: black;
24 font-size: 14px;
25 "
26 v-if="tableData.length == 0">
27 暂无数据
28 </div>
29 <div
30 v-for="(item, index) in tableData"
31 :key="item.bsmSj"
32 :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']"
33 @click="treeClick(item, index)">
34 <span v-if="item.isrequired == 1" class="required">必选</span>
35 <span class="item_name">{{ item.sjmc }}</span>
36 <span class="cl_number" :key="key">({{ item.ys ? item.ys : 0 }})</span>
37 </div>
38 </div>
39 </div>
40 <el-button
41 type="primary"
42 native-type="submit"
43 style="width: 100%"
44 @click="handleAdd()"
45 v-if="ableOperation">新增</el-button>
46 </div>
47 <image-preview
48 ref="imageRef"
49 :key="imgKey"
50 v-if="tableData.length > 0"
51 :previewImg="previewImg"
52 :ableOperation="ableOperation"
53 @updateList="updateList"
54 @nextPriview="nextPriview"
55 @prevPriview="prevPriview" />
56 </div>
57 <clxxAddDialog v-model="isDialog" />
58 </div>
59 </template>
60 <script>
61 import { mapGetters } from "vuex";
62 import clxxAddDialog from "./clxxAddDialog.vue";
63 import clxxDetailDialog from "./clxxDetailDialog.vue";
64 import imagePreview from "@/views/components/imagePreview.vue";
65 import { InitClml, saveClml, getClmxList } from "@/api/clxx.js";
66 export default {
67 components: { clxxAddDialog, imagePreview, clxxDetailDialog },
68 data () {
69 return {
70 imgKey: 0,
71 //表单是否可操作
72 ableOperation: true,
73 isDialog: false,
74 iclass: "",
75 // 材料目录选中
76 treeCheckIndex: 0,
77 treeCheckId: "",
78 key: 0,
79 tableData: [],
80 previewImg: {
81 // 收件标识码
82 bsmSj: "",
83 bsmSlsq: this.$parent.bsmSlsq,
84 index: 0,
85 selectedIndex: 0,
86 imgList: [],
87 },
88 };
89 },
90 computed: {
91 ...mapGetters(["dictData"]),
92 },
93 created () {
94 this.clmlInitList(1);
95 },
96 computed: {
97 ...mapGetters(["workFresh"]),
98 },
99 watch: {
100 workFresh: {
101 handler (newVal, oldVal) {
102 if (newVal) this.clmlInitList(1);
103 },
104 },
105 },
106 mounted () {
107 this.ableOperation = this.$parent.ableOperation;
108 },
109 methods: {
110 /**
111 * @description: 自动预览
112 * @author: renchao
113 */
114 nextPriview () {
115 if (this.treeCheckIndex < this.tableData.length) {
116 this.treeCheckIndex++;
117 if (this.tableData[this.treeCheckIndex]) {
118 this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj;
119 // 判断页数
120 let ys = this.tableData[this.treeCheckIndex].ys
121 this.previewImg.index = 0;
122 // 获取材料明细
123 if (ys > 0) {
124 getClmxList(this.treeCheckId).then(res => {
125 this.previewImg.imgList = res.result ? res.result : [];
126 })
127 } else {
128 this.previewImg.imgList = []
129 }
130 this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj;
131 } else {
132 this.$message.error('没有最后一张了');
133 }
134 }
135 },
136 /**
137 * @description: prevPriview
138 * @author: renchao
139 */
140 prevPriview () {
141 if (this.treeCheckIndex >= 1) {
142 this.treeCheckIndex--;
143 this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj;
144 // 判断页数
145 let ys = this.tableData[this.treeCheckIndex].ys
146 if (ys > 0) {
147 // 获取材料明细
148 getClmxList(this.treeCheckId).then(res => {
149 this.previewImg.imgList = res.result ? res.result : [];
150 this.previewImg.index = this.previewImg.imgList.length - 1;
151 })
152 } else {
153 this.previewImg.imgList = [];
154 this.previewImg.index = 0
155 }
156 this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj;
157 } else {
158 this.$message.error('没有第一张了');
159 }
160 },
161 /**
162 * @description: 材料目录明细初始化
163 * @param {*} type
164 * @author: renchao
165 */
166 clmlInitList (type) {
167 //type 1:列表初始化 2:新增材料
168 return new Promise((resolve) => {
169 this.unitData = this.$parent.unitData;
170 var formdata = new FormData();
171 formdata.append("bsmSlsq", this.$parent.bsmSlsq);
172 formdata.append("bsmSldy", this.$parent.currentSelectProps.bsmSldy);
173
174 InitClml(formdata).then((res) => {
175 if (res.code == 200) {
176 resolve(res.code);
177 if (res.result && res.result.length > 0) {
178 this.tableData = res.result;
179 if (type == 1) {
180 this.treeClick(this.tableData[0], 0);
181 } else if (type == 2) {
182 //新增材料后刷新列表焦点置于新增的对象上
183 this.treeClick(
184 this.tableData[this.tableData.length - 1],
185 this.tableData.length - 1
186 );
187 }
188 }
189 } else {
190 this.$message.error(res.message);
191 }
192 });
193 });
194 },
195 /**
196 * @description: setChecked
197 * @param {*} item
198 * @author: renchao
199 */
200 setChecked (item) {
201 this.treeCheckId = item.bsmSj;
202 this.title = item.sjmc;
203 this.titleYs = 1;
204 this.titleNum = item.children.length;
205 this.previewImg.imgList = item.children;
206 this.previewImg.bsmSj = item.bsmSj;
207 },
208 /**
209 * @description: updateList
210 * @param {*} val
211 * @author: renchao
212 */
213 updateList (val) {
214 let that = this;
215 if (val.children.length != 0) {
216 //删除最后一张图片时 val=null
217 this.tableData.forEach((item) => {
218 if (item.bsmSj === val.bsmSj) {
219 item.ys = val.children.length;
220 }
221 });
222 this.previewImg.imgList = _.cloneDeep(val.children);
223 if (this.previewImg.index == this.previewImg.imgList.length) {
224 this.previewImg.index = this.previewImg.index - 1;
225 }
226 this.key++
227 } else {
228 this.previewImg.imgList = [];
229 this.tableData.forEach((item, index) => {
230 if (this.treeCheckId == item.bsmSj) {
231 item.ys = 0;
232 that.treeCheckIndex = index;
233 }
234 });
235 }
236 },
237 /**
238 * @description: 添加材料目录
239 * @author: renchao
240 */
241 handleAdd () {
242 this.isDialog = true;
243 },
244 /**
245 * @description: 新增弹窗保存
246 * @param {*} data
247 * @author: renchao
248 */
249 addSave (data) {
250 let obj = {
251 bsmSlsq: this.$parent.bsmSlsq,
252 isrequired: "1",
253 sjmc: data.clmc,
254 sjsl: 0,
255 smzt: "",
256 ys: 0,
257 sjlx: data.cllx,
258 sfxjcl: "1", // 是否必选
259 sfggcl: data.sfggcl,
260 };
261 //是否公共材料
262 if (data.sfggcl == "0") {
263 obj["bsmSldy"] = this.$parent.currentSelectProps.bsmSldy;
264 }
265 if (this.$route.query?.djywbm == "DJBBL") {
266 obj.bsmSldy = this.$parent.bsmRepair
267 }
268 saveClml(obj).then(async (res) => {
269 if (res.code == 200) {
270 let res = await this.clmlInitList(2);
271 if (res == 200)
272 this.$message({
273 message: "新增成功",
274 type: "success",
275 });
276 }
277 });
278 },
279 /**
280 * @description: 材料目录点击选中
281 * @param {*} item
282 * @param {*} index
283 * @author: renchao
284 */
285 treeClick (item, index) {
286 this.previewImg.index = 0;
287 this.treeCheckId = item?.bsmSj;
288 this.treeCheckIndex = index;
289 // 获取材料明细
290 getClmxList(item.bsmSj).then(res => {
291 this.previewImg.imgList = res.result ? res.result : [];
292 })
293 this.previewImg.bsmSj = item?.bsmSj;
294 if (this.$refs.imageRef) {
295 this.$refs.imageRef.initialIndex = 0
296 }
297 this.imgKey++
298 },
299 /**
300 * @description: 小图片点击
301 * @param {*} item
302 * @param {*} index
303 * @author: renchao
304 */
305 imgClick (item, index) {
306 this.showImg = item;
307 this.titleYs = index + 1;
308 },
309 //查看明细
310 async viewDetail () {
311 await this.clmlInitList();
312 this.$store.dispatch("user/reWorkFresh", false);
313 this.$popupDialog(
314 "申请材料目录",
315 "workflow/components/dialog/clxxDetailDialog",
316 {
317 data: this.tableData,
318 bsmSldy: this.$parent.currentSelectProps.bsmSldy,
319 unitData: this.$parent.unitData,
320 ableOperation: this.$parent.ableOperation,
321 bsmRepair: this.$parent.bsmRepair
322 },
323 "60%",
324 true
325 )
326 },
327 //设置tableData
328 setTableData (tableData) {
329 this.$nextTick((res) => {
330 this.tableData = tableData;
331 })
332 }
333 }
334 }
335 </script>
336 <style scoped lang="scss">
337 @import "~@/styles/mixin.scss";
338
339 .active {
340 background: $light-blue !important;
341 color: #fff;
342 }
343
344 .required {
345 font-size: 12px;
346 color: $pink;
347 float: left;
348 }
349
350 .cl_number {
351 width: 30px;
352 }
353
354 .clxx {
355 width: 100%;
356 display: flex;
357 padding-left: 5px;
358 height: calc(100vh - 125px);
359
360 .left {
361 display: flex;
362 flex-direction: column;
363 justify-content: space-between;
364
365 .item {
366 width: 28px;
367 height: 49%;
368 @include flex-center;
369 background-color: #e4e7ed;
370 border-bottom-right-radius: 10px;
371 padding: 5px;
372 cursor: pointer;
373 transition: all 0.3s;
374
375 &:hover {
376 @extend .active;
377 }
378 }
379 }
380
381 .clmlmx-box {
382 margin: 0 auto;
383
384 .title {
385 text-align: center;
386 height: 60px;
387 line-height: 60px;
388 border: 1px solid #dfe6ec;
389 font-size: 20px;
390 background: #81d3f81a;
391 margin-bottom: -1px;
392 }
393 }
394
395 .clyl-box {
396 width: 100%;
397 height: 100%;
398 display: flex;
399 .tableList {
400 margin-top: 10px;
401 }
402 .menu-tree {
403 width: 20%;
404 min-width: 160px;
405 height: 100%;
406 font-size: 14px;
407 border-right: 1px dotted #d9d9d9;
408 padding: 0 10px;
409
410 .item {
411 line-height: 30px;
412 padding-top: 5px;
413 border-bottom: 1px solid #e8e8e8;
414 font-size: 16px;
415 text-align: center;
416 color: $light-blue;
417
418 .itemIcon {
419 float: right;
420 line-height: 60px;
421 cursor: pointer;
422 }
423
424 .child {
425 line-height: 32px;
426 border-bottom: 1px solid #e8e8e8;
427 padding-left: 10px;
428 color: #6b6b6b;
429 cursor: pointer;
430 box-sizing: border-box;
431 border-radius: 6px;
432 line-height: 20px;
433 transition: all 0.3s;
434 padding: 8px 0;
435 overflow: hidden;
436 display: flex;
437 justify-content: space-between;
438 }
439 .item_name {
440 flex: 1;
441 font-size: 14px;
442 display: flex;
443 justify-content: center;
444 }
445 .child:hover {
446 color: $light-blue;
447 transform: scale(1.1);
448 }
449
450 .checked {
451 border: 1px solid $light-blue;
452 color: $light-blue;
453 box-sizing: border-box;
454 }
455 }
456 }
457
458 .clyl-img {
459 width: 75%;
460 height: 100%;
461 background: #f3f4f7;
462 margin: 0 auto;
463 position: relative;
464 }
465 }
466 }
467 </style>
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-10-11 10:59:12
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return {
18 //发证列表
19 fzgrid: [
20 {
21 label: '序号',
22 type: 'index',
23 width: '50'
24 },
25 {
26 prop: "fzrmc",
27 label: "发证人"
28 },
29 {
30 prop: "bdcqzlx",
31 label: "不动产权证类型",
32 width: '120',
33 render: (h, scope) => {
34 return (
35 <div>
36 <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
37 <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
38 </div>
39 )
40 }
41 },
42 {
43 label: "权利类型",
44 width: '100',
45 render: (h, scope) => {
46 return (
47 <el-tooltip effect="dark" content={scope.row.qllx} placement="top" popper-class="tooltip-width ">
48 <span class="ellipsis-table"> {scope.row.qllx}</span>
49 </el-tooltip>
50 )
51 }
52 },
53 {
54 prop: "ysxlh",
55 label: "印刷序列号",
56 width: '100',
57 },
58 {
59 prop: "bdcqzh",
60 label: "不动产权证号",
61 width: '190',
62 },
63 {
64 label: "权利人",
65 minWidth: '120',
66 render: (h, scope) => {
67 return (
68 <el-tooltip effect="dark" content={scope.row.qlr} placement="top" popper-class="tooltip-width ">
69 <span class="ellipsis-table"> {scope.row.qlr}</span>
70 </el-tooltip>
71 )
72 }
73 },
74 {
75 prop: "ywr",
76 label: "义务人"
77 },
78 {
79 label: "面积(㎡)",
80 width: '100',
81 render: (h, scope) => {
82 return (
83 <el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
84 <span class="ellipsis-table"> {scope.row.mj}</span>
85 </el-tooltip>
86 )
87 }
88 },
89 {
90 label: "坐落",
91 minWidth: '150',
92 render: (h, scope) => {
93 return (
94 <el-tooltip effect="dark" content={scope.row.zl} placement="top" popper-class="tooltip-width ">
95 <span class="ellipsis-table"> {scope.row.zl}</span>
96 </el-tooltip>
97 )
98 }
99 },
100 {
101 prop: "fzsj",
102 label: "发证时间",
103 width: '140',
104 },
105 {
106 prop: "lzrxm",
107 label: "领证人姓名"
108 },
109 ],
110 //领证证列表
111 lzgrid: [
112 {
113 type: 'selection'
114 },
115 {
116 label: '序号',
117 type: 'index',
118 width: '50'
119 },
120 {
121 prop: "bdcqzlx",
122 label: "不动产权证类型",
123 width: '120',
124 render: (h, scope) => {
125 return (
126 <div>
127 <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
128 <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
129 </div>
130 )
131 }
132 },
133 {
134 prop: "qllx",
135 label: "权利类型"
136 },
137 {
138 prop: "ysxlh",
139 label: "印刷序列号",
140 width: '100',
141 },
142 {
143 prop: "bdcqzh",
144 label: "不动产权证号"
145 },
146 {
147 prop: "qlr",
148 label: "权利人"
149 },
150 {
151 prop: "ywr",
152 label: "义务人"
153 },
154 {
155 label: "面积(㎡)",
156 width: '100',
157 render: (h, scope) => {
158 return (
159 <el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
160 <span class="ellipsis-table"> {scope.row.mj}</span>
161 </el-tooltip>
162 )
163 }
164 },
165 {
166 prop: "zl",
167 label: "坐落"
168 }
169 ]
170 }
171 }
172 }
173 let datas = new data()
174 export {
175 datas,
176 sendThis
177 }
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-28 16:28:43
5 -->
6 <template>
7 <div class="from-clues">
8 <!-- 发证信息 -->
9 <div class="from-clues-header">
10 <el-form :model="ruleForm">
11 <el-row :gutter="20">
12 <el-col :span="6">
13 <el-form-item label="印刷序列号">
14 <el-input v-model="ruleForm.ysxlh" clearable placeholder="请输入印刷序列号"></el-input>
15 </el-form-item>
16 </el-col>
17 <el-col :span="6">
18 <el-form-item label="证书号">
19 <el-input v-model="ruleForm.zsh" clearable placeholder="请输入证书号"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="6">
23 <el-form-item label="权利人">
24 <el-input v-model="ruleForm.qlr" clearable placeholder="请输入权利人"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="6" class="btnColRight" v-if="viewEdit">
28 <el-form-item>
29 <el-button type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button>
30 <el-button type="primary" icon="el-icon-search" @click="zslqClick">证书领取</el-button>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 </el-form>
35 </div>
36 <div class="from-clues-content">
37 <lb-table border :column="tableData.columns" :heightNum="210" :data="tableData.data" :pagination="false">
38 </lb-table>
39 </div>
40 </div>
41 </template>
42 <script>
43 import { mapGetters } from 'vuex'
44 import store from '@/store/index.js'
45 import table from "@/utils/mixin/table";
46 import { datas } from "./fzxxdata";
47 import { getCertificateList } from "@/api/bdcqz.js";
48 export default {
49 mixins: [table],
50 data () {
51 return {
52 //表单是否可操作
53 viewEdit: false,
54 ruleForm: {
55 ysxlh: '',
56 zsh: '',
57 qlr: '',
58 bsmSldy: ''
59 },
60 tableData: {
61 total: 0,
62 columns: datas.columns().fzgrid,
63 data: []
64 },
65 dialogVisible: false
66 }
67 },
68 created () {
69 this.viewEdit = this.$parent.currentSelectTab.ableOperation
70 },
71 computed: {
72 ...mapGetters(['workFresh'])
73 },
74 watch: {
75 workFresh: {
76 handler (newVal, oldVal) {
77 if (newVal) this.queryClick()
78 }
79 }
80 },
81 methods: {
82 /**
83 * @description: queryClick
84 * @author: renchao
85 */
86 queryClick () {
87 this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
88 getCertificateList(this.ruleForm).then(res => {
89 if (res.code === 200) {
90 this.tableData.data = res.result ? res.result : []
91 }
92 })
93 },
94 /**
95 * @description:
96 * @author: renchao
97 */
98 zslqClick () {
99 store.dispatch('user/reWorkFresh', false)
100 this.$popupDialog("不动产权证领取", "workflow/main/fzxx/zslq", {}, '80%', true)
101 }
102 }
103 }
104 </script>
105 <style scoped lang='scss'>
106 @import "~@/styles/public.scss";
107 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-19 14:45:09
5 -->
6 <template>
7 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
8 <el-row>
9 <el-col :span="8">
10 <el-form-item label="发证人姓名">
11 <el-input v-model="ruleForm.fzrmc" disabled></el-input>
12 </el-form-item>
13 </el-col>
14 <el-col :span="8">
15 <el-form-item label="发证时间">
16 <el-input v-model="ruleForm.fzsj" disabled></el-input>
17 </el-form-item>
18 </el-col>
19 <el-col :span="8">
20 <el-form-item label="发证数量">
21 <el-input v-model="ruleForm.fzsl" disabled></el-input>
22 </el-form-item>
23 </el-col>
24 </el-row>
25 <lb-table :column="tableData.columns" @row-dblclick="handleRowClick" ref="table" @selection-change="handleSelectionChange"
26 :data="tableData.data"
27 :pagination="false"
28 :calcHeight="300">
29 </lb-table>
30 <el-row>
31 <el-col :span="3">
32 <el-form-item label="身份证读卡器">
33 <el-button type="text" icon="el-icon-tickets" @click="readClick">读取</el-button>
34 </el-form-item>
35 </el-col>
36 <el-col :span="5">
37 <el-form-item label="领证人" prop="lzrxm" label-width="70px">
38 <el-input v-model="ruleForm.lzrxm"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="5">
42 <el-form-item label="证件类型" prop="lzrzjlb" label-width="80px">
43 <el-select v-model="ruleForm.lzrzjlb" filterable clearable placeholder="请选择">
44 <el-option v-for="item in lzrzjlbData" :key="item.dcode" :label="item.dname" :value="item.dcode">
45 </el-option>
46 </el-select>
47 </el-form-item>
48 </el-col>
49 <el-col :span="5">
50 <el-form-item label="证件号" prop="lzrzjh" label-width="70px">
51 <el-input v-model="ruleForm.lzrzjh"></el-input>
52 </el-form-item>
53 </el-col>
54 <el-col :span="5">
55 <el-form-item label="领证人电话" prop="lzrdh">
56 <el-input v-model="ruleForm.lzrdh"></el-input>
57 </el-form-item>
58 </el-col>
59 </el-row>
60 <el-form-item class="text-center">
61 <el-button @click="$popupCacel">取消</el-button>
62 <el-button type="primary" @click="handleSubmit">确定</el-button>
63 </el-form-item>
64 </el-form>
65 </template>
66 <script>
67 const checkPhone = (rule, value, callback) => {
68 let regPone = null
69 let mobile = /^(1[3456789]\d{9})$/ //手机号
70 let tel = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/ // 座机
71 if (value && value[0] === '0') {// 检查 value 是否存在并且不是 null 或者 undefined
72 regPone = tel
73 } else if (value && value[0] !== '0') {
74 regPone = mobile
75 }
76 if (regPone === null) {
77 return callback(
78 new Error('请输入电话')
79 )
80 } else if (!regPone.test(value)) {
81 return callback(
82 new Error("请输入正确的电话格式,其中座机格式'区号-座机号码'")
83 )
84 } else {
85 callback()
86 }
87 };
88 import Vue from 'vue'
89 import store from '@/store/index.js'
90 import table from "@/utils/mixin/table";
91 import { getIdCardInfo } from '@/utils/operation.js'
92 import { getUnclaimedBdcqz, issueCertificate, getBdcqzQlr } from "@/api/bdcqz.js";
93 import { datas } from "@/views/workflow/main/fzxx/fzxxdata";
94 import { log } from 'bpmn-js-token-simulation';
95 export default {
96 props: {
97 formData: {
98 type: Object,
99 default: () => {
100 return {}
101 }
102 }
103 },
104 mixins: [table],
105 data () {
106 return {
107 lzrzjlbData: store.getters.dictData['A30'],
108 ruleForm: {
109 fzrmc: '',
110 fzsj: '',
111 fzsl: '',
112 bdcqzList: [],
113 lzrxm: '',
114 lzrzjlb: '',
115 lzrzjh: '',
116 lzrdh: ''
117 },
118 rules: {
119 lzrxm: [
120 { required: true, message: '请输入领证人', trigger: 'blur' }
121 ],
122 lzrzjlb: [
123 { required: true, message: '请选择证件类型', trigger: 'change' }
124 ],
125 lzrzjh: [
126 { required: true, message: '请输入证件号', trigger: 'blur' }
127 ],
128 lzrdh: [
129 { required: true, validator: checkPhone, trigger: ["blur"] }
130 ]
131 },
132 tableData: {
133 total: 0,
134 columns: datas.columns().lzgrid,
135 data: []
136 }
137 }
138 },
139 mounted () {
140 this.$nextTick(() => {
141 this.loadGrid()
142 })
143 },
144 methods: {
145 /**
146 * @description: 身份证打卡器
147 * @author: renchao
148 */
149 readClick () {
150 function getObjectByValue (arrayOfObjects, value) {
151 var name = ''
152 arrayOfObjects.forEach(item => {
153 if (item.dname.includes(value)) name = item.dcode
154 })
155 return name
156 }
157 getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
158 if (this.BASE_API.gaopaiyi == 'jy') {
159 const {
160 Name,
161 IdNo,
162 } = JSON.parse(res)
163 if (Name) {
164 this.ruleForm.lzrxm = Name;
165 this.ruleForm.lzrzjlb = '1';
166 this.ruleForm.lzrzjh = IdNo;
167 this.$message({
168 message: '读取成功!',
169 type: 'success'
170 })
171 } else {
172 this.$message({
173 message: '请放置身份证',
174 type: 'warning'
175 })
176 }
177 } else {
178 if (res.data.code == 0) {
179 let data = res.data.IDCardInfo
180 this.ruleForm.lzrxm = data.name
181 this.ruleForm.lzrzjlb = '1'
182 this.ruleForm.lzrzjh = data.cardID
183 this.$message({
184 message: '读取成功!',
185 type: 'success'
186 })
187 } else {
188 this.$message({
189 message: res.data.message,
190 type: 'warning'
191 })
192 }
193 }
194 })
195 },
196 /**
197 * @description: 列表初始化
198 * @author: renchao
199 */
200 loadGrid () {
201 let that = this
202 getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => {
203 if (res.code === 200) {
204 this.tableData.data = res.result.list;
205 this.$nextTick(() => {
206 this.tableData.data.forEach(item => {
207 that.$refs.table.toggleRowSelection(item)
208 })
209 })
210 this.ruleForm.fzrmc = res.result.fzrmc
211 this.ruleForm.fzsj = res.result.fzsj
212 this.ruleForm.fzsl = res.result.fzsl
213 this.ruleForm.bdcqzList = res.result.list;
214 res.result.list.length && this.getQlr(res.result.list[0].bsmBdcqz)
215 }
216 })
217 },
218 /**
219 * @description: 获取权利人信息
220 * @author: renchao
221 */
222 getQlr (bsmBdcqz) {
223 getBdcqzQlr(bsmBdcqz).then(res => {
224 if (res.code === 200) {
225 this.ruleForm.lzrxm = res.result.qlrmc;
226 this.ruleForm.lzrzjlb = res.result.zjzl;
227 this.ruleForm.lzrzjh = res.result.zjh;
228 this.ruleForm.lzrdh = res.result.dh;
229 }
230 })
231 },
232 /**
233 * @description: handleSelectionChange
234 * @param {*} val
235 * @author: renchao
236 */
237 handleSelectionChange (val) {
238 this.ruleForm.bdcqzList = val
239 },
240 /**
241 * @description: handleRowClick
242 * @param {*} row
243 * @author: renchao
244 */
245 handleRowClick (row) {
246 this.$refs.table.toggleRowSelection(row)
247 },
248 /**
249 * @description: handleSubmit
250 * @author: renchao
251 */
252 handleSubmit () {
253 this.$refs.ruleForm.validate(valid => {
254 if (valid) {
255 issueCertificate(this.ruleForm).then(res => {
256 if (res.code == 200) {
257 this.$message.success('保存成功');
258 //刷新列表
259 store.dispatch('user/reWorkFresh', true)
260 this.$popupCacel()
261 } else {
262 this.$message.error(res.message)
263 }
264 })
265 } else {
266 return false;
267 }
268 })
269 }
270 }
271 }
272 </script>
273 <style scoped lang="scss">
274 @import "~@/styles/mixin.scss";
275 </style>
276
277
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-14 17:19:26
5 -->
6 <template>
7 <div class="slxx sdqxx">
8 <el-form
9 :model="ruleForm"
10 ref="ruleForm"
11 v-Loading="loading"
12 :label-position="flag ? 'top' : ''"
13 :inline="flag"
14 label-width="130px">
15 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
16 <div class="slxx_title title-block">
17 电力信息
18 <div class="triangle"></div>
19 </div>
20 <el-row :gutter="10">
21 <el-col :span="8">
22 <el-form-item label="服务代码:">
23 <el-input v-model="ruleForm.serviceCode"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item label="行政区划区县代码:">
28 <el-input v-model="ruleForm.areacode"></el-input>
29 </el-form-item>
30 </el-col>
31 <el-col :span="8">
32 <el-form-item label="登记系统业务号:">
33 <el-input v-model="ruleForm.ywh"></el-input>
34 </el-form-item>
35 </el-col>
36 </el-row>
37
38 <el-row :gutter="10">
39 <el-col :span="8">
40 <el-form-item label="推送日期:">
41 <el-input v-model="ruleForm.SENDTIME"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="原户主姓名:">
46 <el-input v-model="ruleForm.mcOld"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="原户主身份证号码:">
51 <el-input v-model="ruleForm.zjhmOld"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <el-row :gutter="10">
56 <el-col :span="8">
57 <el-form-item label="原户主联系电话:">
58 <el-input v-model="ruleForm.lxdhOld"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="新户主姓名:">
63 <el-input v-model="ruleForm.mcNew"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="新户主身份证号码:">
68 <el-input v-model="ruleForm.zjhmNew"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="新户主联系电话:">
75 <el-input v-model="ruleForm.lxdhNew"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="房产证编号:">
80 <el-input v-model="ruleForm.fczbh"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="是否过户:">
85 <el-switch
86 v-model="ruleForm.sfgh"
87 :active-value='1'
88 active-text="是"
89 :inactive-value="0"
90 inactive-text="否">
91 </el-switch>
92 </el-form-item>
93 </el-col>
94
95 </el-row>
96 <el-row :gutter="10">
97 <el-col :span="24">
98 <el-form-item label="房屋坐落(地址):">
99 <el-input v-model="ruleForm.fwzl" type="textarea"
100 :rows="2"></el-input>
101 </el-form-item>
102 </el-col>
103 </el-row>
104 <el-row class="btn" v-if="viewEdit">
105 <el-form-item>
106 <el-button type="primary" @click="onSubmit">保存</el-button>
107 </el-form-item>
108 </el-row>
109 </div>
110 </el-form>
111 </div>
112 </template>
113 <script>
114 import { mapGetters } from "vuex";
115 import { getDlxxByBsmSldy, saveOrUpdateDlxx } from "@/api/sfxx.js";
116 export default {
117 computed: {
118 ...mapGetters(["dictData", "flag"]),
119 },
120 mounted () {
121 // this.loading = true
122 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
123 this.propsParam = this.$attrs;
124 var formdata = new FormData();
125 formdata.append("bsmSldy", this.propsParam.bsmSldy);
126 formdata.append("djlx", this.propsParam.djlx);
127 formdata.append("isEdit", this.viewEdit);
128 console.log(this.propsParam)
129 this.getDlxxByBsmSldy()
130 },
131 data () {
132 return {
133 loading: false,
134 //表单是否可操作
135 viewEdit: false,
136 ruleForm: {
137 SFGH: 1
138 }
139 }
140 },
141 methods: {
142 getDlxxByBsmSldy() {
143 getDlxxByBsmSldy(this.propsParam.bsmSldy).then((res) => {
144 if (res.code === 200) {
145 if (res.result != null) {
146 this.ruleForm = res.result
147 }
148 }
149 });
150 },
151 saveOrUpdateDlxx() {
152 saveOrUpdateDlxx(this.ruleForm).then((res) => {
153 if (res.code === 200) {
154 this.$message.success("成功")
155 }
156 });
157 },
158 onSubmit () {
159 this.saveOrUpdateDlxx()
160 }
161 }
162 }
163 </script>
164 <style scoped lang="scss">
165 @import "~@/styles/public.scss";
166 @import "~@/styles/slxx/slxx.scss";
167 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-12-29 16:35:50
5 -->
6 <template>
7 <div class='sfxx'>
8 <div class="sfxx-left">
9 <div class="slxx_title title-block">
10 基本信息
11 <div class="triangle"></div>
12 </div>
13 <ul>
14 <li>
15 <p>业务号</p>
16 <p>{{detail.ywh}}</p>
17 </li>
18 <li>
19 <p>申请登记类型</p>
20 <p>{{detail.sqdjlx}}</p>
21 </li>
22 <li>
23 <p>联系人</p>
24 <p>{{detail.lxr}}</p>
25 </li>
26 <li>
27 <p>联系人电话</p>
28 <p>{{detail.lxdh}}</p>
29 </li>
30 <li>
31 <p>缴费人</p>
32 <p><el-input v-model="detail.jfr"></el-input></p>
33 </li>
34 <li>
35 <p>缴费单号</p>
36 <p><el-input v-model="detail.jfdh"></el-input></p>
37 </li>
38 <li>
39 <p>应收金额</p>
40 <p style="color:red">{{detail.ysje}}</p>
41 </li>
42 <li>
43 <p>实收金额</p>
44 <p><el-input v-model="detail.ssje"></el-input></p>
45 </li>
46 <li>
47 <p>备注</p>
48 <p><el-input v-model="detail.bz"></el-input></p>
49 </li>
50 </ul>
51 </div>
52 <div class="sfxx-right">
53 <div class="slxx_title title-block">
54 收费明细
55 <!-- <div class="triangle"></div> -->
56 <el-button type="primary" @click="hanldeAdd" style="float:right;margin-top:-5px">增加</el-button>
57 </div>
58 <el-table :data="tableData.data" border :height="355">
59 <el-table-column v-for="item in tableData.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
60 </el-table-column>
61 <el-table-column label="操作" width="50">
62 <template slot-scope="scope">
63 <el-button type="text" @click="handleDelete(scope.row)">删除</el-button>
64 </template>
65 </el-table-column>
66 </el-table>
67 <div class="slxx_title title-block">
68 票据
69 <div style="height:250px">
70 <img src="../../../../image/pj.jpg" alt="" style="height:100%">
71 </div>
72 </div>
73 </div>
74 </div>
75 </template>
76 <script>
77 import { mapGetters } from "vuex";
78 import { getSfmxList, deleteSfmx } from "@/api/sfxx.js";
79 export default {
80 components: {},
81 data () {
82 return {
83 detail: {
84 ywh: '',
85 sqdjlx: '',
86 lxr: '',
87 lxdh: '',
88 jfr: '',
89 jfdh: '',
90 ysje: '',
91 ssje: '',
92 bz: ''
93 },
94 tableData: {
95 columns: [
96 {
97 prop: "sfdw",
98 label: "收费单位",
99 },
100 {
101 label: '是否额外收费',
102 align: 'center',
103 render: (h, scope) => {
104 return (
105 <div>
106 {scope.row.sfewsf == '1' ? <span></span> : <span>否</span>}
107 </div>
108 )
109 }
110 },
111 {
112 prop: "sfry",
113 label: "收费人员",
114 },
115 {
116 prop: "sfkmmc",
117 label: "收费科目名称",
118 },
119 {
120 prop: "sjffr",
121 label: "实际付费人",
122 },
123 {
124 prop: "ssje",
125 label: "实收金额",
126 },
127 {
128 prop: "ysje",
129 label: "应收金额",
130 }
131 ],
132 data: []
133 }
134 }
135 },
136 computed: {
137 ...mapGetters(["workFresh"]),
138 },
139 watch: {
140 workFresh: {
141 handler (newVal, oldVal) {
142 if (newVal) this.getList();
143 },
144 },
145 },
146 mounted () {
147 this.getList()
148 },
149 methods: {
150 getList () {
151 let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
152 getSfmxList(bsmBusiness).then(res => {
153 this.tableData.data = res.result
154 })
155 },
156 hanldeAdd () {
157 let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
158 this.$popupDialog('新增', 'workflow/components/dialog/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
159 },
160 handleDelete (row) {
161 let that = this
162 this.$confirm('此操作将永久删除该 是否继续?', '提示', {
163 confirmButtonText: '确定',
164 cancelButtonText: '取消',
165 type: 'warning'
166 }).then(() => {
167 deleteSfmx(row.bsmSf).then(res => {
168 if (res.code == 200) {
169 that.$message({
170 message: '删除成功!',
171 type: 'success'
172 })
173 that.getList()
174 } else {
175 that.$message({
176 type: 'info',
177 message: res.message
178 })
179 }
180 })
181 }).catch(() => {
182 this.$message({
183 type: 'info',
184 message: '已取消删除'
185 })
186 })
187
188 }
189 }
190 }
191 </script>
192 <style scoped lang='scss'>
193 @import "~@/styles/public.scss";
194 .sfxx {
195 display: flex;
196 padding: 10px;
197 height: 100%;
198 box-sizing: border-box;
199 &-left {
200 width: 50%;
201 margin-right: 10px;
202 ul {
203 border-radius: 3px;
204 }
205 li:last-child {
206 border-bottom: 1px solid #e8e5e5;
207 }
208 li {
209 display: flex;
210 border: 1px solid #e8e5e5;
211 border-bottom: none;
212
213 p:nth-child(1) {
214 width: 35%;
215 text-align: center;
216 background-color: #fafafa;
217 border-right: 1px solid #e8e5e5;
218 padding: 10px 0;
219 }
220 p:nth-child(2) {
221 width: 65%;
222 display: flex;
223 align-items: center;
224 box-sizing: border-box;
225 margin: 0 10px;
226 }
227 }
228 }
229 &-right {
230 width: 50%;
231 margin-left: 10px;
232 }
233 }
234 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-01 16:27:35
5 -->
6 <template>
7 <div class="slxx">
8 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flagTop" :inline="flag"
9 label-width="120px">
10 <div class="slxx_con">
11 <div class="slxx_title title-block">
12 申请业务信息
13 <div class="triangle"></div>
14 </div>
15 <el-row :gutter="10">
16 <el-col :span="8">
17 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:">
18 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
19 </el-form-item>
20 </el-col>
21 <el-col :span="8">
22 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:">
23 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:">
28 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
29 </el-form-item>
30 </el-col>
31 </el-row>
32 <el-row :gutter="10">
33 <el-col :span="8">
34 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
35 <el-select disabled v-model="ruleForm.sldyList[0].qllx" filterable clearable placeholder="请选择权利类型">
36 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
37 </el-option>
38 </el-select>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:">
43 <el-select disabled v-model="ruleForm.sldyList[0].djlx" filterable clearable placeholder="请选择登记类型">
44 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
45 </el-option>
46 </el-select>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('400')">
56 解封信息列表({{ ruleForm.cfdjDetailList.length }} 个)
57 <div class="triangle"></div>
58 <cfdjTable :tableData="ruleForm.cfdjDetailList" />
59 </div>
60 <div class="slxx_title title-block" v-else>
61 查封不动产列表({{ ruleForm.ztQlxxList.length }} 个)
62 <div class="triangle"></div>
63 <qlxxTable :tableData="ruleForm.ztQlxxList" />
64 </div>
65 <div class="slxx_title title-block" v-if="!ruleForm.slsq.djywbm.includes('400')">
66 批量查封信息
67 <div class="triangle"></div>
68 </div>
69 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
70 <el-col :span="8">
71 <el-form-item :class="flag ? 'marginBot0' : ''" label="原告:">
72 <el-input v-model="ruleForm.cfdj.yg" :disabled="!ableOperation|| isJfOperation"></el-input>
73 </el-form-item>
74 </el-col>
75 <el-col :span="8">
76 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:" >
77 <el-input v-model="ruleForm.cfdj.cfwh" :disabled="!ableOperation|| isJfOperation"></el-input>
78 </el-form-item>
79 </el-col>
80 <el-col :span="8">
81 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:">
82 <el-input v-model="ruleForm.cfdj.cfjg" :disabled="!ableOperation|| isJfOperation"></el-input>
83 </el-form-item>
84 </el-col>
85 </el-row>
86 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
87 <el-col :span="8">
88 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封期限:">
89 <el-input v-model="ruleForm.cfdj.cfqx" :disabled="!ableOperation|| isJfOperation"></el-input>
90 </el-form-item>
91 </el-col>
92 <el-col :span="8">
93 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:">
94 <el-date-picker v-model="ruleForm.cfdj.cfqssj" class="width100" type="date" placeholder="选择日期"
95 value-format="yyyy-MM-dd" :disabled="!ableOperation|| isJfOperation"></el-date-picker>
96 </el-form-item>
97 </el-col>
98 <el-col :span="8">
99 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:">
100 <el-date-picker v-model="ruleForm.cfdj.cfjssj" class="width100"
101 :disabled="!ableOperation|| isJfOperation" type="date" placeholder="选择日期"
102 value-format="yyyy-MM-dd"></el-date-picker>
103 </el-form-item>
104 </el-col>
105 </el-row>
106 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
107 <el-col :span="8">
108 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:">
109 <el-input v-model="ruleForm.cfdj.cfwj" :disabled="!ableOperation|| isJfOperation"></el-input>
110 </el-form-item>
111 </el-col>
112 <el-col :span="16">
113 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:">
114 <el-input v-model="ruleForm.cfdj.cffw" :disabled="!ableOperation|| isJfOperation"></el-input>
115 </el-form-item>
116 </el-col>
117 </el-row>
118 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
119 <el-col>
120 <el-form-item :class="flag ? 'marginBot0' : ''" label="附记:">
121 <el-input class="textArea" type="textarea" v-model="ruleForm.cfdj.fj"
122 :disabled="!ableOperation|| isJfOperation"></el-input>
123 </el-form-item>
124 </el-col>
125 </el-row>
126 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
127 <el-col>
128 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="cfdj.djyy">
129 <el-input class="textArea" type="textarea" v-model="ruleForm.cfdj.djyy"
130 :disabled="!ableOperation|| isJfOperation"></el-input>
131 </el-form-item>
132 </el-col>
133 </el-row>
134 <div v-if="propsParam.djlx == '400'">
135 <div class="slxx_title title-block">
136 解封信息
137 <div class="triangle"></div>
138 </div>
139 <el-row :gutter="10">
140 <el-col :span="8">
141 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封机关:">
142 <el-input v-model="ruleForm.cfdj.jfjg" :disabled="!ableOperation"></el-input>
143 </el-form-item>
144 </el-col>
145 <el-col :span="8">
146 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文件:">
147 <el-input v-model="ruleForm.cfdj.jfwj" :disabled="!ableOperation"></el-input>
148 </el-form-item>
149 </el-col>
150 <el-col :span="8">
151 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文号:">
152 <el-input v-model="ruleForm.cfdj.jfwh" :disabled="!ableOperation"></el-input>
153 </el-form-item>
154 </el-col>
155 </el-row>
156 </div>
157 </div>
158 <el-row class="btn" v-if="ableOperation">
159 <el-button type="primary" @click="onSubmit">保存</el-button>
160 </el-row>
161 </el-form>
162 </div>
163 </template>
164 <script>
165 import qlxxTable from "../commonTable/qlxxTable.vue";
166 import cfdjTable from "../commonTable/cfdjTable";
167 import { BatchInit, batchSaveData } from "@/api/workflow/cfdjFlow.js";
168 import { mapGetters } from "vuex";
169 export default {
170 data () {
171 return {
172 //表单是否可操作
173 ableOperation: true,
174 disabled: true,
175 flagTop: this.flag ? "top" : "",
176 rules: {
177 'cfdj.djyy': [
178 { required: true, message: '请输入登记原因', trigger: 'blur' }
179 ]
180 },
181 //传递参数
182 propsParam: {},
183 //页面数据
184 ruleForm: {
185 slsq: {},
186 cfdj: {},
187 },
188 isJfOperation: false,
189 tableData: []
190 }
191 },
192 mounted () {
193 this.ableOperation = this.$parent.currentSelectTab.ableOperation
194 this.propsParam = this.$attrs;
195 var formdata = new FormData();
196 if (this.propsParam.djlx == '400') {
197 this.isJfOperation = true;
198 }
199 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
200 formdata.append("djlx", this.propsParam.djlx);
201 formdata.append("isEdit", this.ableOperation);
202 BatchInit(formdata).then((res) => {
203 if (res.code === 200 && res.result) {
204 this.ruleForm = res.result
205 }
206 })
207 },
208 components: { qlxxTable,cfdjTable },
209 props: {
210 flag: {
211 type: Boolean,
212 default: false,
213 },
214 fetch: {
215 type: Boolean,
216 default: false,
217 },
218 },
219 computed: {
220 ...mapGetters(["dictData"]),
221 },
222
223 methods: {
224 /**
225 * @description: onSubmit
226 * @author: renchao
227 */
228 onSubmit () {
229 this.$refs['ruleForm'].validate((valid) => {
230 if (valid) {
231 this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
232 batchSaveData(this.ruleForm).then((res) => {
233 if (res.code === 200) {
234 this.$message.success('保存成功');
235 }
236 })
237 } else {
238 this.$message({
239 showClose: true,
240 message: "请输入登记原因",
241 type: "error"
242 })
243 return false;
244 }
245 });
246
247 },
248 /**
249 * @description: changeCflx
250 * @param {*} e
251 * @author: renchao
252 */
253 changeCflx (e) {
254 let cflxItem = {}
255 cflxItem = this.dictData['A32'].find((item) => {
256 return item.dcode == e
257 })
258 this.ruleForm.cfdjList[0].cflxmc = cflxItem.dname;
259 }
260 },
261 };
262 </script>
263 <style scoped lang='scss'>
264 @import "~@/styles/public.scss";
265 @import "~@/styles/slxx/slxx.scss";
266 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 15:08:38
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 :label-position="flagTop"
13 :inline="flag"
14 label-width="120px">
15 <div class="slxx_con">
16 <div class="slxx_title title-block">
17 申请业务信息
18 <div class="triangle"></div>
19 </div>
20 <el-row :gutter="10">
21 <el-col :span="8">
22 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:" prop="slsq.ywh">
23 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:" prop="slsq.slry">
28 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
29 </el-form-item>
30 </el-col>
31 <el-col :span="8">
32 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:" prop="slsq.slsj">
33 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
34 </el-form-item>
35 </el-col>
36 </el-row>
37 <el-row :gutter="10">
38 <el-col :span="8">
39 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:" prop="slsq.qllx">
40 <el-select
41 disabled
42 v-model="ruleForm.sldy.qllx"
43 filterable
44 clearable
45 placeholder="请选择权利类型">
46 <el-option
47 v-for="item in dictData['A8']"
48 :key="item.dcode"
49 :label="item.dname"
50 :value="item.dcode"></el-option>
51 </el-select>
52 </el-form-item>
53 </el-col>
54 <el-col :span="8">
55 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:" prop="slsq.djlx">
56 <el-select
57 disabled
58 v-model="ruleForm.sldy.djlx"
59 filterable
60 clearable
61 placeholder="请选择登记类型">
62 <el-option
63 v-for="item in dictData['A21']"
64 :key="item.dcode"
65 :label="item.dname"
66 :value="item.dcode"></el-option>
67 </el-select>
68 </el-form-item>
69 </el-col>
70 <el-col :span="8">
71 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:" prop="slsq.djqx">
72 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
73 </el-form-item>
74 </el-col>
75 </el-row>
76 <div class="slxx_title title-block">
77 查封不动产情况
78 <div class="triangle"></div>
79 </div>
80
81 <el-row :gutter="10">
82 <el-col :span="8">
83 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
84 <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
85 </el-form-item>
86 </el-col>
87
88 <el-col :span="8">
89 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产权证号:" prop="qlxx.bdcqzh">
90 <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
91 </el-form-item>
92 </el-col>
93 <el-col :span="8">
94 <el-form-item :class="flag ? 'marginBot0' : ''" label="共有情况:">
95 <el-input disabled v-model="ruleForm.ztQlxx.gyqk"></el-input>
96 </el-form-item>
97 </el-col>
98 </el-row>
99 <el-row :gutter="10">
100 <el-col :span="8">
101 <el-form-item :class="flag ? 'marginBot0' : ''" label="被执行人:" prop="qlxx.qlrmc">
102 <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
103 </el-form-item>
104 </el-col>
105 <el-col :span="8">
106 <el-form-item :class="flag ? 'marginBot0' : ''" label="证件种类:">
107 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
108 </el-form-item>
109 </el-col>
110 <el-col :span="8">
111 <el-form-item :class="flag ? 'marginBot0' : ''" label="证件号:">
112 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
113 </el-form-item>
114 </el-col>
115 </el-row>
116 <el-row :gutter="10">
117 <el-col :span="8">
118 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产单元号:" prop="qlxx.bdcdyh">
119 <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
120 </el-form-item>
121 </el-col>
122 <el-col :span="16">
123 <el-form-item :class="flag ? 'marginBot0' : ''" label="坐落:">
124 <el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
125 </el-form-item>
126 </el-col>
127 </el-row>
128 <el-row :gutter="10">
129 <el-col :span="8">
130 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利性质">
131 <el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
132 </el-form-item>
133 </el-col>
134 <el-col :span="8">
135 <el-form-item :class="flag ? 'marginBot0' : ''" label="用途:">
136 <el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
137 </el-form-item>
138 </el-col>
139 <el-col :span="8">
140 <el-form-item :class="flag ? 'marginBot0' : ''" label="面积:">
141 <el-input disabled v-model="ruleForm.ztQlxx.qlmjmc"></el-input>
142 </el-form-item>
143 </el-col>
144 </el-row>
145
146 <div class="slxx_title title-block">
147 查封信息
148 <div class="triangle"></div>
149 </div>
150 <el-row :gutter="10">
151 <el-col :span="8">
152 <el-form-item :class="flag ? 'marginBot0' : ''" label="原告:" prop="cfdj.cfwh">
153 <el-input
154 v-model="ruleForm.cfdj.yg"
155 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
156 </el-form-item>
157 </el-col>
158 <el-col :span="8">
159 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:" prop="cfdj.cfwh">
160 <el-input
161 v-model="ruleForm.cfdj.cfwh"
162 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
163 </el-form-item>
164 </el-col>
165 <el-col :span="8">
166 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:" prop="cfdj.cfjg">
167 <el-input
168 v-model="ruleForm.cfdj.cfjg"
169 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
170 </el-form-item>
171 </el-col>
172 </el-row>
173 <el-row :gutter="10">
174 <el-col :span="8">
175 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封类型:" prop="cfdj.cflxmc">
176 <el-input v-model="ruleForm.cfdj.cflxmc" disabled></el-input>
177 </el-form-item>
178 </el-col>
179 <el-col :span="16">
180 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:" prop="cfdj.cfwj">
181 <el-input
182 v-model="ruleForm.cfdj.cfwj"
183 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
184 </el-form-item>
185 </el-col>
186 </el-row>
187 <el-row :gutter="10">
188 <el-col :span="8">
189 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封期限:" prop="cfdj.cfqx">
190 <el-input
191 v-model="ruleForm.cfdj.cfqx"
192 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
193 </el-form-item>
194 </el-col>
195 <el-col :span="8">
196 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:" prop="cfdj.cfqssj">
197 <el-date-picker
198 v-model="ruleForm.cfdj.cfqssj"
199 class="width100"
200 type="date"
201 placeholder="选择日期"
202 value-format="yyyy-MM-dd"
203 :disabled="!viewEdit || ableEdit || isJfOperation"></el-date-picker>
204 </el-form-item>
205 </el-col>
206 <el-col :span="8">
207 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:" prop="cfdj.cfjssj">
208 <el-date-picker
209 v-model="ruleForm.cfdj.cfjssj"
210 class="width100"
211 :disabled="!viewEdit || ableEdit || isJfOperation"
212 type="date"
213 placeholder="选择日期"
214 value-format="yyyy-MM-dd"></el-date-picker>
215 </el-form-item>
216 </el-col>
217 </el-row>
218
219 <el-row :gutter="10">
220 <el-col :span="24">
221 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:" prop="cfdj.cffw">
222 <el-input
223 v-model="ruleForm.cfdj.cffw"
224 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
225 </el-form-item>
226 </el-col>
227 </el-row>
228 <el-row :gutter="10">
229 <el-col :span="24">
230 <el-form-item :class="flag ? 'marginBot0' : ''" label="附记:" prop="cfdj.fj">
231 <el-input
232 v-model="ruleForm.cfdj.fj"
233 type="textarea"
234 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
235 </el-form-item>
236 </el-col>
237 </el-row>
238 <el-row :gutter="10">
239 <el-col>
240 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="cfdj.djyy">
241 <el-input
242 class="textArea"
243 type="textarea"
244 v-model="ruleForm.cfdj.djyy"
245 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
246 </el-form-item>
247 </el-col>
248 </el-row>
249 <div v-if="propsParam.djlx == '400'">
250 <div class="slxx_title title-block">
251 解封信息
252 <div class="triangle"></div>
253 </div>
254 <el-row :gutter="10">
255 <el-col :span="8">
256 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封机关:" prop="cfdj.jfjg">
257 <el-input
258 v-model="ruleForm.cfdj.jfjg"
259 :disabled="!viewEdit || ableEdit"></el-input>
260 </el-form-item>
261 </el-col>
262 <el-col :span="8">
263 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文件:" prop="cfdj.jfwj">
264 <el-input
265 v-model="ruleForm.cfdj.jfwj"
266 :disabled="!viewEdit || ableEdit"></el-input>
267 </el-form-item>
268 </el-col>
269 <el-col :span="8">
270 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文号:" prop="cfdj.jfwh">
271 <el-input
272 v-model="ruleForm.cfdj.jfwh"
273 :disabled="!viewEdit || ableEdit"></el-input>
274 </el-form-item>
275 </el-col>
276 </el-row>
277 </div>
278 </div>
279 <el-row class="btn" v-if="viewEdit && !ableEdit">
280 <el-form-item :class="flag ? 'marginBot0' : ''">
281 <el-button type="primary" @click="onSubmit">保存</el-button>
282 </el-form-item>
283 </el-row>
284 </el-form>
285 </div>
286 </template>
287 <script>
288 import sqrViewTable from "@/views/workflow/components/sqrViewTable";
289 import { Init, saveData } from "@/api/workflow/cfdjFlow.js";
290 import { mapGetters } from "vuex";
291 export default {
292 data () {
293 return {
294 // 键名转换,方法默认是label和children进行树状渲染
295 normalizer (node) {
296 //方法
297 if (node.children == null || node.children == "null") {
298 delete node.children;
299 }
300 return {
301 id: node.dcode,
302 label: node.dname,
303 };
304 },
305 //表单是否可操作
306 viewEdit: false,
307 disabled: true,
308 flagTop: this.flag ? "top" : "",
309 rules: {
310 'cfdj.djyy': [
311 { required: true, message: '请输入登记原因', trigger: 'blur' }
312 ]
313 },
314 //传递参数
315 propsParam: {},
316 //页面数据
317 ruleForm: {},
318 //是否可编辑
319 ableEdit: false,
320 //是否为解封
321 isJfOperation: false,
322 };
323 },
324 async created () {
325 this.propsParam = this.$attrs;
326 this.ableEdit = this.$parent.showBatch;
327 this.viewEdit = this.$parent.currentSelectTab.ableOperation
328 if (this.propsParam.djlx == "400") {
329 this.isJfOperation = true;
330 }
331 var formdata = new FormData();
332 formdata.append("bsmSldy", this.propsParam.bsmSldy);
333 formdata.append("djlx", this.propsParam.djlx);
334 formdata.append("isEdit", this.viewEdit);
335 Init(formdata).then((res) => {
336 if (res.code === 200 && res.result) {
337 this.ruleForm = res.result;
338 } else {
339 this.$message.error(res.message);
340 }
341 });
342 },
343 watch: {},
344 components: { sqrViewTable },
345 props: {
346 flag: {
347 type: Boolean,
348 default: false,
349 },
350 fetch: {
351 type: Boolean,
352 default: false,
353 },
354 },
355 computed: {
356 ...mapGetters(["dictData"])
357 },
358
359 methods: {
360 /**
361 * @description: onSubmit
362 * @author: renchao
363 */
364 onSubmit () {
365 this.$refs['ruleForm'].validate((valid) => {
366 if (valid) {
367 saveData(this.ruleForm).then((res) => {
368 if (res.code === 200) {
369 this.$message.success("保存成功");
370 }
371 })
372 } else {
373 this.$message({
374 showClose: true,
375 message: "请输入登记原因",
376 type: "error"
377 })
378 return false
379 }
380 })
381 },
382 /**
383 * @description: changeCflx
384 * @param {*} e
385 * @author: renchao
386 */
387 changeCflx (e) {
388 let cflxItem = {};
389 cflxItem = this.dictData["A32"].find((item) => {
390 return item.dcode == e;
391 });
392 this.ruleForm.cfdj.cflxmc = cflxItem.dname
393 }
394 }
395 }
396 </script>
397 <style scoped lang='scss'>
398 @import "~@/styles/public.scss";
399 @import "~@/styles/slxx/slxx.scss";
400 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-12-26 15:00:22
5 -->
6 <template>
7 <dialogBox
8 title="申请人信息"
9 width="75%"
10 isMain
11 v-model="myValue"
12 :isFullscreen="false"
13 @submitForm="submitForm"
14 @closeDialog="closeDialog"
15 :isButton="isShow">
16
17 <el-tabs v-model="activeName" @tab-click="handleClick" class="from-clues-header">
18 <el-tab-pane label="基本信息" name="1"></el-tab-pane>
19 <el-tab-pane label="企业信息" v-if="showButton" name="2"></el-tab-pane>
20 <el-tab-pane label="银行机构" v-if="showButton" name="3"></el-tab-pane>
21 </el-tabs>
22
23 <el-form
24 v-if="activeName==1"
25 :model="ruleForm"
26 :rules="rules"
27 ref="ruleForm"
28 label-width="120px">
29 <el-form-item label="身份证读卡器" style="margin-top:-10px;margin-bottom:0">
30 <el-button type="text" icon="el-icon-tickets" :disabled="!showButton" @click="readClick">读取</el-button>
31 <el-button type="primary" v-if="isBz" @click="handleFilings">信息备案</el-button>
32 </el-form-item>
33 <el-row>
34 <el-col :span="8">
35 <el-form-item label="头像">
36 <el-image style="width:102px;height:126px" :src="ruleForm.avatar || avatar" fit="contain" />
37 </el-form-item>
38 </el-col>
39 <el-col :span="16">
40 <el-row>
41 <el-col :span="12">
42 <el-form-item label="姓名/名称" prop="sqrmc">
43 <el-input
44 v-model="ruleForm.sqrmc"
45 maxlegth="15"
46 :disabled="!showButton"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="12">
50 <el-form-item label="证件种类" prop="zjzl">
51 <el-select
52 clearable
53 v-model="ruleForm.zjzl"
54 :disabled="!showButton"
55 @change="handleZjzl"
56 class="width100"
57 placeholder="请选择">
58 <el-option
59 v-for="item in dictData['A30']"
60 :key="item.dcode"
61 :label="item.dname"
62 :value="item.dcode">
63 </el-option>
64 </el-select>
65 </el-form-item>
66 </el-col>
67 </el-row>
68 <el-row>
69 <el-col :span="12">
70 <el-form-item label="证件号" prop="zjh">
71 <el-input
72 v-model="ruleForm.zjh"
73 :disabled="!showButton"
74 maxlength="18"
75 oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="12">
79 <el-form-item label="性别" prop="xb">
80 <el-select
81 clearable
82 v-model="ruleForm.xb"
83 :disabled="!showButton"
84 class="width100"
85 placeholder="请选择">
86 <el-option
87 v-for="item in dictData['A43']"
88 :key="item.dcode"
89 :label="item.dname"
90 :value="item.dcode">
91 </el-option>
92 </el-select>
93 </el-form-item>
94 </el-col>
95 </el-row>
96 <el-row>
97 <el-col :span="12">
98 <el-form-item label="联系电话" prop="dh">
99 <el-input
100 v-model="ruleForm.dh"
101 :disabled="!showButton"
102 maxlength="11"
103 oninput="value=value.replace(/[^\d]/g,'')"></el-input>
104 </el-form-item>
105 </el-col>
106 <el-col :span="12">
107 <el-form-item label="国家/地区" prop="gj">
108 <el-input
109 v-model="ruleForm.gj"
110 maxlength="3"
111 :disabled="!showButton"></el-input>
112 </el-form-item>
113 </el-col>
114 </el-row>
115 </el-col>
116 </el-row>
117 <el-row>
118 <el-col :span="8">
119 <el-form-item label="权利人类型" prop="sqrlx">
120 <el-select
121 clearable
122 v-model="ruleForm.sqrlx"
123 class="width100"
124 :disabled="!showButton"
125 placeholder="请选择">
126 <el-option
127 v-for="item in dictData['A36']"
128 :key="item.dcode"
129 :label="item.dname"
130 :value="item.dcode">
131 </el-option>
132 </el-select>
133 </el-form-item>
134 </el-col>
135 <el-col :span="8">
136 <el-form-item label="户籍所在省市" prop="hjszss">
137 <el-input
138 v-model="ruleForm.hjszss"
139 maxlength="3"
140 :disabled="!showButton"></el-input>
141 </el-form-item>
142 </el-col>
143 <el-col :span="8">
144 <el-form-item label="权利比例" prop="qlbl">
145 <el-input
146 v-model="ruleForm.qlbl"
147 maxlength="32"
148 :disabled="!showButton || this.ruleForm.gyfs == 1"></el-input>
149 </el-form-item>
150 </el-col>
151 </el-row>
152 <el-row>
153 <el-col :span="8">
154 <el-form-item label="法人名称" prop="frmc">
155 <el-input
156 v-model="ruleForm.frmc"
157 maxlength="32"
158 :disabled="!showButton"></el-input>
159 </el-form-item>
160 </el-col>
161 <el-col :span="16">
162 <el-form-item label="地址" prop="txdz">
163 <el-input
164 v-model="ruleForm.txdz"
165 maxlength="100"
166 :disabled="!showButton"></el-input>
167 </el-form-item>
168 </el-col>
169 </el-row>
170 <el-row>
171 <el-col :span="8">
172 <el-form-item label="发证机关" prop="fzjg">
173 <el-input
174 v-model="ruleForm.fzjg"
175 maxlength="10"
176 :disabled="!showButton"></el-input>
177 </el-form-item>
178 </el-col>
179 <el-col :span="8">
180 <el-form-item label="电子邮件" prop="dzyj">
181 <el-input
182 v-model="ruleForm.dzyj"
183 :disabled="!showButton"
184 maxlength="25"></el-input>
185 </el-form-item>
186 </el-col>
187 <el-col :span="8">
188 <el-form-item label="邮编" prop="yb">
189 <el-input
190 v-model.number="ruleForm.yb"
191 :disabled="!showButton"
192 maxlength="6"
193 oninput="value=value.replace(/[^\d]/g,'')"></el-input>
194 </el-form-item>
195 </el-col>
196 </el-row>
197 <el-row>
198 <el-col :span="8">
199 <el-form-item label="工作单位" prop="gzdw">
200 <el-input
201 v-model="ruleForm.gzdw"
202 maxlength="32"
203 :disabled="!showButton"></el-input>
204 </el-form-item>
205 </el-col>
206 <el-col :span="16">
207 <el-form-item label="代理机构" prop="dlrjg">
208 <el-input
209 v-model="ruleForm.dlrjg"
210 maxlength="32"
211 :disabled="!showButton"></el-input>
212 </el-form-item>
213 </el-col>
214 </el-row>
215
216 <el-row>
217 <el-col :span="8">
218 <el-form-item label="代理人姓名" prop="dlrmc">
219 <el-input
220 v-model="ruleForm.dlrmc"
221 maxlength="15"
222 :disabled="!showButton"></el-input>
223 </el-form-item>
224 </el-col>
225 <el-col :span="8">
226 <el-form-item label="代理人证件类型" prop="dlrzjlx">
227 <el-select
228 clearable
229 v-model="ruleForm.dlrzjlx"
230 :disabled="!showButton"
231 class="width100"
232 placeholder="请选择">
233 <el-option
234 v-for="item in dictData['A30']"
235 :key="item.dcode"
236 :label="item.dname"
237 :value="item.dcode">
238 </el-option>
239 </el-select>
240 </el-form-item>
241 </el-col>
242 <el-col :span="8">
243 <el-form-item label="代理人证件号" prop="dlrzjh">
244 <el-input
245 v-model="ruleForm.dlrzjh"
246 :disabled="!showButton"
247 maxlength="18"
248 oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
249 </el-form-item>
250 </el-col>
251 </el-row>
252 <el-row>
253 <el-col :span="8">
254 <el-form-item label="代理人电话" prop="dlrdh">
255 <el-input
256 v-model="ruleForm.dlrdh"
257 :disabled="!showButton"
258 maxlength="11"
259 oninput="value=value.replace(/[^\d]/g,'')"></el-input>
260 </el-form-item>
261 </el-col>
262 </el-row>
263 </el-form>
264 <div v-if="activeName==2" class="padding10">
265 <el-form :model="queryFormQY" label-width="80px">
266 <el-row>
267 <el-col :span="8">
268 <el-form-item label="姓名/名称">
269 <el-input placeholder="姓名/名称" v-model="queryFormQY.qymc" clearable class="width100">
270 </el-input>
271 </el-form-item>
272 </el-col>
273 <el-col :span="8">
274 <el-form-item label="证件号">
275 <el-input placeholder="证件号" v-model="queryFormQY.zjh" clearable class="width100">
276 </el-input>
277 </el-form-item>
278 </el-col>
279 <el-col :span="8" class="btnColRight">
280 <el-form-item>
281 <el-button type="primary" @click="handleSearchQY">查询</el-button>
282 </el-form-item>
283 </el-col>
284 </el-row>
285 </el-form>
286 <el-table :data="tableDataQy.data" border v-Loading="loading" :height="563">
287 <el-table-column label="序号" type="index" width="50" align="center">
288 <template slot-scope="scope">
289 {{(pageData.currentPage - 1) * pageData.pageSize + scope.$index + 1}}
290 </template>
291 </el-table-column>
292 <el-table-column v-for="item in tableDataQy.columns" :key="item.index" :width="item.width" :prop="item.prop" :label="item.label" align="center">
293 </el-table-column>
294 <el-table-column label="操作" width="50">
295 <template slot-scope="scope">
296 <el-button type="text" @click="handleSelect(scope.row)">使用</el-button>
297 </template>
298 </el-table-column>
299 </el-table>
300 <el-pagination background layout="prev, pager, next,total" :total="tableDataQy.total"
301 @current-change="handleQYCurrentChange"></el-pagination>
302 </div>
303
304 <div v-if="activeName==3" class="padding10">
305 <el-form :model="queryFormYH" label-width="80px">
306 <el-row>
307 <el-col :span="8">
308 <el-form-item label="姓名/名称">
309 <el-input placeholder="姓名/名称" v-model="queryFormYH.qymc" clearable class="width100">
310 </el-input>
311 </el-form-item>
312 </el-col>
313 <el-col :span="8">
314 <el-form-item label="证件号">
315 <el-input placeholder="证件号" v-model="queryFormYH.zjh" clearable class="width100">
316 </el-input>
317 </el-form-item>
318 </el-col>
319 <el-col :span="8" class="btnColRight">
320 <el-form-item>
321 <el-button type="primary" @click="handleSearchYH">查询</el-button>
322 </el-form-item>
323 </el-col>
324 </el-row>
325 </el-form>
326 <el-table :data="tableDataYh.data" border v-Loading="loading" :height="563">
327 <el-table-column label="序号" type="index" width="50" align="center">
328 <template slot-scope="scope">
329 {{(pageData.currentPage - 1) * pageData.pageSize + scope.$index + 1}}
330 </template>
331 </el-table-column>
332 <el-table-column v-for="item in tableDataYh.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
333 </el-table-column>
334 <el-table-column label="操作" width="50">
335 <template slot-scope="scope">
336 <el-button type="text" @click="handleSelect(scope.row)">使用</el-button>
337 </template>
338 </el-table-column>
339 </el-table>
340 <el-pagination background layout="prev, pager, next,total" :total="tableDataYh.total"
341 @current-change="handleYHCurrentChange"></el-pagination>
342 </div>
343
344 </dialogBox>
345 </template>
346 <script>
347 import { mapGetters } from "vuex";
348 import store from '@/store/index.js'
349 import { getUuid } from "@/utils/operation.js"
350 import { replace } from "@/api/company.js"
351 import { getIdCardInfo } from '@/utils/operation.js'
352 import { queryQyByPage, queryYhByPage, addQy } from "@/api/xxba.js";
353 import { dataYh, dataQy, sendThis } from "./addSqrData";
354 export default {
355 props: {
356 value: { type: Boolean, default: false },
357 details: { type: Object, default: {} },
358 showButton: { type: Boolean, default: false },
359 },
360 computed: {
361 ...mapGetters(["dictData"]),
362 },
363 data () {
364 return {
365 avatar: require('@/image/user.png'),
366 isShow: false,
367 isBz: false,
368 activeName: '1',
369 loading: false,
370 myValue: this.value,
371 ruleForm: {
372 sqrlx: "",
373 sqrmc: "111111",
374 zjzl: "",
375 zjh: "",
376 dh: "",
377 xb: "",
378 fs: "",
379 frmc: "",
380 gj: "",
381 hjszss: "",
382 txdz: "",
383 yb: "",
384 fzjg: "",
385 dzyj: "",
386 qlbl: "",
387 gzdw: "",
388 dlrjg: "",
389 avatar: "",
390 dlrmc: "",
391 dlrzjlx: "",
392 dlrzjh: "",
393 dlrdh: "",
394 },
395 rules: {
396 sqrlx: [{ required: true, message: "权利人类型", trigger: "change" }],
397 sqrmc: [{ required: true, message: "姓名/名称", trigger: "blur" }],
398 zjzl: [{ required: true, message: "证件种类", trigger: "change" }],
399 zjh: [{ required: true, message: "证件号", trigger: "blur" }],
400 },
401
402 pageData: {
403 currentPage: 1,
404 pageSize: 8
405 },
406 // 企业
407 queryFormQY: {
408 qymc: "",
409 zjh: ""
410 },
411 tableDataQy: {
412 total: 0,
413 columns: dataQy.columns(),
414 data: [],
415 },
416 // 银行
417 queryFormYH: {
418 qymc: "",
419 zjh: ""
420 },
421 tableDataYh: {
422 total: 0,
423 columns: dataYh.columns(),
424 data: [
425 ],
426 },
427 }
428 },
429 mounted () {
430 sendThis(this);
431 },
432 watch: {
433 value (val) {
434 this.myValue = _.cloneDeep(val)
435 if (val && Object.keys(this.details).length > 0) {
436 this.activeName = '1'
437 }
438 this.isShow = this.showButton
439 },
440 details: {
441 handler: function (val, oldVal) {
442 this.ruleForm = _.cloneDeep(val);
443 },
444 deep: true
445 }
446 },
447 methods: {
448 /**
449 * @description: 证件种类选择
450 * @param {*} val
451 * @author: renchao
452 */
453 handleZjzl (val) {
454 if (['6', '7', '8'].includes(val)) {
455 this.isBz = true
456 } else {
457 this.isBz = false
458 }
459 },
460 /**
461 * @description: 信息备案
462 * @author: renchao
463 */
464 handleFilings () {
465 this.ruleForm.qymc = this.ruleForm.sqrmc
466 this.ruleForm.dwdz = this.ruleForm.txdz
467 addQy(this.ruleForm).then(res => {
468 if (res.code == 200) {
469 this.$message.success('备案成功')
470 } else {
471 this.$message.error(res.message);
472 }
473 })
474 },
475 /**
476 * @description: handleClick
477 * @param {*} event
478 * @param {*} tab
479 * @author: renchao
480 */
481 handleClick (event, tab) {
482 if (this.activeName != 1) {
483 this.isShow = false
484 } else {
485 this.isShow = true
486 }
487 this.pageData.currentPage = 1
488 if (this.activeName == 2) {
489 this.handleSearchQY()
490 } else {
491 this.handleSearchYH()
492 }
493 },
494 /**
495 * @description:企业查询
496 * @param {*} val
497 * @param {*} code
498 * @author: renchao
499 */
500 dicStatus (val, code) {
501 let data = store.getters.dictData[code],
502 name = '暂无'
503 if (data) {
504 data.map((item) => {
505 if (item.dcode == val) {
506 name = item.dname
507 }
508 })
509 return name
510 }
511 },
512 /**
513 * @description: 企业信息搜索
514 * @author: renchao
515 */
516 handleSearchQY () {
517 let data = { ...this.queryFormQY, ...this.pageData }
518 this.tableDataQy.data = []
519 queryQyByPage(data).then((res) => {
520 if (res.code === 200) {
521 let { total, records } = res.result;
522 this.tableDataQy.total = total;
523 this.tableDataQy.data = records;
524 this.tableDataQy.data.forEach((item, index) => {
525 item.zjzlMc = this.dicStatus(item.zjzl, 'A30')
526 item.sqrmc = item.qymc
527 item.txdz = item.dwdz
528 })
529 }
530 })
531 },
532 /**
533 * @description: handleQYCurrentChange
534 * @param {*} val
535 * @author: renchao
536 */
537 handleQYCurrentChange (val) {
538 this.pageData.currentPage = val
539 this.handleSearchQY()
540 },
541 /**
542 * @description: handlesQYSelect
543 * @param {*} val
544 * @author: renchao
545 */
546 handleSelect (val) {
547 let that = this
548 let bsmSldy = window.currentSelect.bsmSldy ? window.currentSelect.bsmSldy : ''
549 this.$confirm('是否同步材料信息?', '提示', {
550 confirmButtonText: '确定',
551 cancelButtonText: '取消',
552 distinguishCancelAndClose: true,//区分取消与关闭
553 }).then(() => {
554 replace(val.bsmCompany, this.$route.query.bsmSlsq, bsmSldy).then(res => {
555 that.$emit("updateDetail", _.cloneDeep({ ...val, sqrlx: '2', id: getUuid(16) }));
556 that.$emit("input", false);
557 if (res.code == 200) {
558 that.$message({
559 type: 'success',
560 message: '同步成功!'
561 })
562 } else {
563 that.$message.error(res.message);
564 }
565 })
566 }).catch(action => {
567 if (action == 'cancel') {
568 that.$emit("updateDetail", _.cloneDeep({ ...val, sqrlx: '2' }));
569 that.$emit("input", false);
570 }
571 })
572 },
573 /**
574 * @description: 银行信息搜索
575 * @author: renchao
576 */
577 handleSearchYH () {
578 let data = { ...this.queryFormYH, ...this.pageData }
579 this.tableDataYh.data = []
580 queryYhByPage(data).then((res) => {
581 if (res.code === 200) {
582 let { total, records } = res.result;
583 this.tableDataYh.total = total;
584 this.tableDataYh.data = records;
585 this.tableDataYh.data.forEach((item, index) => {
586 item.zjzlMc = this.dicStatus(item.zjzl, 'A30')
587 item.sqrmc = item.qymc
588 item.txdz = item.dwdz
589 })
590 }
591 })
592 },
593 /**
594 * @description: handleYHCurrentChange
595 * @param {*} val
596 * @author: renchao
597 */
598 handleYHCurrentChange (val) {
599 this.pageData.currentPage = val
600 this.handleSearchQY()
601 },
602 /**
603 * @description: 身份证打卡器
604 * @author: renchao
605 */
606 readClick () {
607 function getObjectByValue (arrayOfObjects, value) {
608 var name = ''
609 arrayOfObjects.forEach(item => {
610 if (item.dname.includes(value)) name = item.dcode
611 })
612 return name
613 }
614 getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
615 if (this.BASE_API.gaopaiyi == 'jy') {
616 const {
617 Name,
618 IdNo,
619 Sex,
620 Address,
621 Agencvy,
622 PhotoB64
623 } = JSON.parse(res)
624 if (Name) {
625 this.ruleForm.sqrmc = Name;
626 this.ruleForm.zjzl = '1';
627 this.ruleForm.zjh = IdNo;
628 this.ruleForm.xb = getObjectByValue(this.dictData['A43'], Sex);
629 this.ruleForm.txdz = Address;
630 this.ruleForm.fzjg = Agencvy;
631 this.ruleForm.avatar = 'data:image/png;base64,' + PhotoB64
632 this.$message({
633 message: '读取成功!',
634 type: 'success'
635 })
636 } else {
637 this.$message({
638 message: '请放置身份证',
639 type: 'warning'
640 })
641 }
642 } else {
643 if (res.data.code == 0) {
644 let data = res.data.IDCardInfo;
645 const {
646 name,
647 cardID: zjh,
648 sexCode: xb,
649 address: txdz,
650 issueOrgan: fzjg,
651 photoBase64
652 } = data
653 this.ruleForm.sqrmc = name;
654 this.ruleForm.zjzl = '1';
655 this.ruleForm.zjh = zjh;
656 this.ruleForm.xb = xb
657 this.ruleForm.txdz = txdz;
658 this.ruleForm.fzjg = fzjg;
659 this.ruleForm.avatar = 'data:image/png;base64,' + photoBase64
660 this.$message({
661 message: '读取成功!',
662 type: 'success'
663 })
664
665 } else {
666 this.$message({
667 message: res.data.message,
668 type: 'warning'
669 })
670 }
671 }
672 })
673 },
674 /**
675 * @description: closeDialog
676 * @author: renchao
677 */
678 closeDialog () {
679 this.$emit("input", false);
680 this.$nextTick(() => {
681 if (this.$refs.ruleForm !== undefined) {
682 this.$refs.ruleForm.resetFields();
683 }
684 })
685 },
686 /**
687 * @description: submitForm
688 * @author: renchao
689 */
690 submitForm () {
691 this.$refs.ruleForm.validate((valid) => {
692 if (valid) {
693 this.$emit("input", false);
694 this.ruleForm.id = getUuid(16)
695 this.$emit("updateDetail", _.cloneDeep(this.ruleForm));
696 if (this.$refs.ruleForm !== undefined) {
697 this.$refs.ruleForm.resetFields();
698 }
699 } else {
700 return false;
701 }
702 })
703 }
704 }
705 }
706 </script>
707 <style scoped lang="scss">
708 @import "~@/styles/dialogBoxheader.scss";
709 .submit-button {
710 text-align: center;
711 height: 52px;
712 padding-top: 10px;
713 background-color: #fff;
714 }
715 .padding10 {
716 padding-bottom: 10px;
717 }
718 </style>
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-11 15:32:32
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data1 extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return [
18 {
19 prop: "sqrmc",
20 label: "姓名/名称",
21 },
22 {
23 prop: "zjzlMc",
24 label: "证件种类"
25 },
26 {
27 prop: "zjh",
28 label: "证件号",
29 },
30 {
31 prop: "frmc",
32 label: "法人名称",
33 },
34 {
35 prop: "dwdz",
36 label: "地址",
37 },
38 {
39 prop: "dh",
40 label: "联系电话",
41 }
42 ]
43 }
44
45 }
46 class data2 extends filter {
47 constructor() {
48 super()
49
50 }
51 columns () {
52 return [
53 {
54 prop: "sqrmc",
55 label: "姓名/名称",
56 },
57 {
58 prop: "zjzlMc",
59 label: "证件种类",
60 },
61 {
62 prop: "zjh",
63 label: "证件号",
64 },
65 {
66 prop: "frmc",
67 label: "法人名称",
68 },
69 {
70 prop: "dwdz",
71 label: "地址",
72 },
73 {
74 prop: "dh",
75 label: "联系电话",
76 },
77 ]
78 }
79
80 }
81 let dataYh = new data1()
82 let dataQy = new data2()
83 export {
84 dataYh,
85 dataQy,
86 sendThis
87 }
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:29
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import { mapGetters } from 'vuex';
12 export default {
13 computed: {
14 ...mapGetters(["dictData"]),
15 },
16 props: {
17 tableData: {
18 type: Array,
19 default: function () {
20 return []
21 }
22 }
23 },
24 data () {
25 return {
26 key: 0,
27 column: [
28 {
29 label: '序号',
30 type: 'index',
31 width: '50',
32 render: (h, scope) => {
33 return (
34 <div>
35 {scope.$index + 1}
36 </div>
37 )
38 }
39 },
40 {
41 prop: "yg",
42 label: "原告"
43 },
44 {
45 prop: "cfjg",
46 label: "查封机关"
47 },
48 {
49 prop: "cfwh",
50 label: "查封文号"
51 },
52 {
53 prop: "cfqssj",
54 label: "查封开始时间"
55 },
56 {
57 prop: "cfjssj",
58 label: "查封结束时间"
59 },
60 {
61 prop: "cflxmc",
62 label: "查封类型"
63 },
64 {
65 prop: "ywrmc",
66 label: "被执行人"
67 },
68 {
69 prop: "bcfzh",
70 label: "被查封证号"
71 },
72 {
73 prop: "bdcdyh",
74 label: "不动产单元号"
75 },
76 {
77 prop: "zl",
78 label: "坐落"
79 }
80 ]
81 }
82 },
83 methods: {
84 }
85 }
86 </script>
87 <style scoped lang='scss'>
88 /deep/.el-table th {
89 height: 30px !important;
90 }
91 /deep/.el-table--small .el-table__cell {
92 padding: 5px;
93 }
94 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:29
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import { mapGetters } from 'vuex'
12 export default {
13 computed: {
14 ...mapGetters(["dictData"]),
15 },
16 props: {
17 tableData: {
18 type: Array,
19 default: function () {
20 return []
21 }
22 }
23 },
24 data () {
25 return {
26 key: 0,
27 column: [
28 {
29 label: '序号',
30 type: 'index',
31 width: '50',
32 render: (h, scope) => {
33 return (
34 <div>
35 {scope.$index + 1}
36 </div>
37 )
38 }
39 },
40 {
41 prop: "qlrmc",
42 label: "抵押权人"
43 },
44 {
45 prop: "ywrmc",
46 label: "抵押人"
47 },
48 {
49 prop: "bdcqzh",
50 label: "不动产登记证明号"
51 },
52 {
53 prop: "dyjelx",
54 label: "抵押金额类型"
55 },
56 {
57 prop: "dyfsmc",
58 label: "抵押方式"
59 },
60 {
61 prop: "qdjgmc",
62 label: "抵押金额"
63 },
64 {
65 prop: "qlmjmc",
66 label: "抵押面积"
67 },
68 {
69 prop: "zwlxqssj",
70 label: "债务履行开始时间"
71 },
72 {
73 prop: "zwlxjssj",
74 label: "债务履行结束时间"
75 },
76 {
77 prop: "bdcdyh",
78 label: "不动产单元号"
79 },
80 {
81 prop: "zl",
82 label: "坐落"
83 }
84 ]
85 }
86 },
87 methods: {
88 }
89 }
90 </script>
91 <style scoped lang='scss'>
92 /deep/.el-table th {
93 height: 30px !important;
94 }
95 /deep/.el-table--small .el-table__cell {
96 padding: 5px;
97 }
98 </style>
1 <!--
2 * @Description: 房屋多幢明细
3 * @Autor:
4 * @LastEditTime: 2023-09-01 13:29:29
5 -->
6 <template>
7 <div>
8 <el-table
9 :data="tableDataList"
10 border
11 :pagination="false"
12 :key="key"
13 :header-cell-style="{ 'text-align': 'center' }"
14 :heightNumSetting="true"
15 :minHeight="150"
16 height="150"
17 style="width: 100%">
18 <el-table-column prop="index" width="50" :render-header="renderHeader">
19 <template slot-scope="scope">
20 <div style="text-align: center">{{ scope.$index + 1 }}</div>
21 </template>
22 </el-table-column>
23 <el-table-column prop="bdcdyh" label="不动产单元号" min-width="100">
24 <template slot-scope="scope">
25 <div style="text-align: center">{{ scope.row.bdcdyh }}</div>
26 </template>
27 </el-table-column>
28 <el-table-column prop="xmmc" label="项目名称" min-width="100">
29 <template slot-scope="scope">
30 <el-input
31 class="item"
32 :disabled="!ableOperation"
33 v-model="scope.row.xmmc"
34 placeholder="请输入内容"
35 @input="updaterow(scope.row)">
36 </el-input>
37 </template>
38 </el-table-column>
39 <el-table-column prop="fwxz" label="房屋性质" min-width="100">
40 <template slot-scope="scope">
41 <treeselect
42 v-model="scope.row.fwxz"
43 :disabled="!ableOperation"
44 noOptionsText="暂无数据"
45 placeholder=""
46 :show-count="true"
47 :options="dictData['A19']"
48 :normalizer="normalizer"
49 :appendToBody="true"
50 z-index="9999"
51 @input="updaterow(scope.row)" />
52 </template>
53 </el-table-column>
54 <el-table-column prop="ghyt" label="房屋用途" min-width="100">
55 <template slot-scope="scope">
56 <treeselect
57 v-model="scope.row.ghyt"
58 :disabled="!ableOperation"
59 noOptionsText="暂无数据"
60 placeholder=""
61 :show-count="true"
62 :options="dictData['A17']"
63 :normalizer="normalizer"
64 :appendToBody="true"
65 z-index="9999"
66 @input="updaterow(scope.row)" />
67 </template>
68 </el-table-column>
69 <el-table-column prop="fwjg" label="房屋结构" min-width="100">
70 <template slot-scope="scope">
71 <treeselect
72 v-model="scope.row.fwjg"
73 :disabled="!ableOperation"
74 noOptionsText="暂无数据"
75 placeholder=""
76 :show-count="true"
77 :options="dictData['A46']"
78 :normalizer="normalizer"
79 :appendToBody="true"
80 z-index="9999"
81 @input="updaterow(scope.row)" />
82 </template>
83 </el-table-column>
84 <el-table-column prop="jzmj" label="建筑面积" min-width="100">
85 <template slot-scope="scope">
86 <el-input
87 maxlength="12"
88 class="item"
89 :disabled="!ableOperation"
90 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
91 v-model="scope.row.jzmj"
92 placeholder="请输入内容"
93 @input="updaterow(scope.row)">
94 </el-input>
95 </template>
96 </el-table-column>
97 <el-table-column prop="jgsj" label="竣工时间" min-width="100">
98 <template slot-scope="scope">
99 <el-date-picker
100 v-model="scope.row.jgsj"
101 type="date"
102 :disabled="!ableOperation"
103 placeholder="选择日期"
104 value-format="yyyy-MM-dd HH:mm:ss"
105 format="yyyy-MM-dd"
106 @input="updaterow(scope.row)">
107 </el-date-picker>
108 </template>
109 </el-table-column>
110 <el-table-column prop="zcs" label="总层数" min-width="100">
111 <template slot-scope="scope">
112 <el-input
113 class="item"
114 :disabled="!ableOperation"
115 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
116 v-model="scope.row.zcs"
117 placeholder="请输入内容"
118 @input="updaterow(scope.row)">
119 </el-input>
120 </template>
121 </el-table-column>
122 <el-table-column prop="zts" label="总套数" min-width="100">
123 <template slot-scope="scope">
124 <el-input
125 class="item"
126 :disabled="!ableOperation"
127 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
128 v-model="scope.row.zts"
129 placeholder="请输入内容"
130 @input="updaterow(scope.row)">
131 </el-input>
132 </template>
133 </el-table-column>
134 </el-table>
135 </div>
136 </template>
137 <script>
138 import { mapGetters } from "vuex";
139
140 export default {
141 computed: {
142 ...mapGetters(["dictData"]),
143 },
144 props: {
145 tableData: {
146 type: Array,
147 default: function () {
148 return [];
149 },
150 },
151 ableOperation: {
152 type: Boolean,
153 default: false,
154 },
155
156 },
157 data () {
158 return {
159 // 键名转换,方法默认是label和children进行树状渲染
160 key: 0,
161 tableDataList: [],
162 normalizer (node) {
163 if (node.children == null || node.children == "null") {
164 delete node.children;
165 }
166 return {
167 id: node.dcode,
168 label: node.dname,
169 children: node.children,
170 };
171 },
172 };
173 },
174 mounted () {
175 },
176 watch: {
177 tableData: {
178 handler: function (val, oldVal) {
179 let that = this;
180 this.$nextTick(() => {
181 if (val.length == 0 || !val) {
182 that.tableDataList = _.cloneDeep([
183 {
184 yt: null,
185 qssj: "",
186 jssj: "",
187 tdsyqx: "",
188 },
189 ]);
190 } else {
191 that.tableDataList = _.cloneDeep(val);
192 }
193 });
194 },
195 immediate: true,
196 deep: true,
197 },
198 },
199 methods: {
200 /**
201 * @description: renderHeader
202 * @author: renchao
203 */
204 renderHeader () {
205 return (
206 <div>
207 {"序号"}
208 </div>
209 );
210 },
211 updaterow (a) {
212 this.$emit("updateFdcwxmList", this.tableDataList);
213 }
214 }
215 }
216 </script>
217 <style scoped lang="scss">
218 .el-input {
219 border: none !important;
220 }
221
222 /deep/ .el-table__row {
223 border: none !important;
224 }
225
226 .el-date-editor.el-input {
227 width: 100%;
228 }
229
230 /deep/ .el-table th {
231 height: 30px !important;
232 }
233 </style>
234
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:50:53
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import { mapGetters } from 'vuex'
12 export default {
13 computed: {
14 ...mapGetters(["dictData"]),
15 },
16 props: {
17 tableData: {
18 type: Array,
19 default: function () {
20 return []
21 }
22 }
23 },
24 data () {
25 return {
26 key: 0,
27 column: [
28 {
29 label: '序号',
30 type: 'index',
31 width: '50',
32 render: (h, scope) => {
33 return (
34 <div>
35 {scope.$index + 1}
36 </div>
37 )
38 }
39 },
40 // {
41 // prop: "bdcdyh",
42 // label: "不动产单元号"
43 // },
44 {
45 prop: "zl",
46 label: "坐落"
47 },
48 {
49 prop: "shbw",
50 label: "室号部位"
51 },
52 {
53 prop: "fwxzmc",
54 label: "房屋性质"
55 },
56 {
57 prop: "sjc",
58 label: "层号"
59 },
60 {
61 prop: "jzmj",
62 label: "建筑面积"
63 },
64 {
65 prop: "fwlxmc",
66 label: "房屋类型"
67 },
68 {
69 prop: "showfwyt",
70 label: "房屋用途"
71 },
72 {
73 prop: "showfwjg",
74 label: "房屋结构"
75 },
76 ]
77 }
78 },
79 methods: {
80 }
81 }
82 </script>
83 <style scoped lang="scss">
84 /deep/.el-table th {
85 height: 30px !important;
86 }
87 /deep/.el-table--small .el-table__cell {
88 padding: 5px;
89 }
90 </style>
91
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-18 14:55:20
5 -->
6 <template>
7 <div>
8 <div>
9 <el-form-item label="共有方式:">
10 <el-radio-group :disabled="!viewEdit" v-model="ruleForm.sldy.gyfs">
11 <el-radio label="0">单独所有</el-radio>
12 <el-radio label="1">共同共有</el-radio>
13 <el-radio label="2">按份所有</el-radio>
14 <el-radio label="3">其它共有</el-radio>
15 </el-radio-group>
16 </el-form-item>
17 </div>
18 <lb-table
19 :column="column" :pagination="false"
20 :key="key"
21 :heightNumSetting="true"
22 :minHeight="0"
23 :rowStyleHeight="25"
24 :data="tableDataList"
25 >
26 </lb-table>
27 <addQlr
28 v-model="dialog"
29 :details="details"
30 :showButton="disabled"
31 @updateDetail="handleupdateDetail"
32 />
33 </div>
34 </template>
35 <script>
36 import { mapGetters } from "vuex";
37 import { getIdCardInfo } from "@/utils/operation.js";
38 import addQlr from "./addSqr.vue";
39 export default {
40 components: {
41 addQlr,
42 },
43 computed: {
44 ...mapGetters(["dictData"]),
45 },
46 props: {
47 tableData: {
48 type: Array,
49 default: function () {
50 return [];
51 },
52 },
53 gyfs: {
54 type: String,
55 default: "1",
56 },
57 disabled: {
58 type: Boolean,
59 default: true,
60 },
61 },
62 data() {
63 return {
64 key: 0,
65 dataIndex: 0,
66 dialog: false,
67 isaddupdate: false,
68 details: {},
69 tableDataList: [],
70 InformationTable: [
71 {
72 width: "50",
73 renderHeader: (h, scope) => {
74 return (
75 <div>
76 {" "}
77 {!this.disabled ? (
78 "序号"
79 ) : (
80 <i
81 class="el-icon-plus pointer"
82 onClick={() => {
83 this.addClick();
84 }}
85 ></i>
86 )}
87 </div>
88 );
89 },
90 render: (h, scope) => {
91 return (
92 <div>
93 {!this.disabled ? (
94 <span>{scope.$index + 1}</span>
95 ) : (
96 <i
97 class="el-icon-minus pointer"
98 onClick={() => {
99 this.deleClick(scope.$index, scope.row);
100 }}
101 ></i>
102 )}
103 </div>
104 );
105 },
106 },
107 {
108 label: "身份证读卡器",
109 align: "center",
110 render: (h, scope) => {
111 return (
112 <el-button
113 type="text"
114 icon="el-icon-tickets"
115 disabled={!this.disabled}
116 onClick={() => {
117 this.readClick(scope.row);
118 }}
119 >
120 读取
121 </el-button>
122 );
123 },
124 },
125 {
126 prop: "sqrmc",
127 label: "姓名/名称",
128 },
129 {
130 prop: "zjzl",
131 label: "证件种类",
132 render: (h, scope) => {
133 return (
134 this.dictData["A30"] &&
135 this.dictData["A30"].map((option) => {
136 if (option.dcode == scope.row.zjzl) {
137 return <span>{option.dname}</span>;
138 }
139 })
140 );
141 },
142 },
143 {
144 prop: "zjh",
145 label: "证件号",
146 },
147 {
148 prop: "dh",
149 label: "联系电话",
150 },
151 {
152 label: "操作",
153 render: (h, scope) => {
154 return (
155 <div>
156 {this.disabled ? (
157 <el-button
158 icon="el-icon-edit-outline"
159 type="text"
160 onClick={() => {
161 this.editClick(scope.$index, scope.row);
162 }}
163 >
164 编辑
165 </el-button>
166 ) : (
167 <el-button
168 icon="el-icon-view"
169 type="text"
170 onClick={() => {
171 this.queryViewClick(scope.$index, scope.row);
172 }}
173 >
174 {" "}
175 查看
176 </el-button>
177 )}
178 </div>
179 );
180 },
181 },
182 ],
183 column: [],
184 };
185 },
186 watch: {
187 tableData: {
188 handler: function (val, oldVal) {
189 let that = this;
190 this.$nextTick(() => {
191 if (val.length == 0 || !val) {
192 } else {
193 that.tableDataList = _.cloneDeep(val);
194 that.key++;
195 }
196 });
197 },
198 immediate: true,
199 deep: true,
200 },
201 gyfs: {
202 handler(newVal, oldValue) {
203 let dataList = _.cloneDeep(this.InformationTable);
204 if (newVal == 0) {
205 this.column = _.cloneDeep(dataList);
206 this.tableDataList = _.cloneDeep(this.tableData);
207 this.key++;
208 } else if (newVal == "1" || newVal == "3") {
209 this.column = dataList;
210 } else {
211 this.column = _.cloneDeep(dataList);
212 this.column.splice(2, 0, {
213 prop: "qlbl",
214 label: "份数",
215 });
216 }
217 },
218 immediate: true,
219 },
220 },
221 methods: {
222 /**
223 * @description: handleupdateDetail
224 * @param {*} value
225 * @author: renchao
226 */
227 handleupdateDetail(value) {
228 let that = this;
229 let arr = this.tableData.map((item) => item.zjh);
230 // if (this.isaddupdate) {
231 // if (!arr.includes(value.zjh)) {
232 // this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
233 // this.$emit('upDateQlrxxList', this.tableDataList)
234 // } else {
235 // setTimeout(() => {
236 // that.$message.error('证件号不能重复')
237 // }, 1500)
238 // }
239 // } else {
240 // if (!arr.includes(value.zjh) || this.tableData[this.dataIndex].zjh == value.zjh) {
241 // this.tableDataList[this.dataIndex] = _.cloneDeep(value);
242 // this.$emit('upDateQlrxxList', this.tableDataList)
243 // } else {
244 // setTimeout(() => {
245 // that.$message.error('证件号不能重复')
246 // }, 1500)
247 // }
248 // }
249
250 if (this.isaddupdate) {
251 if (!_.isEqual(value, this.tableData)) {
252 this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
253 this.$emit("upDateQlrxxList", this.tableDataList);
254 }
255 } else {
256 if (!_.isEqual(value, this.tableData)) {
257 this.tableDataList[this.dataIndex] = _.cloneDeep(value);
258 this.$emit("upDateQlrxxList", this.tableDataList);
259 }
260 }
261 this.key++;
262 },
263 /**
264 * @description: 新增
265 * @author: renchao
266 */
267 addClick() {
268 if (this.gyfs == "0" && this.tableDataList.length > 0) {
269 this.$message.warning("当前共有方式为单独所有,无法添加多个权利人");
270 } else {
271 this.key++;
272 this.details = {
273 sqrmc: "",
274 zjzl: "1",
275 zjh: "",
276 xb: "",
277 txdz: "",
278 fzjg: "",
279 };
280 this.dialog = true;
281 this.isaddupdate = true;
282 }
283 },
284
285 /**
286 * @description: 删除
287 * @param {*} index
288 * @param {*} row
289 * @author: renchao
290 */
291 deleClick(index, row) {
292 this.tableDataList.splice(index, 1);
293 this.$emit("upDateQlrxxList", this.tableDataList);
294 this.key++;
295 },
296 /**
297 * @description: 身份证读取
298 * @param {*} row
299 * @author: renchao
300 */
301 readClick(row) {
302 function getObjectByValue(arrayOfObjects, value) {
303 var name = "";
304 arrayOfObjects.forEach((item) => {
305 if (item.dname.includes(value)) name = item.dcode;
306 });
307 return name;
308 }
309 getIdCardInfo(this.BASE_API.gaopaiyi).then((res) => {
310 if (this.BASE_API.gaopaiyi == "jy") {
311 const { Name, IdNo, Sex, Address, Agencvy, PhotoB64 } =
312 JSON.parse(res);
313 if (Name != "") {
314 row.sqrmc = Name;
315 row.zjzl = "1";
316 row.zjh = IdNo;
317 row.xb = getObjectByValue(this.dictData["A43"], Sex);
318 row.txdz = Address;
319 row.fzjg = Agencvy;
320 row.avatar = "data:image/png;base64," + PhotoB64;
321 this.$message({
322 message: "读取成功!",
323 type: "success",
324 });
325 } else {
326 this.$message({
327 message: "请放置身份证",
328 type: "warning",
329 });
330 }
331 } else {
332 if (res.data.code == 0) {
333 let data = res.data.IDCardInfo;
334 const {
335 name,
336 cardID: zjh,
337 sexCode: xb,
338 address: txdz,
339 issueOrgan: fzjg,
340 photoBase64,
341 } = data;
342 row.sqrmc = name;
343 row.zjzl = "1";
344 row.zjh = zjh;
345 row.xb = xb;
346 row.txdz = txdz;
347 row.fzjg = fzjg;
348 row.avatar = "data:image/png;base64," + photoBase64;
349 this.$message({
350 message: "读取成功!",
351 type: "success",
352 });
353 } else {
354 this.$message({
355 message: res.data.message,
356 type: "warning",
357 });
358 }
359 }
360 this.$emit("upDateQlrxxList", this.tableDataList);
361 });
362 },
363 /**
364 * @description: 修改
365 * @param {*} index
366 * @param {*} row
367 * @author: renchao
368 */
369 editClick(index, row) {
370 this.details = row;
371 this.details.gyfs = this.gyfs;
372 this.dataIndex = index;
373 this.dialog = true;
374
375 this.isaddupdate = false;
376 },
377 /**
378 * @description: queryViewClick
379 * @param {*} index
380 * @param {*} row
381 * @author: renchao
382 */
383 queryViewClick(index, row) {
384 this.details = row;
385 this.dialog = true;
386 },
387 },
388 };
389 </script>
390 <style scoped lang="scss">
391 /deep/.el-table--small .el-table__cell {
392 padding: 0 0 !important;
393 }
394 /deep/.el-table th {
395 height: 30px !important;
396 }
397 /deep/.el-table .cell {
398 padding-right: 12px;
399 }
400 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:29
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import { mapGetters } from 'vuex'
12 export default {
13 computed: {
14 ...mapGetters(["dictData"]),
15 },
16 props: {
17 tableData: {
18 type: Array,
19 default: function () {
20 return []
21 }
22 }
23 },
24 data () {
25 return {
26 key: 0,
27 column: [
28 {
29 label: '序号',
30 type: 'index',
31 width: '50',
32 render: (h, scope) => {
33 return (
34 <div>
35 {scope.$index + 1}
36 </div>
37 )
38 }
39 },
40 {
41 prop: "qllxmc",
42 label: "权利类型"
43 },
44 {
45 prop: "bdcqzh",
46 label: "不动产权证号"
47 },
48 {
49 prop: "qlrmc",
50 label: "权利人"
51 },
52 {
53 prop: "qlrzjhm",
54 label: "证件号码"
55 },
56 {
57 prop: "bdcdyh",
58 label: "不动产单元号"
59 },
60 {
61 prop: "qlxzmc",
62 label: "权利性质"
63 },
64 {
65 prop: "qlytmc",
66 label: "用途"
67 },
68 {
69 prop: "qlmjmc",
70 label: "面积"
71 },
72 {
73 prop: "zl",
74 label: "坐落"
75 },
76 ]
77 }
78 },
79 methods: {
80 }
81 }
82 </script>
83 <style scoped lang='scss'>
84 /deep/.el-table th {
85 height: 30px !important;
86 }
87 /deep/.el-table--small .el-table__cell {
88 padding: 5px;
89 }
90 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-18 14:13:02
5 -->
6 <template>
7 <div>
8 <el-table
9 :data="tableDataList"
10 border
11 :pagination="false"
12 :key="key"
13 :header-cell-style="{ 'text-align': 'center' }"
14 :heightNumSetting="true"
15 style="width: 100%">
16 <el-table-column prop="index" width="50" :render-header="renderHeader">
17 <template slot-scope="scope">
18 <i
19 class="el-icon-minus pointer"
20 @click="deleClick(scope.$index, scope.row)"
21 v-if="ableOperation"></i>
22 <div style="text-align: center" v-else>
23 {{ scope.$index + 1 }}
24 </div>
25 </template>
26 </el-table-column>
27 <el-table-column prop="yt" label="土地用途" min-width="100">
28 <template slot-scope="scope">
29 <treeselect
30 v-model="scope.row.yt"
31 :disabled="!ableOperation"
32 noOptionsText="暂无数据"
33 placeholder=""
34 :show-count="true"
35 :options="dictData['tdyt']"
36 :normalizer="normalizer"
37 :appendToBody="true"
38 z-index="9999"
39 @input="addrow(scope.row)" />
40 </template>
41 </el-table-column>
42 <el-table-column prop="qssj" label="土地使用起始时间" min-width="100">
43 <template slot-scope="scope">
44 <el-date-picker
45 v-model="scope.row.qssj"
46 type="date"
47 :disabled="!ableOperation"
48 :picker-options="scope.row.pickerStart"
49 placeholder="选择日期"
50 value-format="yyyy-MM-dd HH:mm:ss"
51 format="yyyy-MM-dd"
52 @input="startTime(scope.$index)">
53 </el-date-picker>
54 </template>
55 </el-table-column>
56 <el-table-column prop="jssj" label="土地使用结束时间" min-width="100">
57 <template slot-scope="scope">
58 <el-date-picker
59 v-model="scope.row.jssj"
60 type="date"
61 :disabled="!ableOperation"
62 :picker-options="scope.row.pickerEnd"
63 placeholder="选择日期"
64 value-format="yyyy-MM-dd HH:mm:ss"
65 format="yyyy-MM-dd"
66 @input="endTime(scope.$index)">
67 </el-date-picker>
68 </template>
69 </el-table-column>
70 <el-table-column prop="tdsyqx" label="土地使用期限" min-width="100">
71 <template slot-scope="scope">
72 <el-input
73 class="item"
74 :disabled="!ableOperation"
75 v-model="scope.row.tdsyqx"
76 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
77 placeholder="请输入内容"
78 @input="sumTime(scope.$index, scope.row.tdsyqx)">
79 ></el-input>
80 </template>
81 </el-table-column>
82 </el-table>
83 </div>
84 </template>
85 <script>
86 import { mapGetters } from "vuex";
87 export default {
88 computed: {
89 ...mapGetters(["dictData"]),
90 },
91 props: {
92 tableData: {
93 type: Array,
94 default: function () {
95 return [];
96 },
97 },
98 ableOperation: {
99 type: Boolean,
100 default: true,
101 },
102 },
103 data () {
104 return {
105 // 键名转换,方法默认是label和children进行树状渲染
106 key: 0,
107 newdata: {
108 yt: null,
109 qssj: "",
110 jssj: "",
111 tdsyqx: "",
112 },
113 tableDataList: [],
114 // 起始时间选择范围
115 pickerStart: {},
116 pickerEnd: {},
117 normalizer (node) {
118 if (node.children == null || node.children == "null") {
119 delete node.children;
120 }
121 return {
122 id: node.dcode,
123 label: node.dname,
124 children: node.children,
125 };
126 },
127 };
128 },
129 mounted () { },
130 watch: {
131 tableData: {
132 handler: function (val, oldVal) {
133 let that = this;
134 this.$nextTick(() => {
135 if (!val || val.length == 0) {
136 that.tableDataList = _.cloneDeep([
137 {
138 yt: null,
139 qssj: "",
140 jssj: "",
141 tdsyqx: "",
142 },
143 ]);
144 } else {
145 that.tableDataList = _.cloneDeep(val);
146 }
147 });
148 },
149 immediate: true,
150 deep: true,
151 },
152 },
153 methods: {
154 /**
155 * @description: renderHeader
156 * @author: renchao
157 */
158 renderHeader () {
159 return (
160 <div>
161 {" "}
162 {!this.ableOperation ? (
163 "序号"
164 ) : (
165 <i
166 class="el-icon-plus pointer"
167 onClick={() => {
168 this.addClick();
169 }}
170 ></i>
171 )}
172 </div>
173 );
174 },
175 // 修改事件
176 /**
177 * @description: 修改事件
178 * @author: renchao
179 */
180 addrow (a) {
181 // this.tableDataList = this.tableDataList.map((item) => {
182 // return {
183 // ...item,
184 // yt: a.yt,
185 // };
186 // });
187 this.$emit("upDateTdytxxList", this.tableDataList);
188 },
189 /**
190 * @description: startTime
191 * @param {*} index
192 * @author: renchao
193 */
194 startTime (index) {
195 console.log("index", index);
196 // let startTime = this.tableDataList[index].tdsyqssj;
197 let endTime = this.tableDataList[index].jssj;
198 let startTime = this.tableDataList[index].qssj;
199 this.tableDataList[index].pickerEnd = {
200 disabledDate: (time) => {
201 if (Object.keys(startTime).length > 0) {
202 return new Date(startTime).getTime() > time.getTime();
203 } else {
204 return time.getTime() < Date.now();
205 }
206 },
207 };
208 if (startTime && endTime) {
209 let startYear = new Date(startTime).getFullYear();
210 let endYear = new Date(endTime).getFullYear();
211 this.tableDataList[index].tdsyqx = endYear - startYear;
212 }
213 this.$emit("upDateTdytxxList", this.tableDataList);
214 },
215 /**
216 * @description: endTime
217 * @param {*} index
218 * @author: renchao
219 */
220 endTime (index) {
221 // let startTime = this.tableDataList[index].tdsyqssj;
222 let startTime = this.tableDataList[index].qssj;
223 let endTime = this.tableDataList[index].jssj;
224 this.tableDataList[index].pickerStart = {
225 disabledDate: (time) => {
226 if (Object.keys(endTime).length > 0) {
227 return new Date(endTime).getTime() < time.getTime();
228 } else {
229 return time.getTime() > Date.now();
230 }
231 },
232 };
233 if (startTime && endTime) {
234 let startYear = new Date(startTime).getFullYear();
235 let endYear = new Date(endTime).getFullYear();
236 this.tableDataList[index].tdsyqx = endYear - startYear;
237 }
238 this.$emit("upDateTdytxxList", this.tableDataList);
239 },
240 /**
241 * @description: sumTime
242 * @param {*} index
243 * @param {*} tdsyqx
244 * @author: renchao
245 */
246 sumTime (index, tdsyqx) {
247 let startTime = this.tableDataList[index].qssj;
248 this.tableDataList[index].jssj =
249 Number(startTime.substring(0, 4)) +
250 Number(tdsyqx) +
251 startTime.slice(4, 19);
252 this.$emit("upDateTdytxxList", this.tableDataList);
253 },
254 // 新增
255 /**
256 * @description: 新增
257 * @author: renchao
258 */
259 addClick () {
260 // this.tableDataList[this.tableDataList.length] = _.cloneDeep(this.newdata);
261 this.tableDataList.push(_.cloneDeep(this.newdata))
262 this.$emit("upDateTdytxxList", this.tableDataList);
263 },
264
265 // 删除
266 /**
267 * @description: 删除
268 * @param {*} index
269 * @param {*} row
270 * @author: renchao
271 */
272 deleClick (index, row) {
273 this.$confirm("确定要删除吗, 是否继续?", "提示", {
274 confirmButtonText: "确定",
275 cancelButtonText: "取消",
276 type: "warning",
277 })
278 .then(() => {
279 this.tableDataList.splice(index, 1);
280 this.$emit("upDateTdytxxList", this.tableDataList);
281 })
282 .catch(() => { });
283 },
284 },
285 };
286 </script>
287 <style scoped lang="scss">
288 .el-input {
289 border: none !important;
290 }
291 /deep/.el-table__row {
292 border: none !important;
293 }
294 .el-date-editor.el-input {
295 width: 100%;
296 }
297 /deep/.el-table th {
298 height: 30px !important;
299 }
300 /deep/ .el-table--border .el-table__cell:first-child .cell {
301 text-align: center;
302 }
303 /deep/.el-table--small .el-table__cell {
304 padding: 3px 0 !important;
305 }
306 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-18 14:55:20
5 -->
6 <template>
7 <div>
8 <lb-table :column="column" :pagination="false" :key="key" :heightNumSetting="true" :minHeight="0" :rowStyleHeight='25'
9 :data="tableDataList">
10 </lb-table>
11 <addSqr v-model="dialog" :details="details" :showButton="disabled" @updateDetail="handleupdateDetail" />
12 </div>
13 </template>
14 <script>
15 import { mapGetters } from 'vuex'
16 import { getIdCardInfo } from '@/utils/operation.js'
17 import addSqr from './addSqr.vue'
18 export default {
19 components: {
20 addSqr
21 },
22 computed: {
23 ...mapGetters(["dictData"]),
24 },
25 props: {
26 tableData: {
27 type: Array,
28 default: function () {
29 return []
30 }
31 },
32 disabled: {
33 type: Boolean,
34 default: true
35 }
36 },
37 data () {
38 return {
39 key: 0,
40 dataIndex: 0,
41 dialog: false,
42 isaddupdate: false,
43 details: {},
44 tableDataList: [],
45 InformationTable: [
46 {
47 width: '50',
48 renderHeader: (h, scope) => {
49 return <div> {
50 !this.disabled ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.addClick() }}></i>
51 }
52 </div>
53 },
54 render: (h, scope) => {
55 return (
56 <div>
57 {
58 !this.disabled ? <span>{scope.$index + 1}</span> :
59 <i class="el-icon-minus pointer" onClick={() => { this.deleClick(scope.$index, scope.row) }}></i>
60 }
61 </div>
62 )
63 }
64 },
65 {
66 label: '身份证读卡器',
67 align: 'center',
68 render: (h, scope) => {
69 return <el-button type="text" icon="el-icon-tickets" disabled={!this.disabled} onClick={() => { this.readClick(scope.row) }}>读取</el-button>
70 }
71 },
72 {
73 prop: "sqrmc",
74 label: "姓名/名称"
75 },
76 {
77 prop: "zjzl",
78 label: "证件种类",
79 render: (h, scope) => {
80 return this.dictData['A30'] && this.dictData['A30'].map(option => {
81 if (option.dcode == scope.row.zjzl) {
82 return <span>{option.dname}</span>
83 }
84 })
85 }
86 },
87 {
88 prop: "zjh",
89 label: "证件号"
90 },
91 {
92 prop: "dh",
93 label: "联系电话"
94 },
95 {
96 label: '操作',
97 render: (h, scope) => {
98 return (
99 <div>
100 {
101 this.disabled ? <el-button
102 icon="el-icon-edit-outline"
103 type="text"
104 onClick={() => { this.editClick(scope.$index, scope.row) }}>编辑</el-button> : <el-button
105 icon="el-icon-view"
106 type="text"
107 onClick={() => { this.queryViewClick(scope.$index, scope.row) }} > 查看</el-button>
108 }
109 </div>
110 )
111 }
112 }
113 ],
114 column: []
115 }
116 },
117 watch: {
118 tableData: {
119 handler: function (val, oldVal) {
120 let that = this
121 this.$nextTick(() => {
122 if (val.length == 0 || !val) {
123 } else {
124 that.tableDataList = _.cloneDeep(val)
125 that.key++
126 }
127 })
128 },
129 immediate: true,
130 deep: true
131 }
132 },
133 methods: {
134 /**
135 * @description: handleupdateDetail
136 * @param {*} value
137 * @author: renchao
138 */
139 handleupdateDetail (value) {
140 let that = this
141 let arr = this.tableData.map(item => item.zjh)
142 if (this.isaddupdate) {
143 if (!_.isEqual(value, this.tableData)) {
144 this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
145 this.$emit("upDateQlrxxList", this.tableDataList);
146 }
147 } else {
148 if (!_.isEqual(value, this.tableData)) {
149 this.tableDataList[this.dataIndex] = _.cloneDeep(value);
150 this.$emit("upDateQlrxxList", this.tableDataList);
151 }
152 }
153 this.key++
154 },
155 /**
156 * @description: 新增
157 * @author: renchao
158 */
159 addClick () {
160 if (this.gyfs == '0' && this.tableDataList.length > 0) {
161 this.$message.warning("当前共有方式为单独所有,无法添加多个权利人")
162 } else {
163 this.key++
164 this.details = {
165 sqrmc: '',
166 zjzl: '1',
167 zjh: '',
168 xb: '',
169 txdz: '',
170 fzjg: ''
171 }
172 this.dialog = true
173 this.isaddupdate = true
174 }
175 },
176
177 /**
178 * @description: 删除
179 * @param {*} index
180 * @param {*} row
181 * @author: renchao
182 */
183 deleClick (index, row) {
184 this.tableDataList.splice(index, 1)
185 this.$emit('upDateQlrxxList', this.tableDataList)
186 this.key++
187 },
188 /**
189 * @description: 身份证读取
190 * @param {*} row
191 * @author: renchao
192 */
193 readClick (row) {
194 function getObjectByValue (arrayOfObjects, value) {
195 var name = ''
196 arrayOfObjects.forEach(item => {
197 if (item.dname.includes(value)) name = item.dcode
198 })
199 return name
200 }
201 getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
202 if (this.BASE_API.gaopaiyi == 'jy') {
203 const {
204 Name,
205 IdNo,
206 Sex,
207 Address,
208 Agencvy,
209 PhotoB64
210 } = JSON.parse(res)
211 if (Name != '') {
212 row.sqrmc = Name;
213 row.zjzl = '1';
214 row.zjh = IdNo;
215 row.xb = getObjectByValue(this.dictData['A43'], Sex);
216 row.txdz = Address;
217 row.fzjg = Agencvy;
218 row.avatar = 'data:image/png;base64,' + PhotoB64
219 this.$message({
220 message: '读取成功!',
221 type: 'success'
222 })
223 } else {
224 this.$message({
225 message: '请放置身份证',
226 type: 'warning'
227 })
228 }
229 } else {
230 if (res.data.code == 0) {
231 let data = res.data.IDCardInfo;
232 const {
233 name,
234 cardID: zjh,
235 sexCode: xb,
236 address: txdz,
237 issueOrgan: fzjg,
238 photoBase64
239 } = data
240 row.sqrmc = name;
241 row.zjzl = '1';
242 row.zjh = zjh;
243 row.xb = xb
244 row.txdz = txdz;
245 row.fzjg = fzjg;
246 row.avatar = 'data:image/png;base64,' + photoBase64
247 this.$message({
248 message: '读取成功!',
249 type: 'success'
250 })
251 } else {
252 this.$message({
253 message: res.data.message,
254 type: 'warning'
255 })
256 }
257 }
258 this.$emit('upDateQlrxxList', this.tableDataList)
259 })
260 },
261 /**
262 * @description: 修改
263 * @param {*} index
264 * @param {*} row
265 * @author: renchao
266 */
267 editClick (index, row) {
268 this.details = row
269 this.details.gyfs = this.gyfs
270 this.dataIndex = index
271 this.dialog = true
272
273
274 this.isaddupdate = false
275 },
276 /**
277 * @description: queryViewClick
278 * @param {*} index
279 * @param {*} row
280 * @author: renchao
281 */
282 queryViewClick (index, row) {
283 this.details = row
284 this.dialog = true
285 }
286 }
287 }
288 </script>
289 <style scoped lang="scss">
290 /deep/.el-table--small .el-table__cell {
291 padding: 0 0 !important;
292 }
293 /deep/.el-table th {
294 height: 30px !important;
295 }
296 /deep/.el-table .cell {
297 padding-right: 12px;
298 }
299 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 v-Loading="loading"
7 :label-position="flag ? 'top' : ''"
8 :inline="flag"
9 ref="ruleForm"
10 label-width="140px">
11 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
12 <div class="slxx_title title-block">
13 申请业务信息
14 <div class="triangle"></div>
15 </div>
16 <el-row :gutter="10" v-if="ruleForm.flow">
17 <el-col :span="8">
18 <el-form-item label="业务号:">
19 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="8">
23 <el-form-item label="受理人员:">
24 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理时间:">
29 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
30 </el-form-item>
31 </el-col>
32 </el-row>
33 <el-row :gutter="10" v-if="ruleForm.sldyList">
34 <el-col :span="8">
35 <el-form-item label="权利类型:">
36 <el-input
37 disabled
38 v-model="ruleForm.sldyList[0].qllxmc"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item label="登记类型:">
43 <el-input
44 disabled
45 v-model="ruleForm.sldyList[0].djlxmc"></el-input>
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item label="登记情形:">
50 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
51 </el-form-item>
52 </el-col>
53 </el-row>
54
55 <div
56 class="slxx_title title-block"
57 v-if="ruleForm.slsq.djywbm.includes('400')">
58 在抵押权信息列表({{ ruleForm.diyaqDetailList.length }} 个)
59 <div class="triangle"></div>
60 <dyaqTable :tableData="ruleForm.diyaqDetailList" />
61 </div>
62 <div
63 class="slxx_title title-block"
64 v-else>
65 抵押不动产列表信息({{ ruleForm.ztQlxxList.length }} 个)
66 <div class="triangle"></div>
67 <qlxxTable :tableData="ruleForm.ztQlxxList" />
68 </div>
69 <div class="slxx_title title-block" v-if="!ruleForm.slsq.djywbm.includes('400')">
70 抵押信息
71 <div class="triangle"></div>
72 </div>
73 <el-row
74 :gutter="10"
75 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
76 <el-col :span="8">
77 <el-form-item label="抵押方式:">
78 <el-radio-group disabled v-model="ruleForm.diyaqList[0].dyfs">
79 <el-radio label="1">一般抵押</el-radio>
80 <el-radio label="2">最高额抵押</el-radio>
81 </el-radio-group>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="抵押金额类型:">
86 <el-radio-group
87 v-model="ruleForm.diyaqList[0].dyjelx"
88 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
89 <el-radio label="0">独立抵押</el-radio>
90 <el-radio label="1">整体抵押</el-radio>
91 </el-radio-group>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item
96 label="是否存在禁止或者限制转让抵押不动产的约定:"
97 label-width="300px">
98 <el-radio-group
99 v-model="ruleForm.diyaqList[0].sfczjzhxz"
100 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
101 <el-radio label="1">启用</el-radio>
102 <el-radio label="0">禁用</el-radio>
103 </el-radio-group>
104 </el-form-item>
105 </el-col>
106 </el-row>
107 <el-row
108 :gutter="10"
109 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
110 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 1">
111 <el-form-item label="被担保主债权数额:">
112 <div style="display: flex">
113 <el-input
114 v-model="ruleForm.diyaqList[0].bdbzzqse"
115 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
116 <el-select
117 style="width: 68px"
118 v-model="ruleForm.diyaqList[0].jedw"
119 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
120 <el-option
121 v-for="item in dictData['A57']"
122 :key="item.dcode"
123 :label="item.dname"
124 :value="item.dcode">
125 </el-option>
126 </el-select>
127 </div>
128 </el-form-item>
129 </el-col>
130
131 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 2">
132 <el-form-item label="最高债权额:">
133 <el-input
134 v-model="ruleForm.diyaqList[0].zgzqse"
135 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
136 <el-select
137 v-model="ruleForm.diyaqList[0].jedw"
138 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
139 <el-option
140 v-for="item in dictData['A57']"
141 :key="item.dcode"
142 :label="item.dname"
143 :value="item.dcode">
144 </el-option>
145 </el-select>
146 </el-form-item>
147 </el-col>
148
149 <el-col :span="8">
150 <el-form-item label="债务履行起始时间:">
151 <el-date-picker
152 v-model="ruleForm.diyaqList[0].zwlxqssj"
153 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
154 type="date">
155 </el-date-picker>
156 </el-form-item>
157 </el-col>
158 <el-col :span="8">
159 <el-form-item label="债务履行结束时间:">
160 <el-date-picker
161 v-model="ruleForm.diyaqList[0].zwlxjssj"
162 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
163 type="date">
164 </el-date-picker>
165 </el-form-item>
166 </el-col>
167 </el-row>
168 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
169 <el-col :span="24">
170 <el-form-item label="担保范围:">
171 <el-input
172 v-model="ruleForm.diyaqList[0].dbfw"
173 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
174 </el-form-item>
175 </el-col>
176 </el-row>
177 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
178 <el-col :span="24">
179 <el-form-item label="最高债权确定事实和数额:">
180 <el-input
181 v-model="ruleForm.diyaqList[0].zgzqqdss"
182 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
183 </el-form-item>
184 </el-col>
185 </el-row>
186 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
187 <el-col>
188 <el-form-item label="附记:" prop="fj">
189 <el-input
190 type="textarea"
191 maxlength="500"
192 show-word-limit
193 v-model="ruleForm.diyaqList[0].fj"
194 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
195 </el-form-item>
196 </el-col>
197 </el-row>
198
199 <div class="slxx_title title-block">
200 抵押权人信息
201 <div class="triangle"></div>
202 </div>
203 <el-row
204 :gutter="10"
205 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0">
206 <el-col :span="14">
207 <el-form-item label="共有方式:">
208 <el-radio-group
209 :disabled="!viewEdit"
210 v-model="ruleForm.sldyList[0].gyfs">
211 <el-radio label="0">单独所有</el-radio>
212 <el-radio label="1">共同共有</el-radio>
213 <el-radio label="2">按份所有</el-radio>
214 <el-radio label="3">其它共有</el-radio>
215 </el-radio-group>
216 </el-form-item>
217 </el-col>
218 <el-col :span="5" v-show="ruleForm.sldyList[0].gyfs != '0'">
219 <el-form-item label="是否分别持证:">
220 <el-radio-group
221 v-model="ruleForm.sldyList[0].sqfbcz"
222 :disabled="!viewEdit"
223 @input="updaterow()">
224 <el-radio :label="1"></el-radio>
225 <el-radio :label="0"></el-radio>
226 </el-radio-group>
227 </el-form-item>
228 </el-col>
229 <el-col
230 :span="5"
231 v-show="
232 ruleForm.sldyList[0].gyfs != '0' &&
233 ruleForm.sldyList[0].sqfbcz == '0'
234 ">
235 <el-form-item label="持证人:">
236 <el-select
237 v-model="czr"
238 placeholder="持证人"
239 :disabled="!viewEdit">
240 <el-option
241 v-for="(item,index) in czrOptions"
242 :key="index"
243 :label="item.sqrmc"
244 :value="item.id">
245 </el-option>
246 </el-select>
247 </el-form-item>
248 </el-col>
249 </el-row>
250 <qlrCommonTable
251 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0"
252 :tableData="ruleForm.qlrList"
253 @upDateQlrxxList="upDateQlrxxList"
254 :disabled="viewEdit"
255 :gyfs="ruleForm.sldyList[0].gyfs" />
256 <div class="slxx_title title-block">
257 抵押人信息
258 <div class="triangle"></div>
259 </div>
260 <qlrCommonTable
261 :tableData="ruleForm.ywrList"
262 @upDateQlrxxList="upDateYwrxxList"
263 :disabled="viewEdit" />
264
265 <div class="slxx_title title-block">
266 登记原因
267 <div class="triangle"></div>
268 </div>
269 <el-row
270 :gutter="10"
271 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
272 <el-col>
273 <el-form-item
274 v-if="ruleForm.sldyList[0].djlx == '400'"
275 label="注销抵押原因:"
276 prop="djyy">
277 <el-input
278 class="textArea"
279 type="textarea"
280 :disabled="!viewEdit"
281 v-model="ruleForm.diyaqList[0].zxdyyy">
282 </el-input>
283 </el-form-item>
284 <el-form-item v-else label="登记原因:" prop="diyaqList[0].djyy">
285 <el-input
286 class="textArea"
287 type="textarea"
288 maxlength="500"
289 show-word-limit
290 :disabled="!viewEdit"
291 v-model="ruleForm.diyaqList[0].djyy">
292 </el-input>
293 </el-form-item>
294 </el-col>
295 </el-row>
296 </div>
297 <el-row class="btn" v-if="isSave">
298 <el-form-item>
299 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
300 </el-form-item>
301 </el-row>
302 </el-form>
303 </div>
304 </template>
305 <script>
306 import qlxxTable from "../commonTable/qlxxTable.vue";
307 import dyaqTable from "../commonTable/dyaqTable";
308 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
309 import { batchInit, saveBatchData } from "@/api/workflow/diyaqFlow.js";
310 import { mapGetters } from "vuex";
311 export default {
312 mounted () {
313 let that = this
314 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
315 this.propsParam = this.$attrs;
316 var formdata = new FormData();
317
318 this.loading = true
319 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
320 formdata.append("djlx", this.propsParam.djlx);
321 formdata.append("isEdit", this.viewEdit);
322 batchInit(formdata).then((res) => {
323 setTimeout(() => {
324 that.loading = false
325 }, 200)
326 if (res.code === 200 && res.result) {
327 this.ruleForm = res.result;
328 this.ruleForm.qlrList.forEach((item) => {
329 item.id = item.bsmSqr
330 if (item.sfczr == '1') {
331 that.czr = item.bsmSqr
332 }
333 })
334 that.czrOptions = that.ruleForm.qlrList;
335 that.isSave = that.viewEdit
336 } else {
337 that.isSave = false
338 that.$confirm(res.message, '提示', {
339 cancelButtonText: '取消',
340 showConfirmButton: false,
341 type: 'warning'
342 })
343 }
344 }).catch(() => {
345 this.loading = false
346 })
347 },
348 components: { qlrCommonTable, qlxxTable,dyaqTable },
349 computed: {
350 ...mapGetters(["dictData", "flag"]),
351 },
352 data () {
353 return {
354 isSave: true,
355 loading: false,
356 //表单是否可操作
357 viewEdit: true,
358 disabled: true,
359 czrOptions: [],
360 czr: "",
361 ruleForm: {},
362 //传递参数
363 propsParam: {},
364 rules: {
365 'diyaqList[0].djyy': [
366 { required: true, message: '请输入登记原因', trigger: 'blur' }
367 ]
368 },
369 tableData: [],
370 };
371 },
372 methods: {
373 /**
374 * @description: onSubmitClick
375 * @author: renchao
376 */
377 onSubmitClick () {
378 let that = this;
379 if (this.ruleForm.qlrList.length == 0) {
380 this.$message({
381 showClose: true,
382 message: "请确认抵押权人信息",
383 type: "error",
384 });
385 return false;
386 }
387 if (this.ruleForm.sldyList[0].gyfs == "0") {
388 if (this.ruleForm.qlrList.length > 1) {
389 this.$message({
390 showClose: true,
391 message: "共有方式:单独所有,抵押权人只能是一个人",
392 type: "error",
393 });
394 return false;
395 }
396 this.ruleForm.qlrList[0].sfczr = "1";
397 } else {
398 if (this.ruleForm.qlrList.length <= 1) {
399 this.$message({
400 showClose: true,
401 message:
402 "共有方式:共同所有,按份所有,其他所有,抵押权人必须是两个以上",
403 type: "error",
404 });
405 return false;
406 }
407 //是否分别持证
408 if (this.ruleForm.sldyList[0].sqfbcz == "1") {
409 //是
410 this.ruleForm.qlrList.forEach((item, index) => {
411 item.sfczr = "1"
412 })
413 } else {
414 if (that.czr === '') {
415 that.$message({
416 showClose: true,
417 message: "请选择持证人",
418 type: "error",
419 });
420 return false;
421 }
422 this.ruleForm.qlrList.forEach((item, index) => {
423 if (item.id == that.czr) {
424 item.sfczr = "1";
425 } else {
426 item.sfczr = "0";
427 }
428 });
429 }
430 }
431 this.$refs['ruleForm'].validate((valid) => {
432 if (valid) {
433 that.$store.dispatch("user/refreshPage", false);
434 saveBatchData(that.ruleForm, that.propsParam.djlx).then((res) => {
435 if (res.code === 200) {
436 that.$message({
437 showClose: true,
438 message: "保存成功!",
439 type: "success",
440 });
441 that.$store.dispatch("user/refreshPage", true);
442 } else {
443 that.$message({
444 showClose: true,
445 message: res.message,
446 type: "error",
447 });
448 }
449 })
450 } else {
451 that.$message({
452 showClose: true,
453 message: "请输入登记原因",
454 type: "error"
455 })
456 return false
457 }
458 })
459 },
460 /**
461 * @description: 是否持证人变化
462 * @param {*} val
463 * @author: renchao
464 */
465 updaterow () {
466 this.czr = "";
467 },
468 /**
469 * @description: 更新抵押权人信息
470 * @param {*} val
471 * @author: renchao
472 */
473 upDateQlrxxList (val) {
474 if (!_.isEqual(val, this.ruleForm.qlrList)) {
475 this.ruleForm.qlrList = _.cloneDeep(val);
476 this.czrOptions = this.ruleForm.qlrList;
477 }
478 this.num = 0
479 this.ruleForm.qlrList.forEach(item => {
480 if (item.id == this.czr) {
481 this.num++
482 }
483 })
484 if (this.num == 0) {
485 this.czr = ''
486 }
487 },
488 /**
489 * @description: 更新义务人信息
490 * @param {*} val
491 * @author: renchao
492 */
493 upDateYwrxxList (val) {
494 if (!_.isEqual(val, this.ruleForm.ywrList)) {
495 this.ruleForm.ywrList = _.cloneDeep(val);
496 }
497 }
498 }
499 }
500 </script>
501 <style scoped lang="scss">
502 @import "~@/styles/public.scss";
503 @import "~@/styles/slxx/slxx.scss";
504 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 09:38:51
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 v-Loading="loading"
13 ref="ruleForm"
14 :label-position="flag ? 'top' : ''"
15 :inline="flag"
16 label-width="180px">
17 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
18 <div class="slxx_title title-block">
19 申请业务信息
20 <div class="triangle"></div>
21 </div>
22 <el-row :gutter="10">
23 <el-col :span="8">
24 <el-form-item label="业务号:">
25 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理人员:">
30 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
31 </el-form-item>
32 </el-col>
33 <el-col :span="8">
34 <el-form-item label="受理时间:">
35 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row :gutter="10">
40 <el-col :span="8">
41 <el-form-item label="权利类型:" prop="qllx">
42 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记类型:" prop="djlx">
47 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 <el-col :span="8">
51 <el-form-item label="登记情形:" prop="djqx">
52 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
53 </el-form-item>
54 </el-col>
55 </el-row>
56 <div class="slxx_title title-block">
57 抵押不动产情况
58 <div class="triangle"></div>
59 </div>
60
61 <el-row :gutter="10">
62 <el-col :span="8">
63 <el-form-item label="权利人:">
64 <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
65 </el-form-item>
66 </el-col>
67 <el-col :span="8">
68 <el-form-item label="证件种类:">
69 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
70 </el-form-item>
71 </el-col>
72 <el-col :span="8">
73 <el-form-item label="证件号:">
74 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
75 </el-form-item>
76 </el-col>
77 </el-row>
78 <el-row :gutter="10">
79 <el-col :span="8">
80 <el-form-item label="权利类型:">
81 <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="不动产权证号:">
86 <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="坐落:">
91 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
92 </el-form-item>
93 </el-col>
94 </el-row>
95 <el-row :gutter="10">
96 <el-col :span="8">
97 <el-form-item label="不动产单元号:">
98 <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
99 </el-form-item>
100 </el-col>
101 <el-col :span="8">
102 <el-form-item label="权利性质:">
103 <el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
104 </el-form-item>
105 </el-col>
106 <el-col :span="8">
107 <el-form-item label="权利用途:">
108 <el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
109 </el-form-item>
110 </el-col>
111 </el-row>
112
113 <div class="slxx_title title-block">
114 抵押信息
115 <div class="triangle"></div>
116 </div>
117
118 <el-row :gutter="10">
119 <el-col :span="8">
120 <el-form-item label="原不动产证号:">
121 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
122 </el-form-item>
123 </el-col>
124 <el-col :span="8">
125 <el-form-item label="抵押方式:">
126 <el-radio-group disabled v-model="ruleForm.diyaq.dyfs">
127 <el-radio label="1">一般抵押权</el-radio>
128 <el-radio label="2">最高额抵押权</el-radio>
129 </el-radio-group>
130 </el-form-item>
131 </el-col>
132 <el-col :span="8">
133 <el-form-item label="抵押面积:">
134 <div class="flex">
135 <el-input
136 maxlength="12"
137 v-model="ruleForm.diyaq.dymj"
138 disabled></el-input>
139 <el-select disabled v-model="ruleForm.diyaq.mjdw" style="width: 68px">
140 <el-option
141 v-for="item in dictData['A7']"
142 :key="item.dcode"
143 :label="item.dname"
144 :value="item.dcode">
145 </el-option>
146 </el-select>
147 </div>
148 </el-form-item>
149 </el-col>
150 </el-row>
151 <el-row :gutter="10">
152 <el-col :span="8">
153 <el-form-item
154 label="是否禁止或者限制转让的约定:"
155 label-width="200px">
156 <el-radio-group
157 v-model="ruleForm.diyaq.sfczjzhxz"
158 :disabled="!viewEdit || isJfOperation">
159 <el-radio label="1"></el-radio>
160 <el-radio label="0"></el-radio>
161 </el-radio-group>
162 </el-form-item>
163 </el-col>
164 <el-col :span="8">
165 <el-form-item
166 label="是否预告登记:">
167 <el-radio-group v-model="ruleForm.diyaq.sfygdj" disabled>
168 <el-radio label="1"></el-radio>
169 <el-radio label="0"></el-radio>
170 </el-radio-group>
171 </el-form-item>
172 </el-col>
173 <el-col :span="8">
174 <el-form-item label="债务履行期限:">
175 <el-input
176 v-model="ruleForm.diyaq.dyqx"
177 :disabled="!viewEdit || isJfOperation"></el-input>
178 </el-form-item>
179 </el-col>
180 </el-row>
181
182 <el-row :gutter="10">
183 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
184 <el-form-item label="被担保主债权数额:">
185 <div style="display: flex">
186 <el-input
187 v-model="ruleForm.diyaq.bdbzzqse"
188 :disabled="!viewEdit || isJfOperation"
189 style="width: 500%"></el-input>
190 <el-select
191 v-model="ruleForm.diyaq.jedw"
192 :disabled="!viewEdit || isJfOperation">
193 <el-option
194 v-for="item in dictData['A57']"
195 :key="item.dcode"
196 :label="item.dname"
197 :value="item.dcode">
198 </el-option>
199 </el-select>
200 </div>
201 </el-form-item>
202 </el-col>
203
204 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
205 <el-form-item label="最高债权额:">
206 <el-input
207 v-model="ruleForm.diyaq.zgzqse"
208 :disabled="!viewEdit || isJfOperation"></el-input>
209 </el-form-item>
210 </el-col>
211
212 <el-col :span="8">
213 <el-form-item label="债务履行起始时间:">
214 <el-date-picker
215 v-model="ruleForm.diyaq.zwlxqssj"
216 :disabled="!viewEdit || isJfOperation"
217 type="date">
218 </el-date-picker>
219 </el-form-item>
220 </el-col>
221 <el-col :span="8">
222 <el-form-item label="债务履行结束时间:">
223 <el-date-picker class="width100"
224 v-model="ruleForm.diyaq.zwlxjssj"
225 :disabled="!viewEdit || isJfOperation"
226 type="date">
227 </el-date-picker>
228 </el-form-item>
229 </el-col>
230 </el-row>
231 <el-row>
232 <el-col :span="24">
233 <el-form-item label="担保范围:">
234 <el-input
235 v-model="ruleForm.diyaq.dbfw"
236 :disabled="
237 (ruleForm.sldy.djlx == '300' || !viewEdit) || isJfOperation
238 "></el-input>
239 </el-form-item>
240 </el-col>
241 </el-row>
242 <el-row>
243 <el-col :span="24">
244 <el-form-item label="最高债权确定事实和数额:">
245 <el-input
246 v-model="ruleForm.diyaq.zgzqqdss"
247 :disabled="!viewEdit || isJfOperation"></el-input>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <el-row>
252 <el-col>
253 <el-form-item label="附记:" prop="fj">
254 <el-input
255 type="textarea"
256 maxlength="500"
257 show-word-limit
258 v-model="ruleForm.diyaq.fj"
259 :disabled="!viewEdit || isJfOperation"></el-input>
260 </el-form-item>
261 </el-col>
262 </el-row>
263
264 <div class="slxx_title title-block">
265 抵押权人信息
266 <div class="triangle"></div>
267 </div>
268 <el-row :gutter="10">
269 <el-col :span="12">
270 <el-form-item label="共有方式:">
271 <el-radio-group
272 :disabled="!viewEdit"
273 v-model="ruleForm.sldy.gyfs">
274 <el-radio label="0">单独所有</el-radio>
275 <el-radio label="1">共同共有</el-radio>
276 <el-radio label="2">按份所有</el-radio>
277 <el-radio label="3">其它共有</el-radio>
278 </el-radio-group>
279 </el-form-item>
280 </el-col>
281 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
282 <el-form-item label="是否分别持证:">
283 <el-radio-group
284 v-model="ruleForm.sldy.sqfbcz"
285 :disabled="!viewEdit"
286 @input="updaterow()">
287 <el-radio :label="1"></el-radio>
288 <el-radio :label="0"></el-radio>
289 </el-radio-group>
290 </el-form-item>
291 </el-col>
292 <el-col
293 :span="6"
294 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
295 <el-form-item label="持证人:">
296 <el-select
297 v-model="czr"
298 placeholder="持证人"
299 :disabled="!viewEdit">
300 <el-option
301 v-for="(item,index) in czrOptions"
302 :key="index"
303 :label="item.sqrmc"
304 :value="item.id">
305 </el-option>
306 </el-select>
307 </el-form-item>
308 </el-col>
309 </el-row>
310 <qlrCommonTable
311 :tableData="ruleForm.qlrList"
312 :disabled="viewEdit"
313 @upDateQlrxxList="upDateQlrxxList"
314 :gyfs="ruleForm.sldy.gyfs" />
315 <div class="slxx_title title-block">
316 抵押人信息
317 <div class="triangle"></div>
318 </div>
319 <qlrCommonTable
320 :tableData="ruleForm.ywrList"
321 :disabled="viewEdit"
322 @upDateQlrxxList="upDateYwrxxList" />
323
324 <div class="slxx_title title-block">
325 登记原因
326 <div class="triangle"></div>
327 </div>
328 <el-row :gutter="10">
329 <el-col>
330 <el-form-item
331 v-if="ruleForm.sldy.djlx == '400'"
332 label="注销抵押原因:"
333 prop="djyy">
334 <el-input
335 class="textArea"
336 type="textarea"
337 :disabled="!viewEdit"
338 v-model="ruleForm.diyaq.zxdyyy">
339 </el-input>
340 </el-form-item>
341 <el-form-item v-else label="登记原因:" prop="diyaq.djyy">
342 <el-input
343 class="textArea"
344 type="textarea"
345 maxlength="500"
346 show-word-limit
347 :disabled="!viewEdit"
348 v-model="ruleForm.diyaq.djyy">
349 </el-input>
350 </el-form-item>
351 </el-col>
352 </el-row>
353 </div>
354 <el-row class="btn" v-if="viewEdit">
355 <el-form-item>
356 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
357 </el-form-item>
358 </el-row>
359 </el-form>
360 </div>
361 </template>
362 <script>
363 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
364 import { Init, saveData } from "@/api/workflow/diyaqFlow.js";
365 import { mapGetters } from "vuex";
366 export default {
367 mounted () {
368 let that = this
369 this.loading = true
370 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
371 this.propsParam = this.$attrs;
372 var formdata = new FormData();
373 if (this.propsParam.djlx == "400") {
374 this.isJfOperation = true;
375 }
376 formdata.append("bsmSldy", this.propsParam.bsmSldy);
377 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
378 formdata.append("djlx", this.propsParam.djlx);
379 formdata.append("isEdit", this.viewEdit);
380 Init(formdata).then((res) => {
381 setTimeout(() => {
382 this.loading = false
383 }, 200)
384 if (res.code === 200 && res.result) {
385 that.ruleForm = res.result;
386 that.ruleForm.qlrList.forEach((item) => {
387 item.id = item.bsmSqr
388 if (item.sfczr == '1') {
389 that.czr = item.bsmSqr
390 }
391 })
392 that.czrOptions = this.ruleForm.qlrList;
393 that.isSave = that.viewEdit
394 } else {
395 that.isSave = false
396 that.$confirm(res.message, '提示', {
397 cancelButtonText: '取消',
398 showConfirmButton: false,
399 type: 'warning'
400 })
401 }
402 }).catch(() => {
403 this.loading = false
404 })
405 },
406 components: { qlrCommonTable },
407 computed: {
408 ...mapGetters(["dictData", "flag"]),
409 },
410 data () {
411 return {
412 isSave: true,
413 // 键名转换,方法默认是label和children进行树状渲染
414 normalizer (node) {
415 //方法
416 if (node.children == null || node.children == "null") {
417 delete node.children;
418 }
419 return {
420 id: node.dcode,
421 label: node.dname,
422 };
423 },
424 loading: false,
425 //表单是否可操作
426 viewEdit: true,
427 disabled: true,
428 czrOptions: [],
429 czr: "",
430 ruleForm: {
431 slsq: {},
432 ssQlxx: {},
433 diyaq: {},
434 gyfs: "",
435 },
436 isJfOperation: false,
437 //传递参数
438 propsParam: {},
439 rules: {
440 'diyaq.djyy': [
441 { required: true, message: '请输入登记原因', trigger: 'blur' }
442 ]
443 }
444 }
445 },
446 methods: {
447 /**
448 * @description: onSubmitClick
449 * @author: renchao
450 */
451 onSubmitClick () {
452 let that = this;
453 if (this.ruleForm.qlrList.length == 0) {
454 this.$message({
455 showClose: true,
456 message: "请确认抵押权人信息",
457 type: "error",
458 });
459 return false;
460 }
461 if (this.ruleForm.sldy.gyfs == "0") {
462 if (this.ruleForm.qlrList.length > 1) {
463 this.$message({
464 showClose: true,
465 message: "共有方式:单独所有,权利人只能是一个人",
466 type: "error",
467 });
468 return false;
469 }
470 this.ruleForm.qlrList[0].sfczr = "1";
471 } else {
472 if (this.ruleForm.qlrList.length <= 1) {
473 this.$message({
474 showClose: true,
475 message:
476 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
477 type: "error",
478 });
479 return false;
480 }
481 //是否分别持证
482 if (this.ruleForm.sldy.sqfbcz == "1") {
483 //是
484 this.ruleForm.qlrList.forEach((item, index) => {
485 item.sfczr = "1";
486 });
487 } else {
488 if (that.czr === '') {
489 that.$message({
490 showClose: true,
491 message: "请选择持证人",
492 type: "error"
493 });
494 return false;
495 }
496 this.ruleForm.qlrList.forEach((item, index) => {
497 if (item.id == that.czr) {
498 item.sfczr = "1"
499 } else {
500 item.sfczr = "0"
501 }
502 })
503 }
504 }
505
506 this.$refs['ruleForm'].validate((valid) => {
507 if (valid) {
508 that.$store.dispatch("user/refreshPage", false);
509 saveData(that.ruleForm, that.propsParam.djlx).then((res) => {
510 if (res.code === 200) {
511 that.$message({
512 showClose: true,
513 message: "保存成功!",
514 type: "success",
515 });
516 that.$store.dispatch("user/refreshPage", true);
517 } else {
518 that.$message({
519 showClose: true,
520 message: res.message,
521 type: "error",
522 });
523 }
524 })
525
526 } else {
527 this.$message({
528 showClose: true,
529 message: "请输入登记原因",
530 type: "error"
531 })
532 return false
533 }
534 })
535 },
536 /**
537 * @description: 更新权利人信息
538 * @param {*} val
539 * @author: renchao
540 */
541 upDateQlrxxList (val) {
542 if (!_.isEqual(val, this.ruleForm.qlrList)) {
543 this.ruleForm.qlrList = _.cloneDeep(val);
544 this.czrOptions = this.ruleForm.qlrList;
545 }
546 this.num = 0
547 this.ruleForm.qlrList.forEach(item => {
548 if (item.id == this.czr) {
549 this.num++
550 }
551 })
552 if (this.num == 0) {
553 this.czr = ''
554 }
555
556 },
557 /**
558 * @description: 是否持证人变化
559 * @author: renchao
560 */
561 updaterow () {
562 this.czr = "";
563 },
564 /**
565 * @description: 更新义务人信息
566 * @param {*} val
567 * @author: renchao
568 */
569 upDateYwrxxList (val) {
570 if (!_.isEqual(val, this.ruleForm.ywrList)) {
571 this.ruleForm.ywrList = _.cloneDeep(val);
572 }
573 },
574 },
575 };
576 </script>
577 <style scoped lang="scss">
578 @import "~@/styles/public.scss";
579 @import "~@/styles/slxx/slxx.scss";
580 </style>
1 <!--
2 * @Description: 房屋多幢受理信息
3 * @Autor: ssq
4 * @LastEditTime: 2024-01-31 10:11:41
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 :label-position="flag ? 'top' : ''"
13 :inline="flag"
14 v-Loading="loading"
15 label-width="120px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="原不动产权证号:">
74 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="8">
78 <el-form-item label="不动产单元号:">
79 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
80 </el-form-item>
81 </el-col>
82 <el-col :span="8">
83 <el-form-item label="坐落:">
84 <el-input maxlength="100" disabled v-model="ruleForm.sldy.zl"></el-input>
85 </el-form-item>
86 </el-col>
87 </el-row>
88 <el-row :gutter="10" v-if="ruleForm.fdcq1">
89 <el-col :span="8">
90 <el-form-item label="宗地面积:">
91 <div class="flex">
92 <el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
93 <el-select
94 disabled
95 v-model="ruleForm.zdjbxx.mjdw"
96 style="width: 20%">
97 <el-option
98 v-for="item in dictData['A7']"
99 :key="item.dcode"
100 :label="item.dname"
101 :value="item.dcode"></el-option>
102 </el-select>
103 </div>
104 </el-form-item>
105 </el-col>
106 <el-col :span="8">
107 <el-form-item label="土地性质:">
108 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
109 </el-form-item>
110 </el-col>
111 <el-col :span="8">
112 <el-form-item label="土地使用权人:">
113 <el-input disabled v-model="ruleForm.fdcq1.tdsyqr"></el-input>
114 </el-form-item>
115 </el-col>
116 </el-row>
117 <el-row :gutter="10" v-if="ruleForm.fdcq1">
118 <el-col :span="8">
119 <el-form-item label="独用土地面积:">
120 <div class="flex">
121 <el-input
122 maxlength="12"
123 v-model="ruleForm.fdcq1.dytdmj"
124 :disabled="!viewEdit"
125 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
126 <el-select disabled v-model="mjdw" style="width: 68px">
127 <el-option
128 v-for="item in dictData['A7']"
129 :key="item.dcode"
130 :label="item.dname"
131 :value="item.dcode">
132 </el-option>
133 </el-select>
134 </div>
135 </el-form-item>
136 </el-col>
137 <el-col :span="8">
138 <el-form-item label="分摊土地面积:">
139 <div class="flex">
140 <el-input
141 maxlength="12"
142 v-model="ruleForm.fdcq1.fttdmj"
143 :disabled="!viewEdit"
144 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
145 <el-select disabled v-model="mjdw" style="width: 68px">
146 <el-option
147 v-for="item in dictData['A7']"
148 :key="item.dcode"
149 :label="item.dname"
150 :value="item.dcode">
151 </el-option>
152 </el-select>
153 </div>
154 </el-form-item>
155 </el-col>
156 <el-col :span="8">
157
158 <el-form-item label="房地产交易价格:">
159 <div class="flex">
160 <el-input
161 maxlength="11"
162 :disabled="!viewEdit"
163 v-model="ruleForm.fdcq1.fdcjyjg"
164 style="width: 500%"
165 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
166 <el-select :disabled="!viewEdit" v-model="ruleForm.fdcq1.jedw">
167 <el-option
168 v-for="item in dictData['A57']"
169 :key="item.dcode"
170 :label="item.dname"
171 :value="item.dcode"></el-option>
172 </el-select>
173 </div>
174 </el-form-item>
175 </el-col>
176 </el-row>
177 <el-row :gutter="10">
178 <el-col :span="24">
179 <el-form-item label="附记:">
180 <el-input
181 :disabled="!viewEdit"
182 v-model="ruleForm.fdcq1.fj"
183 type="textarea"
184 maxlength="500"
185 show-word-limit></el-input>
186 </el-form-item>
187 </el-col>
188 </el-row>
189 <div class="slxx_title title-block">
190 房屋多幢明细
191 <div class="triangle"></div>
192 <fdcqxmTable
193 :ableOperation="viewEdit"
194 :tableData="ruleForm.fdcqxm"
195 @updateFdcwxmList="updateFdcwxmList" />
196 <div class="slxx_title title-block">
197 土地用途
198 <div class="triangle"></div>
199 </div>
200 <tdytTable
201 :ableOperation="viewEdit"
202 :tableData="ruleForm.tdytqxList"
203 @upDateTdytxxList="upDateTdytxxList" />
204 <div class="slxx_title title-block">
205 权利人信息
206 <div class="triangle"></div>
207 </div>
208 <el-row :gutter="10">
209 <el-col :span="14" v-if="ruleForm.qlxx">
210 <el-form-item label="共有方式:">
211 <el-radio-group
212 :disabled="!viewEdit"
213 v-model="ruleForm.sldy.gyfs">
214 <el-radio label="0">单独所有</el-radio>
215 <el-radio label="1">共同共有</el-radio>
216 <el-radio label="2">按份所有</el-radio>
217 <el-radio label="3">其它共有</el-radio>
218 </el-radio-group>
219 </el-form-item>
220 </el-col>
221 <el-col :span="5" v-show="ruleForm.sldy.gyfs != '0'">
222 <el-form-item label="是否分别持证:">
223 <el-radio-group
224 v-model="ruleForm.sldy.sqfbcz"
225 :disabled="!viewEdit"
226 @input="updaterow()">
227 <el-radio :label="1"></el-radio>
228 <el-radio :label="0"></el-radio>
229 </el-radio-group>
230 </el-form-item>
231 </el-col>
232 <el-col
233 :span="5"
234 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
235 <el-form-item label="持证人:">
236 <el-select
237 v-model="czr"
238 placeholder="持证人"
239 :disabled="!viewEdit">
240 <el-option
241 v-for="(item,index) in czrOptions"
242 :key="index"
243 :label="item.sqrmc"
244 :value="item.id"></el-option>
245 </el-select>
246 </el-form-item>
247 </el-col>
248 </el-row>
249 <qlrCommonTable
250 @upDateQlrxxList="upDateQlrxxList"
251 :disabled="viewEdit"
252 :tableData="ruleForm.qlrList"
253 :gyfs="ruleForm.sldy.gyfs" />
254
255 <div v-if="ruleForm.qlxx.djlx == '200'">
256 <div class="slxx_title title-block">
257 义务人信息
258 <div class="triangle"></div>
259 </div>
260 <ywrCommonTable
261 v-if="ruleForm.qlxx"
262 :disabled="viewEdit"
263 @upDateQlrxxList="upDateYwrxxList"
264 :tableData="ruleForm.ywrList"
265 :gyfs="ruleForm.qlxx.gyfs" />
266
267 </div>
268 <div class="slxx_title title-block">
269 登记原因
270 <div class="triangle"></div>
271 </div>
272 <el-row :gutter="10">
273 <el-col>
274 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="fdcq1.djyy">
275 <el-input
276 class="textArea"
277 type="textarea"
278 maxlength="500"
279 show-word-limit
280 :disabled="!viewEdit"
281 v-model="ruleForm.fdcq1.djyy"></el-input>
282 </el-form-item>
283 </el-col>
284 </el-row>
285 </div>
286 </div>
287 <el-row class="btn" v-if="isSave">
288 <el-form-item>
289 <el-button type="primary" @click="onSubmit">保存</el-button>
290 </el-form-item>
291 </el-row>
292 </el-form>
293 </div>
294 </template>
295 <script>
296 import ywmix from "@/views/ywbl/mixin/index";
297 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
298 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
299 import fdcqxmTable from "../commonTable/fdcqxmTable";
300 import tdytTable from "@/views/workflow/components/tdytTable";
301 import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
302 import { mapGetters } from "vuex";
303 export default {
304 mixins: [ywmix],
305 mounted () {
306 let that = this
307 this.loading = true
308 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
309 this.propsParam = this.$attrs;
310 var formdata = new FormData();
311 formdata.append("bsmSldy", this.propsParam.bsmSldy);
312 formdata.append("djlx", this.propsParam.djlx);
313 formdata.append("isEdit", this.viewEdit);
314 Init(formdata).then((res) => {
315 setTimeout(() => {
316 this.loading = false
317 }, 200)
318 if (res.code === 200 && res.result) {
319 that.ruleForm = {
320 ...res.result,
321 ...res.result.qlxxdatas,
322 };
323 that.ruleForm.qlrList.forEach((item) => {
324 item.id = item.bsmSqr
325 if (item.sfczr == '1') {
326 that.czr = item.bsmSqr
327 }
328 });
329 that.czrOptions = that.ruleForm.qlrList;
330 that.isSave = this.viewEdit
331 } else {
332 that.isSave = false
333 that.$confirm(res.message, '提示', {
334 cancelButtonText: '取消',
335 showConfirmButton: false,
336 type: 'warning'
337 })
338 }
339 }).catch(() => {
340 this.loading = false
341 })
342 },
343 components: { qlrCommonTable, tdytTable, fdcqxmTable, ywrCommonTable },
344 computed: {
345 ...mapGetters(["dictData", "flag"]),
346 },
347 data () {
348 return {
349 isSave: true,
350 loading: false,
351 disabled: true,
352 tdytOption: [],
353 czrOptions: [],
354 mjdw: "1",
355 czr: "",
356 ruleForm: {
357 flow: {
358 ywh: "",
359 },
360 qlxx: {
361 mj: "",
362 },
363 sldy: {
364 gyfs: "",
365 },
366 slsq: {},
367 fdcq1: {
368 zyjzmj: "",
369 ftjzmj: "",
370 },
371 zdjbxx: {
372 ghytmc: "",
373 },
374 },
375 //传递参数
376 propsParam: this.$attrs,
377 //表单是否可操作
378 viewEdit: false,
379 rules: {
380 'fdcq1.djyy': [
381 { required: true, message: '请输入登记原因', trigger: 'blur' }
382 ]
383 }
384 }
385 },
386 methods: {
387 /**
388 * @description: updateFdcwxmList
389 * @author: renchao
390 */
391 updateFdcwxmList (val) {
392 this.ruleForm.fdcqxm && (this.ruleForm.fdcqxm = _.cloneDeep(val));
393 this.key++;
394 },
395 /**
396 * @description: 更新土地用途信息
397 * @param {*} val
398 * @author: renchao
399 */
400 upDateTdytxxList (val) {
401 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
402 this.key++;
403 },
404 /**
405 * @description: 更新权利人信息
406 * @param {*} val
407 * @author: renchao
408 */
409 upDateQlrxxList (val) {
410 if (!_.isEqual(val, this.ruleForm.qlrList)) {
411 this.ruleForm.qlrList = _.cloneDeep(val);
412 this.czrOptions = this.ruleForm.qlrList;
413 }
414 this.num = 0
415 this.ruleForm.qlrList.forEach(item => {
416 if (item.id == this.czr) {
417 this.num++
418 }
419 })
420 if (this.num == 0) {
421 this.czr = ''
422 }
423 },
424 /**
425 * @description: 是否持证人变化
426 * @param {*} val
427 * @author: renchao
428 */
429 updaterow () {
430 this.czr = "";
431 },
432 /**
433 * @description: 更新权利人信息
434 * @param {*} val
435 * @author: renchao
436 */
437 upDateYwrxxList (val) {
438 this.ruleForm.ywrList = _.cloneDeep(val);
439 },
440 /**
441 * @description: onSubmit
442 * @author: renchao
443 */
444 onSubmit () {
445 let that = this;
446 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
447
448 let jzmjArr = this.ruleForm.fdcqxm.filter((item) => {
449 return item.jzmj && item.jzmj !== '';
450 });
451 if (jzmjArr.length < this.ruleForm.fdcqxm.length) {
452 this.$message({
453 showClose: true,
454 message: "请检查房屋多幢明细建筑面积",
455 type: "error",
456 });
457 return false;
458 }
459 if (arr.length > 0) {
460 this.$message({
461 showClose: true,
462 message: "土地用途不能为空",
463 type: "error",
464 });
465 return false;
466 }
467 if (this.ruleForm.qlrList.length == 0) {
468 this.$message({
469 showClose: true,
470 message: "请确认权利人信息",
471 type: "error",
472 });
473 return false;
474 }
475 if (this.ruleForm.sldy.gyfs == "0") {
476 if (this.ruleForm.qlrList.length > 1) {
477 this.$message({
478 showClose: true,
479 message: "共有方式:单独所有,权利人只能是一个人",
480 type: "error",
481 });
482 return false;
483 }
484 this.ruleForm.qlrList[0].sfczr = "1";
485 } else {
486 if (this.ruleForm.qlrList.length <= 1) {
487 this.$message({
488 showClose: true,
489 message:
490 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
491 type: "error",
492 });
493 return false;
494 }
495 //是否分别持证
496 if (this.ruleForm.sldy.sqfbcz == "1") {
497 //是
498 this.ruleForm.qlrList.forEach((item, index) => {
499 item.sfczr = "1";
500 });
501 } else {
502 if (that.czr === '') {
503 that.$message({
504 showClose: true,
505 message: "请选择持证人",
506 type: "error",
507 });
508 return false;
509 }
510 this.ruleForm.qlrList.forEach(item => {
511 if (item.id == that.czr) {
512 item.sfczr = "1"
513 } else {
514 item.sfczr = "0"
515 }
516 })
517 }
518 }
519
520 this.$refs['ruleForm'].validate((valid) => {
521 if (valid) {
522 that.$store.dispatch("user/refreshPage", false);
523 saveData(this.ruleForm).then((res) => {
524 if (res.code === 200) {
525 this.$message({
526 showClose: true,
527 message: "保存成功!",
528 type: "success",
529 });
530 that.$store.dispatch("user/refreshPage", true);
531 } else {
532 that.$message({
533 showClose: true,
534 message: res.message,
535 type: "error"
536 })
537 }
538 })
539 } else {
540 that.$message({
541 showClose: true,
542 message: "请输入登记原因",
543 type: "error"
544 })
545 return false
546 }
547 })
548 }
549 }
550 }
551 </script>
552 <style scoped lang="scss">
553 @import "~@/styles/public.scss";
554 @import "~@/styles/slxx/slxx.scss";
555 </style>
1 <!--
2 * @Description: 受理信息
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-24 09:30:19
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 v-Loading="loading"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="130px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8" v-if="ruleForm.sldyList.length > 0">
40 <el-form-item label="权利类型:">
41 <el-input
42 disabled
43 v-model="ruleForm.sldyList[0].qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8" v-if="ruleForm.sldyList.length > 0">
47 <el-form-item label="登记类型:">
48 <el-input
49 disabled
50 v-model="ruleForm.sldyList[0].djlxmc"></el-input>
51 </el-form-item>
52 </el-col>
53 <el-col :span="8">
54 <el-form-item label="登记情形:">
55 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
56 </el-form-item>
57 </el-col>
58 </el-row>
59 <div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('100')">
60 <el-row>
61 <el-col :span="19">
62 <p>房屋信息列表({{ ruleForm.hlist.length }} 户)</p>
63 </el-col>
64 <el-col :span="5">
65 <el-form-item label="发证方式:" :disabled="!viewEdit">
66 <el-radio-group v-model="ruleForm.slsq.fzfs">
67 <el-radio label="2">大证</el-radio>
68 <el-radio label="1">小证</el-radio>
69 </el-radio-group>
70 </el-form-item>
71 </el-col>
72 <!-- <div class="triangle"></div> -->
73 </el-row>
74 </div>
75 <qjhTable :tableData="ruleForm.hlist" v-if="ruleForm.slsq.djywbm.includes('100')"/>
76 <qlxxTable :tableData="ruleForm.qlxxList" v-if="ruleForm.slsq.djywbm.includes('400')"/>
77 <div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('100')">
78 权利人信息
79 <div class="triangle"></div>
80 </div>
81 <el-row :gutter="10" v-if="ruleForm.slsq.djywbm.includes('100')">
82 <el-col :span="12" v-if="ruleForm.sldyList.length > 0">
83 <el-form-item label="共有方式:">
84 <el-radio-group
85 :disabled="!viewEdit"
86 v-model="ruleForm.sldyList[0].gyfs">
87 <el-radio label="0">单独所有</el-radio>
88 <el-radio label="1">共同共有</el-radio>
89 <el-radio label="2">按份所有</el-radio>
90 <el-radio label="3">其它共有</el-radio>
91 </el-radio-group>
92 </el-form-item>
93 </el-col>
94
95 <el-col :span="6" v-if="ruleForm.sldyList[0].gyfs != 0">
96 <el-form-item label="是否分别持证:">
97 <el-radio-group
98 v-model="ruleForm.sldyList[0].sqfbcz"
99 :disabled="!viewEdit"
100 @input="updaterow()">
101 <el-radio :label="1"></el-radio>
102 <el-radio :label="0"></el-radio>
103 </el-radio-group>
104 </el-form-item>
105 </el-col>
106 <el-col
107 :span="6"
108 v-if="
109 ruleForm.sldyList[0].gyfs != 0 &&
110 ruleForm.sldyList[0].sqfbcz == '0'
111 ">
112 <el-form-item label="持证人:">
113 <el-select
114 v-model="czr"
115 placeholder="持证人"
116 :disabled="!viewEdit">
117 <el-option
118 v-for="(item,index) in czrOptions"
119 :key="index"
120 :label="item.sqrmc"
121 :value="item.id"></el-option>
122 </el-select>
123 </el-form-item>
124 </el-col>
125 </el-row>
126 <qlrCommonTable
127 :disabled="viewEdit"
128 @upDateQlrxxList="upDateQlrxxList"
129 :tableData="ruleForm.qlrList"
130 :gyfs="ruleForm.sldyList[0].gyfs" v-if="ruleForm.slsq.djywbm.includes('100')" />
131 <div class="slxx_title title-block">
132 登记原因
133 <div class="triangle"></div>
134 </div>
135 <el-row :gutter="10">
136 <el-col v-if="ruleForm.fdcq2List.length > 0">
137 <el-form-item v-if="ruleForm.slsq" label="登记原因:" prop="djyy">
138 <el-input
139 class="textArea"
140 type="textarea"
141 maxlength="500"
142 show-word-limit
143 :disabled="!viewEdit"
144 v-model="ruleForm.fdcq2List[0].djyy">
145 </el-input>
146 </el-form-item>
147 </el-col>
148 </el-row>
149 </div>
150 <el-row class="btn" v-if="isSave">
151 <el-form-item>
152 <el-button type="primary" @click="onSubmit">保存</el-button>
153 </el-form-item>
154 </el-row>
155 </el-form>
156 </div>
157 </template>
158 <script>
159 import ywmix from "@/views/ywbl/mixin/index";
160 import qlxxTable from "../commonTable/qlxxTable.vue";
161 import qjhTable from "../commonTable/qjhTable.vue";
162 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
163 import {
164 BatchInit,
165 Init,
166 saveBatchData,
167 saveData,
168 } from "@/api/workflow/fwsyqFlow.js";
169 import { mapGetters } from "vuex";
170 export default {
171 mixins: [ywmix],
172 computed: {
173 ...mapGetters(["dictData", "flag"])
174 },
175 components: { qlrCommonTable, qlxxTable,qjhTable},
176 data () {
177 return {
178 isSave: true,
179 loading: false,
180 disabled: true,
181 tdytOption: [],
182 ruleForm: {
183 cfdjList: [], //查封登记
184 diyaqList: [], //抵押权
185 fdcq2List: [], //房屋信息集合
186 qlrList: [], //权利人
187 ywrList: [], //义务人
188 qlxxList: [], //权利信息集合
189 sldyList: [], //受理不动产单元集合
190 slsq: {}, //受理申请流程明细
191 flow: {}, //受理申请流程明细
192 sqrList: [], //申请人
193 ssQlxxList: [], //上手权利信息
194 user: {}, //用户
195 zdjbxx: {}, //宗地基本信息
196 },
197 czrOptions: [],
198 czr: "",
199 //传递参数
200 propsParam: this.$attrs,
201 //表单是否可操作
202 viewEdit: true,
203 rules: {},
204 gyfs: "",
205 bsmSlsq: this.$route.query.bsmSlsq, //受理申请标识码
206 };
207 },
208 mounted (callbackfn, thisArg) {
209 let that = this
210 this.loading = true
211 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
212 this.propsParam = this.$attrs;
213 var formdata = new FormData();
214 formdata.append("bsmSldy", this.propsParam.bsmSldy);
215 formdata.append("djlx", this.propsParam.djlx);
216 formdata.append("bsmSlsq", this.bsmSlsq);
217 formdata.append("isEdit", this.viewEdit);
218 BatchInit(formdata).then((res) => {
219 setTimeout(() => {
220 this.loading = false
221 }, 200)
222 if (res.code == 200) {
223 this.ruleForm = res.result;
224 this.czrOptions = this.ruleForm.qlrList;
225 this.gyfs = this.ruleForm.sldyList[0].gyfs;
226 this.ruleForm.qlrList.forEach((item) => {
227 item.id = item.bsmSqr
228 if (item.sfczr == '1') {
229 that.czr = item.bsmSqr
230 }
231 })
232 that.isSave = this.viewEdit
233
234 } else {
235 that.isSave = false
236 that.$confirm(res.message, '提示', {
237 cancelButtonText: '取消',
238 showConfirmButton: false,
239 type: 'warning'
240 })
241 }
242 }).catch(() => {
243 this.loading = false
244 })
245 },
246 methods: {
247 /**
248 * @description: 更新权利人信息
249 * @param {*} val
250 * @author: renchao
251 */
252 upDateQlrxxList (val) {
253 if (!_.isEqual(val, this.ruleForm.qlrList)) {
254 this.ruleForm.qlrList = _.cloneDeep(val);
255 this.czrOptions = this.ruleForm.qlrList;
256 }
257 this.num = 0
258 this.ruleForm.qlrList.forEach(item => {
259 if (item.id == this.czr) {
260 this.num++
261 }
262 })
263 if (this.num == 0) {
264 this.czr = ''
265 }
266 },
267 /**
268 * @description: 是否持证人变化
269 * @param {*} val
270 * @author: renchao
271 */
272 updaterow () {
273 this.czr = "";
274 },
275 // 更新义务人信息
276 /**
277 * @description: 更新义务人信息
278 * @param {*} val
279 * @author: renchao
280 */
281 upDateYwrxxList (val) {
282 this.ruleForm.ywrList = _.cloneDeep(val);
283 },
284 /**
285 * @description: onSubmit
286 * @author: renchao
287 */
288 onSubmit () {
289 let that = this;
290 if (this.ruleForm.qlrList.length == 0) {
291 this.$message({
292 showClose: true,
293 message: "请确认权利人信息",
294 type: "error",
295 });
296 return false;
297 }
298 if (this.ruleForm.sldyList[0].gyfs == "0") {
299 if (this.ruleForm.qlrList.length > 1) {
300 this.$message({
301 showClose: true,
302 message: "共有方式:单独所有,权利人只能是一个人",
303 type: "error",
304 });
305 return false;
306 }
307 this.ruleForm.qlrList[0].sfczr = "1";
308 } else {
309 if (this.ruleForm.qlrList.length <= 1) {
310 this.$message({
311 showClose: true,
312 message:
313 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
314 type: "error",
315 });
316 return false;
317 }
318 //是否分别持证
319 if (this.ruleForm.sldyList[0].sqfbcz == "1") {
320 //是
321 this.ruleForm.qlrList.forEach((item, index) => {
322 item.sfczr = "1";
323 });
324 } else {
325 if (that.czr === '') {
326 that.$message({
327 showClose: true,
328 message: "请选择持证人",
329 type: "error"
330 });
331 return false;
332 }
333 this.ruleForm.qlrList.forEach((item, index) => {
334 if (item.id == that.czr) {
335 item.sfczr = "1"
336 } else {
337 item.sfczr = "0"
338 }
339 })
340 }
341 }
342 saveBatchData(this.ruleForm).then((res) => {
343 if (res.code === 200) {
344 this.$message({
345 showClose: true,
346 message: "保存成功!",
347 type: "success",
348 });
349 this.$store.dispatch("user/refreshPage", true);
350 } else {
351 this.$message({
352 showClose: true,
353 message: res.message,
354 type: "error"
355 })
356 }
357 })
358 }
359 }
360 }
361 </script>
362 <style scoped lang="scss">
363 @import "~@/styles/public.scss";
364
365 /deep/.el-form {
366 display: flex;
367 flex-direction: column;
368 height: calc(100vh - 130px);
369 }
370
371 /deep/.el-form-item__label {
372 padding: 0;
373 }
374
375 /deep/.el-radio {
376 margin-right: 10px;
377 }
378
379 /deep/.el-select {
380 width: 100%;
381 }
382
383 /deep/.el-form-item {
384 margin-bottom: 3px;
385 }
386
387 .marginBot0 {
388 margin-bottom: 0 !important;
389 }
390
391 .slxx {
392 box-sizing: border-box;
393 }
394
395 .slxx_con {
396 flex: 1;
397 height: 100%;
398 background-color: #ffffff;
399 overflow-y: auto;
400 padding-right: 3px;
401 overflow-x: hidden;
402 }
403
404 .submit_btn {
405 height: 50px;
406 }
407
408 .btn {
409 text-align: center;
410 padding-top: 10px;
411 height: 36px;
412 background-color: #ffffff;
413 padding: 5px 0;
414 }
415
416 .textArea {
417 /deep/.el-textarea__inner {
418 min-height: 90px !important;
419 }
420 }
421
422 /deep/.el-form-item__label {
423 padding-bottom: 0px;
424 }
425 </style>
1 <!--
2 * @Description: 受理信息
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 16:07:53
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 v-Loading="loading"
12 ref="ruleForm"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="120px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="16">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-show="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 <el-col :span="4" v-show="ruleForm.sldy.djlx=='300'||ruleForm.sldy.djlx=='500'">
69 <el-button @click="compare">变化情况对比+</el-button>
70 </el-col>
71 </el-row>
72 <div class="triangle"></div>
73 </div>
74 <el-row :gutter="10" v-if="ruleForm.qlxx">
75 <el-col :span="8">
76 <el-form-item label="不动产单元号:">
77 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
78 </el-form-item>
79 </el-col>
80 <el-col :span="16">
81 <el-form-item label="坐落:">
82 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
83 </el-form-item>
84 </el-col>
85 </el-row>
86 <el-row :gutter="10" v-if="ruleForm.fdcq2">
87 <el-col :span="8">
88 <el-form-item label="土地用途:">
89 <el-input disabled v-model="ruleForm.fdcq2.yt"></el-input>
90 </el-form-item>
91 </el-col>
92 <el-col :span="8">
93 <el-form-item label="土地使用起止时间:">
94 <el-input disabled v-model="ruleForm.fdcq2.tdsyqzsj"></el-input>
95 </el-form-item>
96 </el-col>
97 <el-col :span="8">
98 <el-form-item label="土地使用期限:">
99 <el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input>
100 </el-form-item>
101 </el-col>
102 </el-row>
103 <el-row :gutter="10" v-if="ruleForm.qlxx">
104 <el-col :span="8">
105 <el-form-item label="规划用途名称:">
106 <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="房屋性质:">
111 <el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input>
112 </el-form-item>
113 </el-col>
114 <el-col :span="8">
115 <el-form-item label="房屋结构:">
116 <el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input>
117 </el-form-item>
118 </el-col>
119 </el-row>
120 <el-row :gutter="10" v-if="ruleForm.fdcq2">
121 <el-col :span="8">
122 <el-form-item label="所在层:">
123 <el-input disabled v-model="ruleForm.fdcq2.szc"></el-input>
124 </el-form-item>
125 </el-col>
126 <el-col :span="8">
127 <el-form-item label="总层数:">
128 <el-input
129 disabled
130 v-model.number="ruleForm.fdcq2.zcs"
131 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
132 </el-form-item>
133 </el-col>
134 <el-col :span="8">
135 <el-form-item label="竣工时间:">
136 <el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input>
137 </el-form-item>
138 </el-col>
139 </el-row>
140 <el-row :gutter="10" v-if="ruleForm.qlxx">
141 <el-col :span="8">
142 <el-form-item label="建筑面积:">
143 <div class="flex">
144 <el-input
145 disabled
146 v-model="ruleForm.qlxx.mj"
147 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
148 <el-select disabled v-model="mjdw" style="width: 68px">
149 <el-option
150 v-for="item in dictData['A7']"
151 :key="item.dcode"
152 :label="item.dname"
153 :value="item.dcode">
154 </el-option>
155 </el-select>
156 </div>
157 </el-form-item>
158 </el-col>
159 <el-col :span="8">
160 <el-form-item label="专有建筑面积:">
161 <div class="flex">
162 <el-input
163 disabled
164 v-model="ruleForm.fdcq2.zyjzmj"
165 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
166 <el-select disabled v-model="mjdw" style="width: 68px">
167 <el-option
168 v-for="item in dictData['A7']"
169 :key="item.dcode"
170 :label="item.dname"
171 :value="item.dcode">
172 </el-option>
173 </el-select>
174 </div>
175 </el-form-item>
176 </el-col>
177 <el-col :span="8">
178 <el-form-item label="分摊建筑面积:">
179 <div class="flex">
180 <el-input
181 disabled
182 v-model="ruleForm.fdcq2.ftjzmj"
183 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
184 <el-select disabled v-model="mjdw" style="width: 68px">
185 <el-option
186 v-for="item in dictData['A7']"
187 :key="item.dcode"
188 :label="item.dname"
189 :value="item.dcode">
190 </el-option>
191 </el-select>
192 </div>
193 </el-form-item>
194 </el-col>
195 </el-row>
196 <div class="slxx_title title-block">
197 土地用途
198 <div class="triangle"></div>
199 </div>
200 <tdytTable
201 :ableOperation="viewEdit"
202 :tableData="ruleForm.tdytqxList"
203 @upDateTdytxxList="upDateTdytxxList" />
204 <div class="slxx_title title-block">
205 权利人信息
206 <div class="triangle"></div>
207 </div>
208 <el-row :gutter="10">
209 <el-col :span="12">
210 <el-form-item label="共有方式:">
211 <el-radio-group
212 :disabled="!viewEdit"
213 v-model="ruleForm.sldy.gyfs">
214 <el-radio label="0">单独所有</el-radio>
215 <el-radio label="1">共同共有</el-radio>
216 <el-radio label="2">按份所有</el-radio>
217 <el-radio label="3">其它共有</el-radio>
218 </el-radio-group>
219 </el-form-item>
220 </el-col>
221 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
222 <el-form-item label="是否分别持证:">
223 <el-radio-group
224 v-model="ruleForm.sldy.sqfbcz"
225 :disabled="!viewEdit"
226 @input="updaterow()">
227 <el-radio :label="1"></el-radio>
228 <el-radio :label="0"></el-radio>
229 </el-radio-group>
230 </el-form-item>
231 </el-col>
232 <el-col
233 :span="6"
234 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
235 <el-form-item label="持证人:">
236 <el-select
237 v-model="czr"
238 placeholder="持证人"
239 :disabled="!viewEdit">
240 <el-option
241 v-for="(item,index) in czrOptions"
242 :key="index"
243 :label="item.sqrmc"
244 :value="item.id">
245 </el-option>
246 </el-select>
247 </el-form-item>
248 </el-col>
249 </el-row>
250 <qlrCommonTable
251 @upDateQlrxxList="upDateQlrxxList"
252 :disabled="!viewEdit"
253 :tableData="ruleForm.qlrList"
254 :gyfs="ruleForm.sldy.gyfs" />
255 <div class="slxx_title title-block">
256 登记原因
257 <div class="triangle"></div>
258 </div>
259 <el-row :gutter="10">
260 <el-col>
261 <el-form-item v-if="ruleForm.fdcq2" label="登记原因:" prop="fdcq2.djyy">
262 <el-input
263 class="textArea"
264 type="textarea"
265 maxlength="500"
266 show-word-limit
267 :disabled="!viewEdit"
268 v-model="ruleForm.fdcq2.djyy">
269 </el-input>
270 </el-form-item>
271 </el-col>
272 </el-row>
273 </div>
274 <el-row class="btn" v-if="isSave">
275 <el-form-item>
276 <el-button type="primary" @click="onSubmit">保存</el-button>
277 </el-form-item>
278 </el-row>
279 </el-form>
280 </div>
281 </template>
282 <script>
283 import ywmix from "@/views/ywbl/mixin/index";
284 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
285 import tdytTable from "@/views/workflow/components/tdytTable";
286 import { Init, saveData } from "@/api/workflow/fwsyqFlow.js";
287 import { mapGetters } from "vuex";
288 export default {
289 mixins: [ywmix],
290 mounted () {
291 let that = this
292 this.loading = true
293 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
294 this.propsParam = this.$attrs;
295 var formdata = new FormData();
296 formdata.append("bsmSldy", this.propsParam.bsmSldy);
297 formdata.append("djlx", this.propsParam.djlx);
298 formdata.append("isEdit", this.viewEdit);
299 Init(formdata).then((res) => {
300 setTimeout(() => {
301 this.loading = false
302 }, 200)
303 if (res.code === 200 && res.result) {
304 that.ruleForm = {
305 ...res.result,
306 ...res.result.zdjbxxdatas,
307 ...res.result.qlxxdatas,
308 ...res.result.jsydsyqdatas,
309 };
310 that.ruleForm.qlrList.forEach((item) => {
311 item.id = item.bsmSqr
312 if (item.sfczr == '1') {
313 that.czr = item.bsmSqr
314 }
315 })
316 that.czrOptions = that.ruleForm.qlrList;
317 that.isSave = that.viewEdit
318 } else {
319 that.isSave = false
320 that.$confirm(res.message, '提示', {
321 cancelButtonText: '取消',
322 showConfirmButton: false,
323 type: 'warning'
324 })
325 }
326 }).catch(() => {
327 this.loading = false
328 this.isSave = false
329 })
330 },
331 components: { qlrCommonTable, tdytTable },
332 computed: {
333 ...mapGetters(["dictData", "flag"]),
334 },
335 data () {
336 return {
337 isSave: true,
338 loading: false,
339 mjdw: "1",
340 //表单是否可操作
341 viewEdit: false,
342 disabled: true,
343 tdytOption: [],
344 czrOptions: [],
345 czr: "",
346 ruleForm: {
347 flow: {
348 ywh: "",
349 },
350 slry: "",
351 slsj: "",
352 qllx: "",
353 djlx: "",
354 djqx: "",
355 sldy: {
356 gyfs: "",
357 },
358 // 宗地代码
359 zddm: "",
360 bdcdyh: "",
361 qlxzmc: "",
362 qlrxx: [],
363 // 自然幢号
364 zrzh: "",
365 // 户不动产单元号
366 hbdcdyh: "",
367 djzt: "",
368 // 图幅丘幢号
369 tfqzh: "",
370 zl: "",
371 // 房屋用途
372 fwyt: "",
373 fwxz: "",
374 fwjg: "",
375 // 权利人信息
376 // 是否分别持证
377 sffbcz: "",
378 // 持证人
379 czr: "",
380 djyy: "",
381 // 规划用途名称
382 zdjbxx: {
383 ghytmc: "",
384 },
385 fdcq2: {
386 fwxzmc: "",
387 },
388 slsq: {
389 gyfs: "",
390 },
391 },
392 //传递参数
393 propsParam: {},
394 rules: {
395 'fdcq2.djyy': [
396 { required: true, message: '请输入登记原因', trigger: 'blur' }
397 ]
398 }
399 }
400 },
401 methods: {
402 /**
403 * @description: dataSelectClick
404 * @author: renchao
405 */
406 dataSelectClick () {
407 this.$popup(
408 "房屋所有权",
409 this.BASE_API.SERVERAPI + "/rest/workflow/main/dataCompare/slxxCompareDetai",
410 {
411 formData: {
412 bsmSldy: this.propsParam.bsmSldy,
413 qllx: this.propsParam.qllx,
414 },
415 }
416 );
417 },
418 /**
419 * @description: 更新土地用途信息
420 * @param {*} val
421 * @author: renchao
422 */
423 upDateTdytxxList (val) {
424 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
425 this.key++;
426 },
427 /**
428 * @description: 是否持证人变化
429 * @param {*} val
430 * @author: renchao
431 */
432 updaterow () {
433 this.czr = "";
434 },
435 /**
436 * @description: 更新权利人信息
437 * @param {*} val
438 * @author: renchao
439 */
440 upDateQlrxxList (val) {
441 if (!_.isEqual(val, this.ruleForm.qlrList)) {
442 this.ruleForm.qlrList = _.cloneDeep(val);
443 this.czrOptions = this.ruleForm.qlrList;
444 }
445 this.num = 0
446 this.ruleForm.qlrList.forEach(item => {
447 if (item.id == this.czr) {
448 this.num++
449 }
450 })
451 if (this.num == 0) {
452 this.czr = ''
453 }
454 },
455 /**
456 * @description: 更新权利人信息
457 * @param {*} val
458 * @author: renchao
459 */
460 upDateYwrxxList (val) {
461 this.ruleForm.ywrList = _.cloneDeep(val);
462 },
463 /**
464 * @description: onSubmit
465 * @author: renchao
466 */
467 onSubmit () {
468 let that = this;
469 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
470 if (arr.length > 0) {
471 this.$message({
472 showClose: true,
473 message: "土地用途不能为空",
474 type: "error",
475 });
476 return false;
477 }
478 if (this.ruleForm.qlrList.length == 0) {
479 this.$message({
480 showClose: true,
481 message: "请确认权利人信息",
482 type: "error",
483 });
484 return false;
485 }
486
487 if (this.ruleForm.sldy.gyfs == "0") {
488 if (this.ruleForm.qlrList.length > 1) {
489 this.$message({
490 showClose: true,
491 message: "共有方式:单独所有,权利人只能是一个人",
492 type: "error",
493 });
494 return false;
495 }
496 this.ruleForm.qlrList[0].sfczr = "1";
497 } else {
498 if (this.ruleForm.qlrList.length <= 1) {
499 this.$message({
500 showClose: true,
501 message:
502 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
503 type: "error",
504 });
505 return false;
506 }
507 //是否分别持证
508 if (this.ruleForm.sldy.sqfbcz == "1") {
509 //是
510 this.ruleForm.qlrList.forEach((item, index) => {
511 item.sfczr = "1";
512 });
513 } else {
514 if (that.czr === '') {
515 that.$message({
516 showClose: true,
517 message: "请选择持证人",
518 type: "error"
519 });
520 return false;
521 }
522 this.ruleForm.qlrList.forEach(item => {
523 if (item.id == that.czr) {
524 item.sfczr = "1"
525 } else {
526 item.sfczr = "0"
527 }
528 })
529 }
530 }
531 this.$refs['ruleForm'].validate((valid) => {
532 if (valid) {
533 that.$store.dispatch("user/refreshPage", false);
534 saveData(that.ruleForm).then((res) => {
535 if (res.code === 200) {
536 that.$message({
537 showClose: true,
538 message: "保存成功!",
539 type: "success",
540 });
541 that.$store.dispatch("user/refreshPage", true);
542 } else {
543 that.$message({
544 showClose: true,
545 message: res.message,
546 type: "error",
547 });
548 }
549 })
550
551 } else {
552 that.$message({
553 showClose: true,
554 message: "请输入登记原因",
555 type: "error"
556 })
557 return false
558 }
559 })
560 },
561 /**
562 * @description: compare
563 * @author: renchao
564 */
565 compare () {
566 this.$popupDialog(
567 this.ruleForm.qlxx.qllxmc,
568 "registerBook/comparison",
569 {
570 bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
571 dqqllx: "FDCQ2",
572 },
573 "80%",
574 true
575 );
576 },
577 },
578 };
579 </script>
580 <style scoped lang="scss">
581 @import "~@/styles/public.scss";
582 @import "~@/styles/slxx/slxx.scss";
583 /deep/.el-form {
584 display: flex;
585 flex-direction: column;
586 height: calc(100vh - 130px);
587 }
588
589 /deep/.el-form-item__label {
590 padding: 0;
591 }
592
593 /deep/.el-radio {
594 margin-right: 10px;
595 }
596
597 /deep/.el-select {
598 width: 100%;
599 }
600
601 /deep/.el-form-item {
602 margin-bottom: 3px;
603 }
604
605 .marginBot0 {
606 margin-bottom: 0 !important;
607 }
608
609 .slxx {
610 box-sizing: border-box;
611 }
612
613 .slxx_con {
614 flex: 1;
615 height: 100%;
616 background-color: #ffffff;
617 overflow-y: auto;
618 padding-right: 3px;
619 overflow-x: hidden;
620 }
621
622 .submit_btn {
623 height: 50px;
624 }
625
626 .btn {
627 text-align: center;
628 padding-top: 10px;
629 height: 36px;
630 background-color: #ffffff;
631 padding: 5px 0;
632 }
633
634 .textArea {
635 /deep/.el-textarea__inner {
636 min-height: 90px !important;
637 }
638 }
639
640 /deep/.el-form-item__label {
641 padding-bottom: 0px;
642 }
643 </style>
1 0
2 <!--
3 * @Description:
4 * @Autor: renchao
5 * @LastEditTime: 2024-01-31 10:14:22
6 -->
7 <template>
8 <!-- 受理信息 -->
9 <div class="slxx">
10 <el-form
11 :model="ruleForm"
12 :rules="rules"
13 v-Loading="loading"
14 ref="ruleForm"
15 :label-position="flag ? 'top' : ''"
16 :inline="flag"
17 label-width="120px">
18 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
19 <div class="slxx_title title-block">
20 申请业务信息
21 <div class="triangle"></div>
22 </div>
23 <el-row :gutter="10">
24 <el-col :span="8">
25 <el-form-item label="业务号:">
26 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
27 </el-form-item>
28 </el-col>
29 <el-col :span="8">
30 <el-form-item label="受理人员:">
31 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item label="受理时间:">
36 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
37 </el-form-item>
38 </el-col>
39 </el-row>
40 <el-row :gutter="10">
41 <el-col :span="8">
42 <el-form-item label="权利类型:">
43 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8">
47 <el-form-item label="登记类型:">
48 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
49 </el-form-item>
50 </el-col>
51 <el-col :span="8">
52 <el-form-item label="登记情形:">
53 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
54 </el-form-item>
55 </el-col>
56 </el-row>
57 <div class="slxx_title title-block">
58 <el-row>
59 <el-col :span="16">
60 不动产单元情况
61 </el-col>
62 <el-col :span="4">
63 <el-button v-if="ruleForm.sldy=='300'||ruleForm.sldy=='500'" @click="compare">变化情况对比+</el-button>
64 </el-col>
65 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
66 <el-form-item label="是否创建证书:" style="height:24px">
67 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
68 <el-radio label="1"></el-radio>
69 <el-radio label="0"></el-radio>
70 </el-radio-group>
71 </el-form-item>
72 </el-col>
73 </el-row>
74 <div class="triangle"></div>
75
76 </div>
77 <el-row :gutter="10">
78 <el-col :span="8">
79 <el-form-item label="原不动产权证号:">
80 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="不动产单元号:">
85 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
86 </el-form-item>
87 </el-col>
88 <el-col :span="8">
89 <el-form-item label="权利性质:">
90 <treeselect
91 :disabled="!viewEdit"
92 v-model="ruleForm.zdjbxx.qlxz"
93 noOptionsText="暂无数据"
94 placeholder=""
95 :normalizer="normalizer"
96 :default-expand-level="1"
97 :show-count="true"
98 :options="dictData['A9']" />
99 </el-form-item>
100 </el-col>
101 </el-row>
102 <el-row :gutter="10">
103 <el-col :span="8">
104 <el-form-item label="权利设定方式:">
105 <el-select v-model="ruleForm.zdjbxx.qlsdfs" :disabled="!viewEdit">
106 <el-option
107 v-for="item in dictData['A10']"
108 :key="item.dcode"
109 :label="item.dname"
110 :value="item.dcode">
111 </el-option>
112 </el-select>
113 </el-form-item>
114 </el-col>
115
116 <el-col :span="8">
117 <el-form-item label="宗地面积:">
118 <el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
119 </el-form-item>
120 </el-col>
121 <el-col :span="8">
122 <el-form-item label="取得价格:">
123 <div style="display: flex">
124 <el-input
125 maxlength="11"
126 v-model="ruleForm.jsydsyq.qdjg"
127 style="width: 500%"
128 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
129 :disabled="!viewEdit"></el-input>
130 <el-select v-model="ruleForm.jsydsyq.jedw" disabled>
131 <el-option
132 v-for="item in dictData['A57']"
133 :key="item.dcode"
134 :label="item.dname"
135 :value="item.dcode">
136 </el-option>
137 </el-select>
138 </div>
139 </el-form-item>
140 </el-col>
141 </el-row>
142 <el-row :gutter="10">
143 <el-col :span="8">
144 <el-form-item label="土地等级:">
145 <el-select placeholder="" v-model="ruleForm.zdjbxx.dj" :disabled="!viewEdit">
146 <el-option
147 v-for="item in dictData['A50']"
148 :key="item.dcode"
149 :label="item.dname"
150 :value="item.dcode">
151 </el-option>
152 </el-select>
153 </el-form-item>
154 </el-col>
155
156 <el-col :span="8">
157 <el-form-item label="图幅号:">
158 <el-input
159 :disabled="!viewEdit"
160 v-model="ruleForm.zdjbxx.tfh"></el-input>
161 </el-form-item>
162 </el-col>
163 <el-col :span="8">
164 <el-form-item label="地籍号:">
165 <el-input
166 v-model="ruleForm.zdjbxx.djh"
167 :disabled="!viewEdit"></el-input>
168 </el-form-item>
169 </el-col>
170
171 </el-row>
172 <el-row :gutter="10">
173 <el-col :span="8">
174 <el-form-item label="地块代码:">
175 <el-input
176 v-model="ruleForm.zdjbxx.dkdm"
177 :disabled="!viewEdit"></el-input>
178 </el-form-item>
179 </el-col>
180 <el-col :span="16">
181 <el-form-item label="坐落:">
182 <el-input :disabled="!viewEdit" v-model="ruleForm.sldy.zl"></el-input>
183 </el-form-item>
184 </el-col>
185 </el-row>
186 <el-row :gutter="10">
187 <el-col>
188 <el-form-item label="附记:" prop="fj">
189 <el-input
190 type="textarea"
191 maxlength="500"
192 show-word-limit
193 v-model="ruleForm.jsydsyq.fj"
194 :disabled="!viewEdit"></el-input>
195 </el-form-item>
196 </el-col>
197 </el-row>
198 <div class="slxx_title title-block">
199 土地用途
200 <div class="triangle"></div>
201 </div>
202 <tdytTable
203 :tableData="ruleForm.tdytqxList"
204 :ableOperation="viewEdit"
205 @upDateTdytxxList="upDateTdytxxList" />
206 <div class="slxx_title title-block">
207 权利人信息
208 <div class="triangle"></div>
209 </div>
210 <el-row :gutter="10">
211 <el-col :span="12">
212 <el-form-item label="共有方式:">
213 <el-radio-group
214 :disabled="!viewEdit"
215 v-model="ruleForm.sldy.gyfs">
216 <el-radio label="0">单独所有</el-radio>
217 <el-radio label="1">共同共有</el-radio>
218 <el-radio label="2">按份所有</el-radio>
219 <el-radio label="3">其它共有</el-radio>
220 </el-radio-group>
221 </el-form-item>
222 </el-col>
223 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
224 <el-form-item label="是否分别持证:">
225 <el-radio-group
226 v-model="ruleForm.sldy.sqfbcz"
227 :disabled="!viewEdit"
228 @input="updaterow()">
229 <el-radio :label="1"></el-radio>
230 <el-radio :label="0"></el-radio>
231 </el-radio-group>
232 </el-form-item>
233 </el-col>
234 <el-col
235 :span="6"
236 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
237 <el-form-item label="持证人:">
238 <el-select
239 v-model="czr"
240 placeholder="持证人"
241 :disabled="!viewEdit">
242 <el-option
243 v-for="item in czrOptions"
244 :key="item.id"
245 :label="item.sqrmc"
246 :value="item.id">
247 </el-option>
248 </el-select>
249 </el-form-item>
250 </el-col>
251 </el-row>
252 <qlrCommonTable
253 :tableData="ruleForm.qlrList"
254 :disabled="viewEdit"
255 @upDateQlrxxList="upDateQlrxxList"
256 :gyfs="ruleForm.sldy.gyfs" />
257
258 <div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0 && ruleForm.qlxx.djlx==200">
259 <div class="slxx_title title-block">
260 义务人信息
261 <div class="triangle"></div>
262 </div>
263 <ywrCommonTable
264 v-if="ruleForm.ywrList"
265 :disabled="viewEdit"
266 :tableData="ruleForm.ywrList"
267 :key="key"
268 @upDateQlrxxList="upDateYwrxxList" />
269 </div>
270
271 <div class="slxx_title title-block">
272 登记原因
273 <div class="triangle"></div>
274 </div>
275 <el-row :gutter="10">
276 <el-col>
277 <el-form-item label="登记原因:" prop="jsydsyq.djyy">
278 <el-input
279 class="textArea"
280 type="textarea"
281 maxlength="500"
282 show-word-limit
283 :disabled="!viewEdit"
284 v-model="ruleForm.jsydsyq.djyy">
285 </el-input>
286 </el-form-item>
287 </el-col>
288 </el-row>
289 </div>
290 <el-row class="btn" v-if="isSave">
291 <el-form-item>
292 <el-button type="primary" @click="onSubmit">保存</el-button>
293 </el-form-item>
294 </el-row>
295 </el-form>
296 </div>
297 </template>
298 <script>
299 import { mapGetters } from "vuex";
300 import ywmix from "@/views/ywbl/mixin/index";
301 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
302 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
303 import tdytTable from "@/views/workflow/components/tdytTable";
304 import { Init, saveData } from "@/api/workflow/jsydsyqFlow.js";
305 export default {
306 mixins: [ywmix],
307 mounted () {
308 let that = this;
309 this.loading = true
310 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
311 this.propsParam = this.$attrs;
312 var formdata = new FormData();
313 formdata.append("bsmSldy", this.propsParam.bsmSldy);
314 formdata.append("djlx", this.propsParam.djlx);
315 formdata.append("isEdit", this.viewEdit);
316 Init(formdata).then((res) => {
317 setTimeout(() => {
318 this.loading = false
319 }, 200)
320 if (res.code === 200 && res.result) {
321 that.ruleForm = res.result;
322 that.ruleForm.qlrList.forEach((item) => {
323 item.id = item.bsmSqr
324 if (item.sfczr == '1') {
325 that.czr = item.bsmSqr
326 }
327 })
328 that.czrOptions = that.ruleForm.qlrList;
329 that.isSave = that.viewEdit
330 } else {
331 that.isSave = false
332 that.$confirm(res.message, '提示', {
333 cancelButtonText: '取消',
334 showConfirmButton: false,
335 type: 'warning'
336 })
337 }
338 }).catch(() => {
339 this.loading = false
340 this.isSave = false
341 })
342 },
343 components: { qlrCommonTable, tdytTable, ywrCommonTable },
344 computed: {
345 ...mapGetters(["dictData", "flag"]),
346 },
347 data () {
348 return {
349 key: 0,
350 isSave: true,
351 loading: false,
352 // 键名转换,方法默认是label和children进行树状渲染
353 normalizer (node) {
354 //方法
355 if (node.children == null || node.children == "null") {
356 delete node.children;
357 }
358 return {
359 id: node.dcode,
360 label: node.dname,
361 };
362 },
363 //表单是否可操作
364 viewEdit: false,
365 disabled: true,
366 czrOptions: [],
367 czr: "",
368 ruleForm: {
369 slywxx: {},
370 qlxx: {},
371 zdjbxx: {},
372 jsydsyq: {},
373 },
374 //传递参数
375 propsParam: {},
376 rules: {
377 'jsydsyq.djyy': [
378 { required: true, message: '请输入登记原因', trigger: 'blur' }
379 ]
380 }
381 };
382 },
383 methods: {
384 /**
385 * @description: 更新土地用途信息
386 * @param {*} val
387 * @author: renchao
388 */
389 upDateTdytxxList (val) {
390 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
391 this.key++;
392 },
393 /**
394 * @description: 更新权利人信息
395 * @param {*} val
396 * @author: renchao
397 */
398 upDateQlrxxList (val) {
399 if (!_.isEqual(val, this.ruleForm.qlrList)) {
400 this.ruleForm.qlrList = _.cloneDeep(val);
401 this.czrOptions = this.ruleForm.qlrList;
402 }
403 this.num = 0
404 this.ruleForm.qlrList.forEach(item => {
405 if (item.id == this.czr) {
406 this.num++
407 }
408 })
409 if (this.num == 0) {
410 this.czr = ''
411 }
412 },
413 /**
414 * @description: 是否持证人变化
415 * @param {*} val
416 * @author: renchao
417 */
418 updaterow () {
419 this.czr = "";
420 },
421 /**
422 * @description: onSubmit
423 * @author: renchao
424 */
425 onSubmit () {
426 let that = this;
427 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
428 if (arr.length > 0) {
429 this.$message({
430 showClose: true,
431 message: "土地用途不能为空",
432 type: "error",
433 });
434 return false;
435 }
436 if (this.ruleForm.qlrList.length == 0) {
437 this.$message({
438 showClose: true,
439 message: "请确认权利人信息",
440 type: "error",
441 });
442 return false;
443 }
444
445 if (this.ruleForm.sldy.gyfs == "0") {
446 if (this.ruleForm.qlrList.length > 1) {
447 this.$message({
448 showClose: true,
449 message: "共有方式:单独所有,权利人只能是一个人",
450 type: "error",
451 });
452 return false;
453 }
454 this.ruleForm.qlrList[0].sfczr = "1";
455 } else {
456 if (this.ruleForm.qlrList.length <= 1) {
457 this.$message({
458 showClose: true,
459 message:
460 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
461 type: "error",
462 });
463 return false;
464 }
465 //是否分别持证
466 if (this.ruleForm.sldy.sqfbcz == "1") {
467 //是
468 this.ruleForm.qlrList.forEach((item, index) => {
469 item.sfczr = "1";
470 });
471 } else {
472 if (that.czr === '') {
473 that.$message({
474 showClose: true,
475 message: "请选择持证人",
476 type: "error",
477 });
478 return false;
479 }
480 this.ruleForm.qlrList.forEach((item, index) => {
481 if (item.id == that.czr) {
482 item.sfczr = "1";
483 } else {
484 item.sfczr = "0";
485 }
486 })
487 }
488 }
489 this.$refs['ruleForm'].validate((valid) => {
490 if (valid) {
491 that.$store.dispatch("user/refreshPage", false)
492 saveData(this.ruleForm).then((res) => {
493 if (res.code === 200) {
494 that.$message({
495 showClose: true,
496 message: "保存成功!",
497 type: "success"
498 })
499 that.$store.dispatch("user/refreshPage", true)
500 } else {
501 that.$message({
502 showClose: true,
503 message: res.message,
504 type: "error"
505 })
506 }
507 })
508 } else {
509 this.$message({
510 showClose: true,
511 message: "请输入登记原因",
512 type: "error"
513 })
514 return false
515 }
516 })
517 },
518 /**
519 * @description: compare
520 * @author: renchao
521 */
522 compare () {
523 this.$popupDialog(
524 this.ruleForm.qlxx.qllxmc,
525 "registerBook/comparison",
526 {
527 bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
528 dqqllx: "JSYDSYQ",
529 },
530 "80%",
531 true
532 );
533 },
534 },
535 };
536 </script>
537 <style scoped lang="scss">
538 @import "~@/styles/public.scss";
539 @import "~@/styles/slxx/slxx.scss";
540 </style>
1 <!--
2 * @Description: 房屋多幢受理信息
3 * @Autor: ssq
4 * @LastEditTime: 2024-01-31 10:15:25
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 v-Loading="loading"
12 ref="ruleForm"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="190px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="不动产单元号:">
74 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="16">
78 <el-form-item label="坐落:">
79 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
80 </el-form-item>
81 </el-col>
82 </el-row>
83 <el-row :gutter="10">
84 <el-col :span="8">
85 <el-form-item label="发包方:">
86 <el-input v-model="ruleForm.lq.fbf" :disabled="!viewEdit"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="发包方代码:">
91 <el-input v-model="ruleForm.lq.fbfdm" :disabled="!viewEdit"></el-input>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item label="使用权(承包)面积:">
96 <el-input v-model="ruleForm.lq.syqmj" :disabled="!viewEdit"></el-input>
97 </el-form-item>
98 </el-col>
99 </el-row>
100 <el-row :gutter="10">
101 <el-col :span="8">
102 <el-form-item label="林地所有权性质:">
103 <el-select v-model="ruleForm.lq.ldsyqxz" :disabled="!viewEdit">
104 <el-option
105 v-for="item in dictData['A45']"
106 :key="item.dcode"
107 :label="item.dname"
108 :value="item.dcode">
109 </el-option>
110 </el-select>
111 </el-form-item>
112 </el-col>
113 <el-col :span="8">
114 <el-form-item label="森林类别:">
115 <el-input v-model="ruleForm.lq.sllb" :disabled="!viewEdit"></el-input>
116 </el-form-item>
117 </el-col>
118 <el-col :span="8">
119 <el-form-item label="主要树种:">
120 <el-input v-model="ruleForm.lq.zysz" :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 </el-row>
124 <el-row :gutter="10">
125 <el-col :span="8">
126 <el-form-item label="株数:">
127 <el-input v-model="ruleForm.lq.zs" :disabled="!viewEdit"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="林种:">
132 <el-select v-model="ruleForm.lq.lz" :disabled="!viewEdit">
133 <el-option
134 v-for="item in dictData['A26']"
135 :key="item.dcode"
136 :label="item.dname"
137 :value="item.dcode">
138 </el-option>
139 </el-select>
140 </el-form-item>
141 </el-col>
142 <el-col :span="8">
143 <el-form-item label="起源:">
144 <el-select v-model="ruleForm.lq.qy" :disabled="!viewEdit">
145 <el-option
146 v-for="item in dictData['A52']"
147 :key="item.dcode"
148 :label="item.dname"
149 :value="item.dcode">
150 </el-option>
151 </el-select>
152 </el-form-item>
153 </el-col>
154 </el-row>
155 <el-row :gutter="10">
156 <el-col :span="8">
157 <el-form-item label="造林年度:">
158 <el-date-picker
159 class="width100"
160 value-format="yyyy"
161 v-model="ruleForm.lq.zlnd"
162 :disabled="!viewEdit"
163 type="year">
164 </el-date-picker>
165 </el-form-item>
166 </el-col>
167 <el-col :span="8">
168 <el-form-item label="林班:">
169 <el-input v-model="ruleForm.lq.lb" :disabled="!viewEdit"></el-input>
170 </el-form-item>
171 </el-col>
172 <el-col :span="8">
173 <el-form-item label="小班:">
174 <el-input v-model="ruleForm.lq.xb" :disabled="!viewEdit"></el-input>
175 </el-form-item>
176 </el-col>
177 </el-row>
178 <el-row :gutter="10">
179 <el-col :span="8">
180 <el-form-item label="小地名:">
181 <el-input v-model="ruleForm.lq.xdm" :disabled="!viewEdit"></el-input>
182 </el-form-item>
183 </el-col>
184 <el-col :span="8">
185 <el-form-item label="林地使用(承包)起始时间:">
186 <el-date-picker
187 class="width100"
188 value-format="yyyy-MM-dd HH:mm:ss"
189 v-model="ruleForm.lq.ldsyqssj"
190 :disabled="!viewEdit"
191 type="date"></el-date-picker>
192 </el-form-item>
193 </el-col>
194 <el-col :span="8">
195 <el-form-item label="林地使用(承包)结束时间:">
196 <el-date-picker
197 class="width100"
198 value-format="yyyy-MM-dd HH:mm:ss"
199 v-model="ruleForm.lq.ldsyjssj"
200 :disabled="!viewEdit"
201 type="date"></el-date-picker>
202 </el-form-item>
203 </el-col>
204 </el-row>
205 <el-row :gutter="10">
206 <el-col :span="8">
207 <el-form-item label="林地使用 (承包)期限:">
208 <el-input v-model="ruleForm.lq.ldsyqx" :disabled="!viewEdit"></el-input>
209 </el-form-item>
210 </el-col>
211 </el-row>
212 <el-row :gutter="10">
213 <el-col :span="24">
214 <el-form-item label="附记:">
215 <el-input
216 v-model="ruleForm.lq.fj"
217 :disabled="!viewEdit"
218 type="textarea"
219 maxlength="500"
220 show-word-limit></el-input>
221 </el-form-item>
222 </el-col>
223 </el-row>
224 <div class="slxx_title title-block">
225 权利人信息
226 <div class="triangle"></div>
227 </div>
228 <el-row :gutter="10">
229 <el-col :span="12" v-if="ruleForm.qlxx">
230 <el-form-item label="共有方式:">
231 <el-radio-group
232 :disabled="!viewEdit"
233 v-model="ruleForm.sldy.gyfs">
234 <el-radio label="0">单独所有</el-radio>
235 <el-radio label="1">共同共有</el-radio>
236 <el-radio label="2">按份所有</el-radio>
237 <el-radio label="3">其它共有</el-radio>
238 </el-radio-group>
239 </el-form-item>
240 </el-col>
241 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
242 <el-form-item label="是否分别持证:">
243 <el-radio-group
244 v-model="ruleForm.sldy.sqfbcz"
245 :disabled="!viewEdit"
246 @input="updaterow()">
247 <el-radio :label="1"></el-radio>
248 <el-radio :label="0"></el-radio>
249 </el-radio-group>
250 </el-form-item>
251 </el-col>
252 <el-col
253 :span="6"
254 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
255 <el-form-item label="持证人:">
256 <el-select
257 v-model="czr"
258 placeholder="持证人"
259 :disabled="!viewEdit">
260 <el-option
261 v-for="(item, index) in czrOptions"
262 :key="index"
263 :label="item.sqrmc"
264 :value="item.id">
265 </el-option>
266 </el-select>
267 </el-form-item>
268 </el-col>
269 </el-row>
270 <qlrCommonTable
271 @upDateQlrxxList="upDateQlrxxList"
272 :tableData="ruleForm.qlrList"
273 :disabled="viewEdit"
274 :gyfs="ruleForm.sldy.gyfs" />
275
276 <div v-if="ruleForm.ywrList && ruleForm.sldy.djlx == '200'">
277 <div class="slxx_title title-block">
278 义务人信息
279 <div class="triangle"></div>
280 </div>
281 <ywrCommonTable
282 v-if="ruleForm.qlxx"
283 :disabled="viewEdit"
284 @upDateQlrxxList="upDateYwrxxList"
285 :tableData="ruleForm.ywrList"
286 :gyfs="ruleForm.sldy.gyfs" />
287 </div>
288 <div class="slxx_title title-block">
289 登记原因
290 <div class="triangle"></div>
291 </div>
292 <el-row :gutter="10">
293 <el-col>
294 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="lq.djyy">
295 <el-input
296 class="textArea"
297 type="textarea"
298 maxlength="500"
299 show-word-limit
300 :disabled="!viewEdit"
301 v-model="ruleForm.lq.djyy">
302 </el-input>
303 </el-form-item>
304 </el-col>
305 </el-row>
306 </div>
307 <el-row class="btn" v-if="isSave">
308 <el-form-item>
309 <el-button type="primary" @click="onSubmit">保存</el-button>
310 </el-form-item>
311 </el-row>
312 </el-form>
313 </div>
314 </template>
315 <script>
316 import { mapGetters } from "vuex";
317 import ywmix from "@/views/ywbl/mixin/index";
318 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
319 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
320 import tdytTable from "@/views/workflow/components/tdytTable";
321 import { Init, saveData } from "@/api/workflow/lqFlow.js";
322 export default {
323 mixins: [ywmix],
324 mounted () {
325 let that = this;
326 this.loading = true
327 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
328 this.propsParam = this.$attrs;
329 var formdata = new FormData();
330 formdata.append("bsmSldy", this.propsParam.bsmSldy);
331 formdata.append("djlx", this.propsParam.djlx);
332 formdata.append("isEdit", this.viewEdit);
333 Init(formdata).then((res) => {
334 setTimeout(() => {
335 this.loading = false
336 }, 200)
337 if (res.code === 200 && res.result) {
338 that.ruleForm = {
339 ...res.result,
340 ...res.result.qlxxdatas
341 };
342 that.ruleForm.qlrList.forEach(item => {
343 item.id = item.bsmSqr
344 if (item.sfczr == '1') {
345 that.czr = item.bsmSqr
346 }
347 })
348 that.czrOptions = that.ruleForm.qlrList;
349 that.ruleForm.lq.zlnd ? that.$set(that.ruleForm.lq, 'zlnd', that.ruleForm.lq.zlnd.toString()) : that.$set(that.ruleForm.lq, 'zlnd', "")
350 that.isSave = that.viewEdit
351 } else {
352 that.isSave = false
353 that.$confirm(res.message, '提示', {
354 cancelButtonText: '取消',
355 showConfirmButton: false,
356 type: 'warning'
357 })
358 }
359 }).catch(() => {
360 this.loading = false
361 this.isSave = false
362 })
363 },
364 components: { qlrCommonTable, tdytTable, ywrCommonTable },
365 computed: {
366 ...mapGetters(["dictData", "flag"])
367 },
368 data () {
369 return {
370 isSave: true,
371 loading: false,
372 disabled: true,
373 tdytOption: [],
374 czrOptions: [],
375 czr: "",
376 ruleForm: {
377 lq: {
378 },
379 flow: {
380 ywh: "",
381 },
382 qlxx: {
383 mj: "",
384 },
385 sldy: {
386 gyfs: "",
387 },
388 slsq: {},
389 fdcq2: {
390 zyjzmj: "",
391 ftjzmj: "",
392 },
393 zdjbxx: {
394 ghytmc: "",
395 },
396 },
397 //传递参数
398 propsParam: this.$attrs,
399 //表单是否可操作
400 viewEdit: true,
401 rules: {
402 'lq.djyy': [
403 { required: true, message: '请输入登记原因', trigger: 'blur' }
404 ]
405 }
406 };
407 },
408 methods: {
409 /**
410 * @description: 更新土地用途信息
411 * @param {*} val
412 * @author: renchao
413 */
414 upDateTdytxxList (val) {
415 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
416 },
417 /**
418 * @description: 是否持证人变化
419 * @param {*} val
420 * @author: renchao
421 */
422 updaterow () {
423 this.czr = "";
424 },
425 /**
426 * @description: 更新权利人信息
427 * @param {*} val
428 * @author: renchao
429 */
430 upDateQlrxxList (val) {
431 this.ruleForm.qlrList = _.cloneDeep(val);
432 this.czrOptions = this.ruleForm.qlrList;
433 this.num = 0
434 this.ruleForm.qlrList.forEach(item => {
435 if (item.id == this.czr) {
436 this.num++
437 }
438 })
439 if (this.num == 0) {
440 this.czr = ''
441 }
442 },
443 /**
444 * @description: 更新业务人信息
445 * @param {*} val
446 * @author: renchao
447 */
448 upDateYwrxxList (val) {
449 this.ruleForm.ywrList = _.cloneDeep(val);
450 },
451 /**
452 * @description: onSubmit
453 * @author: renchao
454 */
455 onSubmit () {
456 let that = this;
457 if (this.ruleForm.qlrList.length == 0) {
458 this.$message({
459 showClose: true,
460 message: "请确认权利人信息",
461 type: "error",
462 });
463 return false;
464 }
465
466 if (this.ruleForm.sldy.gyfs == "0") {
467 if (this.ruleForm.qlrList.length > 1) {
468 this.$message({
469 showClose: true,
470 message: "共有方式:单独所有,权利人只能是一个人",
471 type: "error",
472 });
473 return false;
474 }
475 this.ruleForm.qlrList[0].sfczr = "1";
476 } else {
477 if (this.ruleForm.qlrList.length <= 1) {
478 this.$message({
479 showClose: true,
480 message:
481 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
482 type: "error",
483 });
484 return false;
485 }
486 //是否分别持证
487 if (this.ruleForm.sldy.sqfbcz == "1") {
488 //是
489 this.ruleForm.qlrList.forEach((item, index) => {
490 item.sfczr = "1";
491 });
492 } else {
493 if (that.czr === '') {
494 that.$message({
495 showClose: true,
496 message: "请选择持证人",
497 type: "error",
498 });
499 return false;
500 }
501 this.ruleForm.qlrList.forEach(item => {
502 if (item.id == that.czr) {
503 item.sfczr = "1"
504 } else {
505 item.sfczr = "0"
506 }
507 })
508 }
509 }
510 this.$refs['ruleForm'].validate((valid) => {
511 if (valid) {
512 that.$store.dispatch("user/refreshPage", false);
513 saveData(that.ruleForm).then((res) => {
514 if (res.code === 200) {
515 that.$message({
516 showClose: true,
517 message: "保存成功!",
518 type: "success",
519 });
520 that.$store.dispatch("user/refreshPage", true);
521 } else {
522 that.$message({
523 showClose: true,
524 message: res.message,
525 type: "error",
526 });
527 }
528 })
529 } else {
530 this.$message({
531 showClose: true,
532 message: "请输入登记原因",
533 type: "error"
534 })
535 return false
536 }
537 })
538 }
539 }
540 };
541 </script>
542 <style scoped lang="scss">
543 @import "~@/styles/public.scss";
544
545 /deep/.el-form {
546 display: flex;
547 flex-direction: column;
548 height: calc(100vh - 130px);
549 }
550
551 /deep/.el-form-item__label {
552 padding: 0;
553 }
554
555 /deep/.el-radio {
556 margin-right: 10px;
557 }
558
559 /deep/.el-select {
560 width: 100%;
561 }
562
563 /deep/.el-form-item {
564 margin-bottom: 3px;
565 }
566
567 .marginBot0 {
568 margin-bottom: 0 !important;
569 }
570
571 .slxx {
572 box-sizing: border-box;
573 }
574
575 .slxx_con {
576 flex: 1;
577 height: 100%;
578 background-color: #ffffff;
579 overflow-y: auto;
580 padding-right: 3px;
581 overflow-x: hidden;
582 }
583
584 .submit_btn {
585 height: 50px;
586 }
587
588 .btn {
589 text-align: center;
590 padding-top: 10px;
591 height: 36px;
592 background-color: #ffffff;
593 padding: 5px 0;
594 }
595
596 .textArea {
597 /deep/.el-textarea__inner {
598 min-height: 90px !important;
599 }
600 }
601
602 /deep/.el-form-item__label {
603 padding-bottom: 0px;
604 }
605 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="120px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 <el-row>
53 <el-col :span="20">
54 不动产单元情况
55 </el-col>
56 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
57 <el-form-item label="是否创建证书:" style="height:24px">
58 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
59 <el-radio label="1"></el-radio>
60 <el-radio label="0"></el-radio>
61 </el-radio-group>
62 </el-form-item>
63 </el-col>
64 </el-row>
65 <div class="triangle"></div>
66 </div>
67 <el-row :gutter="10">
68 <el-col :span="8">
69 <el-form-item label="宗地代码:">
70 <el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
71 </el-form-item>
72 </el-col>
73 <el-col :span="8">
74 <el-form-item label="不动产单元号:">
75 <el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="权利性质:">
80 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
81 </el-form-item>
82 </el-col>
83 </el-row>
84 <el-row :gutter="10">
85 <el-col :span="8">
86 <el-form-item label="宗地面积:">
87 <el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
88 </el-form-item>
89 </el-col>
90 <el-col :span="8">
91 <el-form-item label="土地用途:">
92 <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="权利设定方式:">
97 <el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
98 </el-form-item>
99 </el-col>
100 </el-row>
101 <el-row :gutter="10">
102 <el-col :span="16">
103 <el-form-item label="坐落:">
104 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
105 </el-form-item>
106 </el-col>
107 </el-row>
108 <el-row :gutter="10">
109 <el-col :span="8">
110 <el-form-item label="发包方名称:">
111 <el-input v-model="ruleForm.nydsyq.fbfmc"></el-input>
112 </el-form-item>
113 </el-col>
114 <el-col :span="8">
115 <el-form-item label="发包方代码:">
116 <el-input v-model="ruleForm.nydsyq.fbfdm"></el-input>
117 </el-form-item>
118 </el-col>
119 <el-col :span="8">
120 <el-form-item label="土地所有权性质:">
121 <el-select
122 v-model="ruleForm.nydsyq.tdsyqxzmc"
123 :disabled="!viewEdit"
124 class="width100"
125 filterable
126 clearable>
127 <el-option
128 v-for="item in dictData['A45']"
129 :key="item.dname"
130 :label="item.dname"
131 :value="item.dname">
132 </el-option>
133 </el-select>
134 </el-form-item>
135 </el-col>
136 </el-row>
137 <el-row :gutter="10">
138 <el-col :span="8">
139 <el-form-item label="承包期限:">
140 <el-input disabled v-model="ruleForm.nydsyq.cbqx"></el-input>
141 </el-form-item>
142 </el-col>
143 <el-col :span="16">
144 <el-form-item label="承包起止时间:">
145 <el-input disabled v-model="ruleForm.nydsyq.cbqzsj"></el-input>
146 </el-form-item>
147 </el-col>
148 </el-row>
149 <el-row :gutter="10">
150 <el-col :span="8">
151 <el-form-item label="水域滩涂类型:">
152 <el-select
153 v-model="ruleForm.nydsyq.syttlx"
154 :disabled="!viewEdit"
155 class="width100"
156 filterable
157 clearable
158 @change="changeSyttlx">
159 <el-option
160 v-for="item in dictData['A23']"
161 :key="item.dcode"
162 :label="item.dname"
163 :value="item.dcode">
164 </el-option>
165 </el-select>
166 </el-form-item>
167 </el-col>
168 <el-col :span="8">
169 <el-form-item label="养殖业方式:">
170 <el-select
171 v-model="ruleForm.nydsyq.yzyfs"
172 :disabled="!viewEdit"
173 class="width100"
174 filterable
175 clearable
176 @change="changeYzyfs">
177 <el-option
178 v-for="item in dictData['A24']"
179 :key="item.dcode"
180 :label="item.dname"
181 :value="item.dcode">
182 </el-option>
183 </el-select>
184 </el-form-item>
185 </el-col>
186 <el-col :span="8">
187 <el-form-item label="草原质量:">
188 <el-input
189 v-model="ruleForm.nydsyq.cyzl"
190 :disabled="!viewEdit"></el-input>
191 </el-form-item>
192 </el-col>
193 </el-row>
194 <el-row :gutter="10">
195 <el-col :span="8">
196 <el-form-item label="适宜载畜量:">
197 <el-input
198 v-model="ruleForm.nydsyq.syzcl"
199 :disabled="!viewEdit"
200 oninput="value=value.replace(/[^\d.]/g,'')"></el-input>
201 </el-form-item>
202 </el-col>
203 <el-col :span="8">
204 <el-form-item label="用地用海分类:">
205 <el-select
206 v-model="ruleForm.nydsyq.ydyhfl"
207 class="width100"
208 :disabled="!viewEdit"
209 filterable
210 clearable
211 @change="changeYdyhfl">
212 <el-option
213 v-for="item in dictData['A51']"
214 :key="item.dcode"
215 :label="item.dname"
216 :value="item.dcode">
217 </el-option>
218 </el-select>
219 </el-form-item>
220 </el-col>
221 <el-col :span="8">
222 <el-form-item label="土地承包合同:">
223 <el-input
224 v-model="ruleForm.nydsyq.tdcbht"
225 :disabled="!viewEdit"></el-input>
226 </el-form-item>
227 </el-col>
228 </el-row>
229 <el-row :gutter="10">
230 <el-col>
231 <el-form-item label="附记:" prop="fj">
232 <el-input
233 type="textarea"
234 maxlength="500"
235 show-word-limit
236 v-model="ruleForm.nydsyq.fj"
237 :disabled="!viewEdit"></el-input>
238 </el-form-item>
239 </el-col>
240 </el-row>
241 <div class="slxx_title title-block">
242 权利人信息
243 <div class="triangle"></div>
244 </div>
245 <el-row :gutter="10">
246 <el-col :span="12">
247 <el-form-item label="共有方式:">
248 <el-radio-group
249 v-model="ruleForm.sldy.gyfs"
250 :disabled="!viewEdit">
251 <el-radio label="0">单独所有</el-radio>
252 <el-radio label="1">共同共有</el-radio>
253 <el-radio label="2">按份所有</el-radio>
254 <el-radio label="3">其它共有</el-radio>
255 </el-radio-group>
256 </el-form-item>
257 </el-col>
258 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
259 <el-form-item label="是否分别持证:">
260 <el-radio-group
261 v-model="ruleForm.sldy.sqfbcz"
262 :disabled="!viewEdit"
263 @input="updaterow()">
264 <el-radio :label="1"></el-radio>
265 <el-radio :label="0"></el-radio>
266 </el-radio-group>
267 </el-form-item>
268 </el-col>
269 <el-col
270 :span="6"
271 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
272 <el-form-item label="持证人:">
273 <el-select
274 v-model="czr"
275 placeholder="持证人"
276 :disabled="!viewEdit">
277 <el-option
278 v-for="(item,index) in czrOptions"
279 :key="index"
280 :label="item.sqrmc"
281 :value="item.id">
282 </el-option>
283 </el-select>
284 </el-form-item>
285 </el-col>
286 </el-row>
287 <qlrCommonTable
288 :tableData="ruleForm.qlrList"
289 @upDateQlrxxList="upDateQlrxxList"
290 :disabled="viewEdit"
291 :gyfs="ruleForm.sldy.gyfs" />
292 <div class="slxx_title title-block">
293 家庭成员
294 <div class="triangle"></div>
295 </div>
296 <JtcyTable
297 :tableData="ruleForm.jtcyList"
298 @upDateJtcyList="upDateJtcyList"
299 :disabled="viewEdit"
300 :gyfs="ruleForm.sldy.gyfs" />
301 <div class="slxx_title title-block">
302 登记原因
303 <div class="triangle"></div>
304 </div>
305 <el-row :gutter="10">
306 <el-col>
307 <el-form-item label="登记原因:" prop="nydsyq.djyy">
308 <el-input
309 class="textArea"
310 type="textarea"
311 maxlength="500"
312 show-word-limit
313 :disabled="!viewEdit"
314 v-model="ruleForm.nydsyq.djyy">
315 </el-input>
316 </el-form-item>
317 </el-col>
318 </el-row>
319 </div>
320 <el-row class="btn" v-if="isSave">
321 <el-form-item>
322 <el-button type="primary" @click="onSubmit">保存</el-button>
323 </el-form-item>
324 </el-row>
325 </el-form>
326 </div>
327 </template>
328 <script>
329 import { mapGetters } from "vuex";
330 import ywmix from "@/views/ywbl/mixin/index";
331 import { Init, saveData } from "@/api/workflow/nydsyqFlow.js";
332 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
333 import JtcyTable from "@/views/workflow/components/JtcyTable";
334 export default {
335 mixins: [ywmix],
336 mounted () {
337 let that = this
338 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
339 this.propsParam = this.$attrs;
340 this.loading = true
341 var formdata = new FormData();
342 formdata.append("bsmSldy", this.propsParam.bsmSldy);
343 formdata.append("djlx", this.propsParam.djlx);
344 formdata.append("isEdit", this.viewEdit);
345 Init(formdata).then((res) => {
346 setTimeout(() => {
347 that.loading = false
348 }, 200)
349 if (res.code === 200) {
350 that.ruleForm = res.result;
351 that.ruleForm.qlrList.forEach((item) => {
352 item.id = item.bsmSqr
353 if (item.sfczr == '1') {
354 that.czr = item.bsmSqr
355 }
356 })
357 that.czrOptions = that.ruleForm.qlrList;
358 that.isSave = that.viewEdit
359 } else {
360 that.isSave = false
361 that.$confirm(res.message, '提示', {
362 cancelButtonText: '取消',
363 showConfirmButton: false,
364 type: 'warning'
365 })
366 }
367 }).catch(() => {
368 this.loading = false
369 this.isSave = false
370 })
371 },
372 components: { qlrCommonTable, JtcyTable },
373 computed: {
374 ...mapGetters(["dictData", "flag"]),
375 },
376 data () {
377 return {
378 isSave: true,
379 // 键名转换,方法默认是label和children进行树状渲染
380 normalizer (node) {
381 //方法
382 if (node.children == null || node.children == "null") {
383 delete node.children;
384 }
385 return {
386 id: node.dcode,
387 label: node.dname,
388 };
389 },
390 loading: false,
391 disabled: true,
392 //持证人选项
393 czrOptions: [],
394 czr: "",
395 ruleForm: {
396 zdjbxx: {
397 ghytmc: "",
398 },
399 },
400 //传递参数
401 propsParam: {},
402 //表单是否可操作
403 viewEdit: true,
404 rules: {
405 'nydsyq.djyy': [
406 { required: true, message: '请输入登记原因', trigger: 'blur' }
407 ]
408 },
409 };
410 },
411 methods: {
412 /**
413 * @description: onSubmit
414 * @author: renchao
415 */
416 onSubmit () {
417 let that = this;
418 if (this.ruleForm.qlrList.length == 0) {
419 this.$message({
420 showClose: true,
421 message: "请确认权利人信息",
422 type: "error",
423 });
424 return false;
425 }
426
427 if (this.ruleForm.sldy.gyfs == "0") {
428 if (this.ruleForm.qlrList.length > 1) {
429 this.$message({
430 showClose: true,
431 message: "共有方式:单独所有,权利人只能是一个人",
432 type: "error",
433 });
434 return false;
435 }
436 this.ruleForm.qlrList[0].sfczr = "1";
437 } else {
438 if (this.ruleForm.qlrList.length <= 1) {
439 this.$message({
440 showClose: true,
441 message:
442 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
443 type: "error",
444 });
445 return false;
446 }
447 //是否分别持证
448 if (this.ruleForm.sldy.sqfbcz == "1") {
449 //是
450 this.ruleForm.qlrList.forEach((item, index) => {
451 item.sfczr = "1";
452 });
453 } else {
454 if (that.czr === '') {
455 that.$message({
456 showClose: true,
457 message: "请选择持证人",
458 type: "error",
459 })
460 return false;
461 }
462 this.ruleForm.qlrList.forEach((item, index) => {
463 if (item.id == that.czr) {
464 item.sfczr = "1";
465 } else {
466 item.sfczr = "0";
467 }
468 });
469 }
470 }
471 this.$refs['ruleForm'].validate((valid) => {
472 if (valid) {
473 that.$store.dispatch("user/refreshPage", false);
474 saveData(that.ruleForm).then((res) => {
475 if (res.code === 200) {
476 that.$message({
477 showClose: true,
478 message: "保存成功!",
479 type: "success",
480 });
481 that.$store.dispatch("user/refreshPage", true);
482 } else {
483 that.$message({
484 showClose: true,
485 message: res.message,
486 type: "error",
487 });
488 }
489 })
490 } else {
491 this.$message({
492 showClose: true,
493 message: "请输入登记原因",
494 type: "error"
495 })
496 return false
497 }
498 })
499
500 },
501 /**
502 * @description: upDateQlrxxList
503 * @param {*} val
504 * @author: renchao
505 */
506 upDateQlrxxList (val) {
507 if (!_.isEqual(val, this.ruleForm.qlrList)) {
508 this.ruleForm.qlrList = _.cloneDeep(val);
509 this.czrOptions = this.ruleForm.qlrList;
510 }
511 this.num = 0
512 this.ruleForm.qlrList.forEach(item => {
513 if (item.id == this.czr) {
514 this.num++
515 }
516 })
517 if (this.num == 0) {
518 this.czr = ''
519 }
520 },
521 /**
522 * @description: 是否持证人变化
523 * @param {*} val
524 * @author: renchao
525 */
526 updaterow () {
527 this.czr = "";
528 },
529 /**
530 * @description: upDateJtcyList
531 * @param {*} val
532 * @author: renchao
533 */
534 upDateJtcyList (val) {
535 this.ruleForm.jtcyList = _.cloneDeep(val);
536 },
537 // 是否持证人变化
538 /**
539 * @description: 是否持证人变化
540 * @param {*} val
541 * @author: renchao
542 */
543 updaterow () {
544 this.czr = "";
545 },
546
547 /**
548 * @description: 水域滩涂类型变化事件
549 * @param {*} e
550 * @author: renchao
551 */
552 changeSyttlx (e) {
553 let itemLx = {};
554 itemLx = this.dictData["A23"].find((item) => {
555 return item.dcode == e;
556 });
557 this.ruleForm.nydsyq.syttlxmc = itemLx.dname;
558 },
559 /**
560 * @description: 养殖业方式变化事件
561 * @param {*} e
562 * @author: renchao
563 */
564 changeYzyfs (e) {
565 let itemLx = {};
566 itemLx = this.dictData["A24"].find((item) => {
567 return item.dcode == e;
568 });
569 this.ruleForm.nydsyq.yzyfsmc = itemLx.dname;
570 },
571 /**
572 * @description: 用地用海变化事件
573 * @param {*} e
574 * @author: renchao
575 */
576 changeYdyhfl (e) {
577 let itemLx = {};
578 itemLx = this.dictData["A51"].find((item) => {
579 return item.dcode == e;
580 });
581 this.ruleForm.nydsyq.ydyhflmc = itemLx.dname;
582 },
583 },
584 };
585 </script>
586 <style scoped lang="scss">
587 @import "~@/styles/public.scss";
588 @import "~@/styles/slxx/slxx.scss";
589 </style>
1 <!--
2 * @Description: 房屋多幢受理信息
3 * @Autor: ssq
4 * @LastEditTime: 2024-01-31 10:17:15
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 v-Loading="loading"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="190px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="不动产单元号:">
74 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="16">
78 <el-form-item label="坐落:">
79 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
80 </el-form-item>
81 </el-col>
82 </el-row>
83 <el-row :gutter="10">
84 <el-col :span="8">
85 <el-form-item label="发包方:">
86 <el-input v-model="ruleForm.lq.fbf" :disabled="!viewEdit"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="发包方代码:">
91 <el-input v-model="ruleForm.lq.fbfdm" :disabled="!viewEdit"></el-input>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item label="使用权(承包)面积:">
96 <el-input maxlength="12" v-model="ruleForm.lq.syqmj" :disabled="!viewEdit"></el-input>
97 </el-form-item>
98 </el-col>
99 </el-row>
100 <el-row :gutter="10">
101 <el-col :span="8">
102 <el-form-item label="林地所有权性质:">
103 <el-select v-model="ruleForm.lq.ldsyqxz" :disabled="!viewEdit">
104 <el-option
105 v-for="item in dictData['A45']"
106 :key="item.dcode"
107 :label="item.dname"
108 :value="item.dcode">
109 </el-option>
110 </el-select>
111 </el-form-item>
112 </el-col>
113 <el-col :span="8">
114 <el-form-item label="森林类别:">
115 <el-input v-model="ruleForm.lq.sllb" :disabled="!viewEdit"></el-input>
116 </el-form-item>
117 </el-col>
118 <el-col :span="8">
119 <el-form-item label="主要树种:">
120 <el-input v-model="ruleForm.lq.zysz" :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 </el-row>
124 <el-row :gutter="10">
125 <el-col :span="8">
126 <el-form-item label="株数:">
127 <el-input v-model="ruleForm.lq.zs" :disabled="!viewEdit"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="林种:">
132 <el-select v-model="ruleForm.lq.lz" :disabled="!viewEdit">
133 <el-option
134 v-for="item in dictData['A26']"
135 :key="item.dcode"
136 :label="item.dname"
137 :value="item.dcode">
138 </el-option>
139 </el-select>
140 </el-form-item>
141 </el-col>
142 <el-col :span="8">
143 <el-form-item label="起源:">
144 <el-select v-model="ruleForm.lq.qy" :disabled="!viewEdit">
145 <el-option
146 v-for="item in dictData['A52']"
147 :key="item.dcode"
148 :label="item.dname"
149 :value="item.dcode">
150 </el-option>
151 </el-select>
152 </el-form-item>
153 </el-col>
154 </el-row>
155 <el-row :gutter="10">
156 <el-col :span="8">
157 <el-form-item label="造林年度:">
158 <!-- <el-input v-model="ruleForm.lq.zlnd"></el-input> -->
159 <el-date-picker
160 class="width100"
161 value-format="yyyy"
162 v-model="ruleForm.lq.zlnd"
163 :disabled="!viewEdit"
164 type="year">
165 </el-date-picker>
166 </el-form-item>
167 </el-col>
168 <el-col :span="8">
169 <el-form-item label="林班:">
170 <el-input v-model="ruleForm.lq.lb" :disabled="!viewEdit"></el-input>
171 </el-form-item>
172 </el-col>
173 <el-col :span="8">
174 <el-form-item label="小班:">
175 <el-input v-model="ruleForm.lq.xb" :disabled="!viewEdit"></el-input>
176 </el-form-item>
177 </el-col>
178 </el-row>
179 <el-row :gutter="10">
180 <el-col :span="8">
181 <el-form-item label="小地名:">
182 <el-input v-model="ruleForm.lq.xdm" :disabled="!viewEdit"></el-input>
183 </el-form-item>
184 </el-col>
185 <el-col :span="8">
186 <el-form-item label="林地使用(承包)起始时间:">
187 <el-date-picker
188 class="width100"
189 value-format="yyyy-MM-dd HH:mm:ss"
190 v-model="ruleForm.lq.ldsyqssj"
191 :disabled="!viewEdit"
192 type="date"></el-date-picker>
193 </el-form-item>
194 </el-col>
195 <el-col :span="8">
196 <el-form-item label="林地使用(承包)结束时间:">
197 <el-date-picker
198 class="width100"
199 value-format="yyyy-MM-dd HH:mm:ss"
200 v-model="ruleForm.lq.ldsyjssj"
201 :disabled="!viewEdit"
202 type="date"></el-date-picker>
203 </el-form-item>
204 </el-col>
205 </el-row>
206 <el-row :gutter="10">
207 <!-- <el-col :span="8">
208 <el-form-item label="土地用途:">
209 <el-input v-model="ruleForm.lq.xdm"></el-input>
210 </el-form-item>
211 </el-col> -->
212 <el-col :span="8">
213 <el-form-item label="林地使用 (承包)期限:">
214 <el-input v-model="ruleForm.lq.ldsyqx" :disabled="!viewEdit"></el-input>
215 </el-form-item>
216 </el-col>
217 </el-row>
218 <el-row :gutter="10">
219 <el-col :span="24">
220 <el-form-item label="附记:">
221 <el-input
222 v-model="ruleForm.lq.fj"
223 :disabled="!viewEdit"
224 type="textarea"
225 maxlength="500"
226 show-word-limit></el-input>
227 </el-form-item>
228 </el-col>
229 </el-row>
230 <!-- <div class="slxx_title title-block">
231 土地用途
232 <div class="triangle"></div>
233 </div> -->
234 <!-- <tdytTable
235 :ableOperation="viewEdit"
236 :tableData="ruleForm.tdytqxList"
237 @upDateTdytxxList="upDateTdytxxList" /> -->
238 <div class="slxx_title title-block">
239 权利人信息
240 <div class="triangle"></div>
241 </div>
242 <el-row :gutter="10">
243 <el-col :span="12" v-if="ruleForm.qlxx">
244 <el-form-item label="共有方式:">
245 <el-radio-group
246 :disabled="!viewEdit"
247 v-model="ruleForm.sldy.gyfs">
248 <el-radio label="0">单独所有</el-radio>
249 <el-radio label="1">共同共有</el-radio>
250 <el-radio label="2">按份所有</el-radio>
251 <el-radio label="3">其它共有</el-radio>
252 </el-radio-group>
253 </el-form-item>
254 </el-col>
255 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
256 <el-form-item label="是否分别持证:">
257 <el-radio-group
258 v-model="ruleForm.sldy.sqfbcz"
259 :disabled="!viewEdit"
260 @input="updaterow()">
261 <el-radio :label="1"></el-radio>
262 <el-radio :label="0"></el-radio>
263 </el-radio-group>
264 </el-form-item>
265 </el-col>
266 <el-col
267 :span="6"
268 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
269 <el-form-item label="持证人:">
270 <el-select
271 v-model="czr"
272 placeholder="持证人"
273 :disabled="!viewEdit">
274 <el-option
275 v-for="(item, index) in czrOptions"
276 :key="index"
277 :label="item.sqrmc"
278 :value="item.id">
279 </el-option>
280 </el-select>
281 </el-form-item>
282 </el-col>
283 </el-row>
284 <qlrCommonTable
285 @upDateQlrxxList="upDateQlrxxList"
286 :tableData="ruleForm.qlrList"
287 :disabled="viewEdit"
288 :gyfs="ruleForm.sldy.gyfs" />
289
290 <div v-if="ruleForm.ywrList && ruleForm.sldy.djlx == '200'">
291 <div class="slxx_title title-block">
292 义务人信息
293 <div class="triangle"></div>
294 </div>
295 <ywrCommonTable
296 v-if="ruleForm.qlxx"
297 :disabled="viewEdit"
298 @upDateQlrxxList="upDateYwrxxList"
299 :tableData="ruleForm.ywrList"
300 :gyfs="ruleForm.sldy.gyfs" />
301 </div>
302 <div class="slxx_title title-block">
303 登记原因
304 <div class="triangle"></div>
305 </div>
306 <el-row :gutter="10">
307 <el-col>
308 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="djyy">
309 <el-input
310 class="textArea"
311 type="textarea"
312 maxlength="500"
313 show-word-limit
314 :disabled="!viewEdit"
315 v-model="ruleForm.lq.djyy">
316 </el-input>
317 </el-form-item>
318 </el-col>
319 </el-row>
320 </div>
321 <el-row class="btn" v-if="isSave">
322 <el-form-item>
323 <el-button type="primary" @click="onSubmit">保存</el-button>
324 </el-form-item>
325 </el-row>
326 </el-form>
327 </div>
328 </template>
329 <script>
330 import ywmix from "@/views/ywbl/mixin/index";
331 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
332 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
333 import tdytTable from "@/views/workflow/components/tdytTable";
334 import { Init, saveData } from "@/api/workflow/sllmFlow.js";
335 import { mapGetters } from "vuex";
336 export default {
337 mixins: [ywmix],
338 mounted () {
339 let that = this
340 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
341 this.propsParam = this.$attrs;
342 var formdata = new FormData();
343 this.loading = true
344 formdata.append("bsmSldy", this.propsParam.bsmSldy);
345 formdata.append("djlx", this.propsParam.djlx);
346 formdata.append("isEdit", this.viewEdit);
347 Init(formdata).then((res) => {
348 setTimeout(() => {
349 this.loading = false
350 }, 200)
351 if (res.code === 200 && res.result) {
352 this.ruleForm = {
353 ...res.result,
354 ...res.result.qlxxdatas,
355 };
356 this.ruleForm.qlrList.forEach((item) => {
357 item.id = item.bsmSqr
358 if (item.sfczr == '1') {
359 that.czr = item.bsmSqr
360 }
361 })
362 that.czrOptions = that.ruleForm.qlrList
363 that.isSave = that.viewEdit
364 } else {
365 that.isSave = false
366 that.$confirm(res.message, '提示', {
367 cancelButtonText: '取消',
368 showConfirmButton: false,
369 type: 'warning'
370 })
371 }
372 }).catch(() => {
373 this.loading = false
374 this.isSave = false
375 })
376 },
377 components: { qlrCommonTable, tdytTable, ywrCommonTable },
378 computed: {
379 ...mapGetters(["dictData", "flag"]),
380 },
381 data () {
382 return {
383 isSave: true,
384 loading: false,
385 disabled: true,
386 tdytOption: [],
387 czrOptions: [],
388 czr: "",
389 ruleForm: {
390 lq: {
391 zlnd: "",
392 ldsyqssj: "",
393 ldsyjssj: ""
394 },
395 flow: {
396 ywh: "",
397 },
398 qlxx: {
399 mj: "",
400 },
401 sldy: {
402 gyfs: "",
403 },
404 slsq: {},
405 fdcq2: {
406 zyjzmj: "",
407 ftjzmj: "",
408 },
409 zdjbxx: {
410 ghytmc: "",
411 },
412 },
413 //传递参数
414 propsParam: this.$attrs,
415 //表单是否可操作
416 viewEdit: true,
417 rules: {},
418 };
419 },
420 methods: {
421 /**
422 * @description: 更新土地用途信息
423 * @param {*} val
424 * @author: renchao
425 */
426 upDateTdytxxList (val) {
427 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
428 },
429 /**
430 * @description: 更新权利人信息
431 * @param {*} val
432 * @author: renchao
433 */
434 upDateQlrxxList (val) {
435 if (!_.isEqual(val, this.ruleForm.qlrList)) {
436 this.ruleForm.qlrList = _.cloneDeep(val);
437 this.czrOptions = this.ruleForm.qlrList;
438 }
439 this.num = 0
440 this.ruleForm.qlrList.forEach(item => {
441 if (item.id == this.czr) {
442 this.num++
443 }
444 })
445 if (this.num == 0) {
446 this.czr = ''
447 }
448 },
449 /**
450 * @description: 是否持证人变化
451 * @param {*} val
452 * @author: renchao
453 */
454 updaterow () {
455 this.czr = "";
456 },
457 /**
458 * @description: 更新业务人信息
459 * @param {*} val
460 * @author: renchao
461 */
462 upDateYwrxxList (val) {
463 this.ruleForm.ywrList = _.cloneDeep(val);
464 },
465 /**
466 * @description: onSubmit
467 * @author: renchao
468 */
469 onSubmit () {
470 let that = this;
471 if (this.ruleForm.qlrList.length == 0) {
472 this.$message({
473 showClose: true,
474 message: "请确认权利人信息",
475 type: "error",
476 });
477 return false;
478 }
479
480 if (this.ruleForm.sldy.gyfs == "0") {
481 if (this.ruleForm.qlrList.length > 1) {
482 this.$message({
483 showClose: true,
484 message: "共有方式:单独所有,权利人只能是一个人",
485 type: "error",
486 });
487 return false;
488 }
489 this.ruleForm.qlrList[0].sfczr = "1";
490 } else {
491 if (this.ruleForm.qlrList.length <= 1) {
492 this.$message({
493 showClose: true,
494 message:
495 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
496 type: "error",
497 });
498 return false;
499 }
500 //是否分别持证
501 if (this.ruleForm.sldy.sqfbcz == "1") {
502 //是
503 this.ruleForm.qlrList.forEach(item => {
504 item.sfczr = "1";
505 });
506 } else {
507 if (that.czr === '') {
508 that.$message({
509 showClose: true,
510 message: "请选择持证人",
511 type: "error",
512 });
513 return false;
514 }
515 this.ruleForm.qlrList.forEach(item => {
516 if (item.id == that.czr) {
517 item.sfczr = "1";
518 } else {
519 item.sfczr = "0";
520 }
521 });
522 }
523 }
524 saveData(this.ruleForm).then((res) => {
525 if (res.code === 200) {
526 this.$message({
527 showClose: true,
528 message: "保存成功!",
529 type: "success",
530 });
531 this.$store.dispatch("user/refreshPage", true);
532 } else {
533 this.$message({
534 showClose: true,
535 message: res.message,
536 type: "error"
537 })
538 }
539 })
540 }
541 }
542 }
543 </script>
544 <style scoped lang="scss">
545 @import "~@/styles/public.scss";
546
547 /deep/.el-form {
548 display: flex;
549 flex-direction: column;
550 height: calc(100vh - 130px);
551 }
552
553 /deep/.el-form-item__label {
554 padding: 0;
555 }
556
557 /deep/.el-radio {
558 margin-right: 10px;
559 }
560
561 /deep/.el-select {
562 width: 100%;
563 }
564
565 /deep/.el-form-item {
566 margin-bottom: 3px;
567 }
568
569 .marginBot0 {
570 margin-bottom: 0 !important;
571 }
572
573 .slxx {
574 box-sizing: border-box;
575 }
576
577 .slxx_con {
578 flex: 1;
579 height: 100%;
580 background-color: #ffffff;
581 overflow-y: auto;
582 padding-right: 3px;
583 overflow-x: hidden;
584 }
585
586 .submit_btn {
587 height: 50px;
588 }
589
590 .btn {
591 text-align: center;
592 padding-top: 10px;
593 height: 36px;
594 background-color: #ffffff;
595 padding: 5px 0;
596 }
597
598 .textArea {
599 /deep/.el-textarea__inner {
600 min-height: 90px !important;
601 }
602 }
603
604 /deep/.el-form-item__label {
605 padding-bottom: 0px;
606 }
607 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-04 16:11:40
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 :class="{ readonly: editDisabled }"
13 v-Loading="loading"
14 ref="ruleForm"
15 :label-position="flag ? 'top' : ''"
16 :inline="flag"
17 label-width="140px">
18 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
19 <div class="slxx_title title-block">
20 申请业务信息
21 <div class="triangle"></div>
22 </div>
23 <el-row :gutter="10">
24 <el-col :span="8">
25 <el-form-item label="业务号:">
26 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
27 </el-form-item>
28 </el-col>
29 <el-col :span="8">
30 <el-form-item label="受理人员:">
31 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item label="受理时间:">
36 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
37 </el-form-item>
38 </el-col>
39 </el-row>
40 <el-row :gutter="10">
41 <el-col :span="8">
42 <el-form-item label="权利类型:">
43 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8">
47 <el-form-item label="登记类型:">
48 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
49 </el-form-item>
50 </el-col>
51 <el-col :span="8">
52 <el-form-item label="登记情形:">
53 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
54 </el-form-item>
55 </el-col>
56 </el-row>
57 <div class="slxx_title title-block">
58 <el-row>
59 <el-col :span="20">
60 不动产单元情况
61 </el-col>
62 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
63 <el-form-item label="是否创建证书:" style="height:24px">
64 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
65 <el-radio label="1"></el-radio>
66 <el-radio label="0"></el-radio>
67 </el-radio-group>
68 </el-form-item>
69 </el-col>
70 </el-row>
71 <div class="triangle"></div>
72 </div>
73 <el-row :gutter="10">
74 <el-col :span="8">
75 <el-form-item label="宗地代码:">
76 <el-input v-model="ruleForm.zdjbxx.zddm" disabled></el-input>
77 </el-form-item>
78 </el-col>
79 <el-col :span="8">
80 <el-form-item label="不动产单元号:">
81 <el-input v-model="ruleForm.sldy.bdcdyh" disabled></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="权利性质:">
86 <treeselect
87 v-model="ruleForm.zdjbxx.qlxz"
88 noOptionsText="暂无数据"
89 :default-expand-level="1"
90 :disabled="!viewEdit"
91 placeholder=""
92 :normalizer="normalizer"
93 :show-count="true"
94 :options="dictData['A9']" />
95 </el-form-item>
96 </el-col>
97 </el-row>
98 <el-row :gutter="10">
99 <el-col :span="8">
100 <el-form-item label="地块代码:">
101 <el-input v-model="ruleForm.tdcbjyq.dkdm" :disabled="!viewEdit"></el-input>
102 </el-form-item>
103 </el-col>
104 <el-col :span="8">
105 <el-form-item label="地块名称:">
106 <el-input v-model="ruleForm.tdcbjyq.dkmc" :disabled="!viewEdit"></el-input>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="承包方式:">
111 <el-input v-model="ruleForm.tdcbjyq.cbfs" :disabled="!viewEdit"></el-input>
112 </el-form-item>
113 </el-col>
114
115 </el-row>
116
117 <el-row :gutter="10">
118 <el-col :span="8">
119 <el-form-item label="发包方代码:">
120 <el-input v-model="ruleForm.tdcbjyq.fbfdm" :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 <el-col :span="8">
124 <el-form-item label="发包方全称:">
125 <el-input v-model="ruleForm.tdcbjyq.fbfqc" :disabled="!viewEdit"></el-input>
126 </el-form-item>
127 </el-col>
128 <el-col :span="8">
129 <el-form-item label="发包方负责人:">
130 <el-input v-model="ruleForm.tdcbjyq.fbffzr" :disabled="!viewEdit"></el-input>
131 </el-form-item>
132 </el-col>
133 </el-row>
134
135 <el-row :gutter="10">
136 <el-col :span="8">
137 <el-form-item label="承包起始时间:">
138 <el-date-picker
139 v-model="ruleForm.tdcbjyq.cbqssj"
140 class="width100"
141 type="date"
142 :disabled="!viewEdit"
143 :picker-options="pickerOptionsStart"
144 placeholder="选择日期"
145 value-format="yyyy-MM-dd HH:mm:ss"
146 format="yyyy-MM-dd"></el-date-picker>
147 </el-form-item>
148 </el-col>
149 <el-col :span="8">
150 <el-form-item label="承包结束时间:">
151 <el-date-picker
152 v-model="ruleForm.tdcbjyq.cbjssj"
153 :disabled="!viewEdit"
154 class="width100"
155 type="date"
156 placeholder="选择日期"
157 :picker-options="pickerOptionsEnd"
158 value-format="yyyy-MM-dd HH:mm:ss"
159 format="yyyy-MM-dd"></el-date-picker>
160 </el-form-item>
161 </el-col>
162 <el-col :span="8">
163 <el-form-item label="承包期限:">
164 <el-input v-model="ruleForm.tdcbjyq.cbqx" :disabled="!viewEdit"></el-input>
165 </el-form-item>
166 </el-col>
167 </el-row>
168 <el-row :gutter="10">
169 <el-col :span="8">
170 <el-form-item label="用途:">
171 <treeselect
172 :disabled="!viewEdit"
173 v-model="ruleForm.tdcbjyq.yt"
174 noOptionsText="暂无数据"
175 :default-expand-level="1"
176 placeholder=""
177 :normalizer="normalizer"
178 :show-count="true"
179 :options="dictData['tdyt']" />
180 </el-form-item>
181 </el-col>
182 <el-col :span="8">
183 <el-form-item label="确权面积:">
184 <div class="flex">
185 <el-input
186 :disabled="!viewEdit"
187 v-model="ruleForm.tdcbjyq.qqmj"
188 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
189 <el-select :disabled="!viewEdit" v-model="mjdw" style="width: 68px">
190 <el-option
191 v-for="item in dictData['A7']"
192 :key="item.dcode"
193 :label="item.dname"
194 :value="item.dcode">
195 </el-option>
196 </el-select>
197 </div>
198 </el-form-item>
199 </el-col>
200 <el-col :span="8">
201 <el-form-item label="土地所有权性质:">
202 <el-select clearable v-model="ruleForm.tdcbjyq.tdsyqxz" class="width100" placeholder="请选择" :disabled="!viewEdit">
203 <el-option v-for="item in dictData['A45']" :key="item.dcode" :label="item.dname" :value="item.dcode">
204 </el-option>
205 </el-select>
206 </el-form-item>
207 </el-col>
208 </el-row>
209
210 <el-row :gutter="10">
211 <el-col :span="8">
212 <el-form-item label="是否永久基本农田:">
213 <el-radio-group v-model="ruleForm.tdcbjyq.sfyjjbnt" :disabled="!viewEdit">
214 <el-radio label="1"></el-radio>
215 <el-radio label="0"></el-radio>
216 </el-radio-group>
217 </el-form-item>
218 </el-col>
219 <el-col :span="8">
220 <el-form-item label="是否自留地:">
221 <el-radio-group
222 v-model="ruleForm.tdcbjyq.sfzld"
223 :disabled="!viewEdit">
224 <el-radio label="1"></el-radio>
225 <el-radio label="0"></el-radio>
226 </el-radio-group>
227 </el-form-item>
228 </el-col>
229 <el-col :span="8">
230 <el-form-item label="用地用海分类:">
231 <el-select clearable v-model="ruleForm.tdcbjyq.ydyhfl" class="width100" placeholder="请选择" :disabled="!viewEdit">
232 <el-option v-for="item in dictData['A56']" :key="item.dcode" :label="item.dname" :value="item.dcode">
233 </el-option>
234 </el-select>
235 </el-form-item>
236 </el-col>
237 </el-row>
238
239 <el-row :gutter="10">
240 <el-col :span="8">
241 <el-form-item label="承包经营权取得方式:">
242 <el-select clearable v-model="ruleForm.tdcbjyq.cbjyqqdfs" class="width100" placeholder="请选择" :disabled="!viewEdit">
243 <el-option v-for="item in dictData['A59']" :key="item.dcode" :label="item.dname" :value="item.dcode">
244 </el-option>
245 </el-select>
246 </el-form-item>
247 </el-col>
248 <el-col :span="16">
249 <el-form-item label="附记:">
250 <el-input maxlength="100" :disabled="!viewEdit" v-model="ruleForm.tdcbjyq.fj"></el-input>
251 </el-form-item>
252 </el-col>
253 </el-row>
254
255 <div class="slxx_title title-block">
256 权利人信息
257 <div class="triangle"></div>
258 </div>
259 <el-row :gutter="10">
260 <el-col :span="12">
261 <el-form-item label="共有方式:">
262 <el-radio-group
263 :disabled="!viewEdit"
264 v-model="ruleForm.sldy.gyfs">
265 <el-radio label="0">单独所有</el-radio>
266 <el-radio label="1">共同共有</el-radio>
267 <el-radio label="2">按份所有</el-radio>
268 <el-radio label="3">其它共有</el-radio>
269 </el-radio-group>
270 </el-form-item>
271 </el-col>
272 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
273 <el-form-item label="是否分别持证:">
274 <el-radio-group
275 v-model="ruleForm.sldy.sqfbcz"
276 :disabled="!viewEdit"
277 @input="updaterow()">
278 <el-radio :label="1"></el-radio>
279 <el-radio :label="0"></el-radio>
280 </el-radio-group>
281 </el-form-item>
282 </el-col>
283 <el-col
284 :span="6"
285 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
286 <el-form-item label="持证人:">
287 <el-select
288 v-model="czr"
289 placeholder="持证人"
290 :disabled="!viewEdit">
291 <el-option
292 v-for="(item, index) in czrOptions"
293 :key="index"
294 :label="item.sqrmc"
295 :value="item.id">
296 </el-option>
297 </el-select>
298 </el-form-item>
299 </el-col>
300 </el-row>
301 <qlrCommonTable
302 :tableData="ruleForm.qlrList"
303 :disabled="viewEdit"
304 @upDateQlrxxList="upDateQlrxxList"
305 :key="key"
306 :gyfs="ruleForm.sldy.gyfs" />
307
308 <div v-if="ruleForm.qlxx.djlx == '200'">
309 <div class="slxx_title title-block">
310 义务人信息
311 <div class="triangle"></div>
312 </div>
313 <ywrCommonTable
314 v-if="ruleForm.ywrList"
315 :disabled="viewEdit"
316 :tableData="ruleForm.ywrList"
317 :key="key"
318 @upDateQlrxxList="upDateYwrxxList" />
319 </div>
320 <div class="slxx_title title-block">
321 登记原因
322 <div class="triangle"></div>
323 </div>
324 <el-row :gutter="10">
325 <el-col>
326 <el-form-item label="登记原因:" prop="tdcbjyq.djyy">
327 <el-input
328 class="textArea"
329 maxlength="500"
330 show-word-limit
331 type="textarea"
332 :disabled="!viewEdit"
333 v-model="ruleForm.tdcbjyq.djyy">
334 </el-input>
335 </el-form-item>
336 </el-col>
337 </el-row>
338 </div>
339 <el-row class="btn" v-if="isSave">
340 <el-form-item>
341 <el-button type="primary" @click="onSubmit">保存</el-button>
342 </el-form-item>
343 </el-row>
344 </el-form>
345 </div>
346 </template>
347 <script>
348 import { mapGetters } from "vuex";
349 import ywmix from "@/views/ywbl/mixin/index";
350 import { Init, saveData } from "@/api/workflow/tdcbjyq.js";
351 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
352 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
353 export default {
354 mixins: [ywmix],
355 mounted () {
356 let that = this
357 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
358 this.propsParam = this.$attrs;
359 var formdata = new FormData();
360 this.loading = true
361 formdata.append("bsmSldy", this.propsParam.bsmSldy);
362 formdata.append("djlx", this.propsParam.djlx);
363 formdata.append("isEdit", this.viewEdit);
364 Init(formdata).then((res) => {
365 setTimeout(() => {
366 that.loading = false
367 }, 200)
368 if (res.code === 200) {
369 that.ruleForm = res.result;
370 that.ruleForm.qlrList.forEach((item) => {
371 item.id = item.bsmSqr
372 if (item.sfczr == '1') {
373 that.czr = item.bsmSqr
374 }
375 })
376 that.czrOptions = that.ruleForm.qlrList;
377 that.isSave = that.viewEdit
378 } else {
379 that.isSave = false
380 that.$confirm(res.message, '提示', {
381 cancelButtonText: '取消',
382 showConfirmButton: false,
383 type: 'warning'
384 })
385 }
386 }).catch(() => {
387 this.loading = false
388 this.isSave = false
389 })
390 },
391 components: { qlrCommonTable, ywrCommonTable },
392 computed: {
393 ...mapGetters(["dictData", "flag"]),
394 // 根据流程判断表单是否为只读
395 editDisabled () {
396 if (!this.viewEdit) {
397 //只读状态
398 return true;
399 }
400 return false;
401 },
402 },
403 data () {
404 return {
405 // 开始结束日期限制
406 pickerOptionsStart: {
407 disabledDate: (time) => {
408 if (this.ruleForm.tdcbjyq.cbjssj) {
409 return (
410 time.getTime() >= new Date(this.ruleForm.tdcbjyq.cbjssj).getTime()
411 );
412 }
413 }
414 },
415 // 结束日期限制
416 pickerOptionsEnd: {
417 disabledDate: (time) => {
418 if (this.ruleForm.tdcbjyq.cbqssj) {
419 return (
420 time.getTime() <= new Date(this.ruleForm.tdcbjyq.cbqssj).getTime()
421 );
422 }
423 }
424 },
425 isSave: true,
426 // 键名转换,方法默认是label和children进行树状渲染
427 normalizer (node) {
428 //方法
429 if (node.children == null || node.children == "null") {
430 delete node.children;
431 }
432 return {
433 id: node.dcode,
434 label: node.dname,
435 };
436 },
437 loading: false,
438 mjdw: "1",
439 //表单是否可操作
440 viewEdit: true,
441 czr: "",
442 key: 0,
443 disabled: true,
444 czrOptions: [],
445 ruleForm: {},
446 //传递参数
447 propsParam: {},
448 rules: {
449 'tdcbjyq.djyy': [
450 { required: true, message: '请输入登记原因', trigger: 'blur' }
451 ]
452 }
453 }
454 },
455 methods: {
456 /**
457 * @description: 更新权利人信息
458 * @param {*} val
459 * @author: renchao
460 */
461 upDateQlrxxList (val) {
462 this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
463 this.czrOptions = this.ruleForm.qlrList;
464 this.num = 0
465 this.ruleForm.qlrList.forEach(item => {
466 if (item.id == this.czr) {
467 this.num++
468 }
469 })
470 if (this.num == 0) {
471 this.czr = ''
472 }
473 },
474 /**
475 * @description: 是否持证人变化
476 * @param {*} val
477 * @author: renchao
478 */
479 updaterow () {
480 this.czr = "";
481 },
482 /**
483 * @description: 更新义务人信息
484 * @param {*} val
485 * @author: renchao
486 */
487 upDateYwrxxList (val) {
488 this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
489 this.key++;
490 },
491 /**
492 * @description: onSubmit
493 * @author: renchao
494 */
495 onSubmit () {
496 let that = this;
497 if (this.ruleForm.qlrList.length == 0) {
498 this.$message({
499 showClose: true,
500 message: "请确认权利人信息",
501 type: "error",
502 });
503 return false;
504 }
505 if (this.ruleForm.sldy.gyfs == "0") {
506 if (this.ruleForm.qlrList.length > 1) {
507 this.$message({
508 showClose: true,
509 message: "共有方式:单独所有,权利人只能是一个人",
510 type: "error",
511 });
512 return false;
513 }
514 this.ruleForm.qlrList[0].sfczr = "1";
515 } else {
516 if (this.ruleForm.qlrList.length <= 1) {
517 this.$message({
518 showClose: true,
519 message:
520 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
521 type: "error",
522 });
523 return false;
524 }
525 //是否分别持证
526 if (this.ruleForm.sldy.sqfbcz == "1") {
527 //是
528 this.ruleForm.qlrList.forEach((item, index) => {
529 item.sfczr = "1";
530 });
531 } else {
532 if (that.czr === '') {
533 that.$message({
534 showClose: true,
535 message: "请选择持证人",
536 type: "error",
537 });
538 return false;
539 }
540 this.ruleForm.qlrList.forEach((item, index) => {
541 if (item.id == that.czr) {
542 item.sfczr = "1";
543 } else {
544 item.sfczr = "0";
545 }
546 });
547 }
548 }
549 /**
550 * @description: saveData
551 * @author: renchao
552 */
553
554 this.$refs['ruleForm'].validate((valid) => {
555 if (valid) {
556 that.$store.dispatch("user/refreshPage", false);
557 saveData(that.ruleForm).then((res) => {
558 if (res.code === 200) {
559 that.$message({
560 showClose: true,
561 message: "保存成功!",
562 type: "success",
563 });
564 that.$store.dispatch("user/refreshPage", true);
565 } else {
566 that.$message({
567 showClose: true,
568 message: res.message,
569 type: "error"
570 })
571 }
572 })
573 } else {
574 that.$message({
575 showClose: true,
576 message: "请输入登记原因",
577 type: "error"
578 })
579 return false
580 }
581 })
582 }
583 }
584 }
585 </script>
586 <style scoped lang="scss">
587 @import "~@/styles/public.scss";
588 @import "~@/styles/slxx/slxx.scss";
589 /deep/.el-form-item__error {
590 display: none;
591 }
592 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 10:09:50
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 v-Loading="loading"
13 ref="ruleForm"
14 :label-position="flag ? 'top' : ''"
15 :inline="flag"
16 label-width="120px">
17 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
18 <div class="slxx_title title-block">
19 申请业务信息
20 <div class="triangle"></div>
21 </div>
22 <el-row :gutter="10">
23 <el-col :span="8">
24 <el-form-item label="业务号:">
25 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理人员:">
30 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
31 </el-form-item>
32 </el-col>
33 <el-col :span="8">
34 <el-form-item label="受理时间:">
35 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row :gutter="10">
40 <el-col :span="8">
41 <el-form-item label="权利类型:">
42 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记类型:">
47 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 <el-col :span="8">
51 <el-form-item label="登记情形:">
52 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
53 </el-form-item>
54 </el-col>
55 </el-row>
56 <div class="slxx_title title-block">
57 <el-row>
58 <el-col :span="20">
59 不动产单元情况
60 </el-col>
61 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
62 <el-form-item label="是否创建证书:" style="height:24px">
63 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
64 <el-radio label="1"></el-radio>
65 <el-radio label="0"></el-radio>
66 </el-radio-group>
67 </el-form-item>
68 </el-col>
69 </el-row>
70 <div class="triangle"></div>
71 </div>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="宗地代码:">
75 <el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="不动产单元号:">
80 <el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="权利性质:">
85 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
86 </el-form-item>
87 </el-col>
88 </el-row>
89 <el-row :gutter="10">
90 <el-col :span="8">
91 <el-form-item label="宗地面积:">
92 <el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="权利设定方式:">
97 <el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
98 </el-form-item>
99 </el-col>
100 <el-col :span="8">
101 <el-form-item label="农用地面积:">
102 <div class="flex">
103 <el-input
104 maxlength="12"
105 v-model="ruleForm.tdsyq.nydmj"
106 :disabled="!viewEdit"
107 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
108 <el-select
109 v-model="mjdw"
110 :disabled="!viewEdit"
111 style="width: 68px">
112 <el-option
113 v-for="item in dictData['A7']"
114 :key="item.dcode"
115 :label="item.dname"
116 :value="item.dcode">
117 </el-option>
118 </el-select>
119 </div>
120 </el-form-item>
121 </el-col>
122 </el-row>
123 <el-row :gutter="10">
124 <el-col :span="8">
125 <el-form-item label="耕地面积:">
126 <div class="flex">
127 <el-input
128 maxlength="12"
129 v-model="ruleForm.tdsyq.gdmj"
130 :disabled="!viewEdit"
131 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
132 <el-select
133 v-model="mjdw"
134 :disabled="!viewEdit"
135 style="width: 68px">
136 <el-option
137 v-for="item in dictData['A7']"
138 :key="item.dcode"
139 :label="item.dname"
140 :value="item.dcode">
141 </el-option>
142 </el-select>
143 </div>
144 </el-form-item>
145 </el-col>
146 <el-col :span="8">
147 <el-form-item label="林地面积:">
148 <div class="flex">
149 <el-input
150 maxlength="12"
151 v-model="ruleForm.tdsyq.ldmj"
152 :disabled="!viewEdit"
153 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
154 <el-select
155 v-model="mjdw"
156 :disabled="!viewEdit"
157 style="width: 68px">
158 <el-option
159 v-for="item in dictData['A7']"
160 :key="item.dcode"
161 :label="item.dname"
162 :value="item.dcode">
163 </el-option>
164 </el-select>
165 </div>
166 </el-form-item>
167 </el-col>
168 <el-col :span="8">
169 <el-form-item label="草地面积:">
170 <div class="flex">
171 <el-input
172 maxlength="12"
173 v-model="ruleForm.tdsyq.cdmj"
174 :disabled="!viewEdit"
175 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
176 <el-select
177 v-model="mjdw"
178 :disabled="!viewEdit"
179 style="width: 68px">
180 <el-option
181 v-for="item in dictData['A7']"
182 :key="item.dcode"
183 :label="item.dname"
184 :value="item.dcode">
185 </el-option>
186 </el-select>
187 </div>
188 </el-form-item>
189 </el-col>
190 </el-row>
191 <el-row :gutter="10">
192 <el-col :span="8">
193 <el-form-item label="其他农用地面积:">
194 <div class="flex">
195 <el-input
196 maxlength="12"
197 v-model="ruleForm.tdsyq.qtnydmj"
198 :disabled="!viewEdit"
199 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
200 <el-select
201 v-model="mjdw"
202 :disabled="!viewEdit"
203 style="width: 68px">
204 <el-option
205 v-for="item in dictData['A7']"
206 :key="item.dcode"
207 :label="item.dname"
208 :value="item.dcode">
209 </el-option>
210 </el-select>
211 </div>
212 </el-form-item>
213 </el-col>
214 <el-col :span="8">
215 <el-form-item label="建筑使用面积:">
216 <div class="flex">
217 <el-input
218 maxlength="12"
219 v-model="ruleForm.tdsyq.jsydmj"
220 :disabled="!viewEdit"
221 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
222 <el-select
223 v-model="mjdw"
224 :disabled="!viewEdit"
225 style="width: 68px">
226 <el-option
227 v-for="item in dictData['A7']"
228 :key="item.dcode"
229 :label="item.dname"
230 :value="item.dcode">
231 </el-option>
232 </el-select>
233 </div>
234 </el-form-item>
235 </el-col>
236 <el-col :span="8">
237 <el-form-item label="未利用地面积:">
238 <div class="flex">
239 <el-input
240 maxlength="12"
241 v-model="ruleForm.tdsyq.wlydmj"
242 :disabled="!viewEdit"
243 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
244 <el-select
245 v-model="mjdw"
246 :disabled="!viewEdit"
247 style="width: 68px">
248 <el-option
249 v-for="item in dictData['A7']"
250 :key="item.dcode"
251 :label="item.dname"
252 :value="item.dcode">
253 </el-option>
254 </el-select>
255 </div>
256 </el-form-item>
257 </el-col>
258 </el-row>
259 <div class="slxx_title title-block">
260 土地用途
261 <div class="triangle"></div>
262 </div>
263 <tdytTable
264 :tableData="ruleForm.tdytqxList"
265 :ableOperation="viewEdit"
266 @upDateTdytxxList="upDateTdytxxList" />
267 <div class="slxx_title title-block">
268 权利人信息
269 <div class="triangle"></div>
270 </div>
271 <el-row :gutter="10">
272 <el-col :span="12">
273 <el-form-item label="共有方式:">
274 <el-radio-group
275 :disabled="!viewEdit"
276 v-model="ruleForm.sldy.gyfs">
277 <el-radio label="0">单独所有</el-radio>
278 <el-radio label="1">共同共有</el-radio>
279 <el-radio label="2">按份所有</el-radio>
280 <el-radio label="3">其它共有</el-radio>
281 </el-radio-group>
282 </el-form-item>
283 </el-col>
284 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
285 <el-form-item label="是否分别持证:">
286 <el-radio-group
287 v-model="ruleForm.sldy.sqfbcz"
288 :disabled="!viewEdit"
289 @input="updaterow()">
290 <el-radio :label="1"></el-radio>
291 <el-radio :label="0"></el-radio>
292 </el-radio-group>
293 </el-form-item>
294 </el-col>
295 <el-col
296 :span="6"
297 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
298 <el-form-item label="持证人:">
299 <el-select
300 v-model="czr"
301 placeholder="持证人"
302 :disabled="!viewEdit">
303 <el-option
304 v-for="(item, index) in czrOptions"
305 :key="index"
306 :label="item.sqrmc"
307 :value="item.id">
308 </el-option>
309 </el-select>
310 </el-form-item>
311 </el-col>
312 </el-row>
313 <qlrCommonTable
314 :tableData="ruleForm.qlrList"
315 :disabled="viewEdit"
316 @upDateQlrxxList="upDateQlrxxList"
317 :key="key"
318 :gyfs="ruleForm.sldy.gyfs" />
319
320 <div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0">
321 <div class="slxx_title title-block">
322 义务人信息
323 <div class="triangle"></div>
324 </div>
325 <ywrCommonTable
326 v-if="ruleForm.ywrList"
327 :disabled="viewEdit"
328 :tableData="ruleForm.ywrList"
329 :key="key"
330 @upDateQlrxxList="upDateYwrxxList" />
331 </div>
332
333 <div class="slxx_title title-block">
334 登记原因
335 <div class="triangle"></div>
336 </div>
337 <el-row :gutter="10">
338 <el-col>
339 <el-form-item label="登记原因:" prop="tdsyq.djyy">
340 <el-input
341 class="textArea"
342 maxlength="500"
343 show-word-limit
344 type="textarea"
345 :disabled="!viewEdit"
346 v-model="ruleForm.tdsyq.djyy">
347 </el-input>
348 </el-form-item>
349 </el-col>
350 </el-row>
351 </div>
352 <el-row class="btn" v-if="isSave">
353 <el-form-item>
354 <el-button type="primary" @click="onSubmit">保存</el-button>
355 </el-form-item>
356 </el-row>
357 </el-form>
358 </div>
359 </template>
360 <script>
361 import { mapGetters } from "vuex";
362 import ywmix from "@/views/ywbl/mixin/index";
363 import { Init, saveData } from "@/api/workflow/tdsyqFlow.js";
364 import tdytTable from "@/views/workflow/components/tdytTable";
365 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
366 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
367 export default {
368 mixins: [ywmix],
369 components: { qlrCommonTable, tdytTable, ywrCommonTable },
370 mounted () {
371 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
372 this.propsParam = this.$attrs;
373 var formdata = new FormData();
374 let that = this;
375 this.loading = true
376 formdata.append("bsmSldy", this.propsParam.bsmSldy);
377 formdata.append("djlx", this.propsParam.djlx);
378 formdata.append("isEdit", this.viewEdit);
379 Init(formdata).then((res) => {
380 setTimeout(() => {
381 this.loading = false
382 }, 200)
383 if (res.code === 200) {
384 that.ruleForm = res.result;
385 that.ruleForm.qlrList.forEach((item) => {
386 item.id = item.bsmSqr
387 if (item.sfczr == '1') {
388 that.czr = item.bsmSqr
389 }
390 })
391 that.czrOptions = that.ruleForm.qlrList;
392 that.isSave = that.viewEdit
393 } else {
394 this.isSave = false
395 this.$confirm(res.message, '提示', {
396 cancelButtonText: '取消',
397 showConfirmButton: false,
398 type: 'warning'
399 })
400 }
401 }).catch(() => {
402 this.loading = false
403 })
404 },
405 computed: {
406 ...mapGetters(["dictData", "flag"]),
407 },
408 data () {
409 return {
410 isSave: true,
411 loading: false,
412 // 键名转换,方法默认是label和children进行树状渲染
413 normalizer (node) {
414 //方法
415 if (node.children == null || node.children == "null") {
416 delete node.children;
417 }
418 return {
419 id: node.dcode,
420 label: node.dname,
421 };
422 },
423 mjdw: "1",
424 value2: {
425 id: "520000198407304275",
426 user: "史平",
427 },
428 props: {
429 label: "user",
430 value: "id",
431 keyword: "keyword",
432 },
433 //表单是否可操作
434 viewEdit: true,
435 key: 0,
436 disabled: true,
437 czrOptions: [],
438 czr: "",
439 ruleForm: {},
440 //传递参数
441 propsParam: {},
442 rules: {
443 'tdsyq.djyy': [
444 { required: true, message: '请输入登记原因', trigger: 'blur' }
445 ]
446 }
447 }
448 },
449 methods: {
450 /**
451 * @description: 更新土地用途信息
452 * @param {*} val
453 * @author: renchao
454 */
455 upDateTdytxxList (val) {
456 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
457 this.key++;
458 },
459 /**
460 * @description: 更新权利人信息
461 * @param {*} val
462 * @author: renchao
463 */
464 upDateQlrxxList (val) {
465 this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
466 this.czrOptions = this.ruleForm.qlrList;
467 this.num = 0
468 this.ruleForm.qlrList.forEach(item => {
469 if (item.id == this.czr) {
470 this.num++
471 }
472 })
473 if (this.num == 0) {
474 this.czr = ''
475 }
476 },
477 /**
478 * @description: 更新义务人信息
479 * @param {*} val
480 * @author: renchao
481 */
482 upDateYwrxxList (val) {
483 this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
484 this.key++;
485 },
486 /**
487 * @description: 是否持证人变化
488 * @param {*} val
489 * @author: renchao
490 */
491 updaterow () {
492 this.czr = "";
493 },
494 /**
495 * @description: onSubmit
496 * @author: renchao
497 */
498 onSubmit () {
499 let that = this;
500 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
501 if (arr.length > 0) {
502 this.$message({
503 showClose: true,
504 message: "土地用途不能为空",
505 type: "error",
506 });
507 return false;
508 }
509 if (this.ruleForm.qlrList.length == 0) {
510 this.$message({
511 showClose: true,
512 message: "请确认权利人信息",
513 type: "error",
514 });
515 return false;
516 }
517
518 if (this.ruleForm.sldy.gyfs == "0") {
519 if (this.ruleForm.qlrList.length > 1) {
520 this.$message({
521 showClose: true,
522 message: "共有方式:单独所有,权利人只能是一个人",
523 type: "error",
524 });
525 return false;
526 }
527 this.ruleForm.qlrList[0].sfczr = "1";
528 } else {
529 if (this.ruleForm.qlrList.length <= 1) {
530 this.$message({
531 showClose: true,
532 message:
533 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
534 type: "error",
535 });
536 return false;
537 }
538 //是否分别持证
539 if (this.ruleForm.sldy.sqfbcz == "1") {
540 //是
541 this.ruleForm.qlrList.forEach((item, index) => {
542 item.sfczr = "1";
543 })
544 } else {
545 if (that.czr === '') {
546 that.$message({
547 showClose: true,
548 message: "请选择持证人",
549 type: "error"
550 })
551 return false
552 }
553 this.ruleForm.qlrList.forEach((item, index) => {
554 if (item.id == that.czr) {
555 item.sfczr = "1"
556 } else {
557 item.sfczr = "0"
558 }
559 })
560 }
561 }
562 /**
563 * @description: saveData
564 * @author: renchao
565 */
566
567 this.$refs['ruleForm'].validate((valid) => {
568 if (valid) {
569 saveData(this.ruleForm).then((res) => {
570 if (res.code === 200) {
571 that.$message({
572 showClose: true,
573 message: "保存成功!",
574 type: "success",
575 });
576 that.$store.dispatch("user/refreshPage", true);
577 } else {
578 that.$message({
579 showClose: true,
580 message: res.message,
581 type: "error"
582 })
583 }
584 })
585 } else {
586 this.$message({
587 showClose: true,
588 message: "请输入登记原因",
589 type: "error"
590 });
591 return false;
592 }
593 });
594 }
595 }
596 }
597 </script>
598 <style scoped lang="scss">
599 @import "~@/styles/public.scss";
600 @import "~@/styles/slxx/slxx.scss";
601 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="120px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10" v-if="ruleForm.slsq">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10" v-if="ruleForm.slsq">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 不动产情况
53 <div class="triangle"></div>
54 </div>
55 <el-row :gutter="10" v-if="ruleForm.qlxx">
56 <el-col :span="8">
57 <el-form-item label="原不动产证号:">
58 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="不动产单元号:">
63 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="坐落:">
68 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="预告登记种类:">
75 <el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="土地使用权人:">
80 <el-input disabled v-model="ruleForm.ygdj.tdsyqr"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="房屋性质:">
85 <el-select v-model="ruleForm.ygdj.fwxz" :disabled="!viewEdit">
86 <el-option
87 v-for="item in dictData['A19']"
88 :key="item.dcode"
89 :label="item.dname"
90 :value="item.dcode">
91 </el-option>
92 </el-select>
93 </el-form-item>
94 </el-col>
95 </el-row>
96 <el-row :gutter="10" v-if="ruleForm.qlxx">
97 <el-col :span="8">
98 <el-form-item label="房屋用途:">
99 <el-select v-model="ruleForm.ygdj.ghyt" :disabled="!viewEdit">
100 <el-option
101 v-for="item in dictData['A17']"
102 :key="item.dcode"
103 :label="item.dname"
104 :value="item.dcode">
105 </el-option>
106 </el-select>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="所在层:">
111 <el-input maxlength="20" :disabled="!viewEdit" v-model="ruleForm.ygdj.szc"></el-input>
112 </el-form-item>
113 </el-col>
114 <el-col :span="8">
115 <el-form-item label="总层数:">
116 <el-input
117 :disabled="!viewEdit"
118 maxlength="4"
119 v-model.number="ruleForm.ygdj.zcs"
120 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
121 </el-form-item>
122 </el-col>
123 </el-row>
124 <el-row :gutter="10" v-if="ruleForm.qlxx">
125 <el-col :span="8">
126 <el-form-item label="房屋结构:">
127 <el-select v-model="ruleForm.ygdj.fwjg" :disabled="!viewEdit">
128 <el-option
129 v-for="item in dictData['A46']"
130 :key="item.dcode"
131 :label="item.dname"
132 :value="item.dcode">
133 </el-option>
134 </el-select>
135 </el-form-item>
136 </el-col>
137
138 <el-col :span="8">
139 <el-form-item label="建筑面积:">
140 <div class="flex">
141 <el-input
142 maxlength="12"
143 v-model="ruleForm.ygdj.jzmj"
144 :disabled="!viewEdit"
145 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
146 <el-select :disabled="!viewEdit" v-model="mjdw" style="width: 68px">
147 <el-option
148 v-for="item in dictData['A7']"
149 :key="item.dcode"
150 :label="item.dname"
151 :value="item.dcode">
152 </el-option>
153 </el-select>
154 </div>
155 </el-form-item>
156 </el-col>
157 <el-col :span="8">
158 <el-form-item label="取得价格:">
159 <div class="flex">
160 <el-input
161 :disabled="!viewEdit"
162 maxlength="11"
163 v-model="ruleForm.ygdj.qdjg"
164 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
165 <el-select
166 v-model="ruleForm.ygdj.jedw"
167 :disabled="!viewEdit"
168 style="width: 68px">
169 <el-option
170 v-for="item in dictData['A57']"
171 :key="item.dcode"
172 :label="item.dname"
173 :value="item.dcode">
174 </el-option>
175 </el-select>
176 </div>
177 </el-form-item>
178 </el-col>
179 </el-row>
180 <el-row :gutter="10">
181 <el-col :span="24">
182 <el-form-item label="附记:">
183 <el-input
184 :disabled="!viewEdit"
185 v-model="ruleForm.ygdj.fj"
186 type="textarea"
187 maxlength="500"
188 show-word-limit></el-input>
189 </el-form-item>
190 </el-col>
191 </el-row>
192 <div class="slxx_title title-block">
193 权利人信息
194 <div class="triangle"></div>
195 </div>
196 <el-row :gutter="10">
197 <el-col :span="12" v-if="ruleForm.qlxx">
198 <el-form-item label="共有方式:">
199 <el-radio-group
200 :disabled="!viewEdit"
201 v-model="ruleForm.sldy.gyfs">
202 <el-radio label="0">单独所有</el-radio>
203 <el-radio label="1">共同共有</el-radio>
204 <el-radio label="2">按份所有</el-radio>
205 <el-radio label="3">其它共有</el-radio>
206 </el-radio-group>
207 </el-form-item>
208 </el-col>
209 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
210 <el-form-item label="是否分别持证:">
211 <el-radio-group
212 v-model="ruleForm.sldy.sqfbcz"
213 :disabled="!viewEdit"
214 @input="updaterow()">
215 <el-radio :label="1"></el-radio>
216 <el-radio :label="0"></el-radio>
217 </el-radio-group>
218 </el-form-item>
219 </el-col>
220 <el-col
221 :span="6"
222 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
223 <el-form-item label="持证人:">
224 <el-select
225 v-model="czr"
226 placeholder="持证人"
227 :disabled="!viewEdit">
228 <el-option
229 v-for="(item,index) in czrOptions"
230 :key="index"
231 :label="item.sqrmc"
232 :value="item.id">
233 </el-option>
234 </el-select>
235 </el-form-item>
236 </el-col>
237 </el-row>
238 <qlrCommonTable
239 @upDateQlrxxList="upDateQlrxxList"
240 :disabled="viewEdit"
241 :tableData="ruleForm.qlrList"
242 :gyfs="ruleForm.sldy.gyfs" />
243 <div class="slxx_title title-block">
244 义务人信息
245 <div class="triangle"></div>
246 </div>
247 <ywrCommonTable
248 @upDateQlrxxList="upDateYwrxxList"
249 :disabled="viewEdit"
250 :tableData="ruleForm.ywrList"
251 :gyfs="ruleForm.sldy.gyfs" />
252 <div class="slxx_title title-block">
253 登记原因
254 <div class="triangle"></div>
255 </div>
256 <el-row :gutter="10">
257 <el-col>
258 <el-form-item v-if="ruleForm.sldy.djlx=='400'" label="注销登记原因:" prop="djyy">
259 <el-input
260 class="textArea"
261 type="textarea"
262 maxlength="500"
263 show-word-limit
264 :disabled="!viewEdit"
265 v-model="ruleForm.ygdj.zxyy">
266 </el-input>
267 </el-form-item>
268 <el-form-item v-else label="登记原因:" prop="ygdj.djyy">
269 <el-input
270 class="textArea"
271 type="textarea"
272 maxlength="500"
273 show-word-limit
274 :disabled="!viewEdit"
275 v-model="ruleForm.ygdj.djyy">
276 </el-input>
277 </el-form-item>
278 </el-col>
279 </el-row>
280 </div>
281 <el-row class="btn" v-if="isSave">
282 <el-form-item>
283 <el-button type="primary" @click="onSubmit">保存</el-button>
284 </el-form-item>
285 </el-row>
286 </el-form>
287 </div>
288 </template>
289 <script>
290 import ywmix from "@/views/ywbl/mixin/index";
291 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
292 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
293 import { Init, saveData } from "@/api/workflow/ygdjFlow.js";
294 import { mapGetters } from "vuex";
295 export default {
296 mixins: [ywmix],
297 mounted () {
298 let that = this
299 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
300 this.propsParam = this.$attrs;
301 this.loading = true
302 var formdata = new FormData();
303 formdata.append("bsmSldy", this.propsParam.bsmSldy);
304 formdata.append("djlx", this.propsParam.djlx);
305 formdata.append("isEdit", this.viewEdit);
306 Init(formdata).then((res) => {
307 setTimeout(() => {
308 this.loading = false
309 }, 200)
310 if (res.code === 200 && res.result) {
311 this.ruleForm = res.result;
312 this.ruleForm.qlrList.forEach((item) => {
313 item.id = item.bsmSqr
314 if (item.sfczr == '1') {
315 that.czr = item.bsmSqr
316 }
317 })
318 that.czrOptions = this.ruleForm.qlrList
319 that.isSave = that.viewEdit
320 } else {
321 that.isSave = false
322 that.$confirm(res.message, '提示', {
323 cancelButtonText: '取消',
324 showConfirmButton: false,
325 type: 'warning'
326 })
327 }
328 }).catch(() => {
329 this.isSave = false
330 this.loading = false
331 })
332 },
333 components: { qlrCommonTable, ywrCommonTable },
334 computed: {
335 ...mapGetters(["dictData", "flag"])
336 },
337 data () {
338 return {
339 isSave: true,
340 loading: false,
341 mjdw: "1",
342 //表单是否可操作
343 viewEdit: true,
344 disabled: true,
345 tdytOption: [],
346 czrOptions: [],
347 czr: "",
348 ruleForm: {
349 qlxx: {},
350 sldy: {},
351 slsq: {},
352 ygdj: {},
353 zdjbxx: {},
354 },
355 //传递参数
356 propsParam: this.$attrs,
357 rules: {
358 'ygdj.djyy': [
359 { required: true, message: '请输入登记原因', trigger: 'blur' }
360 ]
361 }
362 }
363 },
364 methods: {
365 /**
366 * @description: 更新权利人信息
367 * @param {*} val
368 * @author: renchao
369 */
370 upDateQlrxxList (val) {
371 this.ruleForm.qlrList = _.cloneDeep(val);
372 this.czrOptions = this.ruleForm.qlrList;
373 this.num = 0
374 this.ruleForm.qlrList.forEach(item => {
375 if (item.id == this.czr) {
376 this.num++
377 }
378 })
379 if (this.num == 0) {
380 this.czr = ''
381 }
382 },
383 /**
384 * @description: 更新业务人信息
385 * @param {*} val
386 * @author: renchao
387 */
388 upDateYwrxxList (val) {
389 this.ruleForm.ywrList = _.cloneDeep(val);
390 },
391 /**
392 * @description: 是否持证人变化
393 * @param {*} val
394 * @author: renchao
395 */
396 updaterow () {
397 this.czr = "";
398 },
399 /**
400 * @description: onSubmit
401 * @author: renchao
402 */
403 onSubmit () {
404 let that = this;
405 if (this.ruleForm.qlrList.length == 0) {
406 this.$message({
407 showClose: true,
408 message: "请确认权利人信息",
409 type: "error",
410 });
411 return false;
412 }
413
414 if (this.ruleForm.sldy.gyfs == "0") {
415 if (this.ruleForm.qlrList.length > 1) {
416 this.$message({
417 showClose: true,
418 message: "共有方式:单独所有,权利人只能是一个人",
419 type: "error",
420 });
421 return false;
422 }
423 this.ruleForm.qlrList[0].sfczr = "1";
424 } else {
425 if (this.ruleForm.qlrList.length <= 1) {
426 this.$message({
427 showClose: true,
428 message:
429 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
430 type: "error",
431 });
432 return false;
433 }
434 //是否分别持证
435 if (this.ruleForm.sldy.sqfbcz == "1") {
436 //是
437 this.ruleForm.qlrList.forEach((item, index) => {
438 item.sfczr = "1";
439 });
440 } else {
441 if (that.czr === '') {
442 that.$message({
443 showClose: true,
444 message: "请选择持证人",
445 type: "error"
446 });
447 return false;
448 }
449 this.ruleForm.qlrList.forEach((item, index) => {
450 if (item.id == that.czr) {
451 item.sfczr = "1"
452 } else {
453 item.sfczr = "0"
454 }
455 })
456 }
457 }
458 this.$refs['ruleForm'].validate((valid) => {
459 if (valid) {
460 that.$store.dispatch("user/refreshPage", false);
461 saveData(that.ruleForm).then((res) => {
462 if (res.code === 200) {
463 that.$message({
464 showClose: true,
465 message: "保存成功!",
466 type: "success",
467 });
468 that.$store.dispatch("user/refreshPage", true);
469 } else {
470 that.$message({
471 showClose: true,
472 message: res.message,
473 type: "error",
474 });
475 }
476 })
477 } else {
478 that.$message({
479 showClose: true,
480 message: "请输入登记原因",
481 type: "error"
482 })
483 return false
484 }
485 })
486 }
487 }
488 }
489 </script>
490 <style scoped lang="scss">
491 @import "~@/styles/public.scss";
492
493 /deep/.el-form {
494 display: flex;
495 flex-direction: column;
496 height: calc(100vh - 130px);
497 }
498
499 /deep/.el-form-item__label {
500 padding: 0;
501 }
502
503 /deep/.el-radio {
504 margin-right: 10px;
505 }
506
507 /deep/.el-select {
508 width: 100%;
509 }
510
511 /deep/.el-form-item {
512 margin-bottom: 3px;
513 }
514
515 .marginBot0 {
516 margin-bottom: 0 !important;
517 }
518
519 .slxx {
520 box-sizing: border-box;
521 }
522
523 .slxx_con {
524 flex: 1;
525 height: 100%;
526 background-color: #ffffff;
527 overflow-y: auto;
528 padding-right: 3px;
529 overflow-x: hidden;
530 }
531
532 .submit_btn {
533 height: 50px;
534 }
535
536 .btn {
537 text-align: center;
538 padding-top: 10px;
539 height: 36px;
540 background-color: #ffffff;
541 padding: 5px 0;
542 }
543
544 .textArea {
545 /deep/.el-textarea__inner {
546 min-height: 90px !important;
547 }
548 }
549
550 /deep/.el-form-item__label {
551 padding-bottom: 0px;
552 }
553 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="140px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10" v-if="ruleForm.slsq">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10" v-if="ruleForm.slsq">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 预告买卖登记情况
53 <div class="triangle"></div>
54 </div>
55 <el-row :gutter="10">
56 <el-col :span="8">
57 <el-form-item label="权利类型:">
58 <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="不动产证明号:">
63 <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="不动产单元号:">
68 <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="权利人:">
75 <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="证件种类:">
80 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="证件号:">
85 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
86 </el-form-item>
87 </el-col>
88 </el-row>
89 <el-row :gutter="10">
90 <el-col :span="8">
91 <el-form-item label="房屋面积:">
92 <el-input disabled v-model="ruleForm.ztQlxx.qlmjmc"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="房屋用途:">
97 <el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
98 </el-form-item>
99 </el-col>
100 <el-col :span="8">
101 <el-form-item label="房屋性质:">
102 <el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
103 </el-form-item>
104 </el-col>
105 </el-row>
106 <el-row :gutter="10">
107 <el-col :span="8">
108 <el-form-item label="房屋取得价格:">
109 <el-input disabled v-model="ruleForm.ztQlxx.qdjgmc"></el-input>
110 </el-form-item>
111 </el-col>
112 <el-col :span="16">
113 <el-form-item label="不动产坐落:">
114 <el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
115 </el-form-item>
116 </el-col>
117 </el-row>
118 <div class="slxx_title title-block">
119 预告抵押情况
120 <div class="triangle"></div>
121 </div>
122 <el-row :gutter="10">
123 <el-col :span="8">
124 <el-form-item label="原不动产证号:"
125 prop="sldy.ybdcqzsh"
126 :rules="rules.ybdcqzshrules">
127 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="预告登记种类:"
132 prop="ygdj.ygdjzlmc"
133 :rules="rules.ygdjzlmcrules">
134 <el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
135 </el-form-item>
136 </el-col>
137 <el-col :span="8">
138 <el-form-item
139 label="是否禁止或者限制转让的约定:"
140 label-width="200px"
141 prop="ygdj.sfczjzhxz"
142 :rules="rules.sfczjzhxzrules">
143 <el-radio-group
144 v-model="ruleForm.ygdj.sfczjzhxz"
145 :disabled="!viewEdit">
146 <el-radio label="1"></el-radio>
147 <el-radio label="0"></el-radio>
148 </el-radio-group>
149 </el-form-item>
150 </el-col>
151 </el-row>
152 <el-row :gutter="10">
153 <el-col :span="8">
154 <el-form-item label="被担保主债权数额:"
155 prop="ygdj.qdjg"
156 :rules="rules.qdjgrules">
157 <div class="flex">
158 <el-input
159 v-model="ruleForm.ygdj.qdjg"
160 :disabled="!viewEdit"></el-input>
161 <el-select
162 v-model="ruleForm.ygdj.jedw"
163 :disabled="!viewEdit"
164 style="width: 68px">
165 <el-option
166 v-for="item in dictData['A57']"
167 :key="item.dcode"
168 :label="item.dname"
169 :value="item.dcode"></el-option>
170 </el-select>
171 </div>
172 </el-form-item>
173 </el-col>
174 <el-col :span="8">
175 <el-form-item label="债务履行起始时间:"
176 prop="ygdj.zwlxqssj"
177 :rules="rules.zwlxqssjrules">
178 <el-date-picker
179 v-model="ruleForm.ygdj.zwlxqssj"
180 :disabled="!viewEdit"
181 type="date"></el-date-picker>
182 </el-form-item>
183 </el-col>
184 <el-col :span="8">
185 <el-form-item label="债务履行结束时间:"
186 prop="ygdj.zwlxjssj"
187 :rules="rules.zwlxjssjrules">
188 <el-date-picker
189 v-model="ruleForm.ygdj.zwlxjssj"
190 :disabled="!viewEdit"
191 type="date"></el-date-picker>
192 </el-form-item>
193 </el-col>
194 </el-row>
195 <el-row :gutter="10">
196 <el-col :span="24">
197 <el-form-item label="担保范围:"
198 prop="ygdj.dbfw"
199 :rules="rules.dbfwrules">
200 <el-input
201 v-model="ruleForm.ygdj.dbfw"
202 :disabled="!viewEdit"></el-input>
203 </el-form-item>
204 </el-col>
205 </el-row>
206 <el-row>
207 <el-col :span="24">
208 <el-form-item label="附记:" prop="fj">
209 <el-input
210 type="textarea"
211 maxlength="500"
212 show-word-limit
213 v-model="ruleForm.ygdj.fj"
214 :disabled="!viewEdit"></el-input>
215 </el-form-item>
216 </el-col>
217 </el-row>
218 <div class="slxx_title title-block">
219 抵押权人信息
220 <div class="triangle"></div>
221 </div>
222 <el-row :gutter="10">
223 <el-col :span="12">
224 <el-form-item label="共有方式:">
225 <el-radio-group
226 :disabled="!viewEdit"
227 v-model="ruleForm.sldy.gyfs">
228 <el-radio label="0">单独所有</el-radio>
229 <el-radio label="1">共同共有</el-radio>
230 <el-radio label="2">按份所有</el-radio>
231 <el-radio label="3">其它共有</el-radio>
232 </el-radio-group>
233 </el-form-item>
234 </el-col>
235 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
236 <el-form-item label="是否分别持证:">
237 <el-radio-group
238 v-model="ruleForm.sldy.sqfbcz"
239 :disabled="!viewEdit"
240 @input="updaterow()">
241 <el-radio :label="1"></el-radio>
242 <el-radio :label="0"></el-radio>
243 </el-radio-group>
244 </el-form-item>
245 </el-col>
246 <el-col
247 :span="6"
248 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
249 <el-form-item label="持证人:">
250 <el-select
251 v-model="czr"
252 placeholder="持证人"
253 :disabled="!viewEdit">
254 <el-option
255 v-for="(item,index) in czrOptions"
256 :key="index"
257 :label="item.sqrmc"
258 :value="item.id"></el-option>
259 </el-select>
260 </el-form-item>
261 </el-col>
262 </el-row>
263 <qlrCommonTable
264 @upDateQlrxxList="upDateQlrxxList"
265 :tableData="ruleForm.qlrList"
266 :disabled="viewEdit"
267 :gyfs="ruleForm.sldy.gyfs" />
268 <div class="slxx_title title-block">
269 抵押人信息
270 <div class="triangle"></div>
271 </div>
272 <ywrCommonTable
273 @upDateQlrxxList="upDateYwrxxList"
274 :tableData="ruleForm.ywrList"
275 :disabled="viewEdit"
276 :gyfs="ruleForm.sldy.gyfs" />
277 <div class="slxx_title title-block">
278 登记原因
279 <div class="triangle"></div>
280 </div>
281 <el-row :gutter="10">
282 <el-col>
283 <el-form-item v-if="ruleForm.sldy.djlx=='400'" label="注销登记原因:" prop="djyy">
284 <el-input
285 class="textArea"
286 type="textarea"
287 maxlength="500"
288 show-word-limit
289 :disabled="!viewEdit"
290 v-model="ruleForm.ygdj.zxyy">
291 </el-input>
292 </el-form-item>
293 <el-form-item v-else label="登记原因:" prop="ygdj.djyy">
294 <el-input
295 class="textArea"
296 type="textarea"
297 maxlength="500"
298 show-word-limit
299 :disabled="!viewEdit"
300 v-model="ruleForm.ygdj.djyy">
301 </el-input>
302 </el-form-item>
303 </el-col>
304 </el-row>
305 </div>
306 <el-row class="btn" v-if="isSave">
307 <el-form-item>
308 <el-button type="primary" @click="onSubmit">保存</el-button>
309 </el-form-item>
310 </el-row>
311 </el-form>
312 </div>
313 </template>
314 <script>
315 import ywmix from "@/views/ywbl/mixin/index";
316 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
317 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
318 import { Init, saveData } from "@/api/workflow/ygdyFlow.js";
319 import { mapGetters } from "vuex";
320 export default {
321 mixins: [ywmix],
322 mounted () {
323 let that = this;
324 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
325 this.propsParam = this.$attrs;
326 var formdata = new FormData();
327 this.loading = true;
328 formdata.append("bsmSldy", this.propsParam.bsmSldy);
329 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
330 formdata.append("djlx", this.propsParam.djlx);
331 formdata.append("isEdit", this.viewEdit);
332 Init(formdata).then((res) => {
333 setTimeout(() => {
334 that.loading = false
335 }, 200)
336 if (res.code === 200 && res.result) {
337 that.ruleForm = res.result;
338 that.ruleForm.qlrList.forEach((item) => {
339 item.id = item.bsmSqr
340 if (item.sfczr == '1') {
341 that.czr = item.bsmSqr
342 }
343 })
344 that.czrOptions = this.ruleForm.qlrList;
345 that.isSave = that.viewEdit
346 } else {
347 that.isSave = false
348 that.$confirm(res.message, '提示', {
349 cancelButtonText: '取消',
350 showConfirmButton: false,
351 type: 'warning'
352 })
353 }
354 }).catch(() => {
355 this.loading = false
356 this.isSave = false
357 })
358 },
359 components: { qlrCommonTable, ywrCommonTable },
360 computed: {
361 ...mapGetters(["dictData", "flag"])
362 },
363 data () {
364 return {
365 isSave: true,
366 //表单是否可操作
367 viewEdit: true,
368 loading: false,
369 disabled: true,
370 tdytOption: [],
371 czrOptions: [],
372 czr: "",
373 ruleForm: {},
374 //传递参数
375 propsParam: this.$attrs,
376 rules: {
377 ybdcqzshrules: [
378 { required: true, message: "原不动产证号", trigger: "blur" },
379 ],
380 ygdjzlmcrules: [
381 { required: true, message: "预告登记种类", trigger: "blur" },
382 ],
383 sfczjzhxzrules: [
384 { required: true, message: "是否禁止或者限制转让的约定:", trigger: "blur" },
385 ],
386 qdjgrules: [{ required: true, message: "被担保主债权数额", trigger: "blur" }],
387 zwlxqssjrules: [{ required: true, message: "债务履行起始时间", trigger: "blur" }],
388 zwlxjssjrules: [{ required: true, message: "债务履行结束时间", trigger: "blur" }],
389 dbfwrules: [{ required: true, message: "担保范围", trigger: "blur" }],
390 'ygdj.djyy': [
391 { required: true, message: '请输入登记原因', trigger: 'blur' }
392 ]
393 }
394 }
395 },
396 methods: {
397 /**
398 * @description: 更新权利人信息
399 * @param {*} val
400 * @author: renchao
401 */
402 upDateQlrxxList (val) {
403 this.ruleForm.qlrList = _.cloneDeep(val);
404 this.czrOptions = this.ruleForm.qlrList;
405 this.num = 0
406 this.ruleForm.qlrList.forEach(item => {
407 if (item.id == this.czr) {
408 this.num++
409 }
410 })
411 if (this.num == 0) {
412 this.czr = ''
413 }
414 },
415 /**
416 * @description: 义务人信息
417 * @param {*} val
418 * @author: renchao
419 */
420 upDateYwrxxList (val) {
421 this.ruleForm.ywrList = _.cloneDeep(val);
422 },
423 /**
424 * @description: 是否持证人变化
425 * @author: renchao
426 */
427 updaterow () {
428 this.czr = "";
429 },
430 /**
431 * @description: onSubmit
432 * @author: renchao
433 */
434 onSubmit () {
435 let that = this;
436 if (this.ruleForm.qlrList.length == 0) {
437 this.$message({
438 showClose: true,
439 message: "请确认权利人信息",
440 type: "error",
441 });
442 return false;
443 }
444
445 if (this.ruleForm.sldy.gyfs == "0") {
446 if (this.ruleForm.qlrList.length > 1) {
447 this.$message({
448 showClose: true,
449 message: "共有方式:单独所有,权利人只能是一个人",
450 type: "error",
451 });
452 return false;
453 }
454 this.ruleForm.qlrList[0].sfczr = "1";
455 } else {
456 if (this.ruleForm.qlrList.length <= 1) {
457 this.$message({
458 showClose: true,
459 message:
460 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
461 type: "error",
462 });
463 return false;
464 }
465 //是否分别持证
466 if (this.ruleForm.sldy.sqfbcz == "1") {
467 //是
468 this.ruleForm.qlrList.forEach((item, index) => {
469 item.sfczr = "1";
470 });
471 } else {
472 if (that.czr === '') {
473 that.$message({
474 showClose: true,
475 message: "请选择持证人",
476 type: "error",
477 });
478 return false;
479 }
480 this.ruleForm.qlrList.forEach((item, index) => {
481 if (item.id == that.czr) {
482 item.sfczr = "1";
483 } else {
484 item.sfczr = "0";
485 }
486 });
487 }
488 }
489 saveData(this.ruleForm).then((res) => {
490 if (res.code === 200) {
491 this.$message({
492 showClose: true,
493 message: "保存成功!",
494 type: "success",
495 });
496 this.$store.dispatch("user/refreshPage", true);
497 } else {
498 this.$message({
499 showClose: true,
500 message: res.message,
501 type: "error"
502 })
503 }
504 })
505 }
506 }
507 }
508 </script>
509 <style scoped lang="scss">
510 @import "~@/styles/public.scss";
511 @import "~@/styles/slxx/slxx.scss";
512 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 v-Loading="loading"
7 :label-position="flag ? 'top' : ''"
8 :inline="flag"
9 ref="ruleForm"
10 label-width="140px">
11 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
12 <div class="slxx_title title-block">
13 申请业务信息
14 <div class="triangle"></div>
15 </div>
16 <el-row :gutter="10" v-if="ruleForm.flow">
17 <el-col :span="8">
18 <el-form-item label="业务号:">
19 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="8">
23 <el-form-item label="受理人员:">
24 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理时间:">
29 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
30 </el-form-item>
31 </el-col>
32 </el-row>
33 <el-row :gutter="10" v-if="ruleForm.sldyList">
34 <el-col :span="8">
35 <el-form-item label="权利类型:">
36 <el-input
37 disabled
38 v-model="ruleForm.sldyList[0].qllxmc"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item label="登记类型:">
43 <el-input
44 disabled
45 v-model="ruleForm.sldyList[0].djlxmc"></el-input>
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item label="登记情形:">
50 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
51 </el-form-item>
52 </el-col>
53 </el-row>
54
55 <div
56 class="slxx_title title-block"
57 v-if="ruleForm.slsq.djywbm.includes('400')">
58 在建工程抵押信息列表({{ ruleForm.qlxxList.length }} 户)
59 <div class="triangle"></div>
60 </div>
61 <div
62 class="slxx_title title-block"
63 v-else>
64 抵押户信息列表信息({{ ruleForm.hlist.length }} 户)
65 <div class="triangle"></div>
66 </div>
67 <qlxxTable :tableData="ruleForm.qlxxList" v-if="ruleForm.slsq.djywbm.includes('400')" />
68 <qjhTable v-else :tableData="ruleForm.hlist" />
69 <div class="slxx_title title-block">
70 抵押信息
71 <div class="triangle"></div>
72 </div>
73 <el-row
74 :gutter="10"
75 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
76 <el-col :span="8">
77 <el-form-item label="抵押方式:">
78 <el-radio-group disabled v-model="ruleForm.diyaqList[0].dyfs">
79 <el-radio label="1">一般抵押</el-radio>
80 <el-radio label="2">最高额抵押</el-radio>
81 </el-radio-group>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="抵押金额类型:">
86 <el-radio-group
87 v-model="ruleForm.diyaqList[0].dyjelx"
88 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
89 <el-radio label="0">独立抵押</el-radio>
90 <el-radio label="1">整体抵押</el-radio>
91 </el-radio-group>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item
96 label="是否存在禁止或者限制转让抵押不动产的约定:"
97 label-width="300px">
98 <el-radio-group
99 v-model="ruleForm.diyaqList[0].sfczjzhxz"
100 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
101 <el-radio label="1">启用</el-radio>
102 <el-radio label="0">禁用</el-radio>
103 </el-radio-group>
104 </el-form-item>
105 </el-col>
106 </el-row>
107 <el-row
108 :gutter="10"
109 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
110 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 1">
111 <el-form-item label="被担保主债权数额:">
112 <div style="display: flex">
113 <el-input
114 v-model="ruleForm.diyaqList[0].bdbzzqse"
115 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
116 <el-select
117 style="width: 68px"
118 v-model="ruleForm.diyaqList[0].jedw"
119 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
120 <el-option
121 v-for="item in dictData['A57']"
122 :key="item.dcode"
123 :label="item.dname"
124 :value="item.dcode">
125 </el-option>
126 </el-select>
127 </div>
128 </el-form-item>
129 </el-col>
130
131 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 2">
132 <el-form-item label="最高债权额:">
133 <el-input
134 v-model="ruleForm.diyaqList[0].zgzqse"
135 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
136 <el-select
137 v-model="ruleForm.diyaqList[0].jedw"
138 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
139 <el-option
140 v-for="item in dictData['A57']"
141 :key="item.dcode"
142 :label="item.dname"
143 :value="item.dcode">
144 </el-option>
145 </el-select>
146 </el-form-item>
147 </el-col>
148
149 <el-col :span="8">
150 <el-form-item label="债务履行起始时间:">
151 <el-date-picker
152 v-model="ruleForm.diyaqList[0].zwlxqssj"
153 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
154 type="date">
155 </el-date-picker>
156 </el-form-item>
157 </el-col>
158 <el-col :span="8">
159 <el-form-item label="债务履行结束时间:">
160 <el-date-picker
161 v-model="ruleForm.diyaqList[0].zwlxjssj"
162 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
163 type="date">
164 </el-date-picker>
165 </el-form-item>
166 </el-col>
167 </el-row>
168
169 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
170 <el-col :span="24">
171 <el-form-item label="担保范围:">
172 <el-input
173 v-model="ruleForm.diyaqList[0].dbfw"
174 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
175 </el-form-item>
176 </el-col>
177 </el-row>
178 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
179 <el-col :span="24">
180 <el-form-item label="最高债权确定事实和数额:">
181 <el-input
182 v-model="ruleForm.diyaqList[0].zgzqqdss"
183 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
184 </el-form-item>
185 </el-col>
186 </el-row>
187 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
188 <el-col>
189 <el-form-item label="附记:" prop="fj">
190 <el-input
191 type="textarea"
192 maxlength="500"
193 show-word-limit
194 v-model="ruleForm.diyaqList[0].fj"
195 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
196 </el-form-item>
197 </el-col>
198 </el-row>
199
200 <div class="slxx_title title-block">
201 抵押权人信息
202 <div class="triangle"></div>
203 </div>
204 <el-row
205 :gutter="10"
206 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0">
207 <el-col :span="14">
208 <el-form-item label="共有方式:">
209 <el-radio-group
210 :disabled="!viewEdit"
211 v-model="ruleForm.sldyList[0].gyfs">
212 <el-radio label="0">单独所有</el-radio>
213 <el-radio label="1">共同共有</el-radio>
214 <el-radio label="2">按份所有</el-radio>
215 <el-radio label="3">其它共有</el-radio>
216 </el-radio-group>
217 </el-form-item>
218 </el-col>
219 <el-col :span="5" v-show="ruleForm.sldyList[0].gyfs != '0'">
220 <el-form-item label="是否分别持证:">
221 <el-radio-group
222 v-model="ruleForm.sldyList[0].sqfbcz"
223 :disabled="!viewEdit"
224 @input="updaterow()">
225 <el-radio :label="1"></el-radio>
226 <el-radio :label="0"></el-radio>
227 </el-radio-group>
228 </el-form-item>
229 </el-col>
230 <el-col
231 :span="5"
232 v-show="
233 ruleForm.sldyList[0].gyfs != '0' &&
234 ruleForm.sldyList[0].sqfbcz == '0'
235 ">
236 <el-form-item label="持证人:">
237 <el-select
238 v-model="czr"
239 placeholder="持证人"
240 :disabled="!viewEdit">
241 <el-option
242 v-for="(item,index) in czrOptions"
243 :key="index"
244 :label="item.sqrmc"
245 :value="item.id">
246 </el-option>
247 </el-select>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <qlrCommonTable
252 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0"
253 :tableData="ruleForm.qlrList"
254 @upDateQlrxxList="upDateQlrxxList"
255 :disabled="viewEdit"
256 :gyfs="ruleForm.sldyList[0].gyfs" />
257 <div class="slxx_title title-block">
258 抵押人信息
259 <div class="triangle"></div>
260 </div>
261 <qlrCommonTable
262 :tableData="ruleForm.ywrList"
263 @upDateQlrxxList="upDateYwrxxList"
264 :disabled="viewEdit" />
265
266 <div class="slxx_title title-block">
267 登记原因
268 <div class="triangle"></div>
269 </div>
270 <el-row
271 :gutter="10"
272 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
273 <el-col>
274 <el-form-item
275 v-if="ruleForm.sldyList[0].djlx == '400'"
276 label="注销抵押原因:"
277 prop="djyy">
278 <el-input
279 class="textArea"
280 type="textarea"
281 :disabled="!viewEdit"
282 v-model="ruleForm.diyaqList[0].zxdyyy">
283 </el-input>
284 </el-form-item>
285 <el-form-item v-else label="登记原因:" prop="diyaqList[0].djyy">
286 <el-input
287 class="textArea"
288 type="textarea"
289 maxlength="500"
290 show-word-limit
291 :disabled="!viewEdit"
292 v-model="ruleForm.diyaqList[0].djyy">
293 </el-input>
294 </el-form-item>
295 </el-col>
296 </el-row>
297 </div>
298 <el-row class="btn" v-if="isSave">
299 <el-form-item>
300 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
301 </el-form-item>
302 </el-row>
303 </el-form>
304 </div>
305 </template>
306 <script>
307 import qjhTable from "../commonTable/qjhTable";
308 import qlxxTable from "../commonTable/qlxxTable.vue";
309 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
310 import { bacthInit, saveBatchData } from "@/api/workflow/zjgcdyFlow.js";
311 import { mapGetters } from "vuex";
312 export default {
313 mounted () {
314 let that = this
315 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
316 this.propsParam = this.$attrs;
317 var formdata = new FormData();
318
319 this.loading = true
320 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
321 formdata.append("djlx", this.propsParam.djlx);
322 formdata.append("isEdit", this.viewEdit);
323 bacthInit(formdata).then((res) => {
324 setTimeout(() => {
325 that.loading = false
326 }, 200)
327 if (res.code === 200 && res.result) {
328 this.ruleForm = res.result;
329 this.ruleForm.qlrList.forEach((item) => {
330 item.id = item.bsmSqr
331 if (item.sfczr == '1') {
332 that.czr = item.bsmSqr
333 }
334 })
335 that.czrOptions = that.ruleForm.qlrList;
336 that.isSave = that.viewEdit
337 } else {
338 that.isSave = false
339 that.$confirm(res.message, '提示', {
340 cancelButtonText: '取消',
341 showConfirmButton: false,
342 type: 'warning'
343 })
344 }
345 }).catch(() => {
346 this.loading = false
347 })
348 },
349 components: { qlrCommonTable, qjhTable, qlxxTable },
350 computed: {
351 ...mapGetters(["dictData", "flag"]),
352 },
353 data () {
354 return {
355 isSave: true,
356 loading: false,
357 //表单是否可操作
358 viewEdit: true,
359 disabled: true,
360 czrOptions: [],
361 czr: "",
362 ruleForm: {},
363 //传递参数
364 propsParam: {},
365 rules: {
366 'diyaqList[0].djyy': [
367 { required: true, message: '请输入登记原因', trigger: 'blur' }
368 ]
369 },
370 tableData: [],
371 };
372 },
373 methods: {
374 /**
375 * @description: onSubmitClick
376 * @author: renchao
377 */
378 onSubmitClick () {
379 let that = this;
380 if (this.ruleForm.qlrList.length == 0) {
381 this.$message({
382 showClose: true,
383 message: "请确认抵押权人信息",
384 type: "error",
385 });
386 return false;
387 }
388 if (this.ruleForm.sldyList[0].gyfs == "0") {
389 if (this.ruleForm.qlrList.length > 1) {
390 this.$message({
391 showClose: true,
392 message: "共有方式:单独所有,抵押权人只能是一个人",
393 type: "error",
394 });
395 return false;
396 }
397 this.ruleForm.qlrList[0].sfczr = "1";
398 } else {
399 if (this.ruleForm.qlrList.length <= 1) {
400 this.$message({
401 showClose: true,
402 message:
403 "共有方式:共同所有,按份所有,其他所有,抵押权人必须是两个以上",
404 type: "error",
405 });
406 return false;
407 }
408 //是否分别持证
409 if (this.ruleForm.sldyList[0].sqfbcz == "1") {
410 //是
411 this.ruleForm.qlrList.forEach((item, index) => {
412 item.sfczr = "1"
413 })
414 } else {
415 if (that.czr === '') {
416 that.$message({
417 showClose: true,
418 message: "请选择持证人",
419 type: "error",
420 });
421 return false;
422 }
423 this.ruleForm.qlrList.forEach((item, index) => {
424 if (item.id == that.czr) {
425 item.sfczr = "1";
426 } else {
427 item.sfczr = "0";
428 }
429 });
430 }
431 }
432 this.$refs['ruleForm'].validate((valid) => {
433 if (valid) {
434 that.$store.dispatch("user/refreshPage", false);
435 saveBatchData(that.ruleForm, that.propsParam.djlx).then((res) => {
436 if (res.code === 200) {
437 that.$message({
438 showClose: true,
439 message: "保存成功!",
440 type: "success",
441 });
442 that.$store.dispatch("user/refreshPage", true);
443 } else {
444 that.$message({
445 showClose: true,
446 message: res.message,
447 type: "error",
448 });
449 }
450 })
451 } else {
452 that.$message({
453 showClose: true,
454 message: "请输入登记原因",
455 type: "error"
456 })
457 return false
458 }
459 })
460 },
461 /**
462 * @description: 是否持证人变化
463 * @param {*} val
464 * @author: renchao
465 */
466 updaterow () {
467 this.czr = "";
468 },
469 /**
470 * @description: 更新抵押权人信息
471 * @param {*} val
472 * @author: renchao
473 */
474 upDateQlrxxList (val) {
475 if (!_.isEqual(val, this.ruleForm.qlrList)) {
476 this.ruleForm.qlrList = _.cloneDeep(val);
477 this.czrOptions = this.ruleForm.qlrList;
478 }
479 this.num = 0
480 this.ruleForm.qlrList.forEach(item => {
481 if (item.id == this.czr) {
482 this.num++
483 }
484 })
485 if (this.num == 0) {
486 this.czr = ''
487 }
488 },
489 /**
490 * @description: 更新义务人信息
491 * @param {*} val
492 * @author: renchao
493 */
494 upDateYwrxxList (val) {
495 if (!_.isEqual(val, this.ruleForm.ywrList)) {
496 this.ruleForm.ywrList = _.cloneDeep(val);
497 }
498 }
499 }
500 }
501 </script>
502 <style scoped lang="scss">
503 @import "~@/styles/public.scss";
504 @import "~@/styles/slxx/slxx.scss";
505 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="170px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10">
35 <el-col :span="8">
36 <el-form-item label="权利类型:" prop="qllx">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:" prop="djlx">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:" prop="djqx">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 抵押户信息情况
53 <div class="triangle"></div>
54 </div>
55 <el-row :gutter="10">
56 <el-col :span="8">
57 <el-form-item label="房屋用途:">
58 <el-input disabled v-model="ruleForm.qjh.showfwyt"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="房屋性质:">
63 <el-input disabled v-model="ruleForm.qjh.fwxzmc"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="房屋结构:">
68 <el-input disabled v-model="ruleForm.qjh.showfwjg"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="建筑面积:">
75 <div class="flex">
76 <el-input
77 maxlength="12"
78 v-model="ruleForm.qjh.jzmj" disabled
79 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
80 <el-select disabled v-model="mjdw" style="width: 68px">
81 <el-option
82 v-for="item in dictData['A7']"
83 :key="item.dcode"
84 :label="item.dname"
85 :value="item.dcode">
86 </el-option>
87 </el-select>
88 </div>
89 </el-form-item>
90 </el-col>
91 <el-col :span="8">
92 <el-form-item label="套内建筑面积:">
93 <div class="flex">
94 <el-input
95 maxlength="12"
96 v-model="ruleForm.qjh.tnjzmj" disabled
97 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
98 <el-select disabled v-model="mjdw" style="width: 68px">
99 <el-option
100 v-for="item in dictData['A7']"
101 :key="item.dcode"
102 :label="item.dname"
103 :value="item.dcode">
104 </el-option>
105 </el-select>
106 </div>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="分摊建筑面积:">
111 <div class="flex">
112 <el-input
113 maxlength="12"
114 v-model="ruleForm.qjh.ftjzmj" disabled
115 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
116 <el-select disabled v-model="mjdw" style="width: 68px">
117 <el-option
118 v-for="item in dictData['A7']"
119 :key="item.dcode"
120 :label="item.dname"
121 :value="item.dcode">
122 </el-option>
123 </el-select>
124 </div>
125 </el-form-item>
126 </el-col>
127 </el-row>
128 <el-row :gutter="10">
129 <el-col :span="8">
130 <el-form-item label="不动产单元号:">
131 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
132 </el-form-item>
133 </el-col>
134 <el-col :span="8">
135 <el-form-item label="室号部位:">
136 <el-input disabled v-model="ruleForm.qjh.shbw"></el-input>
137 </el-form-item>
138 </el-col>
139 <el-col :span="8">
140 <el-form-item label="坐落:">
141 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
142 </el-form-item>
143 </el-col>
144 </el-row>
145
146 <div class="slxx_title title-block">
147 抵押信息
148 <div class="triangle"></div>
149 </div>
150
151 <el-row :gutter="10">
152 <el-col :span="8">
153 <el-form-item label="抵押方式:">
154 <!-- <el-input disabled v-model="ruleForm.slywxx.djqxmc"></el-input> -->
155 <el-radio-group disabled v-model="ruleForm.diyaq.dyfs">
156 <el-radio label="1">一般抵押</el-radio>
157 <el-radio label="2">最高额抵押</el-radio>
158 </el-radio-group>
159 </el-form-item>
160 </el-col>
161 <el-col :span="16">
162 <el-form-item
163 label="是否存在禁止或者限制转让抵押不动产的约定:"
164 label-width="350px">
165 <el-radio-group
166 v-model="ruleForm.diyaq.sfczjzhxz"
167 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
168 <el-radio label="1"></el-radio>
169 <el-radio label="0"></el-radio>
170 </el-radio-group>
171 </el-form-item>
172 </el-col>
173 </el-row>
174
175 <el-row :gutter="10">
176 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
177 <el-form-item label="被担保主债权数额:">
178 <div style="display:flex">
179 <el-input
180 v-model="ruleForm.diyaq.bdbzzqse"
181 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
182 <el-select style="width: 68px" v-model="ruleForm.diyaq.jedw"
183 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
184 <el-option
185 v-for="item in dictData['A57']"
186 :key="item.dcode"
187 :label="item.dname"
188 :value="item.dcode">
189 </el-option>
190 </el-select>
191 </div>
192 </el-form-item>
193 </el-col>
194
195 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
196 <el-form-item label="最高债权额:">
197 <div style="display: flex">
198 <el-input
199 v-model="ruleForm.diyaq.zgzqse"
200 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
201 <el-select v-model="ruleForm.diyaq.jedw" style="width: 68px" :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
202 <el-option
203 v-for="item in dictData['A57']"
204 :key="item.dcode"
205 :label="item.dname"
206 :value="item.dcode">
207 </el-option>
208 </el-select>
209 </div>
210 </el-form-item>
211 </el-col>
212
213 <el-col :span="8">
214 <el-form-item label="债务履行起始时间:">
215 <el-date-picker
216 v-model="ruleForm.diyaq.zwlxqssj"
217 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"
218 type="date">
219 </el-date-picker>
220 </el-form-item>
221 </el-col>
222 <el-col :span="8">
223 <el-form-item label="债务履行结束时间:">
224 <el-date-picker
225 v-model="ruleForm.diyaq.zwlxjssj"
226 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"
227 type="date">
228 </el-date-picker>
229 </el-form-item>
230 </el-col>
231 </el-row>
232
233 <el-row>
234 <el-col :span="24">
235 <el-form-item label="担保范围:">
236 <el-input
237 v-model="ruleForm.diyaq.dbfw"
238 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
239 </el-form-item>
240 </el-col>
241 </el-row>
242 <el-row>
243 <el-col :span="24">
244 <el-form-item label="最高债权确定事实和数额:">
245 <el-input
246 v-model="ruleForm.diyaq.zgzqqdss"
247 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <el-row>
252 <el-col>
253 <el-form-item label="附记:" prop="fj">
254 <el-input
255 type="textarea"
256 maxlength="500"
257 show-word-limit
258 v-model="ruleForm.diyaq.fj"
259 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
260 </el-form-item>
261 </el-col>
262 </el-row>
263
264 <div class="slxx_title title-block">
265 抵押权人信息
266 <div class="triangle"></div>
267 </div>
268 <el-row :gutter="10">
269 <el-col :span="12">
270 <el-form-item label="共有方式:">
271 <el-radio-group
272 :disabled="!viewEdit"
273 v-model="ruleForm.sldy.gyfs">
274 <el-radio label="0">单独所有</el-radio>
275 <el-radio label="1">共同共有</el-radio>
276 <el-radio label="2">按份所有</el-radio>
277 <el-radio label="3">其它共有</el-radio>
278 </el-radio-group>
279 </el-form-item>
280 </el-col>
281 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
282 <el-form-item label="是否分别持证:">
283 <el-radio-group
284 v-model="ruleForm.sldy.sqfbcz"
285 :disabled="!viewEdit"
286 @input="updaterow()">
287 <el-radio :label="1"></el-radio>
288 <el-radio :label="0"></el-radio>
289 </el-radio-group>
290 </el-form-item>
291 </el-col>
292 <el-col
293 :span="6"
294 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
295 <el-form-item label="持证人:">
296 <el-select
297 v-model="czr"
298 placeholder="持证人"
299 :disabled="!viewEdit">
300 <el-option
301 v-for="(item,index) in czrOptions"
302 :key="index"
303 :label="item.sqrmc"
304 :value="item.id">
305 </el-option>
306 </el-select>
307 </el-form-item>
308 </el-col>
309 </el-row>
310 <qlrCommonTable
311 :tableData="ruleForm.qlrList"
312 @upDateQlrxxList="upDateQlrxxList"
313 :disabled="viewEdit"
314 :gyfs="ruleForm.sldy.gyfs" />
315 <div class="slxx_title title-block">
316 抵押人信息
317 <div class="triangle"></div>
318 </div>
319 <qlrCommonTable
320 :tableData="ruleForm.ywrList"
321 @upDateQlrxxList="upDateYwrxxList"
322 :disabled="viewEdit" />
323
324 <div class="slxx_title title-block">
325 登记原因
326 <div class="triangle"></div>
327 </div>
328 <el-row :gutter="10">
329 <el-col>
330 <el-form-item
331 v-if="ruleForm.sldy.djlx == '400'"
332 label="注销抵押原因:"
333 prop="djyy">
334 <el-input
335 class="textArea"
336 type="textarea"
337 :disabled="!viewEdit"
338 v-model="ruleForm.diyaq.zxdyyy">
339 </el-input>
340 </el-form-item>
341 <el-form-item v-else label="登记原因:" prop="diyaq.djyy">
342 <el-input
343 class="textArea"
344 type="textarea"
345 maxlength="500"
346 show-word-limit
347 :disabled="!viewEdit"
348 v-model="ruleForm.diyaq.djyy">
349 </el-input>
350 </el-form-item>
351 </el-col>
352 </el-row>
353 </div>
354 <el-row class="btn" v-if="isSave">
355 <el-form-item>
356 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
357 </el-form-item>
358 </el-row>
359 </el-form>
360 </div>
361 </template>
362 <script>
363 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
364 import { Init, saveData } from "@/api/workflow/zjgcdyFlow.js";
365 import { mapGetters } from "vuex";
366 export default {
367 mounted () {
368 let that = this
369 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
370 this.propsParam = this.$attrs;
371 var formdata = new FormData();
372 this.loading = true
373 formdata.append("bsmSldy", this.propsParam.bsmSldy);
374 formdata.append("djlx", this.propsParam.djlx);
375 formdata.append("isEdit", this.viewEdit);
376 Init(formdata).then((res) => {
377 this.loading = false
378 if (res.code === 200 && res.result) {
379 this.ruleForm = res.result;
380 window.djlx = res.result.sldy.djlx
381 this.czrOptions = this.ruleForm.qlrList;
382 this.ruleForm.qlrList.forEach((item) => {
383 item.id = item.bsmSqr
384 if (item.sfczr == '1') {
385 that.czr = item.bsmSqr
386 }
387 })
388 that.czrOptions = that.ruleForm.qlrList;
389 that.isSave = that.viewEdit
390 } else {
391 that.isSave = false
392 that.$confirm(res.message, '提示', {
393 cancelButtonText: '取消',
394 showConfirmButton: false,
395 type: 'warning'
396 })
397 }
398 }).catch(() => {
399 this.loading = false
400 })
401 },
402 components: { qlrCommonTable },
403 computed: {
404 ...mapGetters(["dictData", "flag"]),
405 },
406 data () {
407 return {
408 mjdw: '1',
409 isSave: true,
410 loading: false,
411 //表单是否可操作
412 viewEdit: true,
413 disabled: true,
414 czrOptions: [],
415 czr: "",
416 ruleForm: {},
417 //传递参数
418 propsParam: {},
419 rules: {
420 'diyaq.djyy': [
421 { required: true, message: '请输入登记原因', trigger: 'blur' }
422 ]
423 },
424 // 键名转换,方法默认是label和children进行树状渲染
425 normalizer (node) {
426 //方法
427 if (node.children == null || node.children == "null") {
428 delete node.children;
429 }
430 return {
431 id: node.dcode,
432 label: node.dname,
433 };
434 },
435 };
436 },
437 methods: {
438 /**
439 * @description: onSubmitClick
440 * @author: renchao
441 */
442 onSubmitClick () {
443 let that = this;
444 if (this.ruleForm.qlrList.length == 0) {
445 this.$message({
446 showClose: true,
447 message: "请确认权利人信息",
448 type: "error",
449 });
450 return false;
451 }
452
453 if (this.ruleForm.sldy.gyfs == "0") {
454 if (this.ruleForm.qlrList.length > 1) {
455 this.$message({
456 showClose: true,
457 message: "共有方式:单独所有,权利人只能是一个人",
458 type: "error",
459 });
460 return false;
461 }
462 this.ruleForm.qlrList[0].sfczr = "1";
463 } else {
464 if (this.ruleForm.qlrList.length <= 1) {
465 this.$message({
466 showClose: true,
467 message:
468 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
469 type: "error",
470 });
471 return false;
472 }
473 //是否分别持证
474 if (this.ruleForm.sldy.sqfbcz == "1") {
475 //是
476 this.ruleForm.qlrList.forEach((item, index) => {
477 item.sfczr = "1";
478 });
479 } else {
480 if (that.czr === '') {
481 that.$message({
482 showClose: true,
483 message: "请选择持证人",
484 type: "error",
485 });
486 return false;
487 }
488 this.ruleForm.qlrList.forEach((item, index) => {
489 if (item.id == that.czr) {
490 item.sfczr = "1";
491 } else {
492 item.sfczr = "0";
493 }
494 });
495 }
496 }
497 this.$refs['ruleForm'].validate((valid) => {
498 if (valid) {
499 that.$store.dispatch("user/refreshPage", false);
500 saveData(that.ruleForm, that.propsParam.djlx).then((res) => {
501 if (res.code === 200) {
502 that.$message({
503 showClose: true,
504 message: "保存成功!",
505 type: "success",
506 });
507 that.$store.dispatch("user/refreshPage", true);
508 } else {
509 that.$message({
510 showClose: true,
511 message: res.message,
512 type: "error",
513 });
514 }
515 })
516 } else {
517 that.$message({
518 showClose: true,
519 message: "请输入登记原因",
520 type: "error"
521 })
522 return false
523 }
524 })
525
526 },
527 /**
528 * @description: 更新权利人信息
529 * @param {*} val
530 * @author: renchao
531 */
532 upDateQlrxxList (val) {
533 if (!_.isEqual(val, this.ruleForm.qlrList)) {
534 this.ruleForm.qlrList = _.cloneDeep(val);
535 this.czrOptions = this.ruleForm.qlrList;
536 }
537 this.num = 0
538 this.ruleForm.qlrList.forEach(item => {
539 if (item.id == this.czr) {
540 this.num++
541 }
542 })
543 if (this.num == 0) {
544 this.czr = ''
545 }
546 },
547 // 是否持证人变化
548 /**
549 * @description: 是否持证人变化
550 * @param {*} val
551 * @author: renchao
552 */
553 updaterow () {
554 this.czr = "";
555 },
556 /**
557 * @description: 更新义务人信息
558 * @param {*} val
559 * @author: renchao
560 */
561 upDateYwrxxList (val) {
562 if (!_.isEqual(val, this.ruleForm.ywrList)) {
563 this.ruleForm.ywrList = _.cloneDeep(val);
564 }
565 }
566 }
567 }
568 </script>
569 <style scoped lang="scss">
570 @import "~@/styles/public.scss";
571 @import "~@/styles/slxx/slxx.scss";
572 </style>
1 <!--
2 * @Description: 审批意见
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-26 08:46:38
5 -->
6 <template>
7 <div class="spyj" v-Loading="loading">
8 <div class="box">
9 <div class="spyj_title">
10 <div class="righttitle">审批表</div>
11 </div>
12
13 <div v-for="(item, index) in tableData" :key="index">
14 <el-form
15 :model="tableData[index]"
16 label-width="120px"
17 ref="ruleForm'">
18 <div class="spyj_form">
19 <div class="item_left">
20 <div class="right">{{ item.jdmc }}意见</div>
21 </div>
22 <div class="item_right">
23 <el-row>
24 <el-col :span="24">
25 <el-form-item
26 label-width="0"
27 class="opinion_item">
28 <el-input
29 :disabled="!viewEdit || item.show"
30 type="textarea"
31 :rows="4"
32 class="opinion"
33 placeholder=""
34 v-model="item.shyj"></el-input>
35 <el-button
36 class="opinion_btn"
37 @click="commonOpinion(index)"
38 :disabled="!viewEdit|| item.show">常用意见</el-button>
39 </el-form-item>
40 </el-col>
41 </el-row>
42 <el-row>
43 <el-col :span="16">
44 <el-form-item label="审查人">
45 {{ item.shryxm }}
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item disabled label="审核时间" :key="refresh">
50 {{ item.shjssj }}
51 </el-form-item>
52 </el-col>
53 </el-row>
54 </div>
55 </div>
56 </el-form>
57 </div>
58 <div class="submit_button" v-if="viewEdit">
59 <el-button type="primary" :disabled="shows" @click="onSubmit()">保存</el-button>
60 </div>
61 </div>
62 </div>
63 </template>
64 <script>
65 import { saveSpyjBySlsq, getSpyjList } from "@/api/opinion.js";
66 import { mapGetters } from "vuex";
67 import { getNewDatesh } from "@/utils/util";
68 export default {
69 computed: {
70 ...mapGetters(["dqhj", "yjsqOptions", "userInfo"]),
71 },
72 data () {
73 return {
74 loading: false,
75 currentindex: 0,
76 refresh: 10,
77 viewEdit: false,
78 bsmSlsq: this.$route.query.bsmSlsq,
79 bestepid: this.$route.query.bestepid,
80 propsParam: {},
81 tableData: [],
82 shows: false,
83 };
84 },
85
86 watch: {
87 yjsqOptions: {
88 handler (val) {
89 this.add(val.opinion);
90 },
91 deep: true,
92 immediate: true,
93 },
94 dqhj: {
95 handler (val) {
96 this.propsParam = this.$attrs;
97 this.dataset()
98 this.getShList();
99
100 },
101 deep: true,
102 immediate: true,
103 },
104
105 },
106 methods: {
107 /**
108 * @description: dataset
109 * @param {*} 数据处理
110 * @author: renchao
111 */
112 dataset () {
113 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
114 },
115 /**
116 * @description: getShList
117 * @param {*} obj
118 * @author: renchao
119 */
120 getShList () {
121 this.loading = true
122 var formdata = new FormData();
123 formdata.append("bsmBusiness", this.propsParam.bsmBusiness);
124 formdata.append("bestepid", this.$route.query.bestepid);
125
126 getSpyjList(formdata).then((res) => {
127 if (res.code === 200 && res.result) {
128 this.tableData = res.result;
129 if (this.shows) {
130 this.shows = false;
131 }
132 var index = this.tableData.findIndex(
133 (item) => item.jddm === this.$parent.dqhj
134 );
135 console.log("this.tableData111",this.tableData);
136 if (index == -1) {
137 switch (this.$parent.dqhj) {
138 case "cs":
139 this.tableData.push({ jdmc: "初审", jddm: "cs", sxh: 1 });
140 break;
141 case "fs":
142 this.tableData.push({ jdmc: "复审", jddm: "fs", sxh: 2 });
143 break;
144 case "hd":
145 this.tableData.push({ jdmc: "核定", jddm: "hd", sxh: 3 });
146 break;
147 }
148 console.log("this.tableData222",this.tableData);
149 }
150 this.tableData.forEach((item) => {
151 item.show = true;
152 if (this.$parent.dqhj == item.jddm) {
153 item["stepid"] = this.$route.query.bestepid;
154 item.shjssj = getNewDatesh();
155 item.shkssj = getNewDatesh();
156 item["shryxm"] = this.userInfo.name;
157 item["userid"] = this.userInfo.id;
158 item.show = false;
159 }
160 console.log("this.tableData333",this.tableData);
161 });
162 this.loading = false
163 }
164 })
165 },
166 /**
167 * @description: onSubmit
168 * @author: renchao
169 */
170 onSubmit () {
171
172 this.tableData.forEach((item, index) => {
173 item["bsmBusiness"] = this.propsParam.bsmBusiness;
174 item["czjg"] = "1";
175 });
176 var index = this.tableData.findIndex(
177 (item) => item.shyj == null || item.shyj == ""
178 );
179 if (index == -1) {
180 this.shows = true;
181 saveSpyjBySlsq(this.tableData).then((res) => {
182 if (res.code === 200) {
183 this.$message.success("保存成功");
184 this.refresh += 1;
185 this.getShList();
186 } else {
187 this.$message.error(res.message);
188 }
189 });
190 } else {
191 this.$message.error("意见不能为空");
192 }
193
194 },
195 //打开常用意见列表弹窗
196 /**
197 * @description: 打开常用意见列表弹窗
198 * @param {*} index
199 * @author: renchao
200 */
201 commonOpinion (index) {
202 this.currentindex = index;
203 this.$popupDialog(
204 "常用意见",
205 "workflow/components/dialog/commonOpinion",
206 {},
207 "70%",
208 true
209 );
210 },
211 /**
212 * @description: add
213 * @param {*} val
214 * @author: renchao
215 */
216 add (val) {
217 if (val != "" && this.tableData.length > 0) {
218 this.$set(this.tableData[this.currentindex], "shyj", val);
219 }
220 },
221 },
222 };
223 </script>
224 <style scoped lang="scss">
225 @import "~@/styles/mixin.scss";
226
227 .spyj {
228 width: 100%;
229 height: 100%;
230 background-color: #f5f5f5;
231 .box {
232 overflow-x: auto;
233 width: 100%;
234 height: 95%;
235 background: #fff;
236 text-align: center;
237 padding: 4px;
238 overflow-y: scroll;
239 padding-top: 20px;
240 padding: 20px 40px;
241 .spyj_title {
242 width: 100%;
243 height: 80px;
244 border: 1px solid $borderColor;
245 background-color: #eceef2;
246 display: flex;
247 }
248 .leftadd {
249 width: 3%;
250 height: 100%;
251 display: flex;
252 font-size: 14px;
253 text-indent: 20px;
254 align-items: center;
255 border: 1px solid $borderColor;
256 }
257 .righttitle {
258 width: 80%;
259 height: 100%;
260 line-height: 80px;
261 border: 1px solid $borderColor;
262 margin: auto;
263 font-size: 22px;
264 font-weight: 400;
265 }
266 }
267
268 /deep/.el-form-item {
269 margin-bottom: 0;
270 }
271
272 .bottom10 {
273 margin-bottom: 15px;
274 }
275
276 .spyj_form {
277 display: flex;
278 border: 1px solid $borderColor;
279
280 .item_left {
281 width: 150px;
282 background-color: #f8f8fa;
283 color: #606266;
284 display: flex;
285 font-size: 14px;
286 text-indent: 50px;
287 align-items: center;
288 border-right: 1px solid $borderColor;
289 }
290
291 .item_right {
292 flex: 1;
293 width: 100%;
294
295 /deep/.el-form-item__label {
296 background-color: #f8f8fa;
297 }
298 /deep/.el-form-item__content {
299 display: block;
300 text-align: left;
301 }
302 .opinion_item {
303 /deep/.el-form-item__error {
304 margin-top: -16px !important;
305 left: 3px;
306 }
307 border-bottom: 1px solid $borderColor;
308 }
309
310 .opinion {
311 position: relative;
312 font-size: 14px;
313
314 /deep/.el-textarea__inner {
315 border: none;
316 }
317 }
318
319 .opinion_btn {
320 position: absolute;
321 right: 15px;
322 bottom: 10px;
323 }
324 }
325 }
326
327 .submit_button {
328 text-align: center;
329 margin: 15px 0;
330 }
331
332 .el-date-editor.el-input {
333 width: 100%;
334 }
335 }
336 </style>
1 <template>
2 <div class="slxx swxx">
3 <el-form
4 :model="ruleForm"
5 ref="ruleForm"
6 v-Loading="loading"
7 :label-position="flag ? 'top' : ''"
8 :inline="flag"
9 label-width="120px">
10 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
11 <div class="slxx_title title-block">
12 不动产信息
13 <div class="triangle"></div>
14 </div>
15 <el-row :gutter="10">
16 <el-col :span="8">
17 <el-form-item label="不动产单元号:">
18 <el-input disabled v-model="ruleForm.bdcdyh"></el-input>
19 </el-form-item>
20 </el-col>
21 <el-col :span="8">
22 <el-form-item label="原产证号:">
23 <el-input disabled v-model="ruleForm.yfczh"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item label="面积(m3):">
28 <el-input disabled v-model="ruleForm.mj"></el-input>
29 </el-form-item>
30 </el-col>
31 </el-row>
32 <el-row :gutter="10">
33 <el-col :span="8">
34 <el-form-item label="权利类型:">
35 <el-input disabled v-model="ruleForm.qllxmc"></el-input>
36 </el-form-item>
37 </el-col>
38 <el-col :span="8">
39 <el-form-item label="用途:">
40 <el-input disabled v-model="ruleForm.yt"></el-input>
41 </el-form-item>
42 </el-col>
43 <el-col :span="8">
44 <el-form-item label="坐落:">
45 <el-input disabled v-model="ruleForm.zl"></el-input>
46 </el-form-item>
47 </el-col>
48 </el-row>
49 <div class="slxx_title title-block">
50 买方信息
51 <div class="triangle"></div>
52 </div>
53 <lb-table :column="column" :pagination="false" :heightNumSetting="true"
54 :data="ruleForm.tableDataList">
55 </lb-table>
56 <div class="slxx_title title-block">
57 卖方信息
58 <div class="triangle"></div>
59 </div>
60 <lb-table :column="column1" :pagination="false" :heightNumSetting="true"
61 :data="ruleForm.tableDataList">
62 </lb-table>
63 <div class="slxx_title title-block">
64 合同信息
65 <div class="triangle"></div>
66 </div>
67 <el-row :gutter="10">
68 <el-col :span="8">
69 <el-form-item label="合同编号:">
70 <el-input v-model="ruleForm.htbh"></el-input>
71 </el-form-item>
72 </el-col>
73 <el-col :span="8">
74 <el-form-item label="合同金额(万元):">
75 <el-input v-model="ruleForm.htje"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="签订时间:">
80 <el-date-picker
81 class="width100"
82 v-model="ruleForm.qdsj"
83 type="date"
84 placeholder="选择日期"
85 value-format="yyyy-MM-dd HH:mm:ss"
86 format="yyyy-MM-dd">
87 </el-date-picker>
88 </el-form-item>
89 </el-col>
90 </el-row>
91 <div class="slxx_title title-block">
92 缴税信息
93 <div class="triangle"></div>
94 </div>
95 <lb-table :column="column2" :pagination="false" :heightNumSetting="true"
96 :data="ruleForm.tableDataList">
97 </lb-table>
98 </div>
99 <el-row class="btn" v-if="viewEdit">
100 <el-form-item>
101 <el-button type="primary" @click="onSubmit">保存</el-button>
102 </el-form-item>
103 </el-row>
104 </el-form>
105 </div>
106 </template>
107 <script>
108 import { mapGetters } from "vuex";
109 export default {
110 computed: {
111 ...mapGetters(["dictData", "flag"]),
112 },
113 mounted () {
114 // this.loading = true
115 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
116 this.propsParam = this.$attrs;
117 var formdata = new FormData();
118 formdata.append("bsmSldy", this.propsParam.bsmSldy);
119 formdata.append("djlx", this.propsParam.djlx);
120 formdata.append("isEdit", this.viewEdit);
121 // Init(formdata).then((res) => {
122 // if (res.code === 200 && res.result) {
123 // }
124 // });
125 },
126 data () {
127 return {
128 loading: false,
129 //表单是否可操作
130 viewEdit: false,
131 column: [
132 {
133 prop: "qlrxm",
134 label: "权利人姓名"
135 },
136 {
137 prop: "gyqk",
138 label: "共有情况"
139 },
140 {
141 prop: "zjzl",
142 label: "身份证号种类"
143 },
144 {
145 prop: "zjhm",
146 label: "证件号码"
147 },
148 ],
149 column1: [{
150 prop: "ywrxm",
151 label: "义务人姓名"
152 },
153 {
154 prop: "zjzl",
155 label: "身份证号种类"
156 },
157 {
158 prop: "zjhm",
159 label: "证件号码"
160 }],
161 column2: [{
162 type: 'index',
163 label: "序号",
164 width: '50'
165 },
166 {
167 prop: "nsr",
168 label: "纳税人"
169 },
170 {
171 prop: "sz",
172 label: "税种"
173 },
174 {
175 prop: "jsyj",
176 label: "计税依据"
177 },
178 {
179 prop: "sl",
180 label: "税率"
181 },
182 {
183 prop: "jsje",
184 label: "计税金额"
185 }],
186 ruleForm: {
187 tableDataList: []
188 }
189 }
190 },
191 methods: {
192 onSubmit () { }
193 }
194 }
195 </script>
196 <style scoped lang="scss">
197 @import "~@/styles/public.scss";
198 @import "~@/styles/slxx/slxx.scss";
199 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 15:46:45
5 -->
6 <template>
7 <div class="szxx">
8 <el-card
9 :class="classJudge(item)"
10 v-for="(item, index) in tableData"
11 :key="index">
12 <div slot="header" class="szxx_header">
13 <span class="header_type">{{
14 item.bdcqzlx == 1 ? "不动产权证书" : "不动产登记证明"
15 }}</span>
16 <div class="header_text">{{ item.bdcqzh }}</div>
17 </div>
18 <div class="szxx_body card_padding">
19 <div class="text color_iray">
20 <span>{{ item.qllx }}</span>
21 </div>
22 <div class="text color_red">
23 <span>{{ item.qlr }}</span><span class="color_iray">({{ item.qllx }})</span>
24 </div>
25 <div class="text color_iray">
26 <span>{{ item.gyqk }}</span>
27 </div>
28 <div class="text color_red">
29 <span>{{ item.bdcdyh }}</span>
30 </div>
31 <div class="text color_iray">
32 <span>{{ item.zl }}</span>
33 </div>
34 <div class="text color_red">
35 <span>{{ item.yt }}</span>
36 </div>
37 <div class="text color_iray">
38 <span>{{ item.mj }}</span>
39 </div>
40 <div class="text color_red">
41 <span>{{ item.syqx }}</span>
42 </div>
43 <div class="text color_iray">
44 <span>印刷序列号:{{ item.ysxlh }}</span>
45 </div>
46 </div>
47 <div class="card_padding" v-if="viewEdit">
48 <div class="top_line middle_margin"></div>
49 <div class="text tac" v-if="item.ysxlh">
50 <el-button
51 class="operation_button"
52 type="text"
53 @click="openInvalidDiglog(item)">再次打印({{ item.szcs }})</el-button>
54 <el-button
55 class="operation_button"
56 type="text"
57 @click="openRecordPop(item)">缮证记录</el-button>
58 </div>
59 <div class="text tac" v-else>
60 <el-button
61 class="operation_button"
62 type="text"
63 @click="openZsylDialog(item, 2)">证书打印({{ item.szcs }}</el-button>
64 <el-button
65 class="operation_button"
66 type="text"
67 @click="openRecordPop(item)">缮证记录</el-button>
68 </div>
69 </div>
70 </el-card>
71
72 <el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty>
73 </div>
74 </template>
75 <script>
76 import { mapGetters } from "vuex";
77 import store from "@/store/index.js";
78 import { getSlsqBdcqzList } from "@/api/bdcqz.js";
79 export default {
80 props: {},
81 data () {
82 return {
83 //表单是否可操作
84 viewEdit: false,
85 dialog: false,
86 tableData: [],
87 bdcqzlx: 1,
88 bdcqz: {},
89 };
90 },
91 computed: {
92 ...mapGetters(["workFresh"]),
93 },
94 watch: {
95 workFresh: {
96 handler (newVal, oldVal) {
97 if (newVal) this.list();
98 },
99 },
100 },
101 created () {
102 this.list();
103 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
104 },
105 methods: {
106 /**
107 * @description: 初始化列表
108 * @author: renchao
109 */
110 list () {
111 return new Promise((resolve, reject) => {
112 var bsmSlsq = this.$route.query.bsmSlsq;
113 getSlsqBdcqzList({ bsmSlsq: bsmSlsq }).then((res) => {
114 resolve(res.code);
115 if (res.code === 200) {
116 this.tableData = res.result;
117 if (res.result) {
118 this.bdcqz = res.result[0];
119 }
120 }
121 });
122 });
123 },
124 /**
125 * @description: 打开证书预览弹窗
126 * @param {*} item
127 * @param {*} type
128 * @author: renchao
129 */
130 openZsylDialog (item, type) {
131 store.dispatch("user/reWorkFresh", false);
132 if (type == 1) {
133 this.$popupDialog(
134 "证书证明预览",
135 "workflow/top/zsyl/index",
136 { bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq },
137 '1230px',
138 true
139 );
140 } else {
141 this.$popupDialog(
142 "证书证明打印",
143 "workflow/main/szxx/zsdy",
144 { ...item },
145 "76%",
146 true
147 );
148 }
149 },
150 /**
151 * @description: 再次打印
152 * @param {*} item
153 * @author: renchao
154 */
155 openInvalidDiglog (item) {
156 this.$popupDialog(
157 "证书证明打印",
158 "workflow/main/szxx/zsdy",
159 { ...item },
160 "76%",
161 true
162 );
163 },
164 /**
165 * @description: openRecordPop
166 * @param {*} item
167 * @author: renchao
168 */
169 openRecordPop (item) {
170 this.$popupDialog(
171 "缮证记录",
172 "workflow/main/szxx/szRecord",
173 { bsmBdcqz: item.bsmBdcqz },
174 "60%",
175 true
176 );
177 },
178 /**
179 * @description: classJudge 判断class
180 * @param {*} item
181 * @author: renchao
182 */
183 classJudge (item) {
184 let className = "box-card";
185 if (item.bdcqzlx == 1) {
186 className += " zs-card";
187 } else {
188 className += " zm-card";
189 }
190 if (item.szcs == 0) {
191 className += " no-print";
192 }
193 return className;
194 },
195 },
196 };
197 </script>
198 <style scoped lang="scss">
199 @import "~@/styles/public.scss";
200 .szxx {
201 box-sizing: border-box;
202 padding-right: 15px;
203 width: 100%;
204 height: 100%;
205 overflow-y: scroll;
206 padding-bottom: 55px;
207
208 .box-card {
209 float: left;
210 width: 350px;
211 margin: 10px;
212 box-shadow: none;
213 background-image: url("~@/image/zm-bg.png");
214 background-size: 100% 100%;
215 border: 1px solid transparent;
216 /deep/ .el-card__header {
217 padding: 12px 66px;
218 background-size: auto;
219 border-bottom: 0;
220 position: relative;
221 }
222 .szxx_header {
223 color: #8b4534;
224 }
225 .szxx_body {
226 height: 330px;
227 }
228 }
229 .zs-card {
230 border: 1px solid #a6b0be;
231 background-image: none;
232 /deep/ .el-card__header {
233 background-image: url("~@/image/zs-red.png");
234 .szxx_header {
235 color: #ffe47c;
236 }
237 }
238 .top_line {
239 border-top: 1px solid #d3dbe5;
240 width: 330px;
241 margin: 0 auto 10px;
242 }
243 }
244 .zm-card {
245 /deep/ .el-card__header {
246 &:after {
247 content: "";
248 display: inline-block;
249 width: 330px;
250 height: 1px;
251 background-color: #b28676;
252 position: absolute;
253 left: 10px;
254 bottom: 0;
255 }
256 }
257 }
258 .zm-card.no-print {
259 background-image: url("~@/image/zm-gray.png");
260
261 /deep/ .el-card__header {
262 &:after {
263 background-color: #6d7278;
264 }
265 }
266 .szxx_header {
267 color: #6d7278;
268 }
269 }
270 .zs-card.no-print {
271 /deep/ .el-card__header {
272 background-image: url("~@/image/zs-gray.png");
273 .szxx_header {
274 color: #ffffff;
275 }
276 }
277 }
278 }
279
280 .szxx_header {
281 // color: #ffffff;
282 // font-weight: bolder;
283 font-size: 16px;
284
285 .header_type {
286 display: flex;
287 justify-content: center;
288 align-content: center;
289 }
290
291 .header_text {
292 text-align: center;
293 margin-top: 2px;
294 line-height: 22px;
295 }
296 }
297
298 .text {
299 margin-bottom: 8px;
300 text-align: left;
301 text-indent: 16px;
302 }
303 .text.tac {
304 text-align: center;
305 }
306
307 .color_iray {
308 color: #6d7278;
309 }
310
311 .color_red {
312 color: #ab0c0c;
313 }
314
315 .middle_margin {
316 margin-bottom: 10px;
317 }
318
319 .operation_button {
320 border: 1px solid #5c95e5;
321 padding: 5px;
322 text-align: center;
323 }
324
325 .card_padding {
326 padding-top: 8px;
327 font-size: 14px;
328 line-height: 22px;
329 }
330 /deep/.el-card__body {
331 padding: 0px;
332 }
333 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-04 14:13:28
5 -->
6 <template>
7 <lb-table :column="tableData.columns" heightNumSetting :pagination="false" :key="key" :data="tableData.data">
8 </lb-table>
9 </template>
10 <script>
11 import { mapGetters } from 'vuex'
12 import { getSzRecordList } from "@/api/bdcqz.js";
13 import table from "@/utils/mixin/table";
14 import { szxxdatas } from "../../javascript/szxxdata";
15 export default {
16 components: {
17
18 },
19 mixins: [table],
20 computed: {
21 ...mapGetters(["dictData"]),
22 },
23 props: {
24 formData: {
25 type: Object,
26 default: {}
27 }
28 },
29 data () {
30 return {
31 key: 0,
32 dataIndex: 0,
33 dialog: false,
34 details: {},
35 tableData: {
36 total: 0,
37 columns: szxxdatas.columns(),
38 data: [],
39 },
40 }
41 },
42 mounted () {
43 this.query()
44 },
45 methods: {
46 /**
47 * @description: query
48 * @author: renchao
49 */
50 query () {
51 getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then(res => {
52 if (res.code == 200) {
53 this.tableData.data = res.result;
54 this.key++
55 }
56 })
57 }
58 }
59 }
60 </script>
61 <style scoped lang='scss'>
62 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-06 13:26:37
5 -->
6 <template>
7 <div>
8 <div class="zsdy-content" v-Loading="loading">
9 <el-form
10 :model="ruleForm"
11 ref="ruleForm"
12 label-width="120px">
13 <el-form-item label="印刷序列号:" prop="ysxlh">
14 <el-row>
15 <el-col :span="18">
16 <el-select v-model="ruleForm.ysxlh" @change="handleSelect" :disabled="disabled" placeholder="请选择">
17 <el-option
18 v-for="item in ysxlh"
19 :key="item.ysxlh"
20 :label="item.ysxlh"
21 :value="item.ysxlh">
22 </el-option>
23 </el-select>
24 </el-col>
25 <el-col :span="4" v-if="this.formData.bdcqzlx==1">
26 <el-tabs v-model="activeTitle">
27 <el-tab-pane label="第一页" name="title1"></el-tab-pane>
28 <el-tab-pane label="第二页" name="title2"></el-tab-pane>
29 </el-tabs>
30 </el-col>
31 <el-col :span="2" v-if="this.formData.ysxlh" style="float:right">
32 <el-button type="primary" @click="handleZF" v-if="disabled">作废</el-button>
33 </el-col>
34 </el-row>
35
36 </el-form-item>
37 </el-form>
38 <div class="zs-content">
39 <canvas ref="zs1" width="1024" v-show="this.formData.bdcqzlx==1 && activeTitle=='title1'" height="739"></canvas>
40 <canvas ref="zs" width="1024" v-show="this.formData.bdcqzlx==1 && activeTitle=='title2'" height="739"></canvas>
41 <canvas ref="zm" width="1169" v-show="this.formData.bdcqzlx==2" height="828"></canvas>
42 </div>
43 </div>
44 <!-- 打印模板需要此模块 -->
45 <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" v-show="false">
46 <embed id="LODOP_EM" type="application/x-print-lodop" width="1180" height="720" pluginspage="install_lodop32.exe" />
47 </object>
48 <div class="text-center pt-10">
49 <el-button @click="$popupCacel">取消</el-button>
50 <el-button type="primary" @click="handlePrint" v-if="disabled">打印</el-button>
51 <el-button type="primary" @click="handleSubmit" v-else>确定</el-button>
52 </div>
53
54 <el-dialog title="证书作废" :visible.sync="invalidDiglog" width="40%" :modal-append-to-body="false" top="30vh">
55 <div class="invalid-diglog">
56 <div class="invalid-title">
57 <i class="el-icon-question invalid-icon"></i>
58 <div class="invalid-body">您确定作废证书并再次打印?印刷序列号{{bdcqz.ysxlh}}</div>
59 </div>
60 <div class="invalid-reson">作废原因:</div>
61 <el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input>
62 <div class="text-center pt-10">
63 <el-button @click="closeInvalidDiglog">取 消</el-button>
64 <el-button type="primary" @click="confirmInvalid">确 定</el-button>
65 </div>
66 </div>
67 </el-dialog>
68 </div>
69 </template>
70
71 <script>
72 import QRCode from 'qrcode'
73 import store from '@/store/index.js'
74 import { datas } from "../../javascript/zsyl.js";
75 import { getPrintTemplateByCode } from "@/api/print";
76 import { getLodop } from "@/utils/LodopFuncs"
77 import { readYsxlh, certificate, getBdcqzDetail, invalidCertificate } from "@/api/bdcqz.js";
78 export default {
79 props: {
80 formData: {
81 type: Object,
82 default: () => {
83 return {}
84 }
85 }
86 },
87 data () {
88 return {
89 activeTitle: 'title1',
90 // 详细信息
91 bdcqz: {},
92 key: 0,
93 disabled: false,
94 // 不动产证书图片地址
95 imgSrc1: require('@/image/bdcqz/bdcqzs1.jpg'),
96 imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
97 bdczmSrc: require('@/image/bdcqz/bdczm.jpg'),
98 loading: false,
99 //印刷序列号集合
100 ysxlh: [],
101 //列名称对象
102 columns: [],
103 //tab选择绑定值
104 activeName: '',
105 invalidDiglog: false,
106 zfyy: "",
107 ruleForm: {
108 bsmBdcqz: "",
109 szmc: "不动产权证书",
110 bdcqzlx: "",
111 szzh: "",
112 ysxlh: ""
113 }
114 }
115 },
116 mounted () {
117 store.dispatch('user/refreshPage', false)
118 this.columns = datas.columns()
119 this.ysxlhList()
120 // 获取详细信息
121 this.getDetail()
122 if (this.formData.ysxlh) {
123 this.disabled = true
124 } else {
125 this.disabled = false
126 }
127 },
128 methods: {
129 /**
130 * @description: 获取详细信息
131 * @author: renchao
132 */
133 getDetail () {
134 this.loading = true
135 getBdcqzDetail(this.formData.bsmBdcqz).then(res => {
136 this.bdcqz = res.result
137 this.loading = false
138 if (this.bdcqz.ysxlh) this.ruleForm.ysxlh = this.bdcqz.ysxlh
139 if (this.bdcqz.bdcqzlx == 1) {
140 this.drawTextOnImage()
141 } else {
142 this.drawTextzmImage()
143 }
144 })
145 },
146 /**
147 * @description: 获取印刷序列号列表
148 * @author: renchao
149 */
150 ysxlhList () {
151 readYsxlh({ zslx: this.formData.bdcqzlx }).then((res) => {
152 if (res.code === 200) {
153 this.ysxlh = res.result;
154 }
155 })
156 },
157 /**
158 * @description: handleSelect
159 * @param {*} val
160 * @author: renchao
161 */
162 handleSelect (val) {
163 this.bdcqz.ysxlh = this.ruleForm.ysxlh
164 if (this.bdcqz.bdcqzlx == 1) {
165 this.drawTextOnImage()
166 } else {
167 this.drawTextzmImage()
168 }
169 },
170 /**
171 * @description: closeInvalidDiglog
172 * @author: renchao
173 */
174 closeInvalidDiglog () {
175 this.zfyy = "";
176 this.invalidDiglog = false
177 },
178 /**
179 * @description: handleZF
180 * @author: renchao
181 */
182 handleZF () {
183 this.invalidDiglog = true
184 },
185 /**
186 * @description: 作废缮证信息
187 * @author: renchao
188 */
189 confirmInvalid () {
190 store.dispatch('user/reWorkFresh', false)
191 invalidCertificate({ bsmBdcqz: this.bdcqz.bsmBdcqz, zfyy: this.zfyy }).then((res) => {
192 if (res.code === 200) {
193 this.$message.success("作废成功");
194 this.disabled = false
195 this.invalidDiglog = false;
196 this.zfyy = ''
197 this.ruleForm.ysxlh = ''
198 this.bdcqz.ysxlh = ''
199 if (this.bdcqz.bdcqzlx == 1) {
200 this.drawTextOnImage()
201 } else {
202 this.drawTextzmImage()
203 }
204 store.dispatch('user/reWorkFresh', true)
205 } else {
206 this.$message.error(res.message);
207 }
208 })
209 },
210 /**
211 * @description: 不动产证书
212 * @author: renchao
213 */
214 drawTextOnImage1 () {
215 const canvas = this.$refs.zs1;
216 const context = canvas.getContext('2d');
217 const image = new Image();
218 image.onload = () => {
219 context.drawImage(image, 0, 0);
220 context.font = '18px 楷体';
221 context.fillStyle = '#000000';
222 let date = this.bdcqz.djsj.split(' ')[0].split('/');
223 let nian = date[0]
224 let yue = date[1]
225 let ri = date[2]
226 this.bdcqz.nian = nian
227 this.bdcqz.yue = yue
228 this.bdcqz.ri = ri
229 context.fillText(nian ? nian : '', 780, 499);
230 context.fillText(yue ? yue : '', 840, 499);
231 context.fillText(ri ? ri : '', 885, 499);
232 QRCode.toDataURL(this.bdcqz.bdcqzh, { margin: 0 })
233 .then(url => {
234 const qrImage = new Image();
235 this.bdcqz.qrImage = url; // 将二维码图片的 URL 存储到 bdcqz 对象的 qrImage 属性中
236 qrImage.onload = () => {
237 context.drawImage(qrImage, 670, 400, 100, 100);
238 };
239 qrImage.src = url;
240 })
241 .catch(error => {
242 console.error(error);
243 });
244 context.fillText(this.bdcqz.bdcqzbm ? this.bdcqz.bdcqzbm : '', 745, 633);
245 };
246 image.src = this.imgSrc1;
247 },
248 drawTextOnImage () {
249 this.drawTextOnImage1()
250 function getByteLen (val) {
251 var len = 0;
252 if (!val) return len;
253 for (var i = 0; i < val.length; i++) {
254 var length = val.charCodeAt(i);
255 if (length >= 0 && length <= 128) {
256 len += 1;
257 } else {
258 len += 2;
259 }
260 }
261 return len;
262 }
263 const canvas = this.$refs.zs;
264 const context = canvas.getContext('2d');
265 const image = new Image();
266 image.onload = () => {
267 context.drawImage(image, 0, 0);
268 context.font = '18px 楷体';
269 context.fillStyle = '#000000';
270 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
271 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
272 // context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56);
273
274 if (getByteLen(this.bdcqz.sxqc) > 14) {
275 const originalFont = context.font;
276 // 设置新的字体大小
277 context.font = '14px 楷体'; // 替换为你想要的字体和大小
278 // 绘制 bdcdyh
279 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 165, 56);
280 // 恢复原始字体设置
281 context.font = originalFont;
282 } else {
283 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 170, 56);
284 }
285
286 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
287 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97);
288 context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136);
289
290 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
291 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
292 context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223);
293
294
295
296 context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263);
297 context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303);
298 context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346);
299 let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : [];
300 if (getByteLen(this.bdcqz.mj) > 37) {
301 lines6.forEach((line, index) => {
302 const y = 378 + (index * 27); // 每行文本的垂直位置
303 let currentLine = '';
304 let arr = [];
305 for (let word of line) {
306 const testLine = currentLine + word;
307 const lineWidth = context.measureText(testLine).width;
308 if (lineWidth <= 336) {
309 currentLine = testLine;
310 } else {
311 arr.push(currentLine);
312 currentLine = word;
313 }
314 }
315 arr.push(currentLine);
316 arr.forEach((line, index) => {
317 context.fillText(line, 129, y + (index * 20)); // 调整行高
318 })
319 })
320 } else {
321 lines6.forEach((line, index) => {
322 const y = 386 + (index * 27); // 每行文本的垂直位置
323 let currentLine = '';
324 let arr = [];
325 for (let word of line) {
326 const testLine = currentLine + word;
327 const lineWidth = context.measureText(testLine).width;
328 if (lineWidth <= 336) {
329 currentLine = testLine;
330 } else {
331 arr.push(currentLine);
332 currentLine = word;
333 }
334 }
335 arr.push(currentLine);
336 arr.forEach((line, index) => {
337 context.fillText(line, 129, y + (index * 20)); // 调整行高
338 })
339 })
340 }
341 // 权利其他状态
342 const maxWidth = 332; // 最大宽度限制
343 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
344 for (let i = 0; i < lines.length; i++) {
345 let num = Math.ceil(getByteLen(lines[i]) / 37)
346 if (getByteLen(lines[i]) > 37) {
347 let currentLine = '';
348 let arr = [];
349 for (let word of lines[i]) {
350 const testLine = currentLine + word;
351 const lineWidth = context.measureText(testLine).width;
352 if (lineWidth <= maxWidth) {
353 currentLine = testLine;
354 } else {
355 arr.push(currentLine);
356 currentLine = word;
357 }
358 }
359 arr.push(currentLine);
360 if (i > 0) {
361 arr.forEach((line, index) => {
362 context.fillText(line, 129, 495 + (29 * (i - 1)) + 4 * num + (index * 14)); // 调整行高
363 })
364 } else {
365 arr.forEach((line, index) => {
366 context.fillText(line, 129, 493 + (26 * (i - 1)) + (index * 14)); // 调整行高
367 })
368 }
369 } else {
370 if (i > 0) {
371 context.fillText(lines[i] ? lines[i] : '', 129, 500 + 4 * num + (29 * (i - 1)));
372 } else {
373 context.fillText(lines[i] ? lines[i] : '', 129, 505 + (27 * (i - 1)));
374 }
375 }
376 }
377
378 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
379 lines1.forEach((line, index) => {
380 const y = 100 + (index * 30); // 每行文本的垂直位置
381 let currentLine = '';
382 let arr = [];
383 for (let word of line) {
384 const testLine = currentLine + word;
385 const lineWidth = context.measureText(testLine).width;
386 if (lineWidth <= 395) {
387 currentLine = testLine;
388 } else {
389 arr.push(currentLine);
390 currentLine = word;
391 }
392 }
393 arr.push(currentLine);
394 arr.forEach((line, index) => {
395 context.fillText(line, 580, y + (index * 30)); // 调整行高
396 })
397 })
398 let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : [];
399 if (getByteLen(this.bdcqz.syqx) > 37) {
400 lines3.forEach((line, index) => {
401 const y = 423 + (index * 27); // 每行文本的垂直位置
402 let currentLine = '';
403 let arr = [];
404 for (let word of line) {
405 const testLine = currentLine + word;
406 const lineWidth = context.measureText(testLine).width;
407 if (lineWidth <= 330) {
408 currentLine = testLine;
409 } else {
410 arr.push(currentLine);
411 currentLine = word;
412 }
413 }
414 arr.push(currentLine);
415 arr.forEach((line, index) => {
416 context.fillText(line, 129, y + (index * 20)); // 调整行高
417 })
418 })
419 } else {
420 lines3.forEach((line, index) => {
421 const y = 430 + (index * 27); // 每行文本的垂直位置
422 let currentLine = '';
423 let arr = [];
424 for (let word of line) {
425 const testLine = currentLine + word;
426 const lineWidth = context.measureText(testLine).width;
427 if (lineWidth <= 315) {
428 currentLine = testLine;
429 } else {
430 arr.push(currentLine);
431 currentLine = word;
432 }
433 }
434 arr.push(currentLine);
435 arr.forEach((line, index) => {
436 context.fillText(line, 129, y + (index * 20)); // 调整行高
437 })
438 })
439 }
440
441 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
442 if (getByteLen(this.bdcqz.zl) > 37) {
443 lines2.forEach((line, index) => {
444 const y = 170 + (index * 20); // 每行文本的垂直位置
445 let currentLine = '';
446 let arr = [];
447 for (let word of line) {
448 const testLine = currentLine + word;
449 const lineWidth = context.measureText(testLine).width;
450 if (lineWidth <= 336) {
451 currentLine = testLine;
452 } else {
453 arr.push(currentLine);
454 currentLine = word;
455 }
456 }
457 arr.push(currentLine);
458 arr.forEach((line, index) => {
459 context.fillText(line, 129, y + (index * 20)); // 调整行高
460 })
461 })
462 } else {
463 lines2.forEach((line, index) => {
464 const y = 180 + (index * 20); // 每行文本的垂直位置
465 let currentLine = '';
466 let arr = [];
467 for (let word of line) {
468 const testLine = currentLine + word;
469 const lineWidth = context.measureText(testLine).width;
470 if (lineWidth <= 336) {
471 currentLine = testLine;
472 } else {
473 arr.push(currentLine);
474 currentLine = word;
475 }
476 }
477 arr.push(currentLine);
478 arr.forEach((line, index) => {
479 context.fillText(line, 129, y + (index * 20)); // 调整行高
480 })
481 })
482 }
483 }
484 image.src = this.imgSrc
485 },
486 /**
487 * @description: 不动产证明
488 * @author: renchao
489 */
490 drawTextzmImage () {
491 function getByteLen (val) {
492 var len = 0;
493 if (!val) return len;
494 for (var i = 0; i < val.length; i++) {
495 var length = val.charCodeAt(i);
496 if (length >= 0 && length <= 128) {
497 len += 1;
498 } else {
499 len += 2;
500 }
501 }
502 return len;
503 }
504
505 const canvas = this.$refs.zm;
506 const context = canvas.getContext('2d');
507 const image = new Image();
508 image.onload = () => {
509 context.drawImage(image, 0, 0);
510 context.font = '18px 楷体';
511 context.fillStyle = '#000000';
512 // ysxlh
513 context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712);
514 // djsj
515 if (this.bdcqz.djsj) {
516 let djsjList = this.bdcqz.djsj.split(' ')[0].split('/')
517 context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580);
518 context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580);
519 context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580);
520 }
521 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125);
522 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125);
523 // context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 750, 125);
524
525 if (getByteLen(this.bdcqz.sxqc) > 14) {
526 const originalFont = context.font;
527 // 设置新的字体大小
528 context.font = '14px 楷体'; // 替换为你想要的字体和大小
529 // 绘制 bdcdyh
530 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 725, 125);
531 // 恢复原始字体设置
532 context.font = originalFont;
533 } else {
534 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 755, 125);
535 }
536
537 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123);
538 context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180);
539 // context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
540 // 权利人
541 let qlrlines = this.bdcqz.qlr
542 if (getByteLen(this.bdcqz.qlr) > 32) {
543 let currentLine = '';
544 let arr = [];
545 for (let word of qlrlines) {
546 const testLine = currentLine + word;
547 const lineWidth = context.measureText(testLine).width;
548 if (lineWidth <= 295) {
549 currentLine = testLine;
550 } else {
551 arr.push(currentLine);
552 currentLine = word;
553 }
554 }
555 arr.push(currentLine); // 将最后一行添加到数组
556 // 绘制所有行
557 for (let i = 0; i < arr.length; i++) {
558 context.fillText(arr[i], 775, 218 + i * 20); // lineHeight 为行高
559 }
560 } else {
561 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
562 }
563 // 义务人
564 // context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
565
566 let ywrlines = this.bdcqz.ywr
567 if (getByteLen(this.bdcqz.ywr) > 32) {
568 let currentLine = '';
569 let arr = [];
570 for (let word of ywrlines) {
571 const testLine = currentLine + word;
572 const lineWidth = context.measureText(testLine).width;
573 if (lineWidth <= 295) {
574 currentLine = testLine;
575 } else {
576 arr.push(currentLine);
577 currentLine = word;
578 }
579 }
580 arr.push(currentLine); // 将最后一行添加到数组
581 // 绘制所有行
582 for (let i = 0; i < arr.length; i++) {
583 context.fillText(arr[i], 775, 268 + i * 20); // lineHeight 为行高
584 }
585 } else {
586 context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
587 }
588
589
590 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
591 if (getByteLen(this.bdcqz.zl) > 32) {
592 lines2.forEach((line, index) => {
593 const y = 315 + (index * 20); // 每行文本的垂直位置
594 let currentLine = '';
595 let arr = [];
596 for (let word of line) {
597 const testLine = currentLine + word;
598 const lineWidth = context.measureText(testLine).width;
599 if (lineWidth <= 295) {
600 currentLine = testLine;
601 } else {
602 arr.push(currentLine);
603 currentLine = word;
604 }
605 }
606 arr.push(currentLine);
607 arr.forEach((line, index) => {
608 context.fillText(line, 775, y + (index * 20)); // 调整行高
609 })
610 })
611 } else {
612 lines2.forEach((line, index) => {
613 const y = 325 + (index * 20); // 每行文本的垂直位置
614 let currentLine = '';
615 let arr = [];
616 for (let word of line) {
617 const testLine = currentLine + word;
618 const lineWidth = context.measureText(testLine).width;
619 if (lineWidth <= 295) {
620 currentLine = testLine;
621 } else {
622 arr.push(currentLine);
623 currentLine = word;
624 }
625 }
626 arr.push(currentLine);
627 arr.forEach((line, index) => {
628 context.fillText(line, 775, y + (index * 20)); // 调整行高
629 })
630 })
631 }
632 // bdcdyh
633 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
634 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
635 // 保存当前字体设置
636 const originalFont = context.font;
637 // 设置新的字体大小
638 context.font = '16px 楷体'; // 替换为你想要的字体和大小
639 // 绘制 bdcdyh
640 context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
641 // 恢复原始字体设置
642 context.font = originalFont;
643 // qlqtzk
644 function getByteLenBdcdy (val) {
645 var encoder = new TextEncoder('utf-8');
646 return encoder.encode(val).length;
647 }
648 const maxWidth = 290; // 最大宽度限制
649 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
650 let bdcdyNum = Math.ceil(getByteLenBdcdy(lines[0]) / 43)
651 // 单独处理不动产单元号
652 let linesBdcdy = lines[0] ? lines[0].split(' ') : [];
653 if (getByteLenBdcdy(lines[0]) > 43) {
654 linesBdcdy.forEach((line, index) => {
655 const y = 412 + (index * 17); // 每行文本的垂直位置
656 let currentLine = '';
657 let arr = [];
658 for (let word of line) {
659 const testLine = currentLine + word;
660 const lineWidth = context.measureText(testLine).width;
661 if (lineWidth <= maxWidth) {
662 currentLine = testLine;
663 } else {
664 arr.push(currentLine);
665 currentLine = word;
666 }
667 }
668 arr.push(currentLine);
669 arr.forEach((line, index) => {
670 context.fillText(line, 770, y + (index * 17)); // 调整行高
671 })
672 })
673 } else {
674 linesBdcdy.forEach((line, index) => {
675 const y = 418 + (index * 17); // 每行文本的垂直位置
676 let currentLine = '';
677 let arr = [];
678 for (let word of line) {
679 const testLine = currentLine + word;
680 const lineWidth = context.measureText(testLine).width;
681 if (lineWidth <= maxWidth) {
682 currentLine = testLine;
683 } else {
684 arr.push(currentLine);
685 currentLine = word;
686 }
687 }
688 arr.push(currentLine);
689 arr.forEach((line, index) => {
690 context.fillText(line, 770, y + (index * 17)); // 调整行高
691 })
692 })
693 }
694
695 for (let i = 1; i < lines.length; i++) {
696 let num = Math.ceil(getByteLen(lines[i]) / 32)
697 if (getByteLen(lines[i]) > 32) {
698 let currentLine = '';
699 let arr = [];
700 for (let word of lines[i]) {
701 const testLine = currentLine + word;
702 const lineWidth = context.measureText(testLine).width;
703 if (lineWidth <= maxWidth) {
704 currentLine = testLine;
705 } else {
706 arr.push(currentLine);
707 currentLine = word;
708 }
709 }
710 arr.push(currentLine);
711 if (i > 0) {
712 arr.forEach((line, index) => {
713 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
714 })
715 } else {
716 arr.forEach((line, index) => {
717 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + (index * 17)); // 调整行高
718 })
719 }
720 } else {
721 if (i > 0) {
722 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + 6 * num + (25 * (i - 1)));
723 } else {
724 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + (25 * (i - 1)));
725 }
726 }
727 }
728 // fj
729 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
730 for (let i = 0; i < lines1.length; i++) {
731 let num = Math.ceil(getByteLen(lines1[i]) / 37)
732 if (getByteLen(lines1[i]) > 37) {
733 let currentLine = '';
734 let arr = [];
735 for (let word of lines1[i]) {
736 const testLine = currentLine + word;
737 const lineWidth = context.measureText(testLine).width;
738 if (lineWidth <= maxWidth) {
739 currentLine = testLine;
740 } else {
741 arr.push(currentLine);
742 currentLine = word;
743 }
744 }
745 arr.push(currentLine);
746 if (i > 0) {
747 arr.forEach((line, index) => {
748 context.fillText(line, 770, 605 + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
749 })
750 } else {
751 arr.forEach((line, index) => {
752 context.fillText(line, 770, 605 + (24 * (i - 1)) + (index * 17)); // 调整行高
753 })
754 }
755 } else {
756 if (i > 0) {
757 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + 6 * num + (25 * (i - 1)));
758 } else {
759 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + (25 * (i - 1)));
760 }
761 }
762 }
763 }
764 image.src = this.bdczmSrc;
765 },
766 /**
767 * @description: 打印
768 * @author: renchao
769 */
770 handlePrint () {
771 let that = this
772 if (this.ruleForm.ysxlh == '') {
773 this.$message.error('请选择印刷序列号');
774 return;
775 }
776 store.dispatch('user/reWorkFresh', false)
777 if (this.bdcqz.bdcqzlx == 1) {
778 if (this.activeTitle == 'title1') {
779 getPrintTemplateByCode({ tmpno: 'zsdy1' }).then(resInfo => {
780 if (resInfo.code == 200) {
781 //打开模板设计
782 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
783 LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
784 console.log(that.bdcqz);
785 for (let key in that.bdcqz) {
786 LODOP.SET_PRINT_STYLEA(key, "CONTENT", that.bdcqz[key]);
787 }
788 LODOP.PREVIEW();
789 } else {
790 that.$message.error(resInfo.message)
791 }
792 that.$popupCacel()
793 //刷新列表
794 store.dispatch('user/reWorkFresh', true)
795 })
796 } else {
797 getPrintTemplateByCode({ tmpno: 'zsdy' }).then(resInfo => {
798 if (resInfo.code == 200) {
799 //打开模板设计
800 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
801 LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
802
803 that.bdcqz.bdcdyh1 = that.bdcqz.bdcdyh.slice(0, 6) + ' ' + that.bdcqz.bdcdyh.slice(6, 12) + ' ' +
804 that.bdcqz.bdcdyh.slice(12, 19) + ' ' + that.bdcqz.bdcdyh.slice(19, that.bdcqz.bdcdyh.length)
805 //todo 调取后端接口获取数据 循环set
806 for (let key in that.bdcqz) {
807 LODOP.SET_PRINT_STYLEA(key, "CONTENT", that.bdcqz[key]);
808 }
809 LODOP.PREVIEW();
810 } else {
811 that.$message.error(resInfo.message)
812 }
813 that.$popupCacel()
814 //刷新列表
815 store.dispatch('user/reWorkFresh', true)
816 })
817 }
818 } else {
819 getPrintTemplateByCode({ tmpno: 'zmdy' }).then(resInfo => {
820 if (resInfo.code == 200) {
821 //打开模板设计
822 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
823 LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
824
825 // 年月日
826 this.bdcqz.nian = this.bdcqz.djsj.split(' ')[0].split('/')[0]
827 this.bdcqz.yue = this.bdcqz.djsj.split(' ')[0].split('/')[1]
828 this.bdcqz.ri = this.bdcqz.djsj.split(' ')[0].split('/')[1]
829 this.bdcqz.bdcdyh1 = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
830 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
831 //todo 调取后端接口获取数据 循环set
832 for (let key in this.bdcqz) {
833 LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.bdcqz[key]);
834 }
835 LODOP.PREVIEW();
836 } else {
837 this.$message.error(resInfo.message)
838 }
839 that.$popupCacel()
840 //刷新列表
841 store.dispatch('user/reWorkFresh', true)
842 })
843 }
844 },
845 /**
846 * @description: 保存打印记录
847 * @author: renchao
848 */
849 handleSubmit () {
850 let that = this
851 if (this.ruleForm.ysxlh == '') {
852 this.$message.error('请选择印刷序列号');
853 return;
854 }
855 store.dispatch('user/reWorkFresh', false)
856 this.ruleForm.bsmBdcqz = this.bdcqz.bsmBdcqz;
857 this.ruleForm.bdcqzlx = this.bdcqz.bdcqzlx;
858 this.ruleForm.szzh = this.bdcqz.bdcqzh;
859 this.bdcqz.ysxlh = this.ruleForm.ysxlh
860 certificate(this.ruleForm).then((res) => {
861 if (res.code === 200) {
862 that.$popupCacel()
863 this.handlePrint()
864 } else {
865 this.$message.error(res.message)
866 }
867 store.dispatch('user/reWorkFresh', true)
868 })
869 }
870 }
871 }
872 </script>
873 <style scoped lang="scss">
874 @import "~@/styles/mixin.scss";
875 /deep/.el-tabs__nav-wrap::after {
876 display: none;
877 }
878 /deep/.el-tabs__header {
879 margin: 0;
880 }
881 /deep/.el-form-item--small.el-form-item {
882 margin-bottom: 0;
883 }
884 .zsdy-content {
885 height: 80vh;
886 overflow-y: scroll;
887 }
888 .zs-content {
889 text-align: center;
890 }
891 .invalid-diglog {
892 padding-bottom: 20px;
893 font-size: 16px;
894 font-weight: bold;
895 color: rgb(99, 99, 99);
896
897 .invalid-title {
898 display: flex;
899 align-content: center;
900
901 .invalid-icon {
902 color: rgb(254, 148, 0);
903 font-size: 34px;
904 margin-right: 10px;
905 }
906
907 .invalid-body {
908 line-height: 40px;
909 margin-bottom: 10px;
910 }
911 }
912
913 .invalid-reson {
914 margin-bottom: 10px;
915 }
916
917 .dialog-footer {
918 margin-top: 10px;
919 display: flex;
920 justify-content: flex-end;
921 }
922 }
923 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-18 14:06:16
5 -->
6 <template>
7 <div style="width:100%;height:100%;">
8 <canvas id="mxcad" style="width:100%;height:100%;">
9 </canvas>
10 </div>
11 </template>
12 <script>
13 import Mx from "mxdraw"
14 export default {
15 mounted () {
16 // 动态加载 js库核心代码
17 Mx.loadCoreCode().then(() => {
18 // Mx.MxFun.setMxServer("ws://localhost:5090") // 开启socket通信 可编辑图纸
19 // 创建控件对象
20 Mx.MxFun.createMxObject({
21 canvasId: "mxcad", // canvas元素的id
22 cadFile: "buf/hhhh.dwg", // http方式(预览): 加载public/demo文件夹下转换后的图纸
23 callback: (mxDraw, {
24 canvas,
25 canvasParent
26 }) => {
27 // 可以拿到canvas元素和它的父级元素
28 // 拿到图层数据
29 mxDraw.addEvent('uiSetLayerData', (listLayer) => {
30 console.log(listLayer)
31 })
32 },
33 isNewFile: true // 是否新建文件
34 })
35 })
36 },
37 }
38 </script>
39 <style scoped lang="scss">
40 #mxcad {
41 pointer-events: none;
42 }
43 </style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
86 case "B1": 86 case "B1":
87 getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => { 87 getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
88 let { result } = res 88 let { result } = res
89 this.$popupDialog("流程图", "workflow/components/processViewer", { 89 this.$popupDialog("流程图", "workflow/top/processViewer/index", {
90 xml: result.xml, 90 xml: result.xml,
91 finishedInfo: { 91 finishedInfo: {
92 finishedTaskSet: result.finishedActivityIds, 92 finishedTaskSet: result.finishedActivityIds,
...@@ -122,13 +122,13 @@ export default { ...@@ -122,13 +122,13 @@ export default {
122 this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true) 122 this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true)
123 break; 123 break;
124 case "B5": 124 case "B5":
125 this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", { 125 this.$popupDialog("证书证明预览", "workflow/top/zsyl/index", {
126 bsmSlsq: this.bsmSlsq, 126 bsmSlsq: this.bsmSlsq,
127 entryType: '1' 127 entryType: '1'
128 }, '1230px', true) 128 }, '1230px', true)
129 break; 129 break;
130 case "B-ZSXG": 130 case "B-ZSXG":
131 this.$popupDialog("证书修改", "workflow/components/dialog/zsxg", { bsmSlsq: this.bsmSlsq, }, '55%', true) 131 this.$popupDialog("证书修改", "workflow/top/zsxg/index", { bsmSlsq: this.bsmSlsq, }, '55%', true)
132 break; 132 break;
133 case "B6": 133 case "B6":
134 this.$popupDialog("打印申请书", "workflow/components/dialog/sqs", 134 this.$popupDialog("打印申请书", "workflow/components/dialog/sqs",
...@@ -171,11 +171,11 @@ export default { ...@@ -171,11 +171,11 @@ export default {
171 getZdInfo(this.currentSelectProps.bdcdyid).then(res => { 171 getZdInfo(this.currentSelectProps.bdcdyid).then(res => {
172 this.bsmZd = res?.result[0]?.bsmZd 172 this.bsmZd = res?.result[0]?.bsmZd
173 console.log(this.bsmZd); 173 console.log(this.bsmZd);
174 this.$popupDialog('图形定位', 'workflow/components/dialog/txdw', { bsmZd: this.bsmZd }, '85%', true) 174 this.$popupDialog('图形定位', 'workflow/top/map/index', { bsmZd: this.bsmZd }, '85%', true)
175 }) 175 })
176 break; 176 break;
177 case "back": //退回按钮 177 case "back": //退回按钮
178 this.$popupDialog("退回", "workflow/components/th", { 178 this.$popupDialog("退回", "workflow/top/back/index", {
179 bsmSlsq: this.bsmSlsq, 179 bsmSlsq: this.bsmSlsq,
180 bestepid: this.bestepid ? this.bestepid : '' 180 bestepid: this.bestepid ? this.bestepid : ''
181 }, '800px', true) 181 }, '800px', true)
...@@ -283,10 +283,11 @@ export default { ...@@ -283,10 +283,11 @@ export default {
283 * @author: renchao 283 * @author: renchao
284 */ 284 */
285 sendToNext (obj) { 285 sendToNext (obj) {
286 this.$popupDialog("转出", "djbworkflow/components/zc", { 286 this.$popupDialog("转出", "workflow/top/transfer/index", {
287 obj: obj, 287 obj: obj,
288 bsmSlsq: this.bsmSlsq, 288 bsmSlsq: this.bsmSlsq,
289 tabList: this.tabList 289 tabList: this.tabList,
290 tshowidea: this.showidea
290 }, '800px', true) 291 }, '800px', true)
291 }, 292 },
292 /** 293 /**
...@@ -295,10 +296,11 @@ export default { ...@@ -295,10 +296,11 @@ export default {
295 * @author: renchao 296 * @author: renchao
296 */ 297 */
297 sendToEnd (obj) { 298 sendToEnd (obj) {
298 this.$popupDialog("转出", "djbworkflow/components/zc", { 299 this.$popupDialog("转出", "workflow/top/transfer/index", {
299 obj: "", 300 obj: "",
300 bsmSlsq: this.bsmSlsq, 301 bsmSlsq: this.bsmSlsq,
301 tabList: this.tabList 302 tabList: this.tabList,
303 showidea: this.showidea
302 }, '800px', true) 304 }, '800px', true)
303 }, 305 },
304 /** 306 /**
......
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-08-02 14:24:20
5 -->
6 <template>
7 <div class="from-clues">
8 <!-- 表单部分 -->
9 <div class="from-clues-header">
10 <div class="title">请选择要退回到的环节:</div>
11 <el-form ref="queryForm" label-width="90px">
12 <ul style="margin-bottom: 15px">
13 <li
14 v-for="(item, index) in dataList"
15 class="listDetail"
16 :key="index"
17 @click="changeSelectItem(item)">
18 <p class="icon">
19 <el-radio
20 v-model="selectActivity"
21 :label="item.activityId"
22 @change="changeSelectItem(item)"></el-radio>
23 </p>
24 <p>{{ item.activityName }}</p>
25 <p v-for="(child, childIndex) in item.assignee" :key="childIndex">
26 {{ child.name }}
27 </p>
28 </li>
29 </ul>
30 <div class="title">退回意见:</div>
31 <el-form-item>
32 <el-input
33 class="textArea"
34 type="textarea"
35 v-model="outstepopinion"
36 placeholder="请输入退回意见"></el-input>
37 </el-form-item>
38 <el-form-item>
39 <el-button style="float:right" @click="cancelBack">取消</el-button>
40 <el-button type="primary" @click="onSubmit" style="float:right">退回</el-button>
41 </el-form-item>
42 </el-form>
43 </div>
44 </div>
45 </template>
46
47 <script>
48
49 import { getTaskBackNode, sendBackTask } from "@/api/workFlow.js"
50 import { popupCacel } from "@/utils/popup.js";
51
52 export default {
53 props: {
54 formData: {
55 type: Object,
56 default: {},
57 },
58 },
59 data () {
60 return {
61 selectActivity: "",
62 dataList: [],
63 outstepopinion: "",
64 selectItem: {},
65 };
66 },
67 created () {
68 this.getBackNode();
69 },
70 methods: {
71 /**
72 * @description: onSubmit
73 * @author: renchao
74 */
75 onSubmit () {
76 if (!this.outstepopinion) {
77 this.$message.error("请填写退回意见");
78 } else {
79 sendBackTask({
80 bsmSlsq: this.formData.bsmSlsq,
81 backNodeList: [this.selectItem],
82 message: this.outstepopinion
83 }).then((res) => {
84 if (res.code == 200) {
85 this.$message.success("退回成功");
86 setTimeout(() => {
87 if (window.opener && window.opener.getBpageList) {
88 window.opener.getBpageList();
89 } else {
90 window.opener.frames[0].getBpageList();
91 }
92 window.close();
93 this.$emit("input", false);
94 }, 1000);
95 } else {
96 this.$message.error(res.message);
97 }
98 });
99 }
100 },
101 /**
102 * @description: changeSelectItem
103 * @param {*} item
104 * @author: renchao
105 */
106 changeSelectItem (item) {
107 this.selectItem = item;
108 this.selectActivity = item.activityId;
109 },
110 //获取可回退环节信息
111 /**
112 * @description: 获取可回退环节信息
113 * @author: renchao
114 */
115 getBackNode () {
116 getTaskBackNode(this.formData).then((res) => {
117 if (res.code == 200) {
118 this.dataList = res.result;
119 console.log("this.dataList", this.dataList);
120 if (res.result) {
121 this.selectActivity = res.result[0].activityId;
122 this.selectItem = res.result[0];
123 }
124 }
125 });
126 },
127
128 /**
129 * @description: cancelBack
130 * @author: renchao
131 */
132 cancelBack () {
133 popupCacel();
134 }
135 }
136 }
137 </script>
138 <style scoped lang="scss">
139 @import "~@/styles/mixin.scss";
140
141 .listDetail {
142 display: flex;
143 align-items: center;
144 width: 100%;
145
146 p {
147 line-height: 30px;
148 height: 30px;
149 @include flex-center;
150 flex: 1;
151 width: 100%;
152 border: 1px solid rgb(233, 235, 237);
153 margin-top: -1px;
154 margin-left: -1px;
155 }
156
157 .icon {
158 flex: 0 0 60px;
159 }
160 }
161
162 .title {
163 margin-bottom: 10px;
164 }
165
166 .textArea {
167 /deep/.el-textarea__inner {
168 min-height: 90px !important;
169 }
170 }
171 /deep/.el-radio .el-radio__label {
172 display: none;
173 }
174 </style>
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-23 14:07:58
5 */
6 /**
7 * @description: 按钮操作
8 * @param attribute:按钮属性
9 * @param address:地址栏数据
10 * @param sldy:受理单元数据
11 * @author: renchao
12 */
13 export function buttonOnclike(attribute, address, sldy) {
14 //按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿,B10:打印回执 ZSXG: 证书修改
15 //操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
16 let that = this;
17 switch (item.value) {
18 case "B0":
19 btn_add(attribute, address, sldy);
20 break;
21 case "B1":
22 btn_flow(attribute, address, sldy);
23 break;
24 case "B2": //材料分屏按钮
25 btn_clfp(attribute, address, sldy);
26 break;
27 case "B3": //材料导入
28 btn_cldr(attribute, address, sldy);
29 break;
30 case "B4":
31 btn_djb(attribute, address, sldy);
32 break;
33 case "B5":
34 btn_zsyl(attribute, address, sldy);
35 break;
36 case "B-ZSXG":
37 btn_zsxg(attribute, address, sldy);
38 break;
39 case "B6":
40 btn_dysqs(attribute, address, sldy);
41 break;
42 case "B7":
43 btn_zslq(attribute, address, sldy);
44 break;
45 case "B8":
46 btn_houses(attribute, address, sldy);
47 break;
48 // 图形定位
49 case "B-TXDW":
50 btn_map(attribute, address, sldy);
51 break;
52 case "back": //退回按钮
53 btn_back(attribute, address, sldy);
54 break;
55 case "transfer": //转件按钮
56 btn_transfer(attribute, address, sldy);
57 break;
58 case "stop": //终止按钮
59 btn_stop(attribute, address, sldy);
60 break;
61 case "signout":
62 btn_signout(attribute, address, sldy);
63 break;
64 case "B9":
65 btn_record(attribute, address, sldy);
66 break;
67 case "B10":
68 break;
69 case "rm":
70 btn_deleteFlow();
71 break;
72 // 互联网数据共享
73 case "B-HLGXSJ":
74 btn_dataShare(attribute, address, sldy);
75 break;
76 default:
77 console.log("未开发!");
78 break;
79 }
80 }
81 //新增受理单元
82 function btn_add(attribute, address, sldy) {
83 this.openDialog(attribute);
84 }
85 //流程图
86 function btn_flow(attribute, address, sldy) {
87 getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
88 let { result } = res
89 this.$popupDialog("流程图", "workflow/components/processViewer", {
90 xml: result.xml,
91 finishedInfo: {
92 finishedTaskSet: result.finishedActivityIds,
93 unfinishedTaskSet: result.runningActivityIds,
94 rejectedTaskSet: result.rejectedActivityIds,
95 finishedSequenceFlowSet: result.finishedSequenceFlowIds
96 },
97 handlinglist: result.runningTasks,
98 allCommentList: result.finishedTasks
99 }, '80%', true)
100 })
101 }
102 //材料分屏
103 function btn_clfp(attribute, address, sldy) {
104 this.splitScreen = this.splitScreen ? false : true;
105 this.$store.dispatch("app/settScreen", this.splitScreen);
106 if (this.splitScreen) {
107 //如果当前选项卡为材料信息内容,递减到上一个选项卡内容
108 if (this.tabName == this.clxxTab.value) {
109 this.tabName = this.tabList[this.clxxIndex - 1].value;
110 this.getFromRouter(this.tabList[this.clxxIndex - 1].value);
111 }
112 //删除材料信息选项卡数据
113 this.tabList.splice(this.clxxIndex, 1);
114 } else {
115 //新增材料信息选项卡数据
116 this.tabList.splice(this.clxxIndex, 0, this.clxxTab);
117 }
118 }
119 //材料导入
120 function btn_cldr(attribute, address, sldy) {
121 document.getElementById("cldr").click();
122 }
123 //登记簿
124 function btn_djb(attribute, address, sldy) {
125 this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true)
126 }
127 //打印申请书
128 function btn_dysqs(attribute, address, sldy) {
129 this.$popupDialog("打印申请书", "workflow/components/dialog/sqs",
130 { bsmSldy: this.currentSelectProps.bsmSldy }, '30%', true
131 )
132 }
133 //证书预览
134 function btn_zsyl(attribute, address, sldy) {
135 this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", {
136 bsmSlsq: this.bsmSlsq,
137 entryType: '1'
138 }, '1230px', true)
139 }
140 //证书修改
141 function btn_zsxg(attribute, address, sldy) {
142 this.$popupDialog("证书修改", "workflow/components/dialog/zsxg", { bsmSlsq: this.bsmSlsq, }, '55%', true);
143 }
144 //证书领取
145 function btn_zslq(attribute, address, sldy) {
146 this.$popupDialog("证书领取", "workflow/components/dialog/zslq",
147 { bsmSlsq: this.$route.query.bsmSlsq }, '70%', true
148 )
149 }
150 //楼盘表
151 function btn_houses(attribute, address, sldy) {
152 !window.djlx && getZrzbsmList(this.bsmSlsq).then((res) => {
153 if (res.code === 200) {
154 ywPopupDialog('楼盘表', 'lpb/index', {
155 bsm: res.result[0],
156 onlyShow: false,
157 unitData: window.unitData,
158 bsmSlsq: this.bsmSlsq,
159 showSave: true,
160 djlx: window.djlx
161 }, '85%', true, false)
162 } else {
163 this.$message.error(res.message)
164 }
165 })
166 .catch((err) => {
167 this.$message.error(err)
168 });
169 window.djlx && ywPopupDialog('楼盘表', 'lpb/zjgcdy', {
170 onlyShow: false,
171 unitData: window.unitData,
172 bsmSlsq: this.bsmSlsq,
173 showSave: true,
174 djlx: window.djlx
175 }, '85%', true, false)
176 }
177 //登簿
178 function btn_record(attribute, address, sldy) {
179 var formdata = new FormData();
180 formdata.append("bsmSlsq", this.bsmSlsq);
181 formdata.append("bestepid", this.bestepid ? this.bestepid : '');
182 this.$confirm("请确认是否登簿", "提示", {
183 iconClass: "el-icon-info", //自定义图标样式
184 confirmButtonText: "确认", //确认按钮文字更换
185 cancelButtonText: "取消", //取消按钮文字更换
186 showClose: true, //是否显示右上角关闭按钮
187 type: "warning", //提示类型 success/info/warning/error
188 }).then(function () {
189 record(formdata).then((res) => {
190 if (res.code === 200) {
191 if (res.result.length === 1) {
192 res.result[0].state ? that.$message({
193 message: '登簿成功',
194 type: 'success'
195 }) : ywPopupDialog("登簿错误明细", "workflow/components/dialog/dblist", { result: res.result }, '30%', true)
196 }
197 else {
198 ywPopupDialog("登簿错误明细", "workflow/components/dialog/dblist", { result: res.result }, '30%', true)
199 }
200 } else {
201 that.$message.error(res.message)
202 }
203 })
204 })
205 }
206 //转件
207 function btn_transfer(attribute, address, sldy) {
208 getNextLinkInfo({
209 bsmSlsq: this.bsmSlsq,
210 bestepid: this.bestepid ? this.bestepid : ''
211 }).then((res) => {
212 if (res.code === 200) {
213 if (res.result) {
214 this.sendToNext(res.result);
215 } else {
216 this.sendToEnd();
217 }
218 }
219 });
220 }
221 //退回
222 function btn_back(attribute, address, sldy) {
223 this.$popupDialog("退回", "workflow/components/th", {
224 bsmSlsq: this.bsmSlsq,
225 bestepid: this.bestepid ? this.bestepid : ''
226 }, '800px', true)
227 }
228 //退出
229 function btn_signout(attribute, address, sldy) {
230 window.close();
231 //取消认领
232 unClaimTask(this.bsmSlsq, this.bestepid ? this.bestepid : '')
233 }
234 //终止流程
235 function btn_stop(attribute, address, sldy) {
236 this.$popupDialog("终止", "workflow/components/stop", {
237 bsmSlsq: this.bsmSlsq,
238 bestepid: this.bestepid ? this.bestepid : ''
239 }, '600px', true);
240 }
241 //删除流程
242 function btn_deleteFlow(attribute, address, sldy) {
243 this.del();
244 }
245 //数据共享
246 function btn_dataShare(attribute, address, sldy) {
247 this.$popupDialog("互联网数据共享", "sjgx/gbmhlgxsjgx/gbmhlgxsjgx", {}, '90%', true)
248 }
249 //图形定位
250 function btn_map(attribute, address, sldy) {
251 getZdInfo(this.currentSelectProps.bdcdyid).then(res => {
252 this.bsmZd = res?.result[0]?.bsmZd;
253 this.$popupDialog('图形定位', 'workflow/components/dialog/txdw', { bsmZd: this.bsmZd }, '85%', true)
254 })
255 }
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-11-23 17:20:01
5 -->
6 <template>
7 <iframe :src="ip +'/txdw/#/' + formData.bsmZd" frameborder="0" style="width: 100%; height:710px;"></iframe>
8 </template>
9 <script>
10 export default {
11 props: {
12 formData: {
13 type: Object,
14 default: () => {
15 return {}
16 }
17 }
18 },
19 data () {
20 return {
21 ip: window._config.services.management
22 }
23 }
24 }
25 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:41:15
5 -->
6 <template>
7 <div>
8 <div class="process-viewer">
9 <div
10 v-show="!isLoading"
11 ref="processCanvas"
12 class="process-canvas"
13 style="height: 280px"
14 />
15 <!-- 自定义箭头样式,用于成功状态下流程连线箭头 -->
16 <defs ref="customSuccessDefs">
17 <marker
18 id="sequenceflow-end-white-success"
19 view-box="0 0 20 20"
20 ref-x="11"
21 ref-y="10"
22 marker-width="10"
23 marker-height="10"
24 orient="auto"
25 >
26 <path
27 class="success-arrow"
28 d="M 1 5 L 11 10 L 1 15 Z"
29 style="
30 stroke-width: 1px;
31 stroke-linecap: round;
32 stroke-dasharray: 10000, 1;
33 "
34 />
35 </marker>
36 <marker
37 id="conditional-flow-marker-white-success"
38 view-box="0 0 20 20"
39 ref-x="-1"
40 ref-y="10"
41 marker-width="10"
42 marker-height="10"
43 orient="auto"
44 >
45 <path
46 class="success-conditional"
47 d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
48 style="
49 stroke-width: 1px;
50 stroke-linecap: round;
51 stroke-dasharray: 10000, 1;
52 "
53 />
54 </marker>
55 </defs>
56 <!-- 自定义箭头样式,用于失败状态下流程连线箭头 -->
57 <defs ref="customFailDefs">
58 <marker
59 id="sequenceflow-end-white-fail"
60 view-box="0 0 20 20"
61 ref-x="11"
62 ref-y="10"
63 marker-width="10"
64 marker-height="10"
65 orient="auto"
66 >
67 <path
68 class="fail-arrow"
69 d="M 1 5 L 11 10 L 1 15 Z"
70 style="
71 stroke-width: 1px;
72 stroke-linecap: round;
73 stroke-dasharray: 10000, 1;
74 "
75 />
76 </marker>
77 <marker
78 id="conditional-flow-marker-white-fail"
79 view-box="0 0 20 20"
80 ref-x="-1"
81 ref-y="10"
82 marker-width="10"
83 marker-height="10"
84 orient="auto"
85 >
86 <path
87 class="fail-conditional"
88 d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
89 style="
90 stroke-width: 1px;
91 stroke-linecap: round;
92 stroke-dasharray: 10000, 1;
93 "
94 />
95 </marker>
96 </defs>
97
98 <div style="position: absolute; top: 0px; left: 0px; width: 100%">
99 <el-row type="flex" justify="end">
100 <el-button-group key="scale-control" size="medium">
101 <el-button
102 size="medium"
103 type="default"
104 :plain="true"
105 :disabled="defaultZoom <= 0.3"
106 icon="el-icon-zoom-out"
107 @click="processZoomOut()"
108 />
109 <el-button size="medium" type="default" style="width: 90px">{{
110 Math.floor(this.defaultZoom * 10 * 10) + "%"
111 }}</el-button>
112 <el-button
113 size="medium"
114 type="default"
115 :plain="true"
116 :disabled="defaultZoom >= 3.9"
117 icon="el-icon-zoom-in"
118 @click="processZoomIn()"
119 />
120 <el-button
121 size="medium"
122 type="default"
123 icon="el-icon-c-scale-to-original"
124 @click="processReZoom()"
125 />
126 <slot />
127 </el-button-group>
128 </el-row>
129 </div>
130 </div>
131 <!-- 已完成节点悬浮弹窗 -->
132 <div class="information-list">
133 <el-select v-model="selectValue" @change="handleSelect">
134 <el-option
135 v-for="item in selectOptions"
136 :key="item.value"
137 :label="item.label"
138 :value="item.value"
139 >
140 </el-option>
141 </el-select>
142 <div class="cutline">
143 <p class="cutlines">图例</p>
144 <div v-for="item in cutlinelist" :key="item.value" class="concent" :style="{ backgroundColor: item.backgroundColor,borderColor:item.color }">
145 {{item.value}}
146 </div>
147 </div>
148 <el-table
149 height="190"
150 :data="taskCommentList"
151 size="mini"
152 border
153 header-cell-class-name="table-header-gray"
154 >
155 <el-table-column
156 label="序号"
157 header-align="center"
158 align="center"
159 type="index"
160 width="55px"
161 />
162 <el-table-column label="环节" prop="name" align="center" />
163 <el-table-column
164 label="转入时间"
165 prop="createTime"
166 :formatter="formatDate"
167 width="160"
168 align="center"
169 />
170 <el-table-column
171 label="认领时间"
172 prop="claimTime"
173 :formatter="formatDate"
174 width="160"
175 align="center"
176 />
177 <el-table-column
178 label="转出时间"
179 prop="endTime"
180 :formatter="formatDate"
181 width="160"
182 align="center"
183 />
184 <el-table-column label="经办人" prop="agent" align="center" />
185 <el-table-column label="操作方式" prop="controls" align="center" />
186 <el-table-column label="意见" prop="idea" align="center" />
187 </el-table>
188 </div>
189 </div>
190 </template>
191 <script>
192 import "@/styles/package/theme/index.scss";
193 import BpmnViewer from "bpmn-js/lib/Viewer";
194 import MoveCanvasModule from "diagram-js/lib/navigation/movecanvas";
195 export default {
196 props: {
197 formData: {
198 type: Object,
199 default: {},
200 },
201 },
202 data() {
203 return {
204 dlgTitle: undefined,
205 defaultZoom: 1,
206 // 是否正在加载流程图
207 isLoading: true,
208 bpmnViewer: undefined,
209 // 已完成流程元素
210 processNodeInfo: undefined,
211 // 当前任务id
212 selectTaskId: undefined,
213 // 任务节点审批记录
214 taskList: [],
215 taskCommentList: [],
216 // 已完成任务悬浮延迟Timer
217 hoverTimer: null,
218 // 下拉
219 selectValue: "",
220 selectOptions: [],
221 cutlinelist:[
222 {
223 value: "完成节点",
224 color: "#4eb819",
225 backgroundColor :"rgba(78, 184, 25,0.2)"
226 },
227 {
228 value: "当前节点",
229 color: "#409EFF",
230 backgroundColor :"rgba(64, 158, 255,0.2)"
231 },
232 {
233 value: "挂起节点",
234 color: "#E6A23C",
235 backgroundColor :"rgba(230, 162, 60,0.2)"
236 },
237 {
238 value: "阻塞节点",
239 color: "#F56C6C",
240 backgroundColor :"rgb(245, 108, 108,0.2)"
241 },
242 {
243 value: "未激活节点",
244 color: "#000000",
245 backgroundColor :"none",
246 }
247 ],
248 };
249 },
250 created() {
251 this.$nextTick(() => {
252 // 获取流程记录
253 this.getCommentList();
254 this.setProcessStatus(this.formData.finishedInfo);
255 this.importXML(this.formData.xml);
256 });
257 },
258 destroyed() {
259 this.clearViewer();
260 },
261 methods: {
262 /**
263 * @description: formatDate
264 * @param {*} row
265 * @param {*} column
266 * @author: renchao
267 */
268 formatDate(row, column) {
269 let data = row[column.property];
270 if (data == null) {
271 return null;
272 }
273 let dt = new Date(data);
274 return (
275 dt.getFullYear() +
276 "-" +
277 (dt.getMonth() + 1) +
278 "-" +
279 dt.getDate() +
280 " " +
281 dt.getHours() +
282 ":" +
283 dt.getMinutes() +
284 ":" +
285 dt.getSeconds()
286 );
287 },
288 /**
289 * @description: processReZoom
290 * @author: renchao
291 */
292 processReZoom() {
293 this.defaultZoom = 1;
294 this.bpmnViewer.get("canvas").zoom("fit-viewport", "auto");
295 },
296 /**
297 * @description: processZoomIn
298 * @param {*} zoomStep
299 * @author: renchao
300 */
301 processZoomIn(zoomStep = 0.1) {
302 const newZoom = Math.floor(this.defaultZoom * 100 + zoomStep * 100) / 100;
303 if (newZoom > 4) {
304 throw new Error(
305 "[Process Designer Warn ]: The zoom ratio cannot be greater than 4"
306 );
307 }
308 this.defaultZoom = newZoom;
309 this.bpmnViewer.get("canvas").zoom(this.defaultZoom);
310 },
311 /**
312 * @description: processZoomOut
313 * @param {*} zoomStep
314 * @author: renchao
315 */
316 processZoomOut(zoomStep = 0.1) {
317 const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100;
318 if (newZoom < 0.2) {
319 throw new Error(
320 "[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2"
321 );
322 }
323 this.defaultZoom = newZoom;
324 this.bpmnViewer.get("canvas").zoom(this.defaultZoom);
325 },
326 /**
327 * @description: getOperationTagType
328 * @param {*} type
329 * @author: renchao
330 */
331 getOperationTagType(type) {
332 return "success";
333 },
334 // 流程图预览清空
335 /**
336 * @description: 流程图预览清空
337 * @param {*} e
338 * @author: renchao
339 */
340 clearViewer(a) {
341 if (this.$refs.processCanvas) {
342 this.$refs.processCanvas.innerHTML = "";
343 }
344 if (this.bpmnViewer) {
345 this.bpmnViewer.destroy();
346 }
347 this.bpmnViewer = null;
348 },
349 // 添加自定义箭头
350 /**
351 * @description: 添加自定义箭头
352 * @author: renchao
353 */
354 addCustomDefs() {
355 const canvas = this.bpmnViewer.get("canvas");
356 const svg = canvas._svg;
357 const customSuccessDefs = this.$refs.customSuccessDefs;
358 const customFailDefs = this.$refs.customFailDefs;
359 svg.appendChild(customSuccessDefs);
360 svg.appendChild(customFailDefs);
361 },
362 // 任务悬浮弹窗
363 /**
364 * @description: 任务悬浮弹窗
365 * @param {*} element
366 * @author: renchao
367 */
368 onSelectElement(element) {
369 this.selectTaskId = undefined;
370 this.dlgTitle = undefined;
371 let allfinishedTaskSet = [
372 ...this.processNodeInfo.finishedTaskSet,
373 ...this.processNodeInfo.unfinishedTaskSet,
374 ];
375 if (this.processNodeInfo == null || allfinishedTaskSet == null) return;
376 if (element == null || allfinishedTaskSet.indexOf(element.id) === -1) {
377 return;
378 }
379 this.selectTaskId = element.id;
380 this.selectValue = element.id;
381 this.dlgTitle = element.businessObject
382 ? element.businessObject.name
383 : undefined;
384 // 计算当前悬浮任务审批记录,如果记录为空不显示弹窗
385 this.taskCommentList = (this.taskList || []).filter((item) => {
386 return item.taskDefinitionKey === this.selectTaskId;
387 });
388 if (this.taskCommentList.length == 0) {
389 this.taskCommentList = this.taskList;
390 }
391 },
392 // 下拉列表切换
393 /**
394 * @description: 下拉列表切换
395 * @param {*} val
396 * @author: renchao
397 */
398 handleSelect(val) {
399 this.taskCommentList = (this.taskList || []).filter((item) => {
400 return item.taskDefinitionKey === val;
401 });
402 if (this.taskCommentList.length == 0) {
403 this.taskCommentList = this.taskList;
404 }
405 },
406 // 显示流程图
407 /**
408 * @description: 显示流程图
409 * @param {*} xml
410 * @author: renchao
411 */
412 async importXML(xml) {
413 let xmlData = this.$x2js.xml2js(xml).definitions.process;
414 this.selectOptions = xmlData.userTask.map((item) => {
415 return { value: item._id, label: item._name };
416 });
417 this.selectOptions = [
418 { value: xmlData.startEvent._id, label: "浏览记录" },
419 ...this.selectOptions,
420 ];
421 this.selectOptions = this.selectOptions
422 .map((item) => {
423 if (this.formData.finishedInfo.finishedTaskSet.includes(item.value)) {
424 return item;
425 }
426 if (
427 this.formData.finishedInfo.unfinishedTaskSet.includes(item.value)
428 ) {
429 return item;
430 }
431 })
432 .filter(Boolean);
433 this.selectValue = xmlData.startEvent._id;
434 this.clearViewer("a");
435 if (xml != null && xml !== "") {
436 try {
437 this.bpmnViewer = new BpmnViewer({
438 additionalModules: [
439 // 移动整个画布
440 MoveCanvasModule,
441 ],
442 container: this.$refs.processCanvas,
443 });
444 // 任务节点悬浮事件
445 this.bpmnViewer.on("element.click", ({ element }) => {
446 this.onSelectElement(element);
447 });
448 await this.bpmnViewer.importXML(xml);
449 this.isLoading = true;
450 this.addCustomDefs();
451 } catch (e) {
452 this.clearViewer("b");
453 } finally {
454 this.isLoading = false;
455 this.setProcessStatus(this.processNodeInfo);
456 this.$nextTick(() => {
457 this.processReZoom();
458 });
459 }
460 }
461 },
462 // 获取流程记录
463 /**
464 * @description: 获取流程记录
465 * @author: renchao
466 */
467 getCommentList() {
468 this.formData.allCommentList.forEach(async (item, index) => {
469 // item.comments.forEach(element => {
470 // if(element.type=="COMPLETE"){
471 // this.formData.allCommentList[index].idea=element.message
472 // this.formData.allCommentList[index].controls="完成"
473 // }
474 // });
475 let type = item.comments[item.comments.length - 1].type;
476 this.formData.allCommentList[index].idea =
477 item.comments[item.comments.length - 1].message;
478 // 操作方式
479 let controls = "";
480 // 正在办理
481 // 已完结
482 // 已退回
483 switch (type) {
484 case "COMPLETE":
485 controls = "完成";
486 break;
487 case "CLAIM":
488 controls = "完成";
489 break;
490 case "ASSIGN":
491 controls = "转办";
492 break;
493 case "DELEGATE":
494 controls = "委派";
495 break;
496 case "UNCLAIM":
497 controls = "取消认领";
498 break;
499 case "STOP":
500 controls = "终止";
501 break;
502 case "BACK":
503 controls = "退回";
504 break;
505 }
506 this.formData.allCommentList[index].controls = controls;
507 this.formData.allCommentList[index].agent = item.assignee.name;
508 });
509 this.formData.handlinglist.forEach(async (item, index) => {
510 if (item.assignee.name) {
511 this.formData.handlinglist[index].agent = item.assignee.name;
512 } else {
513 let str = "";
514 item.countersign.forEach((item) => {
515 str += item.name + ",";
516 });
517 str = str.slice(0, -1);
518 this.formData.allCommentList[index].agent = str;
519 }
520 });
521 this.taskList = [
522 ...this.formData.allCommentList,
523 ...this.formData.handlinglist,
524 ];
525 // this.taskList =this.formData.allCommentList;
526 // 处理数据之后赋值
527 this.taskCommentList = this.taskList;
528 this.taskCommentList = this.taskCommentList.sort(this.sortDownDate);
529 },
530 /**
531 * 时间排序函数
532 * @description: formatDate
533 * @param {*} row
534 * @param {*} column
535 * @author: renchao
536 */
537
538 sortDownDate(a, b) {
539 return Date.parse(a.createTime) - Date.parse(b.createTime);
540 },
541 // 设置流程图元素状态
542 /**
543 * @description: 设置流程图元素状态
544 * @param {*} processNodeInfo
545 * @author: renchao
546 */
547 setProcessStatus(processNodeInfo) {
548 this.processNodeInfo = processNodeInfo;
549 if (
550 this.isLoading ||
551 this.processNodeInfo == null ||
552 this.bpmnViewer == null
553 )
554 return;
555 const {
556 finishedTaskSet,
557 rejectedTaskSet,
558 unfinishedTaskSet,
559 finishedSequenceFlowSet,
560 } = this.processNodeInfo;
561 const canvas = this.bpmnViewer.get("canvas");
562 const elementRegistry = this.bpmnViewer.get("elementRegistry");
563 if (Array.isArray(finishedSequenceFlowSet)) {
564 finishedSequenceFlowSet.forEach((item) => {
565 if (item != null) {
566 canvas.addMarker(item, "success");
567 const element = elementRegistry.get(item);
568 const conditionExpression =
569 element.businessObject.conditionExpression;
570 if (conditionExpression) {
571 canvas.addMarker(item, "condition-expression");
572 }
573 }
574 });
575 }
576 if (Array.isArray(finishedTaskSet)) {
577 finishedTaskSet.forEach((item) => canvas.addMarker(item, "success"));
578 }
579 if (Array.isArray(unfinishedTaskSet)) {
580 unfinishedTaskSet.forEach((item) => canvas.addMarker(item, "primary"));
581 }
582 if (Array.isArray(rejectedTaskSet)) {
583 rejectedTaskSet.forEach((item) => {
584 if (item != null) {
585 const element = elementRegistry.get(item);
586 if (element.type.includes("Task")) {
587 canvas.addMarker(item, "danger");
588 } else {
589 canvas.addMarker(item, "warning");
590 }
591 }
592 });
593 }
594 },
595 },
596 };
597 </script>
598 <style scoped lang="scss">
599 .information-list {
600 height: 220px;
601 margin-top: 10px;
602
603 p {
604 font-size: 16px;
605 line-height: 24px;
606 }
607 }
608 /deep/.bjs-powered-by {
609 display: none;
610 }
611 // /deep/.information-list {
612 // height: 170px;
613 // overflow: visible;
614 // }
615 .cutline {
616
617 float: right;
618 width: 30%;
619 height: 30px;
620 display: flex;
621 margin-right: 30px;
622 justify-content: space-between;
623 .cutlines{
624 line-height: 30px;
625 font-weight: 600;
626 margin-right: 50px;
627 }
628 .concent{
629 line-height: 30px;
630 line-height: 14px;
631 text-align: center;
632 align-items: center;
633 margin: auto;
634 padding: 3px;
635 border-radius: 4px;
636 border:1px solid #fff;
637 }
638
639 }
640 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-27 08:51:13
5 -->
6 <template>
7 <div class="from-clues">
8 <div class="invalid-title">
9 <i class="el-icon-question invalid-icon"></i>
10 <div class="invalid-body">您是否确定终止该业务办理?</div>
11 </div>
12 <div class="invalid-reson">退件原因:</div>
13 <el-input
14 v-model="stopMessage"
15 placeholder="请输入终止原因"
16 type="textarea"
17 :rows="4"></el-input>
18 <div style="overflow:hidden;text-align:center;margin-top:10px">
19 <el-button @click="cancelBack">取消</el-button>
20 <el-button type="primary" @click="onSubmit">退件</el-button>
21 </div>
22 </div>
23 </template>
24
25 <script>
26 import { stopTask } from "@/api/workFlow.js";
27 import { popupCacel } from "@/utils/popup.js";
28 export default {
29 props: {
30 formData: {
31 type: Object,
32 default: {},
33 },
34 },
35 data () {
36 return {
37 stopMessage: "",
38 };
39 },
40 methods: {
41 /**
42 * @description: onSubmit
43 * @author: renchao
44 */
45 onSubmit () {
46 stopTask({
47 bsmSlsq: this.formData.bsmSlsq,
48 bestepid: this.formData.bestepid,
49 stopMessage: this.stopMessage,
50 }).then((res) => {
51 this.$message.success("终止成功");
52 setTimeout(() => {
53 // window.opener.location.reload(); //刷新父窗口
54 if (window.opener && window.opener.getBpageList) {
55 window.opener.getBpageList();
56 } else {
57 window.opener.frames[0].getBpageList();
58 }
59 window.close();
60 this.$emit("input", false);
61 }, 1000);
62 });
63 },
64 /**
65 * @description: closeDialog
66 * @author: renchao
67 */
68 cancelBack () {
69 popupCacel();
70 },
71 },
72 };
73 </script>
74 <style scoped lang="scss">
75 @import "~@/styles/mixin.scss";
76 .invalid-title {
77 display: flex;
78 align-content: center;
79
80 .invalid-icon {
81 color: rgb(254, 148, 0);
82 font-size: 34px;
83 margin-right: 10px;
84 }
85
86 .invalid-body {
87 line-height: 40px;
88 margin-bottom: 10px;
89 }
90 }
91
92 .invalid-reson {
93 margin-bottom: 10px;
94 }
95
96 .dialog-footer {
97 margin-top: 10px;
98 display: flex;
99 justify-content: flex-end;
100 }
101 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-19 16:48:37
5 -->
6 <template>
7 <div class="from-clues">
8 <div class="from-clues-header">
9 <el-form ref="queryForm" label-width="180px" v-if="this.formData.obj">
10 <el-form-item label="下一环节名称:">
11 {{ this.formData.obj.taskName }}
12 </el-form-item>
13 <el-form-item label="下一环节办理人:">
14 {{ this.formData.obj.usernames.join(",") }}
15 </el-form-item>
16 </el-form>
17 <el-form ref="queryForm" label-width="180px" v-else>
18 <el-form-item label="">
19 此环节为流程最后环节,转出后流程将结束
20 </el-form-item>
21 </el-form>
22 <div v-if="this.formData.showidea">
23 <div class="invalid-reson">审批意见:</div>
24 <el-input
25 class="opinion"
26 v-model="shyj"
27 placeholder="请输入审批意见"
28 type="textarea"
29 :rows="4"></el-input>
30 </div>
31 <div style="text-align:center">
32 <el-button @click="cancelBack">取消转出</el-button>
33 <el-button type="primary" @click="submitForm">确定转出</el-button>
34 </div>
35 </div>
36 </div>
37 </template>
38
39 <script>
40 import { completeTask, getNextLinkInfo } from "@/api/workFlow.js";
41 import { popupCacel } from "@/utils/popup.js";
42 import { mapGetters } from "vuex";
43 export default {
44 props: {
45 formData: {
46 type: Object,
47 default: {},
48 },
49 },
50
51 data () {
52 return {
53 queryForm: {},
54 shyj: "",
55 };
56 },
57 methods: {
58 /**
59 * @description: submitForm
60 * @author: renchao
61 */
62 commonOpinion () {
63 this.$popup('常用意见', "workflow/components/dialog/commonOpinion", {
64 title: "常用意见",
65 width: '75%', // 初始化75% 不需要改的话 可以直接不要
66 formData: {}, // 父组件传给子组件的参数
67 cancel: function () { }, //取消事件的回调 没有按钮可以不需要
68 confirm: function () { } //确认事件的回调 没有按钮可以不需要
69 })
70 },
71 submitForm () {
72 let that = this
73 this.queryForm = {
74 bsmSlsq: this.formData.bsmSlsq,
75 shyj: this.shyj,
76 stepform: JSON.stringify(this.formData.tabList),
77 };
78 completeTask(this.queryForm).then((res) => {
79 if (res.code === 200) {
80 popupCacel();
81 that.$message.success("转件成功");
82 setTimeout(() => {
83 window.close();
84 that.$emit("input", false);
85 if (window.opener && window.opener.getBpageList) {
86 window.opener.getBpageList();
87 } else {
88 window.opener.frames[0].getBpageList();
89 }
90 }, 360);
91 } else {
92 this.$message.error(res.message);
93 }
94 }).catch((error) => {
95 // 可以添加适当的错误处理
96 this.$message.error("提交任务失败");
97 });
98 },
99 /**
100 * @description: closeDialog
101 * @author: renchao
102 */
103 cancelBack () {
104 popupCacel();
105 },
106 },
107 };
108 </script>
109 <style scoped lang="scss">
110 @import "~@/styles/mixin.scss";
111 .el-button {
112 margin-top: 20px;
113 margin-right: 10px;
114 }
115
116 .opinion {
117 position: relative;
118 font-size: 14px;
119 }
120
121 .opinion_btn {
122 position: absolute;
123 right: 35px;
124 bottom: 80px;
125 }
126 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-11-15 15:41:43
5 -->
6 <template>
7 <div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中...">
8 <!-- 表单部分 -->
9 <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length >1" style="margin-top:-15px">
10 <el-tab-pane :label="item.qlr + (item.bdcqzh !== null ? '(' + item.bdcqzh + ')' : '')" :name="item.bsmBdcqz"
11 v-for="(item, index) in headTabBdcqz" :key="index">
12 </el-tab-pane>
13 </el-tabs>
14 <el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty>
15 <div v-else>
16 <div style="height:540px">
17 <el-form class="zs" :model="bdcqz" v-if="this.bdcqz.bdcqzlx==1" ref="ruleForm" label-width="100px">
18 <el-row>
19 <el-col :span="24">
20 <el-form-item label="权利人">
21 <el-input v-model="bdcqz.qlr"></el-input>
22 </el-form-item>
23 </el-col>
24 </el-row>
25 <el-row>
26 <el-col :span="24">
27 <el-form-item label="共有情况">
28 <el-select v-model="bdcqz.gyqk" class="width100" placeholder="请选择">
29 <el-option
30 v-for="item in gyqkList"
31 :key="item.dcode"
32 :label="item.dname"
33 :value="item.dcode">
34 </el-option>
35 </el-select>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row>
40 <el-col :span="24">
41 <el-form-item label="坐落">
42 <el-input v-model="bdcqz.zl"></el-input>
43 </el-form-item>
44 </el-col>
45 </el-row>
46 <el-row>
47 <el-col :span="24">
48 <el-form-item label="不动产单元号">
49 <el-input v-model="bdcqz.bdcdyh"></el-input>
50 </el-form-item>
51 </el-col>
52 </el-row>
53 <el-row>
54 <el-col :span="24">
55 <el-form-item label="权利类型">
56 <el-input v-model="bdcqz.qllx"></el-input>
57 </el-form-item>
58 </el-col>
59 </el-row>
60 <el-row>
61 <el-col :span="24">
62 <el-form-item label="权利性质 ">
63 <el-input v-model="bdcqz.qlxz"></el-input>
64 </el-form-item>
65 </el-col>
66 </el-row>
67 <el-row>
68 <el-col :span="24">
69 <el-form-item label="用途">
70 <el-input v-model="bdcqz.yt"></el-input>
71 </el-form-item>
72 </el-col>
73 </el-row>
74 <el-row>
75 <el-col :span="24">
76 <el-form-item label="面积">
77 <el-input v-model="bdcqz.mj"></el-input>
78 </el-form-item>
79 </el-col>
80 </el-row>
81 <el-row>
82 <el-col :span="24">
83 <el-form-item label="使用期限 ">
84 <el-input v-model="bdcqz.syqx"></el-input>
85 </el-form-item>
86 </el-col>
87 </el-row>
88 <el-row>
89 <el-col :span="24">
90 <el-form-item label="权利其他状况">
91 <el-input v-model="bdcqz.qlqtzk" :rows="4" type="textarea"></el-input>
92 </el-form-item>
93 </el-col>
94 </el-row>
95 <el-row>
96 <el-col :span="24">
97 <el-form-item label="附记">
98 <el-input v-model="bdcqz.fj" :rows="4" type="textarea"></el-input>
99 </el-form-item>
100 </el-col>
101 </el-row>
102 </el-form>
103 <el-form :model="bdcqz" class="zm" v-else ref="ruleForm" label-width="110px">
104 <el-row>
105 <el-col :span="24">
106 <el-form-item label="证明权利或事项">
107 <el-input v-model="bdcqz.zmqlhsx"></el-input>
108 </el-form-item>
109 </el-col>
110 </el-row>
111 <el-row>
112 <el-col :span="24">
113 <el-form-item label="权利人(申请人)">
114 <el-input v-model="bdcqz.qlr"></el-input>
115 </el-form-item>
116 </el-col>
117 </el-row>
118 <el-row>
119 <el-col :span="24">
120 <el-form-item label="义务人">
121 <el-input v-model="bdcqz.ywr"></el-input>
122 </el-form-item>
123 </el-col>
124 </el-row>
125 <el-row>
126 <el-col :span="24">
127 <el-form-item label="坐落">
128 <el-input v-model="bdcqz.zl"></el-input>
129 </el-form-item>
130 </el-col>
131 </el-row>
132 <el-row>
133 <el-col :span="24">
134 <el-form-item label="不动产单元号">
135 <el-input v-model="bdcqz.bdcdyh"></el-input>
136 </el-form-item>
137 </el-col>
138 </el-row>
139 <el-row>
140 <el-col :span="24">
141 <el-form-item label="其他状况">
142 <el-input v-model="bdcqz.qlqtzk" :rows="6" type="textarea"></el-input>
143 </el-form-item>
144 </el-col>
145 </el-row>
146 <el-row>
147 <el-col :span="24">
148 <el-form-item label="附记">
149 <el-input v-model="bdcqz.fj" :rows="6" type="textarea"></el-input>
150 </el-form-item>
151 </el-col>
152 </el-row>
153 </el-form>
154 </div>
155 <div style="text-align:center">
156 <el-button @click="$popupCacel">取消</el-button>
157 <el-button type="primary" @click="handleSubmit">保存</el-button>
158 </div>
159 </div>
160 </div>
161 </template>
162
163 <script>
164 import store from '@/store/index.js'
165 import { getSlsqBdcqzList, editBdcqz } from "@/api/bdcqz.js"
166 export default {
167 name: "zsxg",
168 props: {
169 formData: {
170 type: Object,
171 default: {}
172 }
173 },
174 data () {
175 return {
176 gyqkList: store.getters.dictData['A34'],
177 key: 0,
178 noData: false,
179 loading: false,
180 bdcqz: {},
181 //tab切换栏数组
182 headTabBdcqz: [],
183 //tab选择绑定值
184 activeName: '',
185 }
186 },
187 mounted () {
188 this.getHeadTabBdcqz()
189 },
190 methods: {
191 /**
192 * @description: 获取受理申请下全部不动产权证
193 * @author: renchao
194 */
195 getHeadTabBdcqz () {
196 this.loading = true
197 getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
198 if (res.code == 200) {
199 this.noData = true
200 if (res.result && res.result.length > 0) {
201 this.bdcqz = res.result[0]
202 this.headTabBdcqz = _.cloneDeep(res.result)
203 if (this.formData.bsmBdcqz) {
204 this.activeName = this.formData.bsmBdcqz
205 } else {
206 this.activeName = res.result[0].bsmBdcqz
207 }
208 }
209 }
210 this.loading = false
211 })
212 },
213 handleClick (tab) {
214 this.bdcqz = _.cloneDeep(this.headTabBdcqz[tab.index])
215 },
216 handleSubmit () {
217 editBdcqz(this.bdcqz).then(res => {
218 if (res.code == 200) {
219 this.$message.success('保存成功');
220 //刷新列表
221 this.$popupCacel()
222 } else {
223 this.$message.error(res.message)
224 }
225 })
226 }
227 }
228 }
229 </script>
230 <style scoped lang="scss">
231 @import "~@/styles/mixin.scss";
232 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-06 13:23:44
5 -->
6 <template>
7 <div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中..." style="text-align: center;">
8 <!-- 表单部分 -->
9 <div style="margin-top:-20px">
10 <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length >1">
11 <el-tab-pane :label="item.qlr + (item.bdcqzh !== null ? '(' + item.bdcqzh + ')' : '')" :name="item.bsmBdcqz"
12 v-for="(item, index) in headTabBdcqz" :key="index">
13 </el-tab-pane>
14 </el-tabs>
15 </div>
16 <el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty>
17 <div style="max-height:89vh;overflow-y:auto">
18 <div v-show="this.bdcqz.bdcqzlx==1">
19 <el-tabs v-model="activeTitle">
20 <el-tab-pane label="第一页" name="title1"></el-tab-pane>
21 <el-tab-pane label="第二页" name="title2"></el-tab-pane>
22 </el-tabs>
23 <div style="width:1169px;overflow-x: hidden;">
24 <canvas ref="zs1" width="1024" v-show="activeTitle=='title1'" height="739"></canvas>
25 <canvas ref="zs" width="1024" v-show="activeTitle=='title2'" height="739"></canvas>
26 </div>
27 </div>
28 <div style="width:1169px;overflow-x: hidden;" v-show="this.bdcqz.bdcqzlx==2">
29 <canvas ref="zm" width="1169" height="828"></canvas>
30 </div>
31 </div>
32 </div>
33 </template>
34
35 <script>
36 import QRCode from 'qrcode'
37 import { datas } from "../../javascript/zsyl.js";
38 import { getSlsqBdcqzList } from "@/api/bdcqz.js"
39 export default {
40 name: "zsyl",
41 props: {
42 formData: {
43 type: Object,
44 default: {}
45 }
46 },
47 data () {
48 return {
49 activeTitle: 'title1',
50 key: 0,
51 noData: false,
52 imgSrc1: require('@/image/bdcqz/bdcqzs1.jpg'),
53 imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
54 bdczmSrc: require('@/image/bdcqz/bdczm.jpg'),
55 loading: false,
56 //印刷序列号集合
57 ysxlh: [],
58 //列名称对象
59 columns: [],
60 //选择的不动产权证文件
61 bdcqz: '',
62 //证书打开类型 是否需要展示打印按钮
63 isToPrint: false,
64 //tab切换栏数组
65 headTabBdcqz: [],
66 //tab选择绑定值
67 activeName: '',
68 //证书图片预览
69 previewImage: '',
70 ruleForm: {
71 bsmBdcqz: '',
72 szmc: '不动产权证书',
73 szzh: '',
74 ysxlh: '',
75 },
76 }
77 },
78 mounted () {
79 this.columns = datas.columns();
80 if (this.formData.bdcqz) {
81 //从缮证进入
82 this.bdcqz = this.formData.bdcqz
83 } else {
84 //从按钮进入
85 this.getHeadTabBdcqz();
86 }
87
88 },
89 methods: {
90 /**
91 * @description: 获取证书内容
92 * @param {*} code
93 * @author: renchao
94 */
95 getRowValue (code) {
96 var value = this.bdcqz[code];
97 return value;
98 },
99 /**
100 * @description: 获取受理申请下全部不动产权证
101 * @author: renchao
102 */
103 getHeadTabBdcqz () {
104 this.loading = true
105 getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
106 if (res.code == 200) {
107 this.noData = true
108 if (res.result && res.result.length > 0) {
109 this.bdcqz = res.result[0]
110 this.headTabBdcqz = res.result
111 if (this.formData.bsmBdcqz) {
112 this.activeName = this.formData.bsmBdcqz
113 } else {
114 this.activeName = res.result[0].bsmBdcqz
115 }
116 if (this.bdcqz.bdcqzlx == 1) {
117 this.drawTextOnImage()
118 } else {
119 this.drawTextzmImage()
120 }
121 }
122 }
123 this.loading = false
124 })
125 },
126 /**
127 * @description: tab表头切换方法
128 * @param {*} e
129 * @author: renchao
130 */
131 handleClick (tab, event) {
132 this.bdcqz = this.headTabBdcqz[tab.index]
133 if (this.bdcqz.bdcqzlx == 1) {
134 this.drawTextOnImage()
135 } else {
136 this.drawTextzmImage()
137 }
138 },
139 /**
140 * @description: 不动产证书
141 * @author: renchao
142 */
143 drawTextOnImage1 () {
144 const canvas = this.$refs.zs1;
145 const context = canvas.getContext('2d');
146 const image = new Image();
147 image.onload = () => {
148 context.drawImage(image, 0, 0);
149 context.font = '18px 楷体';
150 context.fillStyle = '#000000';
151 let date = this.bdcqz.djsj.split(' ')[0].split('/');
152 let nian = date[0]
153 let yue = date[1]
154 let ri = date[2]
155 this.bdcqz.nian = nian
156 this.bdcqz.yue = yue
157 this.bdcqz.ri = ri
158 context.fillText(nian ? nian : '', 780, 499);
159 context.fillText(yue ? yue : '', 840, 499);
160 context.fillText(ri ? ri : '', 885, 499);
161 QRCode.toDataURL(this.bdcqz.bdcqzh, { margin: 0 })
162 .then(url => {
163 const qrImage = new Image();
164 this.bdcqz.qrImage = url; // 将二维码图片的 URL 存储到 bdcqz 对象的 qrImage 属性中
165 qrImage.onload = () => {
166 context.drawImage(qrImage, 670, 400, 100, 100);
167 };
168 qrImage.src = url;
169 })
170 .catch(error => {
171 console.error(error);
172 });
173 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 745, 633);
174 };
175 image.src = this.imgSrc1;
176 },
177 drawTextOnImage () {
178 this.drawTextOnImage1()
179 function getByteLen (val) {
180 var len = 0;
181 if (!val) return len;
182 for (var i = 0; i < val.length; i++) {
183 var length = val.charCodeAt(i);
184 if (length >= 0 && length <= 128) {
185 len += 1;
186 } else {
187 len += 2;
188 }
189 }
190 return len;
191 }
192 const canvas = this.$refs.zs;
193 const context = canvas.getContext('2d');
194 const image = new Image();
195 image.onload = () => {
196 context.drawImage(image, 0, 0);
197 context.font = '18px 楷体';
198 context.fillStyle = '#000000';
199 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
200 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
201 if (getByteLen(this.bdcqz.sxqc) > 14) {
202 const originalFont = context.font;
203 // 设置新的字体大小
204 context.font = '14px 楷体'; // 替换为你想要的字体和大小
205 // 绘制 bdcdyh
206 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 165, 56);
207 // 恢复原始字体设置
208 context.font = originalFont;
209 } else {
210 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 170, 56);
211 }
212 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
213 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97);
214 context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136);
215
216 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
217 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
218 context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223);
219
220 context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263);
221 context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303);
222 context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346);
223 // context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
224 let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : [];
225 if (getByteLen(this.bdcqz.mj) > 37) {
226 lines6.forEach((line, index) => {
227 const y = 378 + (index * 27); // 每行文本的垂直位置
228 let currentLine = '';
229 let arr = [];
230 for (let word of line) {
231 const testLine = currentLine + word;
232 const lineWidth = context.measureText(testLine).width;
233 if (lineWidth <= 330) {
234 currentLine = testLine;
235 } else {
236 arr.push(currentLine);
237 currentLine = word;
238 }
239 }
240 arr.push(currentLine);
241 arr.forEach((line, index) => {
242 context.fillText(line, 129, y + (index * 20)); // 调整行高
243 })
244 })
245 } else {
246 lines6.forEach((line, index) => {
247 const y = 386 + (index * 27); // 每行文本的垂直位置
248 let currentLine = '';
249 let arr = [];
250 for (let word of line) {
251 const testLine = currentLine + word;
252 const lineWidth = context.measureText(testLine).width;
253 if (lineWidth <= 330) {
254 currentLine = testLine;
255 } else {
256 arr.push(currentLine);
257 currentLine = word;
258 }
259 }
260 arr.push(currentLine);
261 arr.forEach((line, index) => {
262 context.fillText(line, 129, y + (index * 20)); // 调整行高
263 })
264 })
265 }
266 // 权利其他状态
267 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
268 for (let i = 0; i < lines.length; i++) {
269 let num = Math.ceil(getByteLen(lines[i]) / 38)
270 if (getByteLen(lines[i]) > 37) {
271 let currentLine = '';
272 let arr = [];
273 for (let word of lines[i]) {
274 const testLine = currentLine + word;
275 const lineWidth = context.measureText(testLine).width;
276 if (lineWidth <= 323) {
277 currentLine = testLine;
278 } else {
279 arr.push(currentLine);
280 currentLine = word;
281 }
282 }
283 arr.push(currentLine);
284 if (i > 0) {
285 arr.forEach((line, index) => {
286 context.fillText(line, 129, 495 + (29 * (i - 1)) + 4 * num + (index * 14)); // 调整行高
287 })
288 } else {
289 arr.forEach((line, index) => {
290 context.fillText(line, 129, 493 + (26 * (i - 1)) + (index * 14)); // 调整行高
291 })
292 }
293 } else {
294 if (i > 0) {
295 context.fillText(lines[i] ? lines[i] : '', 129, 500 + 4 * num + (29 * (i - 1)));
296 } else {
297 context.fillText(lines[i] ? lines[i] : '', 129, 505 + (27 * (i - 1)));
298 }
299 }
300 }
301
302 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
303 lines1.forEach((line, index) => {
304 const y = 100 + (index * 30); // 每行文本的垂直位置
305 let currentLine = '';
306 let arr = [];
307 for (let word of line) {
308 const testLine = currentLine + word;
309 const lineWidth = context.measureText(testLine).width;
310 if (lineWidth <= 395) {
311 currentLine = testLine;
312 } else {
313 arr.push(currentLine);
314 currentLine = word;
315 }
316 }
317 arr.push(currentLine);
318 arr.forEach((line, index) => {
319 context.fillText(line, 580, y + (index * 30)); // 调整行高
320 })
321 })
322 let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : [];
323 if (getByteLen(this.bdcqz.syqx) > 37) {
324 lines3.forEach((line, index) => {
325 const y = 423 + (index * 27); // 每行文本的垂直位置
326 let currentLine = '';
327 let arr = [];
328 for (let word of line) {
329 const testLine = currentLine + word;
330 const lineWidth = context.measureText(testLine).width;
331 if (lineWidth <= 330) {
332 currentLine = testLine;
333 } else {
334 arr.push(currentLine);
335 currentLine = word;
336 }
337 }
338 arr.push(currentLine);
339 arr.forEach((line, index) => {
340 context.fillText(line, 129, y + (index * 20)); // 调整行高
341 })
342 })
343 } else {
344 lines3.forEach((line, index) => {
345 const y = 430 + (index * 27); // 每行文本的垂直位置
346 let currentLine = '';
347 let arr = [];
348 for (let word of line) {
349 const testLine = currentLine + word;
350 const lineWidth = context.measureText(testLine).width;
351 if (lineWidth <= 315) {
352 currentLine = testLine;
353 } else {
354 arr.push(currentLine);
355 currentLine = word;
356 }
357 }
358 arr.push(currentLine);
359 arr.forEach((line, index) => {
360 context.fillText(line, 129, y + (index * 20)); // 调整行高
361 })
362 })
363 }
364
365 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
366 if (getByteLen(this.bdcqz.zl) > 37) {
367 lines2.forEach((line, index) => {
368 const y = 170 + (index * 20); // 每行文本的垂直位置
369 let currentLine = '';
370 let arr = [];
371 for (let word of line) {
372 const testLine = currentLine + word;
373 const lineWidth = context.measureText(testLine).width;
374 if (lineWidth <= 336) {
375 currentLine = testLine;
376 } else {
377 arr.push(currentLine);
378 currentLine = word;
379 }
380 }
381 arr.push(currentLine);
382 arr.forEach((line, index) => {
383 context.fillText(line, 129, y + (index * 20)); // 调整行高
384 })
385 })
386 } else {
387 lines2.forEach((line, index) => {
388 const y = 180 + (index * 20); // 每行文本的垂直位置
389 let currentLine = '';
390 let arr = [];
391 for (let word of line) {
392 const testLine = currentLine + word;
393 const lineWidth = context.measureText(testLine).width;
394 if (lineWidth <= 336) {
395 currentLine = testLine;
396 } else {
397 arr.push(currentLine);
398 currentLine = word;
399 }
400 }
401 arr.push(currentLine);
402 arr.forEach((line, index) => {
403 context.fillText(line, 129, y + (index * 20)); // 调整行高
404 })
405 })
406 }
407 }
408 image.src = this.imgSrc
409 },
410 /**
411 * @description: 不动产证明
412 * @author: renchao
413 */
414 drawTextzmImage () {
415 function getByteLen (val) {
416 var len = 0;
417 if (!val) return len;
418 for (var i = 0; i < val.length; i++) {
419 var length = val.charCodeAt(i);
420 if (length >= 0 && length <= 128) {
421 len += 1;
422 } else {
423 len += 2;
424 }
425 }
426 return len;
427 }
428 const canvas = this.$refs.zm;
429 const context = canvas.getContext('2d');
430 const image = new Image();
431 image.onload = () => {
432 context.drawImage(image, 0, 0);
433 context.font = '18px 楷体';
434 context.fillStyle = '#000000';
435 // ysxlh
436 context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712);
437 // djsj
438 if (this.bdcqz.djsj) {
439 let djsjList = this.bdcqz.djsj.split(' ')[0].split('/')
440 context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580);
441 context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580);
442 context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580);
443 }
444 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125);
445 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125);
446 if (getByteLen(this.bdcqz.sxqc) > 14) {
447 const originalFont = context.font;
448 // 设置新的字体大小
449 context.font = '14px 楷体'; // 替换为你想要的字体和大小
450 // 绘制 bdcdyh
451 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 725, 125);
452 // 恢复原始字体设置
453 context.font = originalFont;
454 } else {
455 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 755, 125);
456 }
457
458 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123);
459 context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180);
460 // context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
461 // 权利人
462 let qlrlines = this.bdcqz.qlr
463 if (getByteLen(this.bdcqz.qlr) > 32) {
464 let currentLine = '';
465 let arr = [];
466 for (let word of qlrlines) {
467 const testLine = currentLine + word;
468 const lineWidth = context.measureText(testLine).width;
469 if (lineWidth <= 295) {
470 currentLine = testLine;
471 } else {
472 arr.push(currentLine);
473 currentLine = word;
474 }
475 }
476 arr.push(currentLine); // 将最后一行添加到数组
477 // 绘制所有行
478 for (let i = 0; i < arr.length; i++) {
479 context.fillText(arr[i], 775, 218 + i * 20); // lineHeight 为行高
480 }
481 } else {
482 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
483 }
484
485 // 义务人
486 // context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
487 let ywrlines = this.bdcqz.ywr
488 if (getByteLen(this.bdcqz.ywr) > 32) {
489 let currentLine = '';
490 let arr = [];
491 for (let word of ywrlines) {
492 const testLine = currentLine + word;
493 const lineWidth = context.measureText(testLine).width;
494 if (lineWidth <= 295) {
495 currentLine = testLine;
496 } else {
497 arr.push(currentLine);
498 currentLine = word;
499 }
500 }
501 arr.push(currentLine); // 将最后一行添加到数组
502 // 绘制所有行
503 for (let i = 0; i < arr.length; i++) {
504 context.fillText(arr[i], 775, 268 + i * 20); // lineHeight 为行高
505 }
506 } else {
507 context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
508 }
509
510 // context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
511 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
512 if (getByteLen(this.bdcqz.zl) > 32) {
513 lines2.forEach((line, index) => {
514 const y = 315 + (index * 20); // 每行文本的垂直位置
515 let currentLine = '';
516 let arr = [];
517 for (let word of line) {
518 const testLine = currentLine + word;
519 const lineWidth = context.measureText(testLine).width;
520 if (lineWidth <= 295) {
521 currentLine = testLine;
522 } else {
523 arr.push(currentLine);
524 currentLine = word;
525 }
526 }
527 arr.push(currentLine);
528 arr.forEach((line, index) => {
529 context.fillText(line, 775, y + (index * 20)); // 调整行高
530 })
531 })
532 } else {
533 lines2.forEach((line, index) => {
534 const y = 325 + (index * 20); // 每行文本的垂直位置
535 let currentLine = '';
536 let arr = [];
537 for (let word of line) {
538 const testLine = currentLine + word;
539 const lineWidth = context.measureText(testLine).width;
540 if (lineWidth <= 295) {
541 currentLine = testLine;
542 } else {
543 arr.push(currentLine);
544 currentLine = word;
545 }
546 }
547 arr.push(currentLine);
548 arr.forEach((line, index) => {
549 context.fillText(line, 775, y + (index * 20)); // 调整行高
550 })
551 })
552 }
553
554 // bdcdyh
555 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
556 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
557 // context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
558 // 保存当前字体设置
559 const originalFont = context.font;
560 // 设置新的字体大小
561 context.font = '16px 楷体'; // 替换为你想要的字体和大小
562 // 绘制 bdcdyh
563 context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
564 // 恢复原始字体设置
565 context.font = originalFont;
566 // qlqtzk
567 function getByteLenBdcdy (val) {
568 var encoder = new TextEncoder('utf-8');
569 return encoder.encode(val).length;
570 }
571 const maxWidth = 295; // 最大宽度限制
572 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
573 let bdcdyNum = Math.ceil(getByteLenBdcdy(lines[0]) / 43)
574 // 单独处理不动产单元号
575 let linesBdcdy = lines[0] ? lines[0].split(' ') : [];
576 if (getByteLenBdcdy(lines[0]) > 43) {
577 linesBdcdy.forEach((line, index) => {
578 const y = 412 + (index * 17); // 每行文本的垂直位置
579 let currentLine = '';
580 let arr = [];
581 for (let word of line) {
582 const testLine = currentLine + word;
583 const lineWidth = context.measureText(testLine).width;
584 if (lineWidth <= maxWidth) {
585 currentLine = testLine;
586 } else {
587 arr.push(currentLine);
588 currentLine = word;
589 }
590 }
591 arr.push(currentLine);
592 arr.forEach((line, index) => {
593 context.fillText(line, 770, y + (index * 17)); // 调整行高
594 })
595 })
596 } else {
597 linesBdcdy.forEach((line, index) => {
598 const y = 418 + (index * 17); // 每行文本的垂直位置
599 let currentLine = '';
600 let arr = [];
601 for (let word of line) {
602 const testLine = currentLine + word;
603 const lineWidth = context.measureText(testLine).width;
604 if (lineWidth <= maxWidth) {
605 currentLine = testLine;
606 } else {
607 arr.push(currentLine);
608 currentLine = word;
609 }
610 }
611 arr.push(currentLine);
612 arr.forEach((line, index) => {
613 context.fillText(line, 770, y + (index * 17)); // 调整行高
614 })
615 })
616 }
617
618 for (let i = 1; i < lines.length; i++) {
619 let num = Math.ceil(getByteLen(lines[i]) / 32)
620 if (getByteLen(lines[i]) > 32) {
621 let currentLine = '';
622 let arr = [];
623 for (let word of lines[i]) {
624 const testLine = currentLine + word;
625 const lineWidth = context.measureText(testLine).width;
626 if (lineWidth <= maxWidth) {
627 currentLine = testLine;
628 } else {
629 arr.push(currentLine);
630 currentLine = word;
631 }
632 }
633 arr.push(currentLine);
634 if (i > 0) {
635 arr.forEach((line, index) => {
636 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
637 })
638 } else {
639 arr.forEach((line, index) => {
640 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + (index * 17)); // 调整行高
641 })
642 }
643 } else {
644 if (i > 0) {
645 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + 6 * num + (25 * (i - 1)));
646 } else {
647 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + (25 * (i - 1)));
648 }
649 }
650 }
651 // fj
652 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
653 for (let i = 0; i < lines1.length; i++) {
654 let num = Math.ceil(getByteLen(lines1[i]) / 37)
655 if (getByteLen(lines1[i]) > 37) {
656 let currentLine = '';
657 let arr = [];
658 for (let word of lines1[i]) {
659 const testLine = currentLine + word;
660 const lineWidth = context.measureText(testLine).width;
661 if (lineWidth <= maxWidth) {
662 currentLine = testLine;
663 } else {
664 arr.push(currentLine);
665 currentLine = word;
666 }
667 }
668 arr.push(currentLine);
669 if (i > 0) {
670 arr.forEach((line, index) => {
671 context.fillText(line, 770, 605 + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
672 })
673 } else {
674 arr.forEach((line, index) => {
675 context.fillText(line, 770, 605 + (24 * (i - 1)) + (index * 17)); // 调整行高
676 })
677 }
678 } else {
679 if (i > 0) {
680 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + 6 * num + (25 * (i - 1)));
681 } else {
682 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + (25 * (i - 1)));
683 }
684 }
685 }
686 }
687
688 image.src = this.bdczmSrc;
689 }
690 }
691 }
692 </script>
693 <style scoped lang="scss">
694 @import "~@/styles/mixin.scss";
695 /deep/.el-tabs__nav-wrap::after {
696 display: none;
697 }
698 /deep/.el-tabs__header {
699 margin: 0;
700 }
701 /deep/.el-form-item--small.el-form-item {
702 margin-bottom: 0;
703 }
704 /deep/.mask-content {
705 padding-top: 10px !important;
706 }
707 .imgClass {
708 display: inline-block;
709 height: auto;
710 max-width: 100%;
711 }
712
713 .middle_padding {
714 padding-bottom: 10px;
715 }
716
717 .zsyl-button {
718 text-align: center;
719 margin-top: 20px;
720
721 .operation_button {
722 width: 100px;
723 border: 1px solid rgb(0, 121, 254);
724 }
725
726 .dy-button {
727 color: white;
728 background-color: rgb(0, 121, 254);
729 }
730 }
731
732 .table-column {
733 border-spacing: 1px;
734 width: 100%;
735
736 tr td {
737 border: 1px solid #ccc;
738 text-align: center;
739 height: 40px;
740 padding: 4px;
741 font-size: 13px;
742 background: rgb(251, 249, 229);
743 }
744 }
745
746 .zsyl-title {
747 background: #fafbe5;
748 text-align: center;
749 padding: 5px 0px;
750 font-size: 20px;
751 }
752
753 .no-data {
754 font-size: 18px;
755 display: flex;
756 text-align: center;
757 justify-content: center;
758 }
759 </style>
...@@ -18,7 +18,6 @@ export default { ...@@ -18,7 +18,6 @@ export default {
18 */ 18 */
19 moreQueryClick () { 19 moreQueryClick () {
20 this.isSearch = true 20 this.isSearch = true
21
22 }, 21 },
23 /** 22 /**
24 * @description: 查询事件 23 * @description: 查询事件
...@@ -80,6 +79,7 @@ export default { ...@@ -80,6 +79,7 @@ export default {
80 this.queryForm[item.zdm] = '' 79 this.queryForm[item.zdm] = ''
81 } 80 }
82 this.searchForm[item.zdm] = '' 81 this.searchForm[item.zdm] = ''
82 this.queryClick()
83 }, 83 },
84 /** 84 /**
85 * @description: iterationData 85 * @description: iterationData
......
...@@ -10,17 +10,17 @@ ...@@ -10,17 +10,17 @@
10 <el-row> 10 <el-row>
11 <!-- <el-col :span="8"> 11 <!-- <el-col :span="8">
12 <el-form-item label="申请业务名称" prop="sqywmc"> 12 <el-form-item label="申请业务名称" prop="sqywmc">
13 <el-input v-model="ruleForm.sqywmc" placeholder="请输入申请业务名称"></el-input> 13 <el-input v-model.trim="ruleForm.sqywmc" clearable placeholder="请输入申请业务名称"></el-input>
14 </el-form-item> 14 </el-form-item>
15 </el-col> --> 15 </el-col> -->
16 <el-col :span="8"> 16 <el-col :span="8">
17 <el-form-item label="权利人" prop="qlrmc"> 17 <el-form-item label="权利人" prop="qlrmc">
18 <el-input v-model="ruleForm.qlrmc" placeholder="请输入权利人"></el-input> 18 <el-input v-model.trim="ruleForm.qlrmc" clearable placeholder="请输入权利人"></el-input>
19 </el-form-item> 19 </el-form-item>
20 </el-col> 20 </el-col>
21 <el-col :span="8"> 21 <el-col :span="8">
22 <el-form-item label="义务人" prop="ywrmc"> 22 <el-form-item label="义务人" prop="ywrmc">
23 <el-input v-model="ruleForm.ywrmc" placeholder="请输入义务人"></el-input> 23 <el-input v-model.trim="ruleForm.ywrmc" clearable placeholder="请输入义务人"></el-input>
24 </el-form-item> 24 </el-form-item>
25 </el-col> 25 </el-col>
26 <el-col :span="8" class="btnColRight"> 26 <el-col :span="8" class="btnColRight">
......
...@@ -201,7 +201,7 @@ ...@@ -201,7 +201,7 @@
201 tableData: { 201 tableData: {
202 total: 0, 202 total: 0,
203 columns: datas.columns(), 203 columns: datas.columns(),
204 data: [], 204 data: []
205 }, 205 },
206 jumpid: "" 206 jumpid: ""
207 } 207 }
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-10-27 17:19:42 4 * @LastEditTime: 2023-10-30 09:01:45
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -193,24 +193,12 @@ ...@@ -193,24 +193,12 @@
193 data () { 193 data () {
194 return { 194 return {
195 queryForm: { 195 queryForm: {
196 ywly: "",
197 qllx: "",
198 djlx: "",
199 ywh: "",
200 bdcdyh: "",
201 sqrmc: "",
202 sqrzjhm: "",
203 zl: ""
204 }, 196 },
205 searchForm: { 197 searchForm: {
206 ywlymc: "", 198 ywlymc: "",
207 qllxmc: "", 199 qllxmc: "",
208 djlxmc: "", 200 djlxmc: "",
209 ywh: "", 201 ywh: "",
210 bdcdyh: "",
211 sqrmc: "",
212 sqrzjhm: "",
213 zl: ""
214 }, 202 },
215 tableData: { 203 tableData: {
216 total: 0, 204 total: 0,
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-02-06 16:56:48 4 * @LastEditTime: 2024-02-02 16:35:20
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
81 </div> 81 </div>
82 <div class="submit_button"> 82 <div class="submit_button">
83 <el-button @click="$popupCacel">取消</el-button> 83 <el-button @click="$popupCacel">取消</el-button>
84 <el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button> 84 <el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
85 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button> 85 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
86 </div> 86 </div>
87 </div> 87 </div>
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
132 </div> 132 </div>
133 <div class="submit_button"> 133 <div class="submit_button">
134 <el-button @click="$popupCacel">取消</el-button> 134 <el-button @click="$popupCacel">取消</el-button>
135 <el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button> 135 <el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
136 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button> 136 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
137 </div> 137 </div>
138 </div> 138 </div>
...@@ -295,35 +295,6 @@ ...@@ -295,35 +295,6 @@
295 * @description: submitForm 295 * @description: submitForm
296 * @author: renchao 296 * @author: renchao
297 */ 297 */
298 handleAdd () {
299 let that = this
300 this.loading = true
301 store.dispatch('user/reMenuRefresh', false)
302 againAddSldy({
303 bsmSqyw: that.sqywInfo.bsmSqyw,
304 bdcdysz: that.bdcdysz,
305 bsmSlsq: that.sqywInfo.bsmSlsq,
306 }).then(res => {
307 that.loading = false
308 if (res.code == 200) {
309 if (this.sqywInfo.sqywdylx != "1") {
310 that.bdcdysz = []
311 that.$refs.table.clearSelection()
312 }
313 store.dispatch('user/reMenuRefresh', true)
314 that.queryClick()
315 that.$message({
316 showClose: true,
317 message: '添加成功',
318 type: 'success'
319 })
320 } else {
321 that.$message.error(res.message);
322 }
323 }).catch(() => {
324 that.loading = false
325 })
326 },
327 submitForm () { 298 submitForm () {
328 let that = this 299 let that = this
329 if (this.bdcdysz.length == 0) { 300 if (this.bdcdysz.length == 0) {
...@@ -331,60 +302,88 @@ ...@@ -331,60 +302,88 @@
331 return; 302 return;
332 } 303 }
333 this.loading = true 304 this.loading = true
334 if (!that.isJump) { 305 if (this.sqywInfo.isworkFrame) {
335 startBusinessFlow({ 306 store.dispatch('user/reMenuRefresh', false)
307 againAddSldy({
336 bsmSqyw: that.sqywInfo.bsmSqyw, 308 bsmSqyw: that.sqywInfo.bsmSqyw,
337 //sjlx: 'zrz',
338 sjlx: that.activeName,
339 bdcdysz: that.bdcdysz, 309 bdcdysz: that.bdcdysz,
340 }).then((res) => { 310 bsmSlsq: that.sqywInfo.bsmSlsq,
311 }).then(res => {
341 that.loading = false 312 that.loading = false
342 if (res.code == 200) { 313 if (res.code == 200) {
314 if (this.sqywInfo.sqywdylx != "1") {
315 that.bdcdysz = []
316 that.$refs.table.clearSelection()
317 }
318 store.dispatch('user/reMenuRefresh', true)
319 that.queryClick()
343 that.$message({ 320 that.$message({
344 showClose: true, 321 showClose: true,
345 message: '发起申请成功', 322 message: '添加成功',
346 type: 'success' 323 type: 'success'
347 }) 324 })
348 if (!that.isJump) {
349 that.jump(res.result, that.sqywInfo.djywbm);
350 } else {
351 store.dispatch('user/refreshPage', true);
352 }
353 that.$popupCacel()
354 } else { 325 } else {
355 if (res.result && res.result.length > 0) { 326 that.$message.error(res.message);
356 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
357 } else {
358 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
359 }
360 } 327 }
361 }).catch(() => { 328 }).catch(() => {
362 that.loading = false 329 that.loading = false
363 }) 330 })
364 } else { 331 } else {
365 choiceBdcdy({ 332 if (!that.isJump) {
366 bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq, 333 startBusinessFlow({
367 bdcdysz: that.bdcdysz 334 bsmSqyw: that.sqywInfo.bsmSqyw,
368 }).then(res => { 335 //sjlx: 'zrz',
369 that.loading = false 336 sjlx: that.activeName,
370 if (res.code == 200) { 337 bdcdysz: that.bdcdysz,
371 that.$message({ 338 }).then((res) => {
372 showClose: true, 339 that.loading = false
373 message: '发起申请成功', 340 if (res.code == 200) {
374 type: 'success' 341 that.$message({
375 }) 342 showClose: true,
376 store.dispatch('user/refreshPage', true); 343 message: '发起申请成功',
377 that.$popupCacel() 344 type: 'success'
378 } else { 345 })
379 if (res.result && res.result.length > 0) { 346 if (!that.isJump) {
380 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true) 347 that.jump(res.result, that.sqywInfo.djywbm);
348 } else {
349 store.dispatch('user/refreshPage', true);
350 }
351 that.$popupCacel()
381 } else { 352 } else {
382 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true) 353 if (res.result && res.result.length > 0) {
354 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
355 } else {
356 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
357 }
383 } 358 }
384 } 359 }).catch(() => {
385 }).catch(() => { 360 that.loading = false
386 that.loading = false 361 })
387 }) 362 } else {
363 choiceBdcdy({
364 bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq,
365 bdcdysz: that.bdcdysz
366 }).then(res => {
367 that.loading = false
368 if (res.code == 200) {
369 that.$message({
370 showClose: true,
371 message: '发起申请成功',
372 type: 'success'
373 })
374 store.dispatch('user/refreshPage', true);
375 that.$popupCacel()
376 } else {
377 if (res.result && res.result.length > 0) {
378 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
379 } else {
380 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
381 }
382 }
383 }).catch(() => {
384 that.loading = false
385 })
386 }
388 } 387 }
389 }, 388 },
390 /** 389 /**
......
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
119 </div> 119 </div>
120 <div class="submit_button"> 120 <div class="submit_button">
121 <el-button @click="$popupCacel">取消</el-button> 121 <el-button @click="$popupCacel">取消</el-button>
122 <el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button> 122 <el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
123 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button> 123 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
124 </div> 124 </div>
125 </div> 125 </div>
...@@ -264,35 +264,6 @@ ...@@ -264,35 +264,6 @@
264 * @description: submitForm 264 * @description: submitForm
265 * @author: renchao 265 * @author: renchao
266 */ 266 */
267 handleAdd () {
268 let that = this
269 this.loading = true
270 store.dispatch('user/reMenuRefresh', false)
271 againAddSldy({
272 bsmSqyw: that.sqywInfo.bsmSqyw,
273 bdcdysz: that.bdcdysz,
274 bsmSlsq: that.sqywInfo.bsmSlsq,
275 }).then(res => {
276 that.loading = false
277 if (res.code == 200) {
278 if (this.sqywInfo.sqywdylx != "1") {
279 that.bdcdysz = []
280 that.$refs.table.clearSelection()
281 }
282 store.dispatch('user/reMenuRefresh', true)
283 that.queryClick()
284 that.$message({
285 showClose: true,
286 message: '添加成功',
287 type: 'success'
288 })
289 } else {
290 that.$message.error(res.message);
291 }
292 }).catch(() => {
293 that.loading = false
294 })
295 },
296 submitForm () { 267 submitForm () {
297 let that = this 268 let that = this
298 if (this.bdcdysz.length == 0) { 269 if (this.bdcdysz.length == 0) {
...@@ -300,60 +271,88 @@ ...@@ -300,60 +271,88 @@
300 return; 271 return;
301 } 272 }
302 this.loading = true 273 this.loading = true
303 if (!that.isJump) { 274 if (this.sqywInfo.isworkFrame) {
304 startBusinessFlow({ 275 store.dispatch('user/reMenuRefresh', false)
276 againAddSldy({
305 bsmSqyw: that.sqywInfo.bsmSqyw, 277 bsmSqyw: that.sqywInfo.bsmSqyw,
306 //sjlx: 'zrz',
307 sjlx: that.activeName,
308 bdcdysz: that.bdcdysz, 278 bdcdysz: that.bdcdysz,
309 }).then((res) => { 279 bsmSlsq: that.sqywInfo.bsmSlsq,
280 }).then(res => {
310 that.loading = false 281 that.loading = false
311 if (res.code == 200) { 282 if (res.code == 200) {
283 if (this.sqywInfo.sqywdylx != "1") {
284 that.bdcdysz = []
285 that.$refs.table.clearSelection()
286 }
287 store.dispatch('user/reMenuRefresh', true)
288 that.queryClick()
312 that.$message({ 289 that.$message({
313 showClose: true, 290 showClose: true,
314 message: '发起申请成功', 291 message: '添加成功',
315 type: 'success' 292 type: 'success'
316 }) 293 })
317 if (!that.isJump) {
318 that.jump(res.result, that.sqywInfo.djywbm);
319 } else {
320 store.dispatch('user/refreshPage', true);
321 }
322 that.$popupCacel()
323 } else { 294 } else {
324 if (res.result && res.result.length > 0) { 295 that.$message.error(res.message);
325 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
326 } else {
327 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
328 }
329 } 296 }
330 }).catch(() => { 297 }).catch(() => {
331 that.loading = false 298 that.loading = false
332 }) 299 })
333 } else { 300 } else {
334 choiceBdcdy({ 301 if (!that.isJump) {
335 bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq, 302 startBusinessFlow({
336 bdcdysz: that.bdcdysz 303 bsmSqyw: that.sqywInfo.bsmSqyw,
337 }).then(res => { 304 //sjlx: 'zrz',
338 that.loading = false 305 sjlx: that.activeName,
339 if (res.code == 200) { 306 bdcdysz: that.bdcdysz,
340 that.$message({ 307 }).then((res) => {
341 showClose: true, 308 that.loading = false
342 message: '发起申请成功', 309 if (res.code == 200) {
343 type: 'success' 310 that.$message({
344 }) 311 showClose: true,
345 store.dispatch('user/refreshPage', true); 312 message: '发起申请成功',
346 that.$popupCacel() 313 type: 'success'
347 } else { 314 })
348 if (res.result && res.result.length > 0) { 315 if (!that.isJump) {
349 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true) 316 that.jump(res.result, that.sqywInfo.djywbm);
317 } else {
318 store.dispatch('user/refreshPage', true);
319 }
320 that.$popupCacel()
350 } else { 321 } else {
351 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true) 322 if (res.result && res.result.length > 0) {
323 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
324 } else {
325 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
326 }
352 } 327 }
353 } 328 }).catch(() => {
354 }).catch(() => { 329 that.loading = false
355 that.loading = false 330 })
356 }) 331 } else {
332 choiceBdcdy({
333 bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq,
334 bdcdysz: that.bdcdysz
335 }).then(res => {
336 that.loading = false
337 if (res.code == 200) {
338 that.$message({
339 showClose: true,
340 message: '发起申请成功',
341 type: 'success'
342 })
343 store.dispatch('user/refreshPage', true);
344 that.$popupCacel()
345 } else {
346 if (res.result && res.result.length > 0) {
347 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
348 } else {
349 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
350 }
351 }
352 }).catch(() => {
353 that.loading = false
354 })
355 }
357 } 356 }
358 }, 357 },
359 /** 358 /**
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-02-06 16:58:53 4 * @LastEditTime: 2024-02-02 16:35:49
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
52 </div> 52 </div>
53 <div class="submit_button"> 53 <div class="submit_button">
54 <el-button @click="$popupCacel">取消</el-button> 54 <el-button @click="$popupCacel">取消</el-button>
55 <el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button> 55 <el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
56 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button> 56 <el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
57 </div> 57 </div>
58 </div> 58 </div>
...@@ -132,35 +132,6 @@ ...@@ -132,35 +132,6 @@
132 * @description: submitForm 132 * @description: submitForm
133 * @author: renchao 133 * @author: renchao
134 */ 134 */
135 handleAdd () {
136 let that = this
137 this.loading = true
138 store.dispatch('user/reMenuRefresh', false)
139 againAddSldy({
140 bsmSqyw: that.sqywInfo.bsmSqyw,
141 bdcdysz: that.bdcdysz,
142 bsmSlsq: that.sqywInfo.bsmSlsq,
143 }).then(res => {
144 that.loading = false
145 if (res.code == 200) {
146 if (this.sqywInfo.sqywdylx != "1") {
147 that.bdcdysz = []
148 that.$refs.table.clearSelection()
149 }
150 store.dispatch('user/reMenuRefresh', true)
151 that.queryClick()
152 that.$message({
153 showClose: true,
154 message: '添加成功',
155 type: 'success'
156 })
157 } else {
158 that.$message.error(res.message);
159 }
160 }).catch(() => {
161 that.loading = false
162 })
163 },
164 submitForm () { 135 submitForm () {
165 let that = this 136 let that = this
166 if (this.bdcdysz.length == 0) { 137 if (this.bdcdysz.length == 0) {
...@@ -168,33 +139,61 @@ ...@@ -168,33 +139,61 @@
168 return; 139 return;
169 } 140 }
170 this.loading = true 141 this.loading = true
171 startBusinessFlow({ 142 if (this.sqywInfo.isworkFrame) {
172 bsmSqyw: that.sqywInfo.bsmSqyw, 143 store.dispatch('user/reMenuRefresh', false)
173 bdcdysz: that.bdcdysz, 144 againAddSldy({
174 }).then((res) => { 145 bsmSqyw: that.sqywInfo.bsmSqyw,
175 that.loading = false 146 bdcdysz: that.bdcdysz,
176 if (res.code == 200) { 147 bsmSlsq: that.sqywInfo.bsmSlsq,
177 that.$message({ 148 }).then(res => {
178 showClose: true, 149 that.loading = false
179 message: '发起申请成功', 150 if (res.code == 200) {
180 type: 'success' 151 if (this.sqywInfo.sqywdylx != "1") {
181 }) 152 that.bdcdysz = []
182 if (!that.isJump) { 153 that.$refs.table.clearSelection()
183 that.jump(res.result, that.djywbm) 154 }
155 store.dispatch('user/reMenuRefresh', true)
156 that.queryClick()
157 that.$message({
158 showClose: true,
159 message: '添加成功',
160 type: 'success'
161 })
184 } else { 162 } else {
185 store.dispatch('user/refreshPage', true); 163 that.$message.error(res.message);
186 } 164 }
187 that.$popupCacel() 165 }).catch(() => {
188 } else { 166 that.loading = false
189 if (res.result && res.result.length > 0) { 167 })
190 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true) 168 } else {
169 startBusinessFlow({
170 bsmSqyw: that.sqywInfo.bsmSqyw,
171 bdcdysz: that.bdcdysz,
172 }).then((res) => {
173 that.loading = false
174 if (res.code == 200) {
175 that.$message({
176 showClose: true,
177 message: '发起申请成功',
178 type: 'success'
179 })
180 if (!that.isJump) {
181 that.jump(res.result, that.djywbm)
182 } else {
183 store.dispatch('user/refreshPage', true);
184 }
185 that.$popupCacel()
191 } else { 186 } else {
192 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true) 187 if (res.result && res.result.length > 0) {
188 ywPopupDialog("申请错误明细", "components/ywdialog", { result: res.result }, '36%', true)
189 } else {
190 ywPopupDialog("申请错误明细", "components/ywdialog", { message: res.message }, '36%', true)
191 }
193 } 192 }
194 } 193 }).catch(() => {
195 }).catch(() => { 194 that.loading = false
196 that.loading = false 195 })
197 }) 196 }
198 }, 197 },
199 /** 198 /**
200 * @description: handleSelectionChange 199 * @description: handleSelectionChange
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
71 import { ywPopupDialog } from "@/utils/popup.js"; 71 import { ywPopupDialog } from "@/utils/popup.js";
72 import { datas, sendThis } from "../javascript/selectH.js"; 72 import { datas, sendThis } from "../javascript/selectH.js";
73 import { defaultParameters } from "../javascript/publicDefaultPar.js"; 73 import { defaultParameters } from "../javascript/publicDefaultPar.js";
74 import { selectHQjdc } from "@/api/ywsq.js"; 74 // import { selectHQjdc } from "@/api/ywsq.js";
75 import { startBusinessFlow, againAddSldy } from "@/api/workFlow.js"; 75 import { startBusinessFlow, againAddSldy } from "@/api/workFlow.js";
76 export default { 76 export default {
77 mixins: [ywsqTable, jump], 77 mixins: [ywsqTable, jump],
...@@ -123,16 +123,16 @@ ...@@ -123,16 +123,16 @@
123 * @author: renchao 123 * @author: renchao
124 */ 124 */
125 queryClick () { 125 queryClick () {
126 this.$startLoading(); 126 // this.$startLoading();
127 this.queryForm.sqywbm = this.sqywInfo.djywbm; 127 // this.queryForm.sqywbm = this.sqywInfo.djywbm;
128 selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => { 128 // selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
129 this.$endLoading(); 129 // this.$endLoading();
130 if (res.code === 200) { 130 // if (res.code === 200) {
131 let { total, records } = res.result; 131 // let { total, records } = res.result;
132 this.tableData.total = total; 132 // this.tableData.total = total;
133 this.tableData.data = records; 133 // this.tableData.data = records;
134 } 134 // }
135 }); 135 // });
136 }, 136 },
137 /** 137 /**
138 * @description: submitForm 138 * @description: submitForm
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-11-16 14:12:03 4 * @LastEditTime: 2023-11-16 16:48:57
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2024-02-02 16:37:04 4 * @LastEditTime: 2024-02-02 16:39:35
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
58 import { ywPopupDialog } from "@/utils/popup.js"; 58 import { ywPopupDialog } from "@/utils/popup.js";
59 import { datas, sendThis } from "../javascript/selectH.js"; 59 import { datas, sendThis } from "../javascript/selectH.js";
60 import { defaultParameters } from "../javascript/publicDefaultPar.js"; 60 import { defaultParameters } from "../javascript/publicDefaultPar.js";
61 import { selectHQjdc } from "@/api/ywsq.js"; 61 // import { selectHQjdc } from "@/api/ywsq.js";
62 import { startTogetherFlow, againAddSldy } from "@/api/workFlow.js"; 62 import { startTogetherFlow, againAddSldy } from "@/api/workFlow.js";
63 export default { 63 export default {
64 mixins: [ywsqTable, jump], 64 mixins: [ywsqTable, jump],
...@@ -89,14 +89,14 @@ ...@@ -89,14 +89,14 @@
89 queryClick () { 89 queryClick () {
90 this.$startLoading(); 90 this.$startLoading();
91 this.queryForm.sqywbm = this.sqywInfo.djywbm; 91 this.queryForm.sqywbm = this.sqywInfo.djywbm;
92 selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => { 92 // selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
93 this.$endLoading(); 93 // this.$endLoading();
94 if (res.code === 200) { 94 // if (res.code === 200) {
95 let { total, records } = res.result; 95 // let { total, records } = res.result;
96 this.tableData.total = total; 96 // this.tableData.total = total;
97 this.tableData.data = records; 97 // this.tableData.data = records;
98 } 98 // }
99 }); 99 // });
100 }, 100 },
101 /** 101 /**
102 * @description: submitForm 102 * @description: submitForm
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
10 <el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="70px"> 10 <el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="70px">
11 <el-row> 11 <el-row>
12 <el-col :span="4"> 12 <el-col :span="4">
13 <el-form-item label="权利类型"> 13 <el-form-item label="权利类型" prop="qllx">
14 <el-select v-model="queryForm.qllx" filterable class="width100" clearable placeholder="请选择权利类型"> 14 <el-select v-model="queryForm.qllx" filterable class="width100" clearable placeholder="请选择权利类型">
15 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 15 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
16 </el-option> 16 </el-option>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
18 </el-form-item> 18 </el-form-item>
19 </el-col> 19 </el-col>
20 <el-col :span="4"> 20 <el-col :span="4">
21 <el-form-item label="登记类型"> 21 <el-form-item label="登记类型" prop="djlx">
22 <el-select v-model="queryForm.djlx" filterable class="width100" clearable placeholder="请选择登记类型"> 22 <el-select v-model="queryForm.djlx" filterable class="width100" clearable placeholder="请选择登记类型">
23 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 23 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
24 </el-option> 24 </el-option>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
26 </el-form-item> 26 </el-form-item>
27 </el-col> 27 </el-col>
28 <el-col :span="4"> 28 <el-col :span="4">
29 <el-form-item label="权属状态"> 29 <el-form-item label="权属状态" prop="qszt">
30 <el-select v-model="queryForm.qszt" filterable class="width100" clearable placeholder="请选择登记类型"> 30 <el-select v-model="queryForm.qszt" filterable class="width100" clearable placeholder="请选择登记类型">
31 <el-option 31 <el-option
32 v-for="item in qsztlist" 32 v-for="item in qsztlist"
...@@ -37,46 +37,47 @@ ...@@ -37,46 +37,47 @@
37 </el-form-item> 37 </el-form-item>
38 </el-col> 38 </el-col>
39 <el-col :span="6"> 39 <el-col :span="6">
40 <el-form-item label="不动产单元号" label-width="105px"> 40 <el-form-item label="不动产单元号" prop="bdcdyh" label-width="105px">
41 <el-input placeholder="请输入不动产单元号" maxlength="28" v-model="queryForm.bdcdyh" clearable class="width100"> 41 <el-input placeholder="请输入不动产单元号" maxlength="28" v-model.trim="queryForm.bdcdyh" clearable class="width100">
42 </el-input> 42 </el-input>
43 </el-form-item> 43 </el-form-item>
44 </el-col> 44 </el-col>
45 <el-col :span="6"> 45 <el-col :span="6">
46 <el-form-item label="不动产权证号" label-width="105px"> 46 <el-form-item label="不动产权证号" prop="bdcqzh" label-width="105px">
47 <el-input placeholder="请输入不动产权证号" v-model="queryForm.bdcqzh" clearable class="width100"> 47 <el-input placeholder="请输入不动产权证号" v-model.trim="queryForm.bdcqzh" clearable class="width100">
48 </el-input> 48 </el-input>
49 </el-form-item> 49 </el-form-item>
50 </el-col> 50 </el-col>
51 </el-row> 51 </el-row>
52 <el-row> 52 <el-row>
53 <el-col :span="5"> 53 <el-col :span="5">
54 <el-form-item label="业务号:"> 54 <el-form-item label="业务号:" prop="ywh">
55 <el-input placeholder="请输入业务号" v-model="queryForm.ywh" clearable class="width100"> 55 <el-input placeholder="请输入业务号" v-model.trim="queryForm.ywh" clearable class="width100">
56 </el-input> 56 </el-input>
57 </el-form-item> 57 </el-form-item>
58 </el-col> 58 </el-col>
59 <el-col :span="5"> 59 <el-col :span="5">
60 <el-form-item label="坐落:" label-width="105px"> 60 <el-form-item label="坐落:" prop="zl" label-width="105px">
61 <el-input v-model="queryForm.zl" placeholder="坐落" clearable class="width100"> 61 <el-input v-model.trim="queryForm.zl" placeholder="坐落" clearable class="width100">
62 </el-input> 62 </el-input>
63 </el-form-item> 63 </el-form-item>
64 </el-col> 64 </el-col>
65 <el-col :span="5"> 65 <el-col :span="5">
66 <el-form-item label="权利人:" label-width="105px"> 66 <el-form-item label="权利人:" prop="qlrmc" label-width="105px">
67 <el-input v-model="queryForm.qlrmc" placeholder="权利人" clearable class="width100"> 67 <el-input v-model.trim="queryForm.qlrmc" placeholder="权利人" clearable class="width100">
68 </el-input> 68 </el-input>
69 </el-form-item> 69 </el-form-item>
70 </el-col> 70 </el-col>
71 <el-col :span="5"> 71 <el-col :span="5">
72 <el-form-item label="义务人:"> 72 <el-form-item label="义务人:" prop="ywrmc">
73 <el-input v-model="queryForm.ywrmc" placeholder="义务人" clearable class="width100"> 73 <el-input v-model.trim="queryForm.ywrmc" placeholder="义务人" clearable class="width100">
74 </el-input> 74 </el-input>
75 </el-form-item> 75 </el-form-item>
76 </el-col> 76 </el-col>
77 77
78 <el-col :span="4" class="btnColRight"> 78 <el-col :span="4" class="btnColRight">
79 <el-form-item> 79 <el-form-item>
80 <el-button @click="handleReset">重置</el-button>
80 <el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button> 81 <el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button>
81 </el-form-item> 82 </el-form-item>
82 </el-col> 83 </el-col>
...@@ -161,6 +162,9 @@ ...@@ -161,6 +162,9 @@
161 } 162 }
162 }); 163 });
163 }, 164 },
165 handleReset () {
166 this.$refs.queryForm.resetFields();
167 },
164 /** 168 /**
165 * @description: handleSort 169 * @description: handleSort
166 * @param {*} name 170 * @param {*} name
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-10-17 09:29:06 4 * @LastEditTime: 2023-10-31 14:44:39
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
10 <el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="100px"> 10 <el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="100px">
11 <el-row> 11 <el-row>
12 <el-col :span="5"> 12 <el-col :span="5">
13 <el-form-item label="业务来源"> 13 <el-form-item label="业务来源" prop="ywly">
14 <el-select v-model="queryForm.ywly" class="width100" filterable clearable placeholder="请选择业务来源"> 14 <el-select v-model="queryForm.ywly" class="width100" filterable clearable placeholder="请选择业务来源">
15 <el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 15 <el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode">
16 </el-option> 16 </el-option>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
18 </el-form-item> 18 </el-form-item>
19 </el-col> 19 </el-col>
20 <el-col :span="5"> 20 <el-col :span="5">
21 <el-form-item label="权利类型"> 21 <el-form-item label="权利类型" prop="qllx">
22 <el-select v-model="queryForm.qllx" class="width100" filterable clearable placeholder="请选择权利类型"> 22 <el-select v-model="queryForm.qllx" class="width100" filterable clearable placeholder="请选择权利类型">
23 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 23 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
24 </el-option> 24 </el-option>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
26 </el-form-item> 26 </el-form-item>
27 </el-col> 27 </el-col>
28 <el-col :span="5"> 28 <el-col :span="5">
29 <el-form-item label="登记类型"> 29 <el-form-item label="登记类型" prop="djlx">
30 <el-select v-model="queryForm.djlx" class="width100" filterable clearable placeholder="请选择登记类型"> 30 <el-select v-model="queryForm.djlx" class="width100" filterable clearable placeholder="请选择登记类型">
31 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 31 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
32 </el-option> 32 </el-option>
...@@ -34,14 +34,15 @@ ...@@ -34,14 +34,15 @@
34 </el-form-item> 34 </el-form-item>
35 </el-col> 35 </el-col>
36 <el-col :span="5"> 36 <el-col :span="5">
37 <el-form-item label="业务号"> 37 <el-form-item label="业务号" prop="ywh">
38 <el-input placeholder="请输入业务号" v-model="queryForm.ywh" clearable class="width200px"> 38 <el-input placeholder="请输入业务号" v-model.trim="queryForm.ywh" clearable class="width200px">
39 </el-input> 39 </el-input>
40 </el-form-item> 40 </el-form-item>
41 </el-col> 41 </el-col>
42 42
43 <el-col :span="4" class="btnColRight"> 43 <el-col :span="4" class="btnColRight">
44 <el-form-item> 44 <el-form-item>
45 <el-button @click="handleReset">重置</el-button>
45 <el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button> 46 <el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button>
46 <!-- <el-button @click="moreQueryClick">高级查询</el-button> --> 47 <!-- <el-button @click="moreQueryClick">高级查询</el-button> -->
47 </el-form-item> 48 </el-form-item>
...@@ -49,25 +50,25 @@ ...@@ -49,25 +50,25 @@
49 </el-row> 50 </el-row>
50 <el-row> 51 <el-row>
51 <el-col :span="5"> 52 <el-col :span="5">
52 <el-form-item label="不动产单元号"> 53 <el-form-item label="不动产单元号" prop="bdcdyh">
53 <el-input placeholder="请输入不动产单元号" v-model="queryForm.bdcdyh" clearable class="width100"> 54 <el-input placeholder="请输入不动产单元号" v-model.trim="queryForm.bdcdyh" clearable class="width100">
54 </el-input> 55 </el-input>
55 </el-form-item> 56 </el-form-item>
56 </el-col> 57 </el-col>
57 <el-col :span="5"> 58 <el-col :span="5">
58 <el-form-item label="申请人"> 59 <el-form-item label="申请人" prop="sqrmc">
59 <el-input placeholder="如需要模糊查询,前后输入%" v-model="queryForm.sqrmc" clearable class="width100"> 60 <el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.sqrmc" clearable class="width100">
60 </el-input> 61 </el-input>
61 </el-form-item> 62 </el-form-item>
62 </el-col> 63 </el-col>
63 <el-col :span="5"> 64 <el-col :span="5">
64 <el-form-item label="申请人证件号"> 65 <el-form-item label="申请人证件号" prop="sqrzjhm">
65 <el-input placeholder="如需要模糊查询,前后输入%" v-model="queryForm.sqrzjhm" clearable class="width100"> 66 <el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.sqrzjhm" clearable class="width100">
66 </el-input> 67 </el-input>
67 </el-form-item> 68 </el-form-item>
68 </el-col> 69 </el-col>
69 <el-col :span="5"> 70 <el-col :span="5">
70 <el-form-item label="坐落"> 71 <el-form-item label="坐落" prop="zl">
71 <el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.zl" clearable class="width100"> 72 <el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.zl" clearable class="width100">
72 </el-input> 73 </el-input>
73 </el-form-item> 74 </el-form-item>
...@@ -114,7 +115,6 @@ ...@@ -114,7 +115,6 @@
114 this.queryClick() 115 this.queryClick()
115 }, 116 },
116 methods: { 117 methods: {
117 // 初始化数据
118 /** 118 /**
119 * @description: 初始化数据 119 * @description: 初始化数据
120 * @author: renchao 120 * @author: renchao
...@@ -130,6 +130,9 @@ ...@@ -130,6 +130,9 @@
130 } 130 }
131 }) 131 })
132 }, 132 },
133 handleReset () {
134 this.$refs.queryForm.resetFields();
135 },
133 /** 136 /**
134 * @description: handleSort 137 * @description: handleSort
135 * @param {*} name 138 * @param {*} name
......
...@@ -11,25 +11,25 @@ ...@@ -11,25 +11,25 @@
11 <el-row> 11 <el-row>
12 <el-col :span="5"> 12 <el-col :span="5">
13 <el-form-item label="项目名称" label-width="70px"> 13 <el-form-item label="项目名称" label-width="70px">
14 <el-input placeholder="请输入项目名称" v-model="queryForm.xmmc" clearable class="width100"> 14 <el-input placeholder="请输入项目名称" v-model.trim="queryForm.xmmc" clearable class="width100">
15 </el-input> 15 </el-input>
16 </el-form-item> 16 </el-form-item>
17 </el-col> 17 </el-col>
18 <el-col :span="5"> 18 <el-col :span="5">
19 <el-form-item label="项目编号"> 19 <el-form-item label="项目编号">
20 <el-input placeholder="请输入项目编号" v-model="queryForm.xmbh" clearable class="width100"> 20 <el-input placeholder="请输入项目编号" v-model.trim="queryForm.xmbh" clearable class="width100">
21 </el-input> 21 </el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="5"> 24 <el-col :span="5">
25 <el-form-item label="宗地代码"> 25 <el-form-item label="宗地代码">
26 <el-input placeholder="请输入宗地代码" v-model="queryForm.zddm" clearable class="width100"> 26 <el-input placeholder="请输入宗地代码" v-model.trim="queryForm.zddm" clearable class="width100">
27 </el-input> 27 </el-input>
28 </el-form-item> 28 </el-form-item>
29 </el-col> 29 </el-col>
30 <el-col :span="5"> 30 <el-col :span="5">
31 <el-form-item label="自然幢号"> 31 <el-form-item label="自然幢号">
32 <el-input placeholder="请输入自然幢号" v-model="queryForm.zrzh" clearable class="width100"> 32 <el-input placeholder="请输入自然幢号" v-model.trim="queryForm.zrzh" clearable class="width100">
33 </el-input> 33 </el-input>
34 </el-form-item> 34 </el-form-item>
35 </el-col> 35 </el-col>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-08-29 12:55:07
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return {
18 //发证列表
19 fzgrid: [
20 {
21 label: '序号',
22 type: 'index',
23 width: '50'
24 },
25 {
26 prop: "fzrmc",
27 label: "发证人"
28 },
29 {
30 prop: "bdcqzlx",
31 label: "不动产权证类型",
32 width: '130',
33 render: (h, scope) => {
34 return (
35 <div>
36 <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
37 <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
38 </div>
39 )
40 }
41 },
42 {
43 label: "权利类型",
44 width: '100',
45 render: (h, scope) => {
46 return (
47 <el-tooltip effect="dark" content={scope.row.qllx} placement="top" popper-class="tooltip-width ">
48 <span class="ellipsis-table"> {scope.row.qllx}</span>
49 </el-tooltip>
50 )
51 }
52 },
53 {
54 label: "面积(㎡)",
55 width: '100',
56 render: (h, scope) => {
57 return (
58 <el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
59 <span class="ellipsis-table"> {scope.row.mj}</span>
60 </el-tooltip>
61 )
62 }
63 },
64 {
65 prop: "fzsj",
66 label: "发证时间",
67 width: '140',
68 },
69 {
70 prop: "lzrxm",
71 label: "领证人姓名"
72 },
73 ],
74 }
75 }
76 }
77 let datas = new data()
78 export {
79 datas,
80 sendThis
81 }
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:39:03
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return [
18 {
19 width:"50px",
20 label: '序号',
21 type: 'index',
22 render: (h, scope) => {
23 return (
24 <div>
25 {scope.$index + 1}
26 </div>
27 )
28 }
29 },
30 {
31 prop: "szry",
32 label: "缮证人员",
33 },
34 {
35 prop: "szsj",
36 label: "缮证时间",
37 },
38 {
39 label: "是否作废",
40 render: (h, scope) => {
41 if (scope.row.sfzf == '0') {
42 return <div></div>
43 } else {
44 return <div>已作废</div>
45 }
46 }
47 },
48 {
49 prop: "bz",
50 label: "备注信息",
51 },
52 ]
53 }
54 }
55 let szxxdatas = new data()
56 export {
57 szxxdatas,
58 sendThis
59 }
...@@ -11,25 +11,25 @@ ...@@ -11,25 +11,25 @@
11 <el-row> 11 <el-row>
12 <el-col :span="5"> 12 <el-col :span="5">
13 <el-form-item label="不动产权证号" label-width="100px"> 13 <el-form-item label="不动产权证号" label-width="100px">
14 <el-input placeholder="请输入不动产权证号" class="width100" v-model="queryForm.bdcqzh" clearable> 14 <el-input placeholder="请输入不动产权证号" class="width100" v-model.trim="queryForm.bdcqzh" clearable>
15 </el-input> 15 </el-input>
16 </el-form-item> 16 </el-form-item>
17 </el-col> 17 </el-col>
18 <el-col :span="5"> 18 <el-col :span="5">
19 <el-form-item label="印刷序列号" label-width="100px"> 19 <el-form-item label="印刷序列号" label-width="100px">
20 <el-input placeholder="请输入印刷序列号" class="width100" v-model="queryForm.ysxlh" clearable> 20 <el-input placeholder="请输入印刷序列号" class="width100" v-model.trim="queryForm.ysxlh" clearable>
21 </el-input> 21 </el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="5"> 24 <el-col :span="5">
25 <el-form-item label="业务号"> 25 <el-form-item label="业务号">
26 <el-input placeholder="请输入业务号" class="width100" v-model="queryForm.ywh" clearable> 26 <el-input placeholder="请输入业务号" class="width100" v-model.trim="queryForm.ywh" clearable>
27 </el-input> 27 </el-input>
28 </el-form-item> 28 </el-form-item>
29 </el-col> 29 </el-col>
30 <el-col :span="5"> 30 <el-col :span="5">
31 <el-form-item label="领取人"> 31 <el-form-item label="领取人">
32 <el-input placeholder="请输入领取人" class="width100" v-model="queryForm.lzrxm" clearable> 32 <el-input placeholder="请输入领取人" class="width100" v-model.trim="queryForm.lzrxm" clearable>
33 </el-input> 33 </el-input>
34 </el-form-item> 34 </el-form-item>
35 </el-col> 35 </el-col>
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
103 * @author: renchao 103 * @author: renchao
104 */ 104 */
105 openDialog (item) { 105 openDialog (item) {
106 this.$popupDialog("证书证明预览", "workflow/components/dialog/zsylxq", { 106 this.$popupDialog("证书证明预览", "zhcx/zslqcx/zsylxq", {
107 bsmSlsq: item.bsmSlsq, 107 bsmSlsq: item.bsmSlsq,
108 bsmBdcqz: item.bsmBdcqz 108 bsmBdcqz: item.bsmBdcqz
109 }, '1230px', true) 109 }, '1230px', true)
......
1 <!--
2 * @Description:
3 * @Autor: miaofang
4 * @LastEditTime: 2023-10-23 16:16:24
5 -->
6 <template>
7 <div
8 class="from-clues loadingtext"
9 v-Loading="loading"
10 element-loading-text="拼命加载中..."
11 style="height: 720px; text-align: center">
12 <!-- 表单部分 -->
13 <el-tabs v-model="activeName" @tab-click="handleClick">
14 <el-tab-pane label="证书预览" name="zsyl">
15 <el-empty
16 description="暂无数据"
17 v-if="headTabBdcqz.length == 0 && noData"></el-empty>
18 <div class="zsys">
19 <canvas
20 ref="zs"
21 width="1000"
22 v-show="this.bdcqz.bdcqzlx == 1"
23 height="700"></canvas>
24 <canvas
25 ref="zm"
26 width="1180"
27 v-show="this.bdcqz.bdcqzlx == 2"
28 height="780"></canvas>
29 </div>
30 </el-tab-pane>
31 <el-tab-pane label="证书详情" name="lcjl">
32 <div class="slxx_title title-block">
33 证书详情信息
34 <div class="triangle"></div>
35 </div>
36 <el-form :rules="rules" ref="ruleForm" label-width="120px">
37 <el-row>
38 <el-col :span="8">
39 <el-form-item label="权利人" prop="cyxm">
40 <el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
41 </el-form-item>
42 </el-col>
43 <el-col :span="8">
44 <el-form-item label="义务人" prop="jtgxdm">
45 <el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item label="坐落" prop="cbfdm">
50 <el-input disabled v-model="bdcqz.zl" maxlegth="15"></el-input>
51 </el-form-item>
52 </el-col>
53
54 </el-row>
55 <el-row>
56 <el-col :span="8">
57 <el-form-item label="不动产单元号" prop="cyxm">
58 <el-input disabled v-model="bdcqz.bdcdyh" maxlegth="15"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="印刷序列号" prop="jtgxdm">
63 <el-input disabled v-model="bdcqz.ysxlh" maxlegth="15"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="不动产权证号" prop="cbfdm">
68 <el-input disabled v-model="bdcqz.bdcqzh" maxlegth="15"></el-input>
69 </el-form-item>
70 </el-col>
71
72 </el-row>
73 </el-form>
74 <div class="slxx_title title-block">
75 缮证记录信息
76 <div class="triangle"></div>
77 </div>
78 <lb-table
79 class="sz"
80 :column="szxxtableData.columns"
81 heightNumSetting
82 :pagination="false"
83 :key="key"
84 :data="szxxtableData.data">
85 </lb-table>
86 <div class="slxx_title title-block">
87 发证记录信息
88 <div class="triangle"></div>
89 </div>
90 <lb-table
91 border
92 :column="tableDatas.columns"
93 :heightNum="100"
94 :data="tableDatas.data"
95 :pagination="false">
96 </lb-table>
97 </el-tab-pane>
98 <el-tab-pane label="电子证照" name="third"> 等一个照片 </el-tab-pane>
99 </el-tabs>
100 </div>
101 </template>
102
103 <script>
104 // import { zsyldatas } from "../../javascript/zsyl.js";
105 import { getSlsqBdcqzList } from "@/api/bdcqz.js";
106 import { getCertificateList } from "@/api/bdcqz.js";
107 import { getSzRecordList } from "@/api/bdcqz.js";
108 import { szxxdatas } from "./szxxdatapart";
109 import { datas } from "./fzxxdatapart";
110 export default {
111 name: "zsyl",
112 props: {
113 formData: {
114 type: Object,
115 default: {},
116 },
117 },
118 data () {
119 return {
120 key: 0,
121 noData: false,
122 imgSrc: require("@/image/bdcqz/bdcqzs2.jpg"),
123 bdczmSrc: require("@/image/bdcqz/bdczm.jpg"),
124 loading: false,
125 //印刷序列号集合
126 ysxlh: [],
127 //列名称对象
128 columns: [],
129 //选择的不动产权证文件
130 bdcqz: "",
131 //证书打开类型 是否需要展示打印按钮
132 isToPrint: false,
133 //tab切换栏数组
134 tabslist: [],
135 headTabBdcqz: [],
136 //tab选择绑定值
137 activeName: "zsyl",
138 //证书图片预览
139 previewImage: "",
140 ruleForm: {
141 bsmBdcqz: "",
142 szmc: "不动产权证书",
143 bsmBdcqz: "",
144 szzh: "",
145 ysxlh: "",
146 },
147 formdata: {},
148 szxxtableData: {
149 total: 0,
150 columns: szxxdatas.columns(),
151 data: [],
152 },
153 tableDatas: {
154 total: 0,
155 columns: datas.columns().fzgrid,
156 data: [],
157 },
158 };
159 },
160 mounted () {
161 this.queryClick();
162 this.query();
163 if (this.formData.bdcqz) {
164 //从缮证进入
165 this.bdcqz = this.formData.bdcqz;
166 } else {
167 //从按钮进入
168 this.getHeadTabBdcqz();
169 }
170 },
171 methods: {
172 /**
173 * @description: queryClick
174 * @author: miaofang
175 */
176 queryClick () {
177 this.formdata.bsmSlsq = this.formData.bsmSlsq;
178 getCertificateList(this.formdata).then((res) => {
179 if (res.code === 200) {
180 this.tableDatas.data = res.result ? res.result : [];
181 }
182 })
183 },
184 /**
185 * @description: query
186 * @author: miaofang
187 */
188 query () {
189 getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then((res) => {
190 if (res.code == 200) {
191 this.szxxtableData.data = res.result;
192 this.key++;
193 }
194 })
195 },
196 /**
197 * @description: 获取证书内容
198 * @param {*} code
199 * @author: miaofang
200 */
201 getRowValue (code) {
202 var value = this.bdcqz[code];
203 return value;
204 },
205 /**
206 * @description: 获取受理申请下全部不动产权证
207 * @author: miaofang
208 */
209 getHeadTabBdcqz () {
210 this.loading = true;
211 getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then((res) => {
212 if (res.code == 200) {
213 this.noData = true;
214 if (res.result && res.result.length > 0) {
215 this.bdcqz = res.result[0];
216 this.headTabBdcqz = res.result;
217 if (this.bdcqz.bdcqzlx == 1) {
218 this.drawTextOnImage();
219 } else {
220 this.drawTextzmImage();
221 }
222 }
223 }
224 this.loading = false;
225 });
226 },
227 /**
228 * @description: tab表头切换方法
229 * @param {*} e
230 * @author: miaofang
231 */
232 handleClick (tab, event) {
233 console.log(tab, event);
234 this.bdcqz = this.headTabBdcqz[0];
235 if (this.bdcqz.bdcqzlx == 1) {
236 this.drawTextOnImage();
237 } else {
238 this.drawTextzmImage();
239 }
240 },
241 /**
242 * @description: 不动产证书
243 * @author: miaofang
244 */
245 drawTextOnImage () {
246 function getByteLen (val) {
247 var len = 0;
248 if (!val) return len;
249 for (var i = 0; i < val.length; i++) {
250 var length = val.charCodeAt(i);
251 if (length >= 0 && length <= 128) {
252 len += 1;
253 } else {
254 len += 2;
255 }
256 }
257 return len;
258 }
259 const canvas = this.$refs.zs;
260 const context = canvas.getContext("2d");
261 const image = new Image();
262 image.onload = () => {
263 context.drawImage(image, 0, 0);
264 context.font = "18px 楷体";
265 context.fillStyle = "#000000";
266 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 60, 56);
267 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 113, 56);
268 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 180, 56);
269 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 370, 56);
270 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 129, 97);
271 context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : "", 129, 136);
272
273 this.bdcdyh =
274 this.bdcqz.bdcdyh.slice(0, 6) +
275 " " +
276 this.bdcqz.bdcdyh.slice(6, 12) +
277 " " +
278 this.bdcqz.bdcdyh.slice(12, 19) +
279 " " +
280 this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
281 context.fillText(this.bdcdyh ? this.bdcdyh : "", 129, 223);
282
283 context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : "", 129, 263);
284 context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : "", 129, 303);
285 context.fillText(this.bdcqz.yt ? this.bdcqz.yt : "", 129, 346);
286 // context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
287 let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(" ") : [];
288 if (getByteLen(this.bdcqz.mj) > 41) {
289 lines6.forEach((line, index) => {
290 const y = 378 + index * 27; // 每行文本的垂直位置
291 let currentLine = "";
292 let arr = [];
293 for (let word of line) {
294 const testLine = currentLine + word;
295 const lineWidth = context.measureText(testLine).width;
296 if (lineWidth <= 330) {
297 currentLine = testLine;
298 } else {
299 arr.push(currentLine);
300 currentLine = word;
301 }
302 }
303 arr.push(currentLine);
304 arr.forEach((line, index) => {
305 context.fillText(line, 129, y + index * 20); // 调整行高
306 });
307 });
308 } else {
309 lines6.forEach((line, index) => {
310 const y = 386 + index * 27; // 每行文本的垂直位置
311 let currentLine = "";
312 let arr = [];
313 for (let word of line) {
314 const testLine = currentLine + word;
315 const lineWidth = context.measureText(testLine).width;
316 if (lineWidth <= 330) {
317 currentLine = testLine;
318 } else {
319 arr.push(currentLine);
320 currentLine = word;
321 }
322 }
323 arr.push(currentLine);
324 arr.forEach((line, index) => {
325 context.fillText(line, 129, y + index * 20); // 调整行高
326 });
327 });
328 }
329 // 权利其他状态
330 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
331 for (let i = 0; i < lines.length; i++) {
332 let num = Math.ceil(getByteLen(lines[i]) / 38);
333 if (getByteLen(lines[i]) > 38) {
334 let currentLine = "";
335 let arr = [];
336 for (let word of lines[i]) {
337 const testLine = currentLine + word;
338 const lineWidth = context.measureText(testLine).width;
339 if (lineWidth <= 323) {
340 currentLine = testLine;
341 } else {
342 arr.push(currentLine);
343 currentLine = word;
344 }
345 }
346 arr.push(currentLine);
347 if (i > 0) {
348 arr.forEach((line, index) => {
349 context.fillText(
350 line,
351 129,
352 490 + 26 * (i - 1) + 4 * num + index * 14
353 ); // 调整行高
354 });
355 } else {
356 arr.forEach((line, index) => {
357 context.fillText(line, 129, 500 + 26 * (i - 1) + index * 14); // 调整行高
358 });
359 }
360 } else {
361 if (i > 0) {
362 context.fillText(
363 lines[i] ? lines[i] : "",
364 129,
365 500 + 4 * num + 24 * (i - 1)
366 );
367 } else {
368 context.fillText(
369 lines[i] ? lines[i] : "",
370 129,
371 505 + 24 * (i - 1)
372 );
373 }
374 }
375 }
376
377 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
378 lines1.forEach((line, index) => {
379 const y = 100 + index * 30; // 每行文本的垂直位置
380 let currentLine = "";
381 let arr = [];
382 for (let word of line) {
383 const testLine = currentLine + word;
384 const lineWidth = context.measureText(testLine).width;
385 if (lineWidth <= 395) {
386 currentLine = testLine;
387 } else {
388 arr.push(currentLine);
389 currentLine = word;
390 }
391 }
392 arr.push(currentLine);
393 arr.forEach((line, index) => {
394 context.fillText(line, 580, y + index * 30); // 调整行高
395 });
396 });
397 let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(" ") : [];
398 if (getByteLen(this.bdcqz.syqx) > 41) {
399 lines3.forEach((line, index) => {
400 const y = 423 + index * 27; // 每行文本的垂直位置
401 let currentLine = "";
402 let arr = [];
403 for (let word of line) {
404 const testLine = currentLine + word;
405 const lineWidth = context.measureText(testLine).width;
406 if (lineWidth <= 330) {
407 currentLine = testLine;
408 } else {
409 arr.push(currentLine);
410 currentLine = word;
411 }
412 }
413 arr.push(currentLine);
414 arr.forEach((line, index) => {
415 context.fillText(line, 129, y + index * 20); // 调整行高
416 });
417 });
418 } else {
419 lines3.forEach((line, index) => {
420 const y = 430 + index * 27; // 每行文本的垂直位置
421 let currentLine = "";
422 let arr = [];
423 for (let word of line) {
424 const testLine = currentLine + word;
425 const lineWidth = context.measureText(testLine).width;
426 if (lineWidth <= 315) {
427 currentLine = testLine;
428 } else {
429 arr.push(currentLine);
430 currentLine = word;
431 }
432 }
433 arr.push(currentLine);
434 arr.forEach((line, index) => {
435 context.fillText(line, 129, y + index * 20); // 调整行高
436 });
437 });
438 }
439
440 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
441 if (getByteLen(this.bdcqz.zl) > 41) {
442 lines2.forEach((line, index) => {
443 const y = 170 + index * 20; // 每行文本的垂直位置
444 let currentLine = "";
445 let arr = [];
446 for (let word of line) {
447 const testLine = currentLine + word;
448 const lineWidth = context.measureText(testLine).width;
449 if (lineWidth <= 336) {
450 currentLine = testLine;
451 } else {
452 arr.push(currentLine);
453 currentLine = word;
454 }
455 }
456 arr.push(currentLine);
457 arr.forEach((line, index) => {
458 context.fillText(line, 129, y + index * 20); // 调整行高
459 });
460 });
461 } else {
462 lines2.forEach((line, index) => {
463 const y = 180 + index * 20; // 每行文本的垂直位置
464 let currentLine = "";
465 let arr = [];
466 for (let word of line) {
467 const testLine = currentLine + word;
468 const lineWidth = context.measureText(testLine).width;
469 if (lineWidth <= 336) {
470 currentLine = testLine;
471 } else {
472 arr.push(currentLine);
473 currentLine = word;
474 }
475 }
476 arr.push(currentLine);
477 arr.forEach((line, index) => {
478 context.fillText(line, 129, y + index * 20); // 调整行高
479 });
480 });
481 }
482 };
483 image.src = this.imgSrc;
484 },
485 /**
486 * @description: 不动产证明
487 * @author: miaofang
488 */
489 drawTextzmImage () {
490 function getByteLen (val) {
491 var len = 0;
492 if (!val) return len;
493 for (var i = 0; i < val.length; i++) {
494 var length = val.charCodeAt(i);
495 if (length >= 0 && length <= 128) {
496 len += 1;
497 } else {
498 len += 2;
499 }
500 }
501 return len;
502 }
503
504 const canvas = this.$refs.zm;
505 const context = canvas.getContext("2d");
506 const image = new Image();
507 image.onload = () => {
508 context.drawImage(image, 0, 0);
509 context.font = "18px 楷体";
510 context.fillStyle = "#000000";
511 // ysxlh
512 context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : "", 280, 712);
513 // djsj
514 if (this.bdcqz.djsj) {
515 let djsjList = this.bdcqz.djsj.split(" ")[0].split("/");
516 context.fillText(djsjList[0] ? djsjList[0] : "", 327, 580);
517 context.fillText(djsjList[1] ? djsjList[1] : "", 393, 580);
518 context.fillText(djsjList[2] ? djsjList[2] : "", 443, 580);
519 }
520 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 620, 125);
521 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 665, 125);
522 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 750, 125);
523 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 960, 123);
524 context.fillText(
525 this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : "",
526 775,
527 180
528 );
529 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 775, 228);
530 // 义务人
531 context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : "", 775, 275);
532 // context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
533
534 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
535 if (getByteLen(this.bdcqz.zl) > 41) {
536 lines2.forEach((line, index) => {
537 const y = 315 + index * 20; // 每行文本的垂直位置
538 let currentLine = "";
539 let arr = [];
540 for (let word of line) {
541 const testLine = currentLine + word;
542 const lineWidth = context.measureText(testLine).width;
543 if (lineWidth <= 295) {
544 currentLine = testLine;
545 } else {
546 arr.push(currentLine);
547 currentLine = word;
548 }
549 }
550 arr.push(currentLine);
551 arr.forEach((line, index) => {
552 context.fillText(line, 775, y + index * 20); // 调整行高
553 });
554 });
555 } else {
556 lines2.forEach((line, index) => {
557 const y = 325 + index * 20; // 每行文本的垂直位置
558 let currentLine = "";
559 let arr = [];
560 for (let word of line) {
561 const testLine = currentLine + word;
562 const lineWidth = context.measureText(testLine).width;
563 if (lineWidth <= 295) {
564 currentLine = testLine;
565 } else {
566 arr.push(currentLine);
567 currentLine = word;
568 }
569 }
570 arr.push(currentLine);
571 arr.forEach((line, index) => {
572 context.fillText(line, 775, y + index * 20); // 调整行高
573 });
574 });
575 }
576
577 // bdcdyh
578 this.bdcdyh =
579 this.bdcqz.bdcdyh.slice(0, 6) +
580 " " +
581 this.bdcqz.bdcdyh.slice(6, 12) +
582 " " +
583 this.bdcqz.bdcdyh.slice(12, 19) +
584 " " +
585 this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
586 context.fillText(this.bdcdyh ? this.bdcdyh : "", 775, 373);
587 // qlqtzk
588 const maxWidth = 295; // 最大宽度限制
589 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
590 for (let i = 0; i < lines.length; i++) {
591 let num = Math.ceil(getByteLen(lines[i]) / 37);
592 if (getByteLen(lines[i]) > 37) {
593 let currentLine = "";
594 let arr = [];
595 for (let word of lines[i]) {
596 const testLine = currentLine + word;
597 const lineWidth = context.measureText(testLine).width;
598 if (lineWidth <= maxWidth) {
599 currentLine = testLine;
600 } else {
601 arr.push(currentLine);
602 currentLine = word;
603 }
604 }
605 arr.push(currentLine);
606 if (i > 0) {
607 arr.forEach((line, index) => {
608 context.fillText(
609 line,
610 770,
611 428 + 25 * (i - 1) + 5 * num + index * 15
612 ); // 调整行高
613 });
614 } else {
615 arr.forEach((line, index) => {
616 context.fillText(line, 770, 435 + 25 * (i - 1) + index * 14); // 调整行高
617 });
618 }
619 } else {
620 if (i > 0) {
621 context.fillText(
622 lines[i] ? lines[i] : "",
623 770,
624 440 + 5 * num + 24 * (i - 1)
625 );
626 } else {
627 context.fillText(
628 lines[i] ? lines[i] : "",
629 770,
630 440 + 24 * (i - 1)
631 );
632 }
633 }
634 }
635 // fj
636 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
637 for (let i = 0; i < lines1.length; i++) {
638 let num = Math.ceil(getByteLen(lines1[i]) / 37);
639 if (getByteLen(lines1[i]) > 37) {
640 let currentLine = "";
641 let arr = [];
642 for (let word of lines1[i]) {
643 const testLine = currentLine + word;
644 const lineWidth = context.measureText(testLine).width;
645 if (lineWidth <= maxWidth) {
646 currentLine = testLine;
647 } else {
648 arr.push(currentLine);
649 currentLine = word;
650 }
651 }
652 arr.push(currentLine);
653 if (i > 0) {
654 arr.forEach((line, index) => {
655 context.fillText(
656 line,
657 770,
658 610 + 25 * (i - 1) + 5 * num + index * 15
659 ); // 调整行高
660 });
661 } else {
662 arr.forEach((line, index) => {
663 context.fillText(line, 770, 610 + 25 * (i - 1) + index * 15); // 调整行高
664 });
665 }
666 } else {
667 if (i > 0) {
668 context.fillText(
669 lines1[i] ? lines1[i] : "",
670 770,
671 610 + 5 * num + 23 * (i - 1)
672 );
673 } else {
674 context.fillText(
675 lines1[i] ? lines1[i] : "",
676 770,
677 610 + 23 * (i - 1)
678 );
679 }
680 }
681 }
682 };
683
684 image.src = this.bdczmSrc;
685 },
686 },
687 computed: {
688 hdiffHeight () {
689 return 0;
690 // return this.headTabBdcqz.length > 1 ? 54 : 0
691 },
692 },
693 };
694 </script>
695 <style scoped lang="scss">
696 @import "~@/styles/mixin.scss";
697
698 .imgClass {
699 display: inline-block;
700 height: auto;
701 max-width: 100%;
702 }
703
704 .middle_padding {
705 padding-bottom: 10px;
706 }
707
708 .zsyl-button {
709 text-align: center;
710 margin-top: 20px;
711
712 .operation_button {
713 width: 100px;
714 border: 1px solid rgb(0, 121, 254);
715 }
716
717 .dy-button {
718 color: white;
719 background-color: rgb(0, 121, 254);
720 }
721 }
722
723 .table-column {
724 border-spacing: 1px;
725 width: 100%;
726
727 tr td {
728 border: 1px solid #ccc;
729 text-align: center;
730 height: 40px;
731 padding: 4px;
732 font-size: 13px;
733 background: rgb(251, 249, 229);
734 }
735 }
736
737 .zsyl-title {
738 background: #fafbe5;
739 text-align: center;
740 padding: 5px 0px;
741 font-size: 20px;
742 }
743
744 .no-data {
745 font-size: 18px;
746 display: flex;
747 text-align: center;
748 justify-content: center;
749 }
750 .el-tab-pane {
751 width: 1190px;
752 height: 670px;
753 overflow-y: auto;
754 }
755 .zsys {
756 width: 1180px;
757 height: 670px;
758 }
759 /deep/.el-table {
760 height: 100px !important;
761 }
762 // /deep/.sz {
763 // height: 340px !important;
764 // }
765 .el-form {
766 margin-top: 20px;
767 }
768 </style>
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-07-24 14:07:02 4 * @LastEditTime: 2023-10-27 16:12:06
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -11,19 +11,19 @@ ...@@ -11,19 +11,19 @@
11 <el-row> 11 <el-row>
12 <el-col :span="5"> 12 <el-col :span="5">
13 <el-form-item label="企业名称" label-width="70px"> 13 <el-form-item label="企业名称" label-width="70px">
14 <el-input placeholder="请输入企业名称" v-model="queryForm.qymc" clearable> 14 <el-input placeholder="请输入企业名称" v-model.trim="queryForm.qymc" clearable>
15 </el-input> 15 </el-input>
16 </el-form-item> 16 </el-form-item>
17 </el-col> 17 </el-col>
18 <el-col :span="5"> 18 <el-col :span="5">
19 <el-form-item label="项目名称" label-width="70px"> 19 <el-form-item label="项目名称" label-width="70px">
20 <el-input placeholder="请输入项目名称" v-model="queryForm.xmmc" clearable> 20 <el-input placeholder="请输入项目名称" v-model.trim="queryForm.xmmc" clearable>
21 </el-input> 21 </el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="5"> 24 <el-col :span="5">
25 <el-form-item label="自然幢号"> 25 <el-form-item label="自然幢号">
26 <el-input placeholder="请输入自然幢号" v-model="queryForm.zrzh" clearable> 26 <el-input placeholder="请输入自然幢号" v-model.trim="queryForm.zrzh" clearable>
27 </el-input> 27 </el-input>
28 </el-form-item> 28 </el-form-item>
29 </el-col> 29 </el-col>
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
89 } 89 }
90 }) 90 })
91 }, 91 },
92 openDialog(){ 92 openDialog () {
93 this.$popup('楼盘表', 'lpb/index', { 93 this.$popup('楼盘表', 'lpb/index', {
94 width: '85%', 94 width: '85%',
95 formData: { 95 formData: {
......