39820f70 by renchao@pashanhoo.com

文件夹构建

1 parent 58e82bcb
Showing 84 changed files with 18729 additions and 348 deletions
......@@ -234,7 +234,7 @@
formData.append("bsmSj", this.previewImg.bsmSj);
formData.append("bsmSlsq", this.previewImg.bsmSlsq);
if (this.previewImg.imgList.length > 0) {
formData.append("ssBsmClmx", this.previewImg.imgList[this.previewImg.index].bsmClmx);
formData.append("index", this.previewImg.imgList[this.previewImg.index].sxh);
}
uploadSjClmx(formData).then((res) => {
if (res.code == 200) {
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-13 14:31:09
* @LastEditTime: 2023-11-13 14:32:38
-->
<template>
<!-- 受理信息 -->
......
......@@ -454,7 +454,6 @@
};
},
key: 0,
tdxz: null,
isShow: false,
disabled: true,
czrOptions: [],
......@@ -675,6 +674,16 @@
if (this.ruleForm.qlrData.length > 1) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrData.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-03 14:47:55
* @LastEditTime: 2023-11-03 14:50:46
-->
<template>
<!-- 受理信息 -->
......@@ -84,8 +84,6 @@
<el-input disabled v-model="ruleForm.qlxx.ssywh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.qlxx.qllxmc"></el-input>
......
......@@ -591,8 +591,6 @@
this.loading = false
if (res.code == 200) {
this.ruleForm = res.result;
this.ruleForm.tdsyq.mjdw = "1"
let djlx = this.ruleForm.qlxx.djlx;
if (djlx == null || djlx == 100) {
this.ssqlxxshow = false;
......
......@@ -436,7 +436,6 @@
},
};
},
};
</script>
<style scoped lang="scss">
......
......@@ -53,7 +53,7 @@ export function getForm (tabName) {
break;
//森林林木使用权
case "sllmslxx":
form = require("@/views/ywbl/slsqxx/sllmslxx");
form = require("@/views/workflow/main/slsqxx/sllmslxx");
break;
case "slxxjsydsyq":
form = require("@/views/djbworkflow/djbBook/components/blxxtabs/jsydsyq.vue");
......
......@@ -73,7 +73,6 @@ export default {
}
}
})
},
/**
* @description: 流程环节操作按钮
......@@ -91,7 +90,7 @@ export default {
case "B1":
getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
let { result } = res
this.$popupDialog("流程图", "workflow/components/processViewer", {
this.$popupDialog("流程图", "workflow/top/processViewer/index", {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedActivityIds,
......@@ -156,7 +155,7 @@ export default {
}, '90%', true)
break;
case "back": //退回按钮
this.$popupDialog("退回", "workflow/components/th", {
this.$popupDialog("退回", "workflow/top/back/index", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid ? this.bestepid : ''
}, '800px', true)
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-19 16:30:06
* @LastEditTime: 2024-01-29 14:27:07
-->
<template>
<div class="clxx">
......@@ -170,9 +170,9 @@
})
} else {
var formdata = new FormData();
formdata.append("bsmSlsq", this.formData.bsmSlsq);
formdata.append("bsmSldy", this.formData.bsmSldy);
formdata.append("bsmSlsq", this.formData.bsmSlsq ? this.formData.bsmSlsq : '');
formdata.append("bsmSldy", this.formData.bsmSldy ? this.formData.bsmSldy : '');
console.log(this.formData);
InitClml(formdata).then((res) => {
if (res.code == 200) {
resolve(res.code);
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-30 16:47:02
* @LastEditTime: 2024-01-30 16:53:30
-->
<template>
<div class="tableBox">
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-25 13:15:05
* @LastEditTime: 2024-01-29 14:19:56
-->
<template>
<div class="content">
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 09:52:59
* @LastEditTime: 2024-01-31 09:52:39
-->
<template>
<div class="content loadingtext">
......@@ -14,8 +14,7 @@
:default-expand-all="true"
:expand-on-click-node="false"
node-key="id"
:default-checked-keys="[showTab]"
>
:default-checked-keys="[showTab]">
</el-tree>
<el-collapse v-model="activeName" accordion>
<el-collapse-item
......@@ -23,8 +22,7 @@
ref="sfq"
v-for="(item, index) in sfqdata"
:key="index"
:name="index"
>
:name="index">
<template slot="title">
<span class="text" @click="tap(item)">
<span>
......@@ -37,8 +35,7 @@
:re="item"
:key="index"
:class="[isActive == index ? activeCls : '', errorCls]"
@click="taplist(item, index)"
>
@click="taplist(item, index)">
<span>
{{ item.label }}
</span>
......@@ -53,16 +50,15 @@
<component
:is="componentTag"
@getBdcdyh="getBdcdyh"
v-bind="currentSelectProps"
/>
v-bind="currentSelectProps" />
</div>
</div>
</template>
<script>
import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js";
import { getBdcqljqtsx, getBdcqljqtsxBdcdyh } from "@/api/djbDetail.js";
import { loadTreeData, loadsfqData, getNode } from "./djbFrameData.js";
export default {
data() {
export default {
data () {
return {
//接收参数
// propsParam: this.$attrs,
......@@ -93,85 +89,124 @@ export default {
showTab: "bdcqldjml", // 选中状态,根据表格中权利类型判断
};
},
mounted() {
this.loadData(this.getCaption(window.location.href));
},
methods: {
// 截取字符的方法
/**
* @description: 截取字符的方法
* @param {*} obj
* @description: loadData
* @author: renchao
*/
getCaption(obj) {
let index = obj.lastIndexOf("=");
obj = obj.substring(index + 1, obj.length);
return obj;
loadData(val) {
getBdcqljqtsxBdcdyh({
bdcdyh: val,
}).then((res) => {
if (res.code === 200) {
this.treedata = loadTreeData(val);
this.sfqdata.push(loadsfqData(res.result, val, res.result.bdcdyid));
this.$nextTick(function () {
this.defaultNode = getNode(
res.result.ztqllx,
{ linShi: 0, xianShi: 0, liShi: 0 },
res.result.bdcdylx || ""
);
this.sfqdata[0].children.forEach((item, index) => {
if (item.id == this.defaultNode.id) {
this.loadComponent(item.form);
this.isActive = index;
}
});
this.currentSelectProps = {
bdcdyid: res.result.bdcdyid,
bdcdyh: val,
qllx: res.result.qllx,
bsmQlxx: this.currentSelectProps.bsmQlxx,
};
// this.$refs.tree.setCurrentKey(this.defaultNode.id); //data[0].id为默认选中的节点
// this.loadComponent(this.defaultNode.form);
// this.setstyle(0, 0, this.iskey);
});
}
});
},
// 通过不动产业务号获取参数
/*
点击登记簿菜单
*/
/**
* @description: 通过不动产业务号获取参数
* @description: 点击登记簿菜单
* @param {*} data
* @author: renchao
*/
// getdata () {
// this.queryForm = {
// bdcdyh: this.getCaption(window.location.href),
// currentPage: 1,
// djlx: "",
// pageSize: 10,
// qllx: "",
// ywh: "",
// ywly: "",
// };
// if (this.queryForm) {
// this.$startLoading();
// searchTaskToDo({
// ...this.queryForm,
// }).then((res) => {
// if (res.code === 200) {
// let { records } = res.result;
// this.loadBdcdylist(records[0].bsmSlsq, records[0].bestepid);
// this.$endLoading();
// }
// });
// }
// },
handleNodeClick(data) {
this.loadComponent(data.form);
},
// 获取不动产信息
/**
* @description: 获取不动产信息
* @param {*} a
* @param {*} b
* @description: setstyle
* @param {*} data
* @author: renchao
* 设置样式和点击定位到当前功能
*/
// loadBdcdylist (a, b) {
// var formdata = new FormData();
// formdata.append("bsmSlsq", a);
// formdata.append("bestepid", b);
// leftMenu(formdata).then((res) => {
// if (res.code === 200) {
// if (res.result) {
// this.currentSelectProps = res.result[0];
// this.loadData(this.currentSelectProps.bdcdyh);
// setstyle (newindex, index, key) {
// if (key != undefined || this.keyy == index) {
// if (key != undefined) {
// this.keyy = key
// }
// this.loadComponent(this.$refs.sfq[newindex].$children[this.keyy].$attrs.re.form);
// let dpme = this.$refs.sfq[newindex].$children[this.keyy].$el
// dpme.style.backgroundColor = "#f5f5f5";
// dpme.style.color = "#0079fe";
// dpme.style.borderRight = "4px solid #0079fe";
// } else {
// let dpme = this.$refs.sfq[newindex].$children[this.keyy].$el
// dpme.style.backgroundColor = "#ffffff";
// dpme.style.color = "black";
// dpme.style.border = "none";
// }
// });
// },
/**
* @description: tap
* @param {*} data
* @author: renchao
* 新增列表功能
*/
tap(data, index) {
this.loadComponent(data.form);
this.currentSelectProps.bdcdyid=data.bdcdyid
this.currentSelectProps.bdcdyh=data.bdcdyh
},
/**
* @description: taplist
* @param {*} data
* @author: renchao
* 新增列表功能
*/
taplist(data, index) {
this.loadComponent(data.form);
this.isActive = index;
},
methods: {
// 截取字符的方法
/**
* @description: 截取字符的方法
* @param {*} obj
* @author: renchao
*/
getCaption (obj) {
let index = obj.lastIndexOf("=");
obj = obj.substring(index + 1, obj.length);
return obj;
},
/**
* @description: getBdcdyh
* @author: miaofang
* 点击不动产单元号事件
*/
getBdcdyh(val) {
getBdcdyh (val) {
this.addloadData(val);
},
/**
* @description: addloadData
* @author: miaofang
*/
addloadData(val) {
addloadData (val) {
getBdcqljqtsx({
bdcdyid: val.bdcdyid,
bdcdyh: val.bdcdyh,
......@@ -199,7 +234,7 @@ export default {
* @description: loadData
* @author: renchao
*/
loadData(val) {
loadData (val) {
getBdcqljqtsxBdcdyh({
bdcdyh: val,
}).then((res) => {
......@@ -224,59 +259,20 @@ export default {
qllx: res.result.qllx,
bsmQlxx: this.currentSelectProps.bsmQlxx,
};
// this.$refs.tree.setCurrentKey(this.defaultNode.id); //data[0].id为默认选中的节点
// this.loadComponent(this.defaultNode.form);
// this.setstyle(0, 0, this.iskey);
});
})
}
});
})
},
/*
点击登记簿菜单
*/
/**
* @description: 点击登记簿菜单
* @param {*} data
* @author: renchao
*/
handleNodeClick(data) {
handleNodeClick (data) {
this.loadComponent(data.form);
},
/**
* @description: setstyle
* @param {*} data
* @author: renchao
* 设置样式和点击定位到当前功能
*/
// setstyle (newindex, index, key) {
// if (key != undefined || this.keyy == index) {
// if (key != undefined) {
// this.keyy = key
// }
// this.loadComponent(this.$refs.sfq[newindex].$children[this.keyy].$attrs.re.form);
// let dpme = this.$refs.sfq[newindex].$children[this.keyy].$el
// dpme.style.backgroundColor = "#f5f5f5";
// dpme.style.color = "#0079fe";
// dpme.style.borderRight = "4px solid #0079fe";
// } else {
// let dpme = this.$refs.sfq[newindex].$children[this.keyy].$el
// dpme.style.backgroundColor = "#ffffff";
// dpme.style.color = "black";
// dpme.style.border = "none";
// }
// },
/**
* @description: tap
* @param {*} data
* @author: renchao
* 新增列表功能
*/
tap(data, index) {
tap (data, index) {
this.loadComponent(data.form);
this.currentSelectProps.bdcdyid=data.bdcdyid
this.currentSelectProps.bdcdyh=data.bdcdyh
},
/**
* @description: taplist
......@@ -284,7 +280,7 @@ export default {
* @author: renchao
* 新增列表功能
*/
taplist(data, index) {
taplist (data, index) {
this.loadComponent(data.form);
this.isActive = index;
},
......@@ -293,19 +289,19 @@ export default {
* @param {*} form
* @author: renchao
*/
loadComponent(form) {
loadComponent (form) {
this.componentTag = (r) =>
require.ensure([], () => r(require("@/views/registerBook/" + form)));
},
},
};
}
}
}
</script>
<style scoped lang="scss">
/deep/.rollTable {
/deep/.rollTable {
height: calc(120vh - 254px) !important;
}
}
.content {
.content {
width: 100%;
height: 100%;
display: flex;
......@@ -326,34 +322,23 @@ export default {
background-color: #f5f5f5;
border: 1px solid rgb(228, 228, 228);
}
}
}
/deep/ .expanded.el-tree-node__expand-icon,
/deep/ .el-tree-node__expand-icon {
/deep/ .expanded.el-tree-node__expand-icon,
/deep/ .el-tree-node__expand-icon {
visibility: hidden;
}
}
/deep/ .el-tree-node__content {
/deep/ .el-tree-node__content {
border: 1px solid rgb(228, 228, 228);
height: 45px;
}
/deep/ .el-tree-node:focus > .el-tree-node__content {
// background-color: #f5f5f5;
// color: #0079fe;
// border-right: 4px solid #0079fe;
}
}
/deep/.el-tree-node {
/deep/.el-tree-node {
white-space: pre-wrap;
}
}
/deep/ .is-current > .el-tree-node__content {
// background-color: #f5f5f5;
// color: #0079fe;
// border-right: 4px solid #0079fe;
}
/deep/.el-collapse-item__header {
/deep/.el-collapse-item__header {
width: 100%;
cursor: pointer;
position: relative;
......@@ -373,16 +358,19 @@ export default {
display: inline-block;
line-height: 15px;
}
height: 45px;
border: 1px solid rgb(228, 228, 228);
border-right: 4px solid #f5f5f5;
}
height: 45px;
display: inline-block;
line-height: 45px;
border: 1px solid rgb(228, 228, 228);
}
/deep/.el-collapse-item__content {
}
/deep/.el-collapse-item__content {
padding-bottom: 5px;
}
/deep/.unselected {
}
/deep/.unselected {
// white-space: wrap;
border: none;
cursor: pointer;
......@@ -399,9 +387,9 @@ export default {
justify-content: center;
align-items: center;
}
}
}
.select {
.select {
border: none;
cursor: pointer;
width: 250px;
......@@ -418,5 +406,5 @@ export default {
justify-content: center;
align-items: center;
}
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-02 16:51:02
* @LastEditTime: 2024-02-02 16:52:02
-->
<!-- 批量删除弹框 -->
<template>
......
......@@ -21,7 +21,7 @@
<div class="menu-con">
<p>{{ item.bdcdyh }}</p>
<el-tooltip effect="dark" :content="item.zl" placement="top">
<p v-if="item.sqfl=='1'" class="title-detail">{{ item.zl }}</p>
<p v-if="item.zl" class="title-detail">{{ item.zl }}</p>
<p v-else class="title-detail">{{ item.qllxmc }}</p>
</el-tooltip>
</div>
......
......@@ -4,101 +4,115 @@
* @LastEditTime: 2024-01-23 14:07:58
*/
/**
* @description: 流程环节操作按钮
* @description: 流程表单操作
* @param {*} tabName
* @author: renchao
*/
export function getForm (tabName) {
export function getForm(tabName) {
let form;
if (tabName == 0) return
switch (tabName) {
//土地所有权
case "tdsyqslxx":
form = require("@/views/ywbl/slsqxx/tdsyq/slxx.vue");
form = require("@/views/workflow/main/slsqxx/tdsyq/slxx.vue");
break;
//建设用地、宅基地
case "jsydsyqslxx100":
form = require("@/views/ywbl/slsqxx/jsydsyq/slxx.vue");
break;
case "jsydsyqslxx300":
form = require("@/views/ywbl/slsqxx/jsydsyq/slxx300.vue");
form = require("@/views/workflow/main/slsqxx/jsydsyq/slxx.vue");
break;
//土地承包经营权
case "tdcbjyqslxx100":
form = require("@/views/ywbl/slsqxx/tdcbjyq/slxx.vue");
form = require("@/views/workflow/main/slsqxx/tdcbjyq/slxx.vue");
break;
//国有建设用地使用权/房屋所有权
//房屋多幢
case "fwsyqdzslxx":
form = require("@/views/ywbl/slsqxx/fdcq1/slxx.vue");
form = require("@/views/workflow/main/slsqxx/fdcq1/slxx.vue");
break;
//房屋独幢
case "fwsyqslxx100":
case "fwsyqslxx200":
case "fwsyqslxx400":
form = require("@/views/ywbl/slsqxx/fdcq2/slxx.vue");
break;
case "fwsyqslxx300":
form = require("@/views/ywbl/slsqxx/fdcq2/slxx300.vue");
form = require("@/views/workflow/main/slsqxx/fdcq2/slxx.vue");
break;
//房屋独幢(批量)
case "plfdcq2":
form = require("@/views/workflow/main/slsqxx/fdcq2/batchSlxx.vue");
break;
//林地使用权
case "lqslxx":
form = require("@/views/ywbl/slsqxx/lqslxx");
form = require("@/views/workflow/main/slsqxx/lqslxx");
break;
//森林林木使用权
case "sllmslxx":
form = require("@/views/ywbl/slsqxx/sllmslxx");
break;
case "plfdcq2":
form = require("@/views/ywbl/slsqxx/fdcq2/slxxOverview.vue");
form = require("@/views/workflow/main/slsqxx/sllmslxx");
break;
//农用地使用权
case "nydsyqslxx100":
form = require("@/views/ywbl/slsqxx/nydsyq/slxx.vue");
break;
case "nydsyqslxx200":
form = require("@/views/ywbl/slsqxx/nydsyq/slxx200.vue");
form = require("@/views/workflow/main/slsqxx/nydsyq/slxx.vue");
break;
//查封登记
case "tdslxxCfdj":
form = require("@/views/ywbl/slsqxx/cfdj/tdslxx.vue");
form = require("@/views/workflow/main/slsqxx/cfdj/slxx.vue");
break;
//查封登记(批量)
case "plslxxCfdj":
form = require("@/views/ywbl/slsqxx/cfdj/plcfslxx.vue");
form = require("@/views/workflow/main/slsqxx/cfdj/batchSlxx.vue");
break;
//抵押权
case "diyaqSlxx":
form = require("@/views/ywbl/slsqxx/diyaq/slxx.vue");
form = require("@/views/workflow/main/slsqxx/diyaq/slxx.vue");
break;
//抵押权(批量)
case "batchDiyaq":
form = require("@/views/ywbl/slsqxx/diyaq/batchSlxx.vue");
form = require("@/views/workflow/main/slsqxx/diyaq/batchSlxx.vue");
break;
//预告买卖登记
case "ygmm100":
case "ygmm300":
form = require("@/views/workflow/main/slsqxx/ygdj/slxx.vue");
break;
//预告抵押登记
case "ygdy100":
case "ygdy300":
form = require("@/views/workflow/main/slsqxx/ygdy/slxx.vue");
break;
case "clxx":
form = require("@/views/workflow/components/clxx/clxxUnify.vue");
//在建工程抵押权
case "zjgcdyqSlxx":
form = require("@/views/workflow/main/slsqxx/zjgcdy/slxx.vue");
break;
case "spyj":
form = require("@/views/workflow/components/spyj.vue");
//在建工程抵押权(批量)
case "batchZjgcdyq":
form = require("@/views/workflow/main/slsqxx/zjgcdy/batchSlxx.vue");
break;
case "swxx":
form = require("@/views/workflow/components/swxx.vue");
case "clxx"://材料信息
form = require("@/views/workflow/main/clxx/clxxUnify.vue");
break;
case "sfxx":
form = require("@/views/workflow/components/sfxx.vue");
case "spyj"://审批意见
form = require("@/views/workflow/main/spyj");
break;
case "sdqxx":
form = require("@/views/workflow/components/sdqxx.vue");
case "swxx"://税务信息
form = require("@/views/workflow/main/swxx");
break;
case "zdjbxx":
form = require("@/views/registerBook/zdjbxx.vue");
case "sfxx"://收费信息
form = require("@/views/workflow/main/sfxx");
break;
case "ygmm100":
form = require("@/views/ywbl/slsqxx/ygdj/slxx.vue");
case "sdqxx"://水电气信息
form = require("@/views/workflow/main/sdqxx");
break;
case "ygmm300":
form = require("@/views/ywbl/slsqxx/ygdj/slxx300.vue");
case "zdjbxx"://宗地基本信息
form = require("@/views/registerBook/zdjbxx.vue");
break;
case "ygdy100":
case "ygdy300":
form = require("@/views/ywbl/slsqxx/ygdy/slxx.vue");
case "szxx"://缮证信息
form = require("@/views/workflow/main/szxx");
break;
case "zjgcdyqSlxx":
form = require("@/views/ywbl/slsqxx/zjgcdy/slxx.vue");
case "fzxx"://发证信息
form = require("@/views/workflow/main/fzxx");
break;
case "batchZjgcdyq":
form = require("@/views/ywbl/slsqxx/zjgcdy/batchSlxx.vue");
case "zdjbxxImg"://宗地图
form = require("@/views/workflow/main/zdt");
break;
case "cfdjxx":
form = require("@/views/registerBook/cfdj.vue");
......@@ -127,16 +141,7 @@ export function getForm (tabName) {
case "ygdjQlxx":
form = require("@/views/registerBook/ygdj.vue");
break;
case "szxx":
form = require("@/views/workflow/components/szxx.vue");
break;
case "fzxx":
form = require("@/views/workflow/components/fzxx.vue");
break;
case "zdjbxxImg":
form = require("@/views/workflow/components/zdt.vue");
break;
default:
default://默认地址404空页面
form = require("@/views/error-page/404.vue");
break;
}
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-19 10:15:07
-->
<template>
<dialogBox title="新建材料信息" width="25%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
:isFullscreen="false">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="材料类型" prop="cllx">
<el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="材料名称" prop="clmc">
<el-input v-model="ruleForm.clmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item
label="是否公共材料">
<el-radio-group
v-model="ruleForm.sfggcl">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
</dialogBox>
</template>
<script>
import { mapGetters } from "vuex";
export default {
props: {
value: { type: Boolean, default: false },
},
data () {
return {
myValue: this.value,
ruleForm: {
cllx: "",
clmc: "",
sfggcl: "0"
},
rules: {
cllx: [
{ required: true, message: '请选择材料类型', trigger: 'change' }
],
clmc: [
{ required: true, message: '请输入材料名称', trigger: 'blur' }
],
clbm: [
{ required: true, message: '请输入材料编码', trigger: 'blur' }
]
}
}
},
computed: {
...mapGetters(["dictData"]),
},
watch: {
value (val) {
this.myValue = val;
},
},
methods: {
/**
* @description: closeDialog
* @author: renchao
*/
closeDialog () {
this.$emit("input", false);
this.ruleForm = {
cllx: "",
clmc: "",
sfggcl: "0"
}
},
/**
* @description: handleSubmit
* @author: renchao
*/
handleSubmit () {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
this.$parent.addSave(this.ruleForm);
this.ruleForm = {
cllx: "",
clmc: "",
sfggcl: "0"
}
this.$emit("input", false);
} else {
return false;
}
})
}
}
};
</script>
<style scoped lang="scss">
.submit-button {
text-align: center;
height: 52px;
padding-top: 10px;
background-color: #fff;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-10-24 17:16:18
-->
<template>
<div class="clmlmx-box">
<lb-table :column="column" :key="key" row-key="bsmSj" ref="listTable" :heightNumSetting="true" :calcHeight="600"
:pagination="false" :data="tableData">
</lb-table>
<div class="text-center">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="handleSubmit" :loading="loading" v-if="formData.ableOperation && tableData.length>0">保存</el-button>
</div>
</div>
</template>
<script>
import Vue from 'vue'
import Sortable from 'sortablejs'
import store from '@/store/index.js'
import { updateClml } from "@/api/clxx.js";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
loading: false,
sortable: null,
column: [
{
prop: "isrequired",
label: "是否必选",
width: "80",
render: (h, scope) => {
if (scope.row.isrequired === "1") {
return (
<div>
<span>必选</span>
</div>
);
}
else {
return (
<div>
<span>可选</span>
</div>
)
}
}
},
{
label: "材料名称",
render: (h, scope) => {
return (
(this.formData.ableOperation && scope.row.sfxjcl == '1') ?
<el-input value={scope.row.sjmc} onInput={(val) => { scope.row.sjmc = val }}></el-input> : <span>{scope.row.sjmc}</span>
)
}
},
{
label: "材料类型",
width: "110",
render: (h, scope) => {
return (
this.formData.ableOperation ?
<el-select value={scope.row.sjlx}
onChange={(val) => { scope.row.sjlx = val }}>
{
store.getters.dictData['A40'].map(option => {
return (
<el-option label={option.dname} value={option.dcode}></el-option>
)
})
}
</el-select> : <span>{this.dicStatus(scope.row.sjlx, "A40")}</span>
)
}
},
{
prop: "sjsl",
label: "收件数量",
width: "80",
render: (h, scope) => {
return (
(this.formData.ableOperation) ?
<el-input value={scope.row.sjsl} onInput={(val) => { scope.row.sjsl = val }}></el-input> : <span>{
scope.row.sjsl
}</span>
)
}
},
{
label: "扫描时间",
width: "140",
render: (h, scope) => {
return (
<span>{scope.row.sjsj}</span>
)
}
},
{
label: "页数",
width: "60",
render: (h, scope) => {
if (scope.row.ys && scope.row.ys > 0) {
return (
<div>
<span>{scope.row.ys}</span>
</div>
);
} else {
return (
<div>
<span>0</span>
</div>
);
}
},
},
{
label: "是否新建材料",
width: "80",
render: (h, scope) => {
if (scope.row.sfxjcl && scope.row.sfxjcl == '1') {
return (
<span></span>
);
} else {
return (
<span></span>
);
}
},
},
{
label: "操作",
width: "100",
render: (h, scope) => {
return (
<el-button
type="text"
icon="el-icon-delete"
disabled={!(scope.row.ys == 0 && scope.row.sfxjcl == '1') || !this.formData.ableOperation}
onClick={() => {
this.handleDelete(scope.$index, scope.row);
}}
>
删除
</el-button>
)
}
}
],
key: 0,
tableData: []
}
},
watch: {
'formData.data': {
handler: function (val, oldVal) {
this.tableData = _.cloneDeep(val)
},
immediate: true,
deep: true
}
},
mounted () {
this.initSort()
},
beforeDestroy () {
if (this.sortable) {
this.sortable.destroy();
}
},
methods: {
handleSubmit () {
this.loading = true
store.dispatch('user/reWorkFresh', false)
updateClml(this.tableData, this.formData.bsmSldy, Vue.prototype.$currentRoute.query.bsmSlsq).then(res => {
this.loading = false
if (res.code == 200) {
this.$message({
message: '保存成功',
type: 'success'
})
this.$popupCacel()
store.dispatch('user/reWorkFresh', true)
}
}).catch(() => {
this.loading = false
})
},
/**
* @description: 材料目录删除
* @param {*} index
* @param {*} row
*/
handleDelete (index, row) {
this.$confirm('此操作将永久删除该 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1);
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
initSort () {
const el = this.$refs.listTable.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
this.sortable = Sortable.create(el, {
ghostClass: 'sortable-ghost',
setData: function (dataTransfer) {
dataTransfer.setData('Text', '')
},
onEnd: evt => {
const targetRow = this.tableData.splice(evt.oldIndex, 1)[0];
this.tableData.splice(evt.newIndex, 0, targetRow);
}
})
},
dicStatus (val, code) {
let data = store.getters.dictData[code],
name = '暂无'
if (data) {
data.map((item) => {
if (item.dcode == val) {
name = item.dname
}
})
return name
}
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
.clmlmx-box {
margin: 0 auto;
.title {
text-align: center;
height: 60px;
line-height: 60px;
border: 1px solid #dfe6ec;
font-size: 20px;
background: #81d3f81a;
margin-bottom: -1px;
}
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-10-24 16:08:44
-->
<template>
<div class="clxx">
<!-- 材料预览 -->
<div class="clyl-box">
<div class="menu-tree">
<el-button
type="primary"
native-type="submit"
@click="viewDetail"
style="width: 100%; margin-top: 10px">申请材料目录</el-button>
<div class="item">
材料目录({{ tableData.length }})
<div class="tableList">
<div
style="
text-align: center;
line-height: 20px;
color: black;
font-size: 14px;
"
v-if="tableData.length == 0">
暂无数据
</div>
<div
v-for="(item, index) in tableData"
:key="item.bsmSj"
:class="['child', treeCheckId == item.bsmSj ? 'checked' : '']"
@click="treeClick(item, index)">
<span v-if="item.isrequired == 1" class="required">必选</span>
<span class="item_name">{{ item.sjmc }}</span>
<span class="cl_number" :key="key">({{ item.ys ? item.ys : 0 }})</span>
</div>
</div>
</div>
<el-button
type="primary"
native-type="submit"
style="width: 100%"
@click="handleAdd()"
v-if="ableOperation">新增</el-button>
</div>
<image-preview
ref="imageRef"
:key="imgKey"
v-if="tableData.length > 0"
:previewImg="previewImg"
:ableOperation="ableOperation"
@updateList="updateList"
@nextPriview="nextPriview"
@prevPriview="prevPriview" />
</div>
<clxxAddDialog v-model="isDialog" />
</div>
</template>
<script>
import { mapGetters } from "vuex";
import clxxAddDialog from "./clxxAddDialog.vue";
import clxxDetailDialog from "./clxxDetailDialog.vue";
import imagePreview from "@/views/components/imagePreview.vue";
import { InitClml, saveClml, getClmxList } from "@/api/clxx.js";
export default {
components: { clxxAddDialog, imagePreview, clxxDetailDialog },
data () {
return {
imgKey: 0,
//表单是否可操作
ableOperation: true,
isDialog: false,
iclass: "",
// 材料目录选中
treeCheckIndex: 0,
treeCheckId: "",
key: 0,
tableData: [],
previewImg: {
// 收件标识码
bsmSj: "",
bsmSlsq: this.$parent.bsmSlsq,
index: 0,
selectedIndex: 0,
imgList: [],
},
};
},
computed: {
...mapGetters(["dictData"]),
},
created () {
this.clmlInitList(1);
},
computed: {
...mapGetters(["workFresh"]),
},
watch: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.clmlInitList(1);
},
},
},
mounted () {
this.ableOperation = this.$parent.ableOperation;
},
methods: {
/**
* @description: 自动预览
* @author: renchao
*/
nextPriview () {
if (this.treeCheckIndex < this.tableData.length) {
this.treeCheckIndex++;
if (this.tableData[this.treeCheckIndex]) {
this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj;
// 判断页数
let ys = this.tableData[this.treeCheckIndex].ys
this.previewImg.index = 0;
// 获取材料明细
if (ys > 0) {
getClmxList(this.treeCheckId).then(res => {
this.previewImg.imgList = res.result ? res.result : [];
})
} else {
this.previewImg.imgList = []
}
this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj;
} else {
this.$message.error('没有最后一张了');
}
}
},
/**
* @description: prevPriview
* @author: renchao
*/
prevPriview () {
if (this.treeCheckIndex >= 1) {
this.treeCheckIndex--;
this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj;
// 判断页数
let ys = this.tableData[this.treeCheckIndex].ys
if (ys > 0) {
// 获取材料明细
getClmxList(this.treeCheckId).then(res => {
this.previewImg.imgList = res.result ? res.result : [];
this.previewImg.index = this.previewImg.imgList.length - 1;
})
} else {
this.previewImg.imgList = [];
this.previewImg.index = 0
}
this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj;
} else {
this.$message.error('没有第一张了');
}
},
/**
* @description: 材料目录明细初始化
* @param {*} type
* @author: renchao
*/
clmlInitList (type) {
//type 1:列表初始化 2:新增材料
return new Promise((resolve) => {
this.unitData = this.$parent.unitData;
var formdata = new FormData();
formdata.append("bsmSlsq", this.$parent.bsmSlsq);
formdata.append("bsmSldy", this.$parent.currentSelectProps.bsmSldy);
InitClml(formdata).then((res) => {
if (res.code == 200) {
resolve(res.code);
if (res.result && res.result.length > 0) {
this.tableData = res.result;
if (type == 1) {
this.treeClick(this.tableData[0], 0);
} else if (type == 2) {
//新增材料后刷新列表焦点置于新增的对象上
this.treeClick(
this.tableData[this.tableData.length - 1],
this.tableData.length - 1
);
}
}
} else {
this.$message.error(res.message);
}
});
});
},
/**
* @description: setChecked
* @param {*} item
* @author: renchao
*/
setChecked (item) {
this.treeCheckId = item.bsmSj;
this.title = item.sjmc;
this.titleYs = 1;
this.titleNum = item.children.length;
this.previewImg.imgList = item.children;
this.previewImg.bsmSj = item.bsmSj;
},
/**
* @description: updateList
* @param {*} val
* @author: renchao
*/
updateList (val) {
let that = this;
if (val.children.length != 0) {
//删除最后一张图片时 val=null
this.tableData.forEach((item) => {
if (item.bsmSj === val.bsmSj) {
item.ys = val.children.length;
}
});
this.previewImg.imgList = _.cloneDeep(val.children);
if (this.previewImg.index == this.previewImg.imgList.length) {
this.previewImg.index = this.previewImg.index - 1;
}
this.key++
} else {
this.previewImg.imgList = [];
this.tableData.forEach((item, index) => {
if (this.treeCheckId == item.bsmSj) {
item.ys = 0;
that.treeCheckIndex = index;
}
});
}
},
/**
* @description: 添加材料目录
* @author: renchao
*/
handleAdd () {
this.isDialog = true;
},
/**
* @description: 新增弹窗保存
* @param {*} data
* @author: renchao
*/
addSave (data) {
let obj = {
bsmSlsq: this.$parent.bsmSlsq,
isrequired: "1",
sjmc: data.clmc,
sjsl: 0,
smzt: "",
ys: 0,
sjlx: data.cllx,
sfxjcl: "1", // 是否必选
sfggcl: data.sfggcl,
};
//是否公共材料
if (data.sfggcl == "0") {
obj["bsmSldy"] = this.$parent.currentSelectProps.bsmSldy;
}
if (this.$route.query?.djywbm == "DJBBL") {
obj.bsmSldy = this.$parent.bsmRepair
}
saveClml(obj).then(async (res) => {
if (res.code == 200) {
let res = await this.clmlInitList(2);
if (res == 200)
this.$message({
message: "新增成功",
type: "success",
});
}
});
},
/**
* @description: 材料目录点击选中
* @param {*} item
* @param {*} index
* @author: renchao
*/
treeClick (item, index) {
this.previewImg.index = 0;
this.treeCheckId = item?.bsmSj;
this.treeCheckIndex = index;
// 获取材料明细
getClmxList(item.bsmSj).then(res => {
this.previewImg.imgList = res.result ? res.result : [];
})
this.previewImg.bsmSj = item?.bsmSj;
if (this.$refs.imageRef) {
this.$refs.imageRef.initialIndex = 0
}
this.imgKey++
},
/**
* @description: 小图片点击
* @param {*} item
* @param {*} index
* @author: renchao
*/
imgClick (item, index) {
this.showImg = item;
this.titleYs = index + 1;
},
//查看明细
async viewDetail () {
await this.clmlInitList();
this.$store.dispatch("user/reWorkFresh", false);
this.$popupDialog(
"申请材料目录",
"workflow/components/dialog/clxxDetailDialog",
{
data: this.tableData,
bsmSldy: this.$parent.currentSelectProps.bsmSldy,
unitData: this.$parent.unitData,
ableOperation: this.$parent.ableOperation,
bsmRepair: this.$parent.bsmRepair
},
"60%",
true
)
},
//设置tableData
setTableData (tableData) {
this.$nextTick((res) => {
this.tableData = tableData;
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.active {
background: $light-blue !important;
color: #fff;
}
.required {
font-size: 12px;
color: $pink;
float: left;
}
.cl_number {
width: 30px;
}
.clxx {
width: 100%;
display: flex;
padding-left: 5px;
height: calc(100vh - 125px);
.left {
display: flex;
flex-direction: column;
justify-content: space-between;
.item {
width: 28px;
height: 49%;
@include flex-center;
background-color: #e4e7ed;
border-bottom-right-radius: 10px;
padding: 5px;
cursor: pointer;
transition: all 0.3s;
&:hover {
@extend .active;
}
}
}
.clmlmx-box {
margin: 0 auto;
.title {
text-align: center;
height: 60px;
line-height: 60px;
border: 1px solid #dfe6ec;
font-size: 20px;
background: #81d3f81a;
margin-bottom: -1px;
}
}
.clyl-box {
width: 100%;
height: 100%;
display: flex;
.tableList {
margin-top: 10px;
}
.menu-tree {
width: 20%;
min-width: 160px;
height: 100%;
font-size: 14px;
border-right: 1px dotted #d9d9d9;
padding: 0 10px;
.item {
line-height: 30px;
padding-top: 5px;
border-bottom: 1px solid #e8e8e8;
font-size: 16px;
text-align: center;
color: $light-blue;
.itemIcon {
float: right;
line-height: 60px;
cursor: pointer;
}
.child {
line-height: 32px;
border-bottom: 1px solid #e8e8e8;
padding-left: 10px;
color: #6b6b6b;
cursor: pointer;
box-sizing: border-box;
border-radius: 6px;
line-height: 20px;
transition: all 0.3s;
padding: 8px 0;
overflow: hidden;
display: flex;
justify-content: space-between;
}
.item_name {
flex: 1;
font-size: 14px;
display: flex;
justify-content: center;
}
.child:hover {
color: $light-blue;
transform: scale(1.1);
}
.checked {
border: 1px solid $light-blue;
color: $light-blue;
box-sizing: border-box;
}
}
}
.clyl-img {
width: 75%;
height: 100%;
background: #f3f4f7;
margin: 0 auto;
position: relative;
}
}
}
</style>
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-10-11 10:59:12
*/
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data extends filter {
constructor() {
super()
}
columns () {
return {
//发证列表
fzgrid: [
{
label: '序号',
type: 'index',
width: '50'
},
{
prop: "fzrmc",
label: "发证人"
},
{
prop: "bdcqzlx",
label: "不动产权证类型",
width: '120',
render: (h, scope) => {
return (
<div>
<span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
<span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
</div>
)
}
},
{
label: "权利类型",
width: '100',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.qllx} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.qllx}</span>
</el-tooltip>
)
}
},
{
prop: "ysxlh",
label: "印刷序列号",
width: '100',
},
{
prop: "bdcqzh",
label: "不动产权证号",
width: '190',
},
{
label: "权利人",
minWidth: '120',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.qlr} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.qlr}</span>
</el-tooltip>
)
}
},
{
prop: "ywr",
label: "义务人"
},
{
label: "面积(㎡)",
width: '100',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.mj}</span>
</el-tooltip>
)
}
},
{
label: "坐落",
minWidth: '150',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.zl} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.zl}</span>
</el-tooltip>
)
}
},
{
prop: "fzsj",
label: "发证时间",
width: '140',
},
{
prop: "lzrxm",
label: "领证人姓名"
},
],
//领证证列表
lzgrid: [
{
type: 'selection'
},
{
label: '序号',
type: 'index',
width: '50'
},
{
prop: "bdcqzlx",
label: "不动产权证类型",
width: '120',
render: (h, scope) => {
return (
<div>
<span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
<span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
</div>
)
}
},
{
prop: "qllx",
label: "权利类型"
},
{
prop: "ysxlh",
label: "印刷序列号",
width: '100',
},
{
prop: "bdcqzh",
label: "不动产权证号"
},
{
prop: "qlr",
label: "权利人"
},
{
prop: "ywr",
label: "义务人"
},
{
label: "面积(㎡)",
width: '100',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.mj}</span>
</el-tooltip>
)
}
},
{
prop: "zl",
label: "坐落"
}
]
}
}
}
let datas = new data()
export {
datas,
sendThis
}
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-28 16:28:43
-->
<template>
<div class="from-clues">
<!-- 发证信息 -->
<div class="from-clues-header">
<el-form :model="ruleForm">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="印刷序列号">
<el-input v-model="ruleForm.ysxlh" clearable placeholder="请输入印刷序列号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证书号">
<el-input v-model="ruleForm.zsh" clearable placeholder="请输入证书号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="权利人">
<el-input v-model="ruleForm.qlr" clearable placeholder="请输入权利人"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" class="btnColRight" v-if="viewEdit">
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button>
<el-button type="primary" icon="el-icon-search" @click="zslqClick">证书领取</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="from-clues-content">
<lb-table border :column="tableData.columns" :heightNum="210" :data="tableData.data" :pagination="false">
</lb-table>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import store from '@/store/index.js'
import table from "@/utils/mixin/table";
import { datas } from "./fzxxdata";
import { getCertificateList } from "@/api/bdcqz.js";
export default {
mixins: [table],
data () {
return {
//表单是否可操作
viewEdit: false,
ruleForm: {
ysxlh: '',
zsh: '',
qlr: '',
bsmSldy: ''
},
tableData: {
total: 0,
columns: datas.columns().fzgrid,
data: []
},
dialogVisible: false
}
},
created () {
this.viewEdit = this.$parent.currentSelectTab.ableOperation
},
computed: {
...mapGetters(['workFresh'])
},
watch: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.queryClick()
}
}
},
methods: {
/**
* @description: queryClick
* @author: renchao
*/
queryClick () {
this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
getCertificateList(this.ruleForm).then(res => {
if (res.code === 200) {
this.tableData.data = res.result ? res.result : []
}
})
},
/**
* @description:
* @author: renchao
*/
zslqClick () {
store.dispatch('user/reWorkFresh', false)
this.$popupDialog("不动产权证领取", "workflow/main/fzxx/zslq", {}, '80%', true)
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-19 14:45:09
-->
<template>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="发证人姓名">
<el-input v-model="ruleForm.fzrmc" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发证时间">
<el-input v-model="ruleForm.fzsj" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发证数量">
<el-input v-model="ruleForm.fzsl" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<lb-table :column="tableData.columns" @row-dblclick="handleRowClick" ref="table" @selection-change="handleSelectionChange"
:data="tableData.data"
:pagination="false"
:calcHeight="300">
</lb-table>
<el-row>
<el-col :span="3">
<el-form-item label="身份证读卡器">
<el-button type="text" icon="el-icon-tickets" @click="readClick">读取</el-button>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="领证人" prop="lzrxm" label-width="70px">
<el-input v-model="ruleForm.lzrxm"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="证件类型" prop="lzrzjlb" label-width="80px">
<el-select v-model="ruleForm.lzrzjlb" filterable clearable placeholder="请选择">
<el-option v-for="item in lzrzjlbData" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="证件号" prop="lzrzjh" label-width="70px">
<el-input v-model="ruleForm.lzrzjh"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="领证人电话" prop="lzrdh">
<el-input v-model="ruleForm.lzrdh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="text-center">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="handleSubmit">确定</el-button>
</el-form-item>
</el-form>
</template>
<script>
const checkPhone = (rule, value, callback) => {
let regPone = null
let mobile = /^(1[3456789]\d{9})$/ //手机号
let tel = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/ // 座机
if (value && value[0] === '0') {// 检查 value 是否存在并且不是 null 或者 undefined
regPone = tel
} else if (value && value[0] !== '0') {
regPone = mobile
}
if (regPone === null) {
return callback(
new Error('请输入电话')
)
} else if (!regPone.test(value)) {
return callback(
new Error("请输入正确的电话格式,其中座机格式'区号-座机号码'")
)
} else {
callback()
}
};
import Vue from 'vue'
import store from '@/store/index.js'
import table from "@/utils/mixin/table";
import { getIdCardInfo } from '@/utils/operation.js'
import { getUnclaimedBdcqz, issueCertificate, getBdcqzQlr } from "@/api/bdcqz.js";
import { datas } from "@/views/workflow/main/fzxx/fzxxdata";
import { log } from 'bpmn-js-token-simulation';
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
mixins: [table],
data () {
return {
lzrzjlbData: store.getters.dictData['A30'],
ruleForm: {
fzrmc: '',
fzsj: '',
fzsl: '',
bdcqzList: [],
lzrxm: '',
lzrzjlb: '',
lzrzjh: '',
lzrdh: ''
},
rules: {
lzrxm: [
{ required: true, message: '请输入领证人', trigger: 'blur' }
],
lzrzjlb: [
{ required: true, message: '请选择证件类型', trigger: 'change' }
],
lzrzjh: [
{ required: true, message: '请输入证件号', trigger: 'blur' }
],
lzrdh: [
{ required: true, validator: checkPhone, trigger: ["blur"] }
]
},
tableData: {
total: 0,
columns: datas.columns().lzgrid,
data: []
}
}
},
mounted () {
this.$nextTick(() => {
this.loadGrid()
})
},
methods: {
/**
* @description: 身份证打卡器
* @author: renchao
*/
readClick () {
function getObjectByValue (arrayOfObjects, value) {
var name = ''
arrayOfObjects.forEach(item => {
if (item.dname.includes(value)) name = item.dcode
})
return name
}
getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
if (this.BASE_API.gaopaiyi == 'jy') {
const {
Name,
IdNo,
} = JSON.parse(res)
if (Name) {
this.ruleForm.lzrxm = Name;
this.ruleForm.lzrzjlb = '1';
this.ruleForm.lzrzjh = IdNo;
this.$message({
message: '读取成功!',
type: 'success'
})
} else {
this.$message({
message: '请放置身份证',
type: 'warning'
})
}
} else {
if (res.data.code == 0) {
let data = res.data.IDCardInfo
this.ruleForm.lzrxm = data.name
this.ruleForm.lzrzjlb = '1'
this.ruleForm.lzrzjh = data.cardID
this.$message({
message: '读取成功!',
type: 'success'
})
} else {
this.$message({
message: res.data.message,
type: 'warning'
})
}
}
})
},
/**
* @description: 列表初始化
* @author: renchao
*/
loadGrid () {
let that = this
getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => {
if (res.code === 200) {
this.tableData.data = res.result.list;
this.$nextTick(() => {
this.tableData.data.forEach(item => {
that.$refs.table.toggleRowSelection(item)
})
})
this.ruleForm.fzrmc = res.result.fzrmc
this.ruleForm.fzsj = res.result.fzsj
this.ruleForm.fzsl = res.result.fzsl
this.ruleForm.bdcqzList = res.result.list;
res.result.list.length && this.getQlr(res.result.list[0].bsmBdcqz)
}
})
},
/**
* @description: 获取权利人信息
* @author: renchao
*/
getQlr (bsmBdcqz) {
getBdcqzQlr(bsmBdcqz).then(res => {
if (res.code === 200) {
this.ruleForm.lzrxm = res.result.qlrmc;
this.ruleForm.lzrzjlb = res.result.zjzl;
this.ruleForm.lzrzjh = res.result.zjh;
this.ruleForm.lzrdh = res.result.dh;
}
})
},
/**
* @description: handleSelectionChange
* @param {*} val
* @author: renchao
*/
handleSelectionChange (val) {
this.ruleForm.bdcqzList = val
},
/**
* @description: handleRowClick
* @param {*} row
* @author: renchao
*/
handleRowClick (row) {
this.$refs.table.toggleRowSelection(row)
},
/**
* @description: handleSubmit
* @author: renchao
*/
handleSubmit () {
this.$refs.ruleForm.validate(valid => {
if (valid) {
issueCertificate(this.ruleForm).then(res => {
if (res.code == 200) {
this.$message.success('保存成功');
//刷新列表
store.dispatch('user/reWorkFresh', true)
this.$popupCacel()
} else {
this.$message.error(res.message)
}
})
} else {
return false;
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-14 17:19:26
-->
<template>
<div class="slxx sdqxx">
<el-form
:model="ruleForm"
ref="ruleForm"
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="130px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
电力信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="服务代码:">
<el-input v-model="ruleForm.serviceCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="行政区划区县代码:">
<el-input v-model="ruleForm.areacode"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记系统业务号:">
<el-input v-model="ruleForm.ywh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="推送日期:">
<el-input v-model="ruleForm.SENDTIME"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="原户主姓名:">
<el-input v-model="ruleForm.mcOld"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="原户主身份证号码:">
<el-input v-model="ruleForm.zjhmOld"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="原户主联系电话:">
<el-input v-model="ruleForm.lxdhOld"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="新户主姓名:">
<el-input v-model="ruleForm.mcNew"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="新户主身份证号码:">
<el-input v-model="ruleForm.zjhmNew"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="新户主联系电话:">
<el-input v-model="ruleForm.lxdhNew"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房产证编号:">
<el-input v-model="ruleForm.fczbh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否过户:">
<el-switch
v-model="ruleForm.sfgh"
:active-value='1'
active-text="是"
:inactive-value="0"
inactive-text="否">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="房屋坐落(地址):">
<el-input v-model="ruleForm.fwzl" type="textarea"
:rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row class="btn" v-if="viewEdit">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</div>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { getDlxxByBsmSldy, saveOrUpdateDlxx } from "@/api/sfxx.js";
export default {
computed: {
...mapGetters(["dictData", "flag"]),
},
mounted () {
// this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
console.log(this.propsParam)
this.getDlxxByBsmSldy()
},
data () {
return {
loading: false,
//表单是否可操作
viewEdit: false,
ruleForm: {
SFGH: 1
}
}
},
methods: {
getDlxxByBsmSldy() {
getDlxxByBsmSldy(this.propsParam.bsmSldy).then((res) => {
if (res.code === 200) {
if (res.result != null) {
this.ruleForm = res.result
}
}
});
},
saveOrUpdateDlxx() {
saveOrUpdateDlxx(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message.success("成功")
}
});
},
onSubmit () {
this.saveOrUpdateDlxx()
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-12-29 16:35:50
-->
<template>
<div class='sfxx'>
<div class="sfxx-left">
<div class="slxx_title title-block">
基本信息
<div class="triangle"></div>
</div>
<ul>
<li>
<p>业务号</p>
<p>{{detail.ywh}}</p>
</li>
<li>
<p>申请登记类型</p>
<p>{{detail.sqdjlx}}</p>
</li>
<li>
<p>联系人</p>
<p>{{detail.lxr}}</p>
</li>
<li>
<p>联系人电话</p>
<p>{{detail.lxdh}}</p>
</li>
<li>
<p>缴费人</p>
<p><el-input v-model="detail.jfr"></el-input></p>
</li>
<li>
<p>缴费单号</p>
<p><el-input v-model="detail.jfdh"></el-input></p>
</li>
<li>
<p>应收金额</p>
<p style="color:red">{{detail.ysje}}</p>
</li>
<li>
<p>实收金额</p>
<p><el-input v-model="detail.ssje"></el-input></p>
</li>
<li>
<p>备注</p>
<p><el-input v-model="detail.bz"></el-input></p>
</li>
</ul>
</div>
<div class="sfxx-right">
<div class="slxx_title title-block">
收费明细
<!-- <div class="triangle"></div> -->
<el-button type="primary" @click="hanldeAdd" style="float:right;margin-top:-5px">增加</el-button>
</div>
<el-table :data="tableData.data" border :height="355">
<el-table-column v-for="item in tableData.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
</el-table-column>
<el-table-column label="操作" width="50">
<template slot-scope="scope">
<el-button type="text" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="slxx_title title-block">
票据
<div style="height:250px">
<img src="../../../../image/pj.jpg" alt="" style="height:100%">
</div>
</div>
</div>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { getSfmxList, deleteSfmx } from "@/api/sfxx.js";
export default {
components: {},
data () {
return {
detail: {
ywh: '',
sqdjlx: '',
lxr: '',
lxdh: '',
jfr: '',
jfdh: '',
ysje: '',
ssje: '',
bz: ''
},
tableData: {
columns: [
{
prop: "sfdw",
label: "收费单位",
},
{
label: '是否额外收费',
align: 'center',
render: (h, scope) => {
return (
<div>
{scope.row.sfewsf == '1' ? <span></span> : <span>否</span>}
</div>
)
}
},
{
prop: "sfry",
label: "收费人员",
},
{
prop: "sfkmmc",
label: "收费科目名称",
},
{
prop: "sjffr",
label: "实际付费人",
},
{
prop: "ssje",
label: "实收金额",
},
{
prop: "ysje",
label: "应收金额",
}
],
data: []
}
}
},
computed: {
...mapGetters(["workFresh"]),
},
watch: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.getList();
},
},
},
mounted () {
this.getList()
},
methods: {
getList () {
let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
getSfmxList(bsmBusiness).then(res => {
this.tableData.data = res.result
})
},
hanldeAdd () {
let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
this.$popupDialog('新增', 'workflow/components/dialog/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
},
handleDelete (row) {
let that = this
this.$confirm('此操作将永久删除该 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteSfmx(row.bsmSf).then(res => {
if (res.code == 200) {
that.$message({
message: '删除成功!',
type: 'success'
})
that.getList()
} else {
that.$message({
type: 'info',
message: res.message
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
.sfxx {
display: flex;
padding: 10px;
height: 100%;
box-sizing: border-box;
&-left {
width: 50%;
margin-right: 10px;
ul {
border-radius: 3px;
}
li:last-child {
border-bottom: 1px solid #e8e5e5;
}
li {
display: flex;
border: 1px solid #e8e5e5;
border-bottom: none;
p:nth-child(1) {
width: 35%;
text-align: center;
background-color: #fafafa;
border-right: 1px solid #e8e5e5;
padding: 10px 0;
}
p:nth-child(2) {
width: 65%;
display: flex;
align-items: center;
box-sizing: border-box;
margin: 0 10px;
}
}
}
&-right {
width: 50%;
margin-left: 10px;
}
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-01 16:27:35
-->
<template>
<div class="slxx">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flagTop" :inline="flag"
label-width="120px">
<div class="slxx_con">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
<el-select disabled v-model="ruleForm.sldyList[0].qllx" filterable clearable placeholder="请选择权利类型">
<el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:">
<el-select disabled v-model="ruleForm.sldyList[0].djlx" filterable clearable placeholder="请选择登记类型">
<el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('400')">
解封信息列表({{ ruleForm.cfdjDetailList.length }} 个)
<div class="triangle"></div>
<cfdjTable :tableData="ruleForm.cfdjDetailList" />
</div>
<div class="slxx_title title-block" v-else>
查封不动产列表({{ ruleForm.ztQlxxList.length }} 个)
<div class="triangle"></div>
<qlxxTable :tableData="ruleForm.ztQlxxList" />
</div>
<div class="slxx_title title-block" v-if="!ruleForm.slsq.djywbm.includes('400')">
批量查封信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="原告:">
<el-input v-model="ruleForm.cfdj.yg" :disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:" >
<el-input v-model="ruleForm.cfdj.cfwh" :disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:">
<el-input v-model="ruleForm.cfdj.cfjg" :disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封期限:">
<el-input v-model="ruleForm.cfdj.cfqx" :disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:">
<el-date-picker v-model="ruleForm.cfdj.cfqssj" class="width100" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd" :disabled="!ableOperation|| isJfOperation"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:">
<el-date-picker v-model="ruleForm.cfdj.cfjssj" class="width100"
:disabled="!ableOperation|| isJfOperation" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:">
<el-input v-model="ruleForm.cfdj.cfwj" :disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:">
<el-input v-model="ruleForm.cfdj.cffw" :disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
<el-col>
<el-form-item :class="flag ? 'marginBot0' : ''" label="附记:">
<el-input class="textArea" type="textarea" v-model="ruleForm.cfdj.fj"
:disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
<el-col>
<el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="cfdj.djyy">
<el-input class="textArea" type="textarea" v-model="ruleForm.cfdj.djyy"
:disabled="!ableOperation|| isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<div v-if="propsParam.djlx == '400'">
<div class="slxx_title title-block">
解封信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="解封机关:">
<el-input v-model="ruleForm.cfdj.jfjg" :disabled="!ableOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="解封文件:">
<el-input v-model="ruleForm.cfdj.jfwj" :disabled="!ableOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="解封文号:">
<el-input v-model="ruleForm.cfdj.jfwh" :disabled="!ableOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<el-row class="btn" v-if="ableOperation">
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-row>
</el-form>
</div>
</template>
<script>
import qlxxTable from "../commonTable/qlxxTable.vue";
import cfdjTable from "../commonTable/cfdjTable";
import { BatchInit, batchSaveData } from "@/api/workflow/cfdjFlow.js";
import { mapGetters } from "vuex";
export default {
data () {
return {
//表单是否可操作
ableOperation: true,
disabled: true,
flagTop: this.flag ? "top" : "",
rules: {
'cfdj.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
},
//传递参数
propsParam: {},
//页面数据
ruleForm: {
slsq: {},
cfdj: {},
},
isJfOperation: false,
tableData: []
}
},
mounted () {
this.ableOperation = this.$parent.currentSelectTab.ableOperation
this.propsParam = this.$attrs;
var formdata = new FormData();
if (this.propsParam.djlx == '400') {
this.isJfOperation = true;
}
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.ableOperation);
BatchInit(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.ruleForm = res.result
}
})
},
components: { qlxxTable,cfdjTable },
props: {
flag: {
type: Boolean,
default: false,
},
fetch: {
type: Boolean,
default: false,
},
},
computed: {
...mapGetters(["dictData"]),
},
methods: {
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
batchSaveData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message.success('保存成功');
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false;
}
});
},
/**
* @description: changeCflx
* @param {*} e
* @author: renchao
*/
changeCflx (e) {
let cflxItem = {}
cflxItem = this.dictData['A32'].find((item) => {
return item.dcode == e
})
this.ruleForm.cfdjList[0].cflxmc = cflxItem.dname;
}
},
};
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-30 15:08:38
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
:label-position="flagTop"
:inline="flag"
label-width="120px">
<div class="slxx_con">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:" prop="slsq.ywh">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:" prop="slsq.slry">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:" prop="slsq.slsj">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:" prop="slsq.qllx">
<el-select
disabled
v-model="ruleForm.sldy.qllx"
filterable
clearable
placeholder="请选择权利类型">
<el-option
v-for="item in dictData['A8']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:" prop="slsq.djlx">
<el-select
disabled
v-model="ruleForm.sldy.djlx"
filterable
clearable
placeholder="请选择登记类型">
<el-option
v-for="item in dictData['A21']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:" prop="slsq.djqx">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
查封不动产情况
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
<el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="不动产权证号:" prop="qlxx.bdcqzh">
<el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="共有情况:">
<el-input disabled v-model="ruleForm.ztQlxx.gyqk"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="被执行人:" prop="qlxx.qlrmc">
<el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="证件种类:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="证件号:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="不动产单元号:" prop="qlxx.bdcdyh">
<el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :class="flag ? 'marginBot0' : ''" label="坐落:">
<el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="权利性质">
<el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="用途:">
<el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="面积:">
<el-input disabled v-model="ruleForm.ztQlxx.qlmjmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
查封信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="原告:" prop="cfdj.cfwh">
<el-input
v-model="ruleForm.cfdj.yg"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:" prop="cfdj.cfwh">
<el-input
v-model="ruleForm.cfdj.cfwh"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:" prop="cfdj.cfjg">
<el-input
v-model="ruleForm.cfdj.cfjg"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封类型:" prop="cfdj.cflxmc">
<el-input v-model="ruleForm.cfdj.cflxmc" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:" prop="cfdj.cfwj">
<el-input
v-model="ruleForm.cfdj.cfwj"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封期限:" prop="cfdj.cfqx">
<el-input
v-model="ruleForm.cfdj.cfqx"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:" prop="cfdj.cfqssj">
<el-date-picker
v-model="ruleForm.cfdj.cfqssj"
class="width100"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:" prop="cfdj.cfjssj">
<el-date-picker
v-model="ruleForm.cfdj.cfjssj"
class="width100"
:disabled="!viewEdit || ableEdit || isJfOperation"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:" prop="cfdj.cffw">
<el-input
v-model="ruleForm.cfdj.cffw"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item :class="flag ? 'marginBot0' : ''" label="附记:" prop="cfdj.fj">
<el-input
v-model="ruleForm.cfdj.fj"
type="textarea"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col>
<el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="cfdj.djyy">
<el-input
class="textArea"
type="textarea"
v-model="ruleForm.cfdj.djyy"
:disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<div v-if="propsParam.djlx == '400'">
<div class="slxx_title title-block">
解封信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="解封机关:" prop="cfdj.jfjg">
<el-input
v-model="ruleForm.cfdj.jfjg"
:disabled="!viewEdit || ableEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="解封文件:" prop="cfdj.jfwj">
<el-input
v-model="ruleForm.cfdj.jfwj"
:disabled="!viewEdit || ableEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :class="flag ? 'marginBot0' : ''" label="解封文号:" prop="cfdj.jfwh">
<el-input
v-model="ruleForm.cfdj.jfwh"
:disabled="!viewEdit || ableEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<el-row class="btn" v-if="viewEdit && !ableEdit">
<el-form-item :class="flag ? 'marginBot0' : ''">
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import sqrViewTable from "@/views/workflow/components/sqrViewTable";
import { Init, saveData } from "@/api/workflow/cfdjFlow.js";
import { mapGetters } from "vuex";
export default {
data () {
return {
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
//表单是否可操作
viewEdit: false,
disabled: true,
flagTop: this.flag ? "top" : "",
rules: {
'cfdj.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
},
//传递参数
propsParam: {},
//页面数据
ruleForm: {},
//是否可编辑
ableEdit: false,
//是否为解封
isJfOperation: false,
};
},
async created () {
this.propsParam = this.$attrs;
this.ableEdit = this.$parent.showBatch;
this.viewEdit = this.$parent.currentSelectTab.ableOperation
if (this.propsParam.djlx == "400") {
this.isJfOperation = true;
}
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.ruleForm = res.result;
} else {
this.$message.error(res.message);
}
});
},
watch: {},
components: { sqrViewTable },
props: {
flag: {
type: Boolean,
default: false,
},
fetch: {
type: Boolean,
default: false,
},
},
computed: {
...mapGetters(["dictData"])
},
methods: {
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message.success("保存成功");
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: changeCflx
* @param {*} e
* @author: renchao
*/
changeCflx (e) {
let cflxItem = {};
cflxItem = this.dictData["A32"].find((item) => {
return item.dcode == e;
});
this.ruleForm.cfdj.cflxmc = cflxItem.dname
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-12-26 15:00:22
-->
<template>
<dialogBox
title="申请人信息"
width="75%"
isMain
v-model="myValue"
:isFullscreen="false"
@submitForm="submitForm"
@closeDialog="closeDialog"
:isButton="isShow">
<el-tabs v-model="activeName" @tab-click="handleClick" class="from-clues-header">
<el-tab-pane label="基本信息" name="1"></el-tab-pane>
<el-tab-pane label="企业信息" v-if="showButton" name="2"></el-tab-pane>
<el-tab-pane label="银行机构" v-if="showButton" name="3"></el-tab-pane>
</el-tabs>
<el-form
v-if="activeName==1"
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="120px">
<el-form-item label="身份证读卡器" style="margin-top:-10px;margin-bottom:0">
<el-button type="text" icon="el-icon-tickets" :disabled="!showButton" @click="readClick">读取</el-button>
<el-button type="primary" v-if="isBz" @click="handleFilings">信息备案</el-button>
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item label="头像">
<el-image style="width:102px;height:126px" :src="ruleForm.avatar || avatar" fit="contain" />
</el-form-item>
</el-col>
<el-col :span="16">
<el-row>
<el-col :span="12">
<el-form-item label="姓名/名称" prop="sqrmc">
<el-input
v-model="ruleForm.sqrmc"
maxlegth="15"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件种类" prop="zjzl">
<el-select
clearable
v-model="ruleForm.zjzl"
:disabled="!showButton"
@change="handleZjzl"
class="width100"
placeholder="请选择">
<el-option
v-for="item in dictData['A30']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="证件号" prop="zjh">
<el-input
v-model="ruleForm.zjh"
:disabled="!showButton"
maxlength="18"
oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" prop="xb">
<el-select
clearable
v-model="ruleForm.xb"
:disabled="!showButton"
class="width100"
placeholder="请选择">
<el-option
v-for="item in dictData['A43']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="联系电话" prop="dh">
<el-input
v-model="ruleForm.dh"
:disabled="!showButton"
maxlength="11"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国家/地区" prop="gj">
<el-input
v-model="ruleForm.gj"
maxlength="3"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="权利人类型" prop="sqrlx">
<el-select
clearable
v-model="ruleForm.sqrlx"
class="width100"
:disabled="!showButton"
placeholder="请选择">
<el-option
v-for="item in dictData['A36']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="户籍所在省市" prop="hjszss">
<el-input
v-model="ruleForm.hjszss"
maxlength="3"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利比例" prop="qlbl">
<el-input
v-model="ruleForm.qlbl"
maxlength="32"
:disabled="!showButton || this.ruleForm.gyfs == 1"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="法人名称" prop="frmc">
<el-input
v-model="ruleForm.frmc"
maxlength="32"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="地址" prop="txdz">
<el-input
v-model="ruleForm.txdz"
maxlength="100"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="发证机关" prop="fzjg">
<el-input
v-model="ruleForm.fzjg"
maxlength="10"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电子邮件" prop="dzyj">
<el-input
v-model="ruleForm.dzyj"
:disabled="!showButton"
maxlength="25"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮编" prop="yb">
<el-input
v-model.number="ruleForm.yb"
:disabled="!showButton"
maxlength="6"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工作单位" prop="gzdw">
<el-input
v-model="ruleForm.gzdw"
maxlength="32"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="代理机构" prop="dlrjg">
<el-input
v-model="ruleForm.dlrjg"
maxlength="32"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="代理人姓名" prop="dlrmc">
<el-input
v-model="ruleForm.dlrmc"
maxlength="15"
:disabled="!showButton"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="代理人证件类型" prop="dlrzjlx">
<el-select
clearable
v-model="ruleForm.dlrzjlx"
:disabled="!showButton"
class="width100"
placeholder="请选择">
<el-option
v-for="item in dictData['A30']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="代理人证件号" prop="dlrzjh">
<el-input
v-model="ruleForm.dlrzjh"
:disabled="!showButton"
maxlength="18"
oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="代理人电话" prop="dlrdh">
<el-input
v-model="ruleForm.dlrdh"
:disabled="!showButton"
maxlength="11"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div v-if="activeName==2" class="padding10">
<el-form :model="queryFormQY" label-width="80px">
<el-row>
<el-col :span="8">
<el-form-item label="姓名/名称">
<el-input placeholder="姓名/名称" v-model="queryFormQY.qymc" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件号">
<el-input placeholder="证件号" v-model="queryFormQY.zjh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8" class="btnColRight">
<el-form-item>
<el-button type="primary" @click="handleSearchQY">查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="tableDataQy.data" border v-Loading="loading" :height="563">
<el-table-column label="序号" type="index" width="50" align="center">
<template slot-scope="scope">
{{(pageData.currentPage - 1) * pageData.pageSize + scope.$index + 1}}
</template>
</el-table-column>
<el-table-column v-for="item in tableDataQy.columns" :key="item.index" :width="item.width" :prop="item.prop" :label="item.label" align="center">
</el-table-column>
<el-table-column label="操作" width="50">
<template slot-scope="scope">
<el-button type="text" @click="handleSelect(scope.row)">使用</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination background layout="prev, pager, next,total" :total="tableDataQy.total"
@current-change="handleQYCurrentChange"></el-pagination>
</div>
<div v-if="activeName==3" class="padding10">
<el-form :model="queryFormYH" label-width="80px">
<el-row>
<el-col :span="8">
<el-form-item label="姓名/名称">
<el-input placeholder="姓名/名称" v-model="queryFormYH.qymc" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件号">
<el-input placeholder="证件号" v-model="queryFormYH.zjh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8" class="btnColRight">
<el-form-item>
<el-button type="primary" @click="handleSearchYH">查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="tableDataYh.data" border v-Loading="loading" :height="563">
<el-table-column label="序号" type="index" width="50" align="center">
<template slot-scope="scope">
{{(pageData.currentPage - 1) * pageData.pageSize + scope.$index + 1}}
</template>
</el-table-column>
<el-table-column v-for="item in tableDataYh.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
</el-table-column>
<el-table-column label="操作" width="50">
<template slot-scope="scope">
<el-button type="text" @click="handleSelect(scope.row)">使用</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination background layout="prev, pager, next,total" :total="tableDataYh.total"
@current-change="handleYHCurrentChange"></el-pagination>
</div>
</dialogBox>
</template>
<script>
import { mapGetters } from "vuex";
import store from '@/store/index.js'
import { getUuid } from "@/utils/operation.js"
import { replace } from "@/api/company.js"
import { getIdCardInfo } from '@/utils/operation.js'
import { queryQyByPage, queryYhByPage, addQy } from "@/api/xxba.js";
import { dataYh, dataQy, sendThis } from "./addSqrData";
export default {
props: {
value: { type: Boolean, default: false },
details: { type: Object, default: {} },
showButton: { type: Boolean, default: false },
},
computed: {
...mapGetters(["dictData"]),
},
data () {
return {
avatar: require('@/image/user.png'),
isShow: false,
isBz: false,
activeName: '1',
loading: false,
myValue: this.value,
ruleForm: {
sqrlx: "",
sqrmc: "111111",
zjzl: "",
zjh: "",
dh: "",
xb: "",
fs: "",
frmc: "",
gj: "",
hjszss: "",
txdz: "",
yb: "",
fzjg: "",
dzyj: "",
qlbl: "",
gzdw: "",
dlrjg: "",
avatar: "",
dlrmc: "",
dlrzjlx: "",
dlrzjh: "",
dlrdh: "",
},
rules: {
sqrlx: [{ required: true, message: "权利人类型", trigger: "change" }],
sqrmc: [{ required: true, message: "姓名/名称", trigger: "blur" }],
zjzl: [{ required: true, message: "证件种类", trigger: "change" }],
zjh: [{ required: true, message: "证件号", trigger: "blur" }],
},
pageData: {
currentPage: 1,
pageSize: 8
},
// 企业
queryFormQY: {
qymc: "",
zjh: ""
},
tableDataQy: {
total: 0,
columns: dataQy.columns(),
data: [],
},
// 银行
queryFormYH: {
qymc: "",
zjh: ""
},
tableDataYh: {
total: 0,
columns: dataYh.columns(),
data: [
],
},
}
},
mounted () {
sendThis(this);
},
watch: {
value (val) {
this.myValue = _.cloneDeep(val)
if (val && Object.keys(this.details).length > 0) {
this.activeName = '1'
}
this.isShow = this.showButton
},
details: {
handler: function (val, oldVal) {
this.ruleForm = _.cloneDeep(val);
},
deep: true
}
},
methods: {
/**
* @description: 证件种类选择
* @param {*} val
* @author: renchao
*/
handleZjzl (val) {
if (['6', '7', '8'].includes(val)) {
this.isBz = true
} else {
this.isBz = false
}
},
/**
* @description: 信息备案
* @author: renchao
*/
handleFilings () {
this.ruleForm.qymc = this.ruleForm.sqrmc
this.ruleForm.dwdz = this.ruleForm.txdz
addQy(this.ruleForm).then(res => {
if (res.code == 200) {
this.$message.success('备案成功')
} else {
this.$message.error(res.message);
}
})
},
/**
* @description: handleClick
* @param {*} event
* @param {*} tab
* @author: renchao
*/
handleClick (event, tab) {
if (this.activeName != 1) {
this.isShow = false
} else {
this.isShow = true
}
this.pageData.currentPage = 1
if (this.activeName == 2) {
this.handleSearchQY()
} else {
this.handleSearchYH()
}
},
/**
* @description:企业查询
* @param {*} val
* @param {*} code
* @author: renchao
*/
dicStatus (val, code) {
let data = store.getters.dictData[code],
name = '暂无'
if (data) {
data.map((item) => {
if (item.dcode == val) {
name = item.dname
}
})
return name
}
},
/**
* @description: 企业信息搜索
* @author: renchao
*/
handleSearchQY () {
let data = { ...this.queryFormQY, ...this.pageData }
this.tableDataQy.data = []
queryQyByPage(data).then((res) => {
if (res.code === 200) {
let { total, records } = res.result;
this.tableDataQy.total = total;
this.tableDataQy.data = records;
this.tableDataQy.data.forEach((item, index) => {
item.zjzlMc = this.dicStatus(item.zjzl, 'A30')
item.sqrmc = item.qymc
item.txdz = item.dwdz
})
}
})
},
/**
* @description: handleQYCurrentChange
* @param {*} val
* @author: renchao
*/
handleQYCurrentChange (val) {
this.pageData.currentPage = val
this.handleSearchQY()
},
/**
* @description: handlesQYSelect
* @param {*} val
* @author: renchao
*/
handleSelect (val) {
let that = this
let bsmSldy = window.currentSelect.bsmSldy ? window.currentSelect.bsmSldy : ''
this.$confirm('是否同步材料信息?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
distinguishCancelAndClose: true,//区分取消与关闭
}).then(() => {
replace(val.bsmCompany, this.$route.query.bsmSlsq, bsmSldy).then(res => {
that.$emit("updateDetail", _.cloneDeep({ ...val, sqrlx: '2', id: getUuid(16) }));
that.$emit("input", false);
if (res.code == 200) {
that.$message({
type: 'success',
message: '同步成功!'
})
} else {
that.$message.error(res.message);
}
})
}).catch(action => {
if (action == 'cancel') {
that.$emit("updateDetail", _.cloneDeep({ ...val, sqrlx: '2' }));
that.$emit("input", false);
}
})
},
/**
* @description: 银行信息搜索
* @author: renchao
*/
handleSearchYH () {
let data = { ...this.queryFormYH, ...this.pageData }
this.tableDataYh.data = []
queryYhByPage(data).then((res) => {
if (res.code === 200) {
let { total, records } = res.result;
this.tableDataYh.total = total;
this.tableDataYh.data = records;
this.tableDataYh.data.forEach((item, index) => {
item.zjzlMc = this.dicStatus(item.zjzl, 'A30')
item.sqrmc = item.qymc
item.txdz = item.dwdz
})
}
})
},
/**
* @description: handleYHCurrentChange
* @param {*} val
* @author: renchao
*/
handleYHCurrentChange (val) {
this.pageData.currentPage = val
this.handleSearchQY()
},
/**
* @description: 身份证打卡器
* @author: renchao
*/
readClick () {
function getObjectByValue (arrayOfObjects, value) {
var name = ''
arrayOfObjects.forEach(item => {
if (item.dname.includes(value)) name = item.dcode
})
return name
}
getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
if (this.BASE_API.gaopaiyi == 'jy') {
const {
Name,
IdNo,
Sex,
Address,
Agencvy,
PhotoB64
} = JSON.parse(res)
if (Name) {
this.ruleForm.sqrmc = Name;
this.ruleForm.zjzl = '1';
this.ruleForm.zjh = IdNo;
this.ruleForm.xb = getObjectByValue(this.dictData['A43'], Sex);
this.ruleForm.txdz = Address;
this.ruleForm.fzjg = Agencvy;
this.ruleForm.avatar = 'data:image/png;base64,' + PhotoB64
this.$message({
message: '读取成功!',
type: 'success'
})
} else {
this.$message({
message: '请放置身份证',
type: 'warning'
})
}
} else {
if (res.data.code == 0) {
let data = res.data.IDCardInfo;
const {
name,
cardID: zjh,
sexCode: xb,
address: txdz,
issueOrgan: fzjg,
photoBase64
} = data
this.ruleForm.sqrmc = name;
this.ruleForm.zjzl = '1';
this.ruleForm.zjh = zjh;
this.ruleForm.xb = xb
this.ruleForm.txdz = txdz;
this.ruleForm.fzjg = fzjg;
this.ruleForm.avatar = 'data:image/png;base64,' + photoBase64
this.$message({
message: '读取成功!',
type: 'success'
})
} else {
this.$message({
message: res.data.message,
type: 'warning'
})
}
}
})
},
/**
* @description: closeDialog
* @author: renchao
*/
closeDialog () {
this.$emit("input", false);
this.$nextTick(() => {
if (this.$refs.ruleForm !== undefined) {
this.$refs.ruleForm.resetFields();
}
})
},
/**
* @description: submitForm
* @author: renchao
*/
submitForm () {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
this.$emit("input", false);
this.ruleForm.id = getUuid(16)
this.$emit("updateDetail", _.cloneDeep(this.ruleForm));
if (this.$refs.ruleForm !== undefined) {
this.$refs.ruleForm.resetFields();
}
} else {
return false;
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/dialogBoxheader.scss";
.submit-button {
text-align: center;
height: 52px;
padding-top: 10px;
background-color: #fff;
}
.padding10 {
padding-bottom: 10px;
}
</style>
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-11 15:32:32
*/
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data1 extends filter {
constructor() {
super()
}
columns () {
return [
{
prop: "sqrmc",
label: "姓名/名称",
},
{
prop: "zjzlMc",
label: "证件种类"
},
{
prop: "zjh",
label: "证件号",
},
{
prop: "frmc",
label: "法人名称",
},
{
prop: "dwdz",
label: "地址",
},
{
prop: "dh",
label: "联系电话",
}
]
}
}
class data2 extends filter {
constructor() {
super()
}
columns () {
return [
{
prop: "sqrmc",
label: "姓名/名称",
},
{
prop: "zjzlMc",
label: "证件种类",
},
{
prop: "zjh",
label: "证件号",
},
{
prop: "frmc",
label: "法人名称",
},
{
prop: "dwdz",
label: "地址",
},
{
prop: "dh",
label: "联系电话",
},
]
}
}
let dataYh = new data1()
let dataQy = new data2()
export {
dataYh,
dataQy,
sendThis
}
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-17 13:51:29
-->
<template>
<lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
key: 0,
column: [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
{
prop: "yg",
label: "原告"
},
{
prop: "cfjg",
label: "查封机关"
},
{
prop: "cfwh",
label: "查封文号"
},
{
prop: "cfqssj",
label: "查封开始时间"
},
{
prop: "cfjssj",
label: "查封结束时间"
},
{
prop: "cflxmc",
label: "查封类型"
},
{
prop: "ywrmc",
label: "被执行人"
},
{
prop: "bcfzh",
label: "被查封证号"
},
{
prop: "bdcdyh",
label: "不动产单元号"
},
{
prop: "zl",
label: "坐落"
}
]
}
},
methods: {
}
}
</script>
<style scoped lang='scss'>
/deep/.el-table th {
height: 30px !important;
}
/deep/.el-table--small .el-table__cell {
padding: 5px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-17 13:51:29
-->
<template>
<lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
key: 0,
column: [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
{
prop: "qlrmc",
label: "抵押权人"
},
{
prop: "ywrmc",
label: "抵押人"
},
{
prop: "bdcqzh",
label: "不动产登记证明号"
},
{
prop: "dyjelx",
label: "抵押金额类型"
},
{
prop: "dyfsmc",
label: "抵押方式"
},
{
prop: "qdjgmc",
label: "抵押金额"
},
{
prop: "qlmjmc",
label: "抵押面积"
},
{
prop: "zwlxqssj",
label: "债务履行开始时间"
},
{
prop: "zwlxjssj",
label: "债务履行结束时间"
},
{
prop: "bdcdyh",
label: "不动产单元号"
},
{
prop: "zl",
label: "坐落"
}
]
}
},
methods: {
}
}
</script>
<style scoped lang='scss'>
/deep/.el-table th {
height: 30px !important;
}
/deep/.el-table--small .el-table__cell {
padding: 5px;
}
</style>
<!--
* @Description: 房屋多幢明细
* @Autor:
* @LastEditTime: 2023-09-01 13:29:29
-->
<template>
<div>
<el-table
:data="tableDataList"
border
:pagination="false"
:key="key"
:header-cell-style="{ 'text-align': 'center' }"
:heightNumSetting="true"
:minHeight="150"
height="150"
style="width: 100%">
<el-table-column prop="index" width="50" :render-header="renderHeader">
<template slot-scope="scope">
<div style="text-align: center">{{ scope.$index + 1 }}</div>
</template>
</el-table-column>
<el-table-column prop="bdcdyh" label="不动产单元号" min-width="100">
<template slot-scope="scope">
<div style="text-align: center">{{ scope.row.bdcdyh }}</div>
</template>
</el-table-column>
<el-table-column prop="xmmc" label="项目名称" min-width="100">
<template slot-scope="scope">
<el-input
class="item"
:disabled="!ableOperation"
v-model="scope.row.xmmc"
placeholder="请输入内容"
@input="updaterow(scope.row)">
</el-input>
</template>
</el-table-column>
<el-table-column prop="fwxz" label="房屋性质" min-width="100">
<template slot-scope="scope">
<treeselect
v-model="scope.row.fwxz"
:disabled="!ableOperation"
noOptionsText="暂无数据"
placeholder=""
:show-count="true"
:options="dictData['A19']"
:normalizer="normalizer"
:appendToBody="true"
z-index="9999"
@input="updaterow(scope.row)" />
</template>
</el-table-column>
<el-table-column prop="ghyt" label="房屋用途" min-width="100">
<template slot-scope="scope">
<treeselect
v-model="scope.row.ghyt"
:disabled="!ableOperation"
noOptionsText="暂无数据"
placeholder=""
:show-count="true"
:options="dictData['A17']"
:normalizer="normalizer"
:appendToBody="true"
z-index="9999"
@input="updaterow(scope.row)" />
</template>
</el-table-column>
<el-table-column prop="fwjg" label="房屋结构" min-width="100">
<template slot-scope="scope">
<treeselect
v-model="scope.row.fwjg"
:disabled="!ableOperation"
noOptionsText="暂无数据"
placeholder=""
:show-count="true"
:options="dictData['A46']"
:normalizer="normalizer"
:appendToBody="true"
z-index="9999"
@input="updaterow(scope.row)" />
</template>
</el-table-column>
<el-table-column prop="jzmj" label="建筑面积" min-width="100">
<template slot-scope="scope">
<el-input
maxlength="12"
class="item"
:disabled="!ableOperation"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
v-model="scope.row.jzmj"
placeholder="请输入内容"
@input="updaterow(scope.row)">
</el-input>
</template>
</el-table-column>
<el-table-column prop="jgsj" label="竣工时间" min-width="100">
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.jgsj"
type="date"
:disabled="!ableOperation"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd"
@input="updaterow(scope.row)">
</el-date-picker>
</template>
</el-table-column>
<el-table-column prop="zcs" label="总层数" min-width="100">
<template slot-scope="scope">
<el-input
class="item"
:disabled="!ableOperation"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
v-model="scope.row.zcs"
placeholder="请输入内容"
@input="updaterow(scope.row)">
</el-input>
</template>
</el-table-column>
<el-table-column prop="zts" label="总套数" min-width="100">
<template slot-scope="scope">
<el-input
class="item"
:disabled="!ableOperation"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
v-model="scope.row.zts"
placeholder="请输入内容"
@input="updaterow(scope.row)">
</el-input>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { mapGetters } from "vuex";
export default {
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return [];
},
},
ableOperation: {
type: Boolean,
default: false,
},
},
data () {
return {
// 键名转换,方法默认是label和children进行树状渲染
key: 0,
tableDataList: [],
normalizer (node) {
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
children: node.children,
};
},
};
},
mounted () {
},
watch: {
tableData: {
handler: function (val, oldVal) {
let that = this;
this.$nextTick(() => {
if (val.length == 0 || !val) {
that.tableDataList = _.cloneDeep([
{
yt: null,
qssj: "",
jssj: "",
tdsyqx: "",
},
]);
} else {
that.tableDataList = _.cloneDeep(val);
}
});
},
immediate: true,
deep: true,
},
},
methods: {
/**
* @description: renderHeader
* @author: renchao
*/
renderHeader () {
return (
<div>
{"序号"}
</div>
);
},
updaterow (a) {
this.$emit("updateFdcwxmList", this.tableDataList);
}
}
}
</script>
<style scoped lang="scss">
.el-input {
border: none !important;
}
/deep/ .el-table__row {
border: none !important;
}
.el-date-editor.el-input {
width: 100%;
}
/deep/ .el-table th {
height: 30px !important;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-17 13:50:53
-->
<template>
<lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
key: 0,
column: [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
// {
// prop: "bdcdyh",
// label: "不动产单元号"
// },
{
prop: "zl",
label: "坐落"
},
{
prop: "shbw",
label: "室号部位"
},
{
prop: "fwxzmc",
label: "房屋性质"
},
{
prop: "sjc",
label: "层号"
},
{
prop: "jzmj",
label: "建筑面积"
},
{
prop: "fwlxmc",
label: "房屋类型"
},
{
prop: "showfwyt",
label: "房屋用途"
},
{
prop: "showfwjg",
label: "房屋结构"
},
]
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
/deep/.el-table th {
height: 30px !important;
}
/deep/.el-table--small .el-table__cell {
padding: 5px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-18 14:55:20
-->
<template>
<div>
<div>
<el-form-item label="共有方式:">
<el-radio-group :disabled="!viewEdit" v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</div>
<lb-table
:column="column" :pagination="false"
:key="key"
:heightNumSetting="true"
:minHeight="0"
:rowStyleHeight="25"
:data="tableDataList"
>
</lb-table>
<addQlr
v-model="dialog"
:details="details"
:showButton="disabled"
@updateDetail="handleupdateDetail"
/>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { getIdCardInfo } from "@/utils/operation.js";
import addQlr from "./addSqr.vue";
export default {
components: {
addQlr,
},
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return [];
},
},
gyfs: {
type: String,
default: "1",
},
disabled: {
type: Boolean,
default: true,
},
},
data() {
return {
key: 0,
dataIndex: 0,
dialog: false,
isaddupdate: false,
details: {},
tableDataList: [],
InformationTable: [
{
width: "50",
renderHeader: (h, scope) => {
return (
<div>
{" "}
{!this.disabled ? (
"序号"
) : (
<i
class="el-icon-plus pointer"
onClick={() => {
this.addClick();
}}
></i>
)}
</div>
);
},
render: (h, scope) => {
return (
<div>
{!this.disabled ? (
<span>{scope.$index + 1}</span>
) : (
<i
class="el-icon-minus pointer"
onClick={() => {
this.deleClick(scope.$index, scope.row);
}}
></i>
)}
</div>
);
},
},
{
label: "身份证读卡器",
align: "center",
render: (h, scope) => {
return (
<el-button
type="text"
icon="el-icon-tickets"
disabled={!this.disabled}
onClick={() => {
this.readClick(scope.row);
}}
>
读取
</el-button>
);
},
},
{
prop: "sqrmc",
label: "姓名/名称",
},
{
prop: "zjzl",
label: "证件种类",
render: (h, scope) => {
return (
this.dictData["A30"] &&
this.dictData["A30"].map((option) => {
if (option.dcode == scope.row.zjzl) {
return <span>{option.dname}</span>;
}
})
);
},
},
{
prop: "zjh",
label: "证件号",
},
{
prop: "dh",
label: "联系电话",
},
{
label: "操作",
render: (h, scope) => {
return (
<div>
{this.disabled ? (
<el-button
icon="el-icon-edit-outline"
type="text"
onClick={() => {
this.editClick(scope.$index, scope.row);
}}
>
编辑
</el-button>
) : (
<el-button
icon="el-icon-view"
type="text"
onClick={() => {
this.queryViewClick(scope.$index, scope.row);
}}
>
{" "}
查看
</el-button>
)}
</div>
);
},
},
],
column: [],
};
},
watch: {
tableData: {
handler: function (val, oldVal) {
let that = this;
this.$nextTick(() => {
if (val.length == 0 || !val) {
} else {
that.tableDataList = _.cloneDeep(val);
that.key++;
}
});
},
immediate: true,
deep: true,
},
gyfs: {
handler(newVal, oldValue) {
let dataList = _.cloneDeep(this.InformationTable);
if (newVal == 0) {
this.column = _.cloneDeep(dataList);
this.tableDataList = _.cloneDeep(this.tableData);
this.key++;
} else if (newVal == "1" || newVal == "3") {
this.column = dataList;
} else {
this.column = _.cloneDeep(dataList);
this.column.splice(2, 0, {
prop: "qlbl",
label: "份数",
});
}
},
immediate: true,
},
},
methods: {
/**
* @description: handleupdateDetail
* @param {*} value
* @author: renchao
*/
handleupdateDetail(value) {
let that = this;
let arr = this.tableData.map((item) => item.zjh);
// if (this.isaddupdate) {
// if (!arr.includes(value.zjh)) {
// this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
// this.$emit('upDateQlrxxList', this.tableDataList)
// } else {
// setTimeout(() => {
// that.$message.error('证件号不能重复')
// }, 1500)
// }
// } else {
// if (!arr.includes(value.zjh) || this.tableData[this.dataIndex].zjh == value.zjh) {
// this.tableDataList[this.dataIndex] = _.cloneDeep(value);
// this.$emit('upDateQlrxxList', this.tableDataList)
// } else {
// setTimeout(() => {
// that.$message.error('证件号不能重复')
// }, 1500)
// }
// }
if (this.isaddupdate) {
if (!_.isEqual(value, this.tableData)) {
this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
this.$emit("upDateQlrxxList", this.tableDataList);
}
} else {
if (!_.isEqual(value, this.tableData)) {
this.tableDataList[this.dataIndex] = _.cloneDeep(value);
this.$emit("upDateQlrxxList", this.tableDataList);
}
}
this.key++;
},
/**
* @description: 新增
* @author: renchao
*/
addClick() {
if (this.gyfs == "0" && this.tableDataList.length > 0) {
this.$message.warning("当前共有方式为单独所有,无法添加多个权利人");
} else {
this.key++;
this.details = {
sqrmc: "",
zjzl: "1",
zjh: "",
xb: "",
txdz: "",
fzjg: "",
};
this.dialog = true;
this.isaddupdate = true;
}
},
/**
* @description: 删除
* @param {*} index
* @param {*} row
* @author: renchao
*/
deleClick(index, row) {
this.tableDataList.splice(index, 1);
this.$emit("upDateQlrxxList", this.tableDataList);
this.key++;
},
/**
* @description: 身份证读取
* @param {*} row
* @author: renchao
*/
readClick(row) {
function getObjectByValue(arrayOfObjects, value) {
var name = "";
arrayOfObjects.forEach((item) => {
if (item.dname.includes(value)) name = item.dcode;
});
return name;
}
getIdCardInfo(this.BASE_API.gaopaiyi).then((res) => {
if (this.BASE_API.gaopaiyi == "jy") {
const { Name, IdNo, Sex, Address, Agencvy, PhotoB64 } =
JSON.parse(res);
if (Name != "") {
row.sqrmc = Name;
row.zjzl = "1";
row.zjh = IdNo;
row.xb = getObjectByValue(this.dictData["A43"], Sex);
row.txdz = Address;
row.fzjg = Agencvy;
row.avatar = "data:image/png;base64," + PhotoB64;
this.$message({
message: "读取成功!",
type: "success",
});
} else {
this.$message({
message: "请放置身份证",
type: "warning",
});
}
} else {
if (res.data.code == 0) {
let data = res.data.IDCardInfo;
const {
name,
cardID: zjh,
sexCode: xb,
address: txdz,
issueOrgan: fzjg,
photoBase64,
} = data;
row.sqrmc = name;
row.zjzl = "1";
row.zjh = zjh;
row.xb = xb;
row.txdz = txdz;
row.fzjg = fzjg;
row.avatar = "data:image/png;base64," + photoBase64;
this.$message({
message: "读取成功!",
type: "success",
});
} else {
this.$message({
message: res.data.message,
type: "warning",
});
}
}
this.$emit("upDateQlrxxList", this.tableDataList);
});
},
/**
* @description: 修改
* @param {*} index
* @param {*} row
* @author: renchao
*/
editClick(index, row) {
this.details = row;
this.details.gyfs = this.gyfs;
this.dataIndex = index;
this.dialog = true;
this.isaddupdate = false;
},
/**
* @description: queryViewClick
* @param {*} index
* @param {*} row
* @author: renchao
*/
queryViewClick(index, row) {
this.details = row;
this.dialog = true;
},
},
};
</script>
<style scoped lang="scss">
/deep/.el-table--small .el-table__cell {
padding: 0 0 !important;
}
/deep/.el-table th {
height: 30px !important;
}
/deep/.el-table .cell {
padding-right: 12px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-17 13:51:29
-->
<template>
<lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
key: 0,
column: [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
{
prop: "qllxmc",
label: "权利类型"
},
{
prop: "bdcqzh",
label: "不动产权证号"
},
{
prop: "qlrmc",
label: "权利人"
},
{
prop: "qlrzjhm",
label: "证件号码"
},
{
prop: "bdcdyh",
label: "不动产单元号"
},
{
prop: "qlxzmc",
label: "权利性质"
},
{
prop: "qlytmc",
label: "用途"
},
{
prop: "qlmjmc",
label: "面积"
},
{
prop: "zl",
label: "坐落"
},
]
}
},
methods: {
}
}
</script>
<style scoped lang='scss'>
/deep/.el-table th {
height: 30px !important;
}
/deep/.el-table--small .el-table__cell {
padding: 5px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-18 14:13:02
-->
<template>
<div>
<el-table
:data="tableDataList"
border
:pagination="false"
:key="key"
:header-cell-style="{ 'text-align': 'center' }"
:heightNumSetting="true"
style="width: 100%">
<el-table-column prop="index" width="50" :render-header="renderHeader">
<template slot-scope="scope">
<i
class="el-icon-minus pointer"
@click="deleClick(scope.$index, scope.row)"
v-if="ableOperation"></i>
<div style="text-align: center" v-else>
{{ scope.$index + 1 }}
</div>
</template>
</el-table-column>
<el-table-column prop="yt" label="土地用途" min-width="100">
<template slot-scope="scope">
<treeselect
v-model="scope.row.yt"
:disabled="!ableOperation"
noOptionsText="暂无数据"
placeholder=""
:show-count="true"
:options="dictData['tdyt']"
:normalizer="normalizer"
:appendToBody="true"
z-index="9999"
@input="addrow(scope.row)" />
</template>
</el-table-column>
<el-table-column prop="qssj" label="土地使用起始时间" min-width="100">
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.qssj"
type="date"
:disabled="!ableOperation"
:picker-options="scope.row.pickerStart"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd"
@input="startTime(scope.$index)">
</el-date-picker>
</template>
</el-table-column>
<el-table-column prop="jssj" label="土地使用结束时间" min-width="100">
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.jssj"
type="date"
:disabled="!ableOperation"
:picker-options="scope.row.pickerEnd"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd"
@input="endTime(scope.$index)">
</el-date-picker>
</template>
</el-table-column>
<el-table-column prop="tdsyqx" label="土地使用期限" min-width="100">
<template slot-scope="scope">
<el-input
class="item"
:disabled="!ableOperation"
v-model="scope.row.tdsyqx"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
placeholder="请输入内容"
@input="sumTime(scope.$index, scope.row.tdsyqx)">
></el-input>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { mapGetters } from "vuex";
export default {
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return [];
},
},
ableOperation: {
type: Boolean,
default: true,
},
},
data () {
return {
// 键名转换,方法默认是label和children进行树状渲染
key: 0,
newdata: {
yt: null,
qssj: "",
jssj: "",
tdsyqx: "",
},
tableDataList: [],
// 起始时间选择范围
pickerStart: {},
pickerEnd: {},
normalizer (node) {
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
children: node.children,
};
},
};
},
mounted () { },
watch: {
tableData: {
handler: function (val, oldVal) {
let that = this;
this.$nextTick(() => {
if (!val || val.length == 0) {
that.tableDataList = _.cloneDeep([
{
yt: null,
qssj: "",
jssj: "",
tdsyqx: "",
},
]);
} else {
that.tableDataList = _.cloneDeep(val);
}
});
},
immediate: true,
deep: true,
},
},
methods: {
/**
* @description: renderHeader
* @author: renchao
*/
renderHeader () {
return (
<div>
{" "}
{!this.ableOperation ? (
"序号"
) : (
<i
class="el-icon-plus pointer"
onClick={() => {
this.addClick();
}}
></i>
)}
</div>
);
},
// 修改事件
/**
* @description: 修改事件
* @author: renchao
*/
addrow (a) {
// this.tableDataList = this.tableDataList.map((item) => {
// return {
// ...item,
// yt: a.yt,
// };
// });
this.$emit("upDateTdytxxList", this.tableDataList);
},
/**
* @description: startTime
* @param {*} index
* @author: renchao
*/
startTime (index) {
console.log("index", index);
// let startTime = this.tableDataList[index].tdsyqssj;
let endTime = this.tableDataList[index].jssj;
let startTime = this.tableDataList[index].qssj;
this.tableDataList[index].pickerEnd = {
disabledDate: (time) => {
if (Object.keys(startTime).length > 0) {
return new Date(startTime).getTime() > time.getTime();
} else {
return time.getTime() < Date.now();
}
},
};
if (startTime && endTime) {
let startYear = new Date(startTime).getFullYear();
let endYear = new Date(endTime).getFullYear();
this.tableDataList[index].tdsyqx = endYear - startYear;
}
this.$emit("upDateTdytxxList", this.tableDataList);
},
/**
* @description: endTime
* @param {*} index
* @author: renchao
*/
endTime (index) {
// let startTime = this.tableDataList[index].tdsyqssj;
let startTime = this.tableDataList[index].qssj;
let endTime = this.tableDataList[index].jssj;
this.tableDataList[index].pickerStart = {
disabledDate: (time) => {
if (Object.keys(endTime).length > 0) {
return new Date(endTime).getTime() < time.getTime();
} else {
return time.getTime() > Date.now();
}
},
};
if (startTime && endTime) {
let startYear = new Date(startTime).getFullYear();
let endYear = new Date(endTime).getFullYear();
this.tableDataList[index].tdsyqx = endYear - startYear;
}
this.$emit("upDateTdytxxList", this.tableDataList);
},
/**
* @description: sumTime
* @param {*} index
* @param {*} tdsyqx
* @author: renchao
*/
sumTime (index, tdsyqx) {
let startTime = this.tableDataList[index].qssj;
this.tableDataList[index].jssj =
Number(startTime.substring(0, 4)) +
Number(tdsyqx) +
startTime.slice(4, 19);
this.$emit("upDateTdytxxList", this.tableDataList);
},
// 新增
/**
* @description: 新增
* @author: renchao
*/
addClick () {
// this.tableDataList[this.tableDataList.length] = _.cloneDeep(this.newdata);
this.tableDataList.push(_.cloneDeep(this.newdata))
this.$emit("upDateTdytxxList", this.tableDataList);
},
// 删除
/**
* @description: 删除
* @param {*} index
* @param {*} row
* @author: renchao
*/
deleClick (index, row) {
this.$confirm("确定要删除吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.tableDataList.splice(index, 1);
this.$emit("upDateTdytxxList", this.tableDataList);
})
.catch(() => { });
},
},
};
</script>
<style scoped lang="scss">
.el-input {
border: none !important;
}
/deep/.el-table__row {
border: none !important;
}
.el-date-editor.el-input {
width: 100%;
}
/deep/.el-table th {
height: 30px !important;
}
/deep/ .el-table--border .el-table__cell:first-child .cell {
text-align: center;
}
/deep/.el-table--small .el-table__cell {
padding: 3px 0 !important;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-18 14:55:20
-->
<template>
<div>
<lb-table :column="column" :pagination="false" :key="key" :heightNumSetting="true" :minHeight="0" :rowStyleHeight='25'
:data="tableDataList">
</lb-table>
<addSqr v-model="dialog" :details="details" :showButton="disabled" @updateDetail="handleupdateDetail" />
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { getIdCardInfo } from '@/utils/operation.js'
import addSqr from './addSqr.vue'
export default {
components: {
addSqr
},
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return []
}
},
disabled: {
type: Boolean,
default: true
}
},
data () {
return {
key: 0,
dataIndex: 0,
dialog: false,
isaddupdate: false,
details: {},
tableDataList: [],
InformationTable: [
{
width: '50',
renderHeader: (h, scope) => {
return <div> {
!this.disabled ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.addClick() }}></i>
}
</div>
},
render: (h, scope) => {
return (
<div>
{
!this.disabled ? <span>{scope.$index + 1}</span> :
<i class="el-icon-minus pointer" onClick={() => { this.deleClick(scope.$index, scope.row) }}></i>
}
</div>
)
}
},
{
label: '身份证读卡器',
align: 'center',
render: (h, scope) => {
return <el-button type="text" icon="el-icon-tickets" disabled={!this.disabled} onClick={() => { this.readClick(scope.row) }}>读取</el-button>
}
},
{
prop: "sqrmc",
label: "姓名/名称"
},
{
prop: "zjzl",
label: "证件种类",
render: (h, scope) => {
return this.dictData['A30'] && this.dictData['A30'].map(option => {
if (option.dcode == scope.row.zjzl) {
return <span>{option.dname}</span>
}
})
}
},
{
prop: "zjh",
label: "证件号"
},
{
prop: "dh",
label: "联系电话"
},
{
label: '操作',
render: (h, scope) => {
return (
<div>
{
this.disabled ? <el-button
icon="el-icon-edit-outline"
type="text"
onClick={() => { this.editClick(scope.$index, scope.row) }}>编辑</el-button> : <el-button
icon="el-icon-view"
type="text"
onClick={() => { this.queryViewClick(scope.$index, scope.row) }} > 查看</el-button>
}
</div>
)
}
}
],
column: []
}
},
watch: {
tableData: {
handler: function (val, oldVal) {
let that = this
this.$nextTick(() => {
if (val.length == 0 || !val) {
} else {
that.tableDataList = _.cloneDeep(val)
that.key++
}
})
},
immediate: true,
deep: true
}
},
methods: {
/**
* @description: handleupdateDetail
* @param {*} value
* @author: renchao
*/
handleupdateDetail (value) {
let that = this
let arr = this.tableData.map(item => item.zjh)
if (this.isaddupdate) {
if (!_.isEqual(value, this.tableData)) {
this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
this.$emit("upDateQlrxxList", this.tableDataList);
}
} else {
if (!_.isEqual(value, this.tableData)) {
this.tableDataList[this.dataIndex] = _.cloneDeep(value);
this.$emit("upDateQlrxxList", this.tableDataList);
}
}
this.key++
},
/**
* @description: 新增
* @author: renchao
*/
addClick () {
if (this.gyfs == '0' && this.tableDataList.length > 0) {
this.$message.warning("当前共有方式为单独所有,无法添加多个权利人")
} else {
this.key++
this.details = {
sqrmc: '',
zjzl: '1',
zjh: '',
xb: '',
txdz: '',
fzjg: ''
}
this.dialog = true
this.isaddupdate = true
}
},
/**
* @description: 删除
* @param {*} index
* @param {*} row
* @author: renchao
*/
deleClick (index, row) {
this.tableDataList.splice(index, 1)
this.$emit('upDateQlrxxList', this.tableDataList)
this.key++
},
/**
* @description: 身份证读取
* @param {*} row
* @author: renchao
*/
readClick (row) {
function getObjectByValue (arrayOfObjects, value) {
var name = ''
arrayOfObjects.forEach(item => {
if (item.dname.includes(value)) name = item.dcode
})
return name
}
getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
if (this.BASE_API.gaopaiyi == 'jy') {
const {
Name,
IdNo,
Sex,
Address,
Agencvy,
PhotoB64
} = JSON.parse(res)
if (Name != '') {
row.sqrmc = Name;
row.zjzl = '1';
row.zjh = IdNo;
row.xb = getObjectByValue(this.dictData['A43'], Sex);
row.txdz = Address;
row.fzjg = Agencvy;
row.avatar = 'data:image/png;base64,' + PhotoB64
this.$message({
message: '读取成功!',
type: 'success'
})
} else {
this.$message({
message: '请放置身份证',
type: 'warning'
})
}
} else {
if (res.data.code == 0) {
let data = res.data.IDCardInfo;
const {
name,
cardID: zjh,
sexCode: xb,
address: txdz,
issueOrgan: fzjg,
photoBase64
} = data
row.sqrmc = name;
row.zjzl = '1';
row.zjh = zjh;
row.xb = xb
row.txdz = txdz;
row.fzjg = fzjg;
row.avatar = 'data:image/png;base64,' + photoBase64
this.$message({
message: '读取成功!',
type: 'success'
})
} else {
this.$message({
message: res.data.message,
type: 'warning'
})
}
}
this.$emit('upDateQlrxxList', this.tableDataList)
})
},
/**
* @description: 修改
* @param {*} index
* @param {*} row
* @author: renchao
*/
editClick (index, row) {
this.details = row
this.details.gyfs = this.gyfs
this.dataIndex = index
this.dialog = true
this.isaddupdate = false
},
/**
* @description: queryViewClick
* @param {*} index
* @param {*} row
* @author: renchao
*/
queryViewClick (index, row) {
this.details = row
this.dialog = true
}
}
}
</script>
<style scoped lang="scss">
/deep/.el-table--small .el-table__cell {
padding: 0 0 !important;
}
/deep/.el-table th {
height: 30px !important;
}
/deep/.el-table .cell {
padding-right: 12px;
}
</style>
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
ref="ruleForm"
label-width="140px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.flow">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.sldyList">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input
disabled
v-model="ruleForm.sldyList[0].qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input
disabled
v-model="ruleForm.sldyList[0].djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div
class="slxx_title title-block"
v-if="ruleForm.slsq.djywbm.includes('400')">
在抵押权信息列表({{ ruleForm.diyaqDetailList.length }} 个)
<div class="triangle"></div>
<dyaqTable :tableData="ruleForm.diyaqDetailList" />
</div>
<div
class="slxx_title title-block"
v-else>
抵押不动产列表信息({{ ruleForm.ztQlxxList.length }} 个)
<div class="triangle"></div>
<qlxxTable :tableData="ruleForm.ztQlxxList" />
</div>
<div class="slxx_title title-block" v-if="!ruleForm.slsq.djywbm.includes('400')">
抵押信息
<div class="triangle"></div>
</div>
<el-row
:gutter="10"
v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
<el-col :span="8">
<el-form-item label="抵押方式:">
<el-radio-group disabled v-model="ruleForm.diyaqList[0].dyfs">
<el-radio label="1">一般抵押</el-radio>
<el-radio label="2">最高额抵押</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抵押金额类型:">
<el-radio-group
v-model="ruleForm.diyaqList[0].dyjelx"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-radio label="0">独立抵押</el-radio>
<el-radio label="1">整体抵押</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="是否存在禁止或者限制转让抵押不动产的约定:"
label-width="300px">
<el-radio-group
v-model="ruleForm.diyaqList[0].sfczjzhxz"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-radio label="1">启用</el-radio>
<el-radio label="0">禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter="10"
v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
<el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 1">
<el-form-item label="被担保主债权数额:">
<div style="display: flex">
<el-input
v-model="ruleForm.diyaqList[0].bdbzzqse"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
<el-select
style="width: 68px"
v-model="ruleForm.diyaqList[0].jedw"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 2">
<el-form-item label="最高债权额:">
<el-input
v-model="ruleForm.diyaqList[0].zgzqse"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
<el-select
v-model="ruleForm.diyaqList[0].jedw"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行起始时间:">
<el-date-picker
v-model="ruleForm.diyaqList[0].zwlxqssj"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行结束时间:">
<el-date-picker
v-model="ruleForm.diyaqList[0].zwlxjssj"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
<el-col :span="24">
<el-form-item label="担保范围:">
<el-input
v-model="ruleForm.diyaqList[0].dbfw"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
<el-col :span="24">
<el-form-item label="最高债权确定事实和数额:">
<el-input
v-model="ruleForm.diyaqList[0].zgzqqdss"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
<el-col>
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.diyaqList[0].fj"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押权人信息
<div class="triangle"></div>
</div>
<el-row
:gutter="10"
v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0">
<el-col :span="14">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldyList[0].gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="5" v-show="ruleForm.sldyList[0].gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldyList[0].sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="5"
v-show="
ruleForm.sldyList[0].gyfs != '0' &&
ruleForm.sldyList[0].sqfbcz == '0'
">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0"
:tableData="ruleForm.qlrList"
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
:gyfs="ruleForm.sldyList[0].gyfs" />
<div class="slxx_title title-block">
抵押人信息
<div class="triangle"></div>
</div>
<qlrCommonTable
:tableData="ruleForm.ywrList"
@upDateQlrxxList="upDateYwrxxList"
:disabled="viewEdit" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row
:gutter="10"
v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col>
<el-form-item
v-if="ruleForm.sldyList[0].djlx == '400'"
label="注销抵押原因:"
prop="djyy">
<el-input
class="textArea"
type="textarea"
:disabled="!viewEdit"
v-model="ruleForm.diyaqList[0].zxdyyy">
</el-input>
</el-form-item>
<el-form-item v-else label="登记原因:" prop="diyaqList[0].djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.diyaqList[0].djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmitClick()">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import qlxxTable from "../commonTable/qlxxTable.vue";
import dyaqTable from "../commonTable/dyaqTable";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import { batchInit, saveBatchData } from "@/api/workflow/diyaqFlow.js";
import { mapGetters } from "vuex";
export default {
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
this.loading = true
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
batchInit(formdata).then((res) => {
setTimeout(() => {
that.loading = false
}, 200)
if (res.code === 200 && res.result) {
this.ruleForm = res.result;
this.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
components: { qlrCommonTable, qlxxTable,dyaqTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
//表单是否可操作
viewEdit: true,
disabled: true,
czrOptions: [],
czr: "",
ruleForm: {},
//传递参数
propsParam: {},
rules: {
'diyaqList[0].djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
},
tableData: [],
};
},
methods: {
/**
* @description: onSubmitClick
* @author: renchao
*/
onSubmitClick () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认抵押权人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldyList[0].gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,抵押权人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,抵押权人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldyList[0].sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1"
})
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveBatchData(that.ruleForm, that.propsParam.djlx).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新抵押权人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
if (!_.isEqual(val, this.ruleForm.ywrList)) {
this.ruleForm.ywrList = _.cloneDeep(val);
}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-31 09:38:51
-->
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="180px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:" prop="qllx">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:" prop="djlx">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:" prop="djqx">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押不动产情况
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利人:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件种类:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件号:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产权证号:">
<el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利性质:">
<el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利用途:">
<el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="原不动产证号:">
<el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抵押方式:">
<el-radio-group disabled v-model="ruleForm.diyaq.dyfs">
<el-radio label="1">一般抵押权</el-radio>
<el-radio label="2">最高额抵押权</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抵押面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.diyaq.dymj"
disabled></el-input>
<el-select disabled v-model="ruleForm.diyaq.mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item
label="是否禁止或者限制转让的约定:"
label-width="200px">
<el-radio-group
v-model="ruleForm.diyaq.sfczjzhxz"
:disabled="!viewEdit || isJfOperation">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="是否预告登记:">
<el-radio-group v-model="ruleForm.diyaq.sfygdj" disabled>
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行期限:">
<el-input
v-model="ruleForm.diyaq.dyqx"
:disabled="!viewEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
<el-form-item label="被担保主债权数额:">
<div style="display: flex">
<el-input
v-model="ruleForm.diyaq.bdbzzqse"
:disabled="!viewEdit || isJfOperation"
style="width: 500%"></el-input>
<el-select
v-model="ruleForm.diyaq.jedw"
:disabled="!viewEdit || isJfOperation">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
<el-form-item label="最高债权额:">
<el-input
v-model="ruleForm.diyaq.zgzqse"
:disabled="!viewEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行起始时间:">
<el-date-picker
v-model="ruleForm.diyaq.zwlxqssj"
:disabled="!viewEdit || isJfOperation"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行结束时间:">
<el-date-picker class="width100"
v-model="ruleForm.diyaq.zwlxjssj"
:disabled="!viewEdit || isJfOperation"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="担保范围:">
<el-input
v-model="ruleForm.diyaq.dbfw"
:disabled="
(ruleForm.sldy.djlx == '300' || !viewEdit) || isJfOperation
"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="最高债权确定事实和数额:">
<el-input
v-model="ruleForm.diyaq.zgzqqdss"
:disabled="!viewEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.diyaq.fj"
:disabled="!viewEdit || isJfOperation"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押权人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
@upDateQlrxxList="upDateQlrxxList"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
抵押人信息
<div class="triangle"></div>
</div>
<qlrCommonTable
:tableData="ruleForm.ywrList"
:disabled="viewEdit"
@upDateQlrxxList="upDateYwrxxList" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item
v-if="ruleForm.sldy.djlx == '400'"
label="注销抵押原因:"
prop="djyy">
<el-input
class="textArea"
type="textarea"
:disabled="!viewEdit"
v-model="ruleForm.diyaq.zxdyyy">
</el-input>
</el-form-item>
<el-form-item v-else label="登记原因:" prop="diyaq.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.diyaq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="viewEdit">
<el-form-item>
<el-button type="primary" @click="onSubmitClick()">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import { Init, saveData } from "@/api/workflow/diyaqFlow.js";
import { mapGetters } from "vuex";
export default {
mounted () {
let that = this
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
if (this.propsParam.djlx == "400") {
this.isJfOperation = true;
}
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = res.result;
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = this.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
components: { qlrCommonTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
loading: false,
//表单是否可操作
viewEdit: true,
disabled: true,
czrOptions: [],
czr: "",
ruleForm: {
slsq: {},
ssQlxx: {},
diyaq: {},
gyfs: "",
},
isJfOperation: false,
//传递参数
propsParam: {},
rules: {
'diyaq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: onSubmitClick
* @author: renchao
*/
onSubmitClick () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认抵押权人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error"
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm, that.propsParam.djlx).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
if (!_.isEqual(val, this.ruleForm.ywrList)) {
this.ruleForm.ywrList = _.cloneDeep(val);
}
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description: 房屋多幢受理信息
* @Autor: ssq
* @LastEditTime: 2024-01-31 10:11:41
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
v-Loading="loading"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="20">
不动产单元情况
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="原不动产权证号:">
<el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落:">
<el-input maxlength="100" disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq1">
<el-col :span="8">
<el-form-item label="宗地面积:">
<div class="flex">
<el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
<el-select
disabled
v-model="ruleForm.zdjbxx.mjdw"
style="width: 20%">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"></el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地性质:">
<el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用权人:">
<el-input disabled v-model="ruleForm.fdcq1.tdsyqr"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq1">
<el-col :span="8">
<el-form-item label="独用土地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.fdcq1.dytdmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分摊土地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.fdcq1.fttdmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房地产交易价格:">
<div class="flex">
<el-input
maxlength="11"
:disabled="!viewEdit"
v-model="ruleForm.fdcq1.fdcjyjg"
style="width: 500%"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select :disabled="!viewEdit" v-model="ruleForm.fdcq1.jedw">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"></el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="附记:">
<el-input
:disabled="!viewEdit"
v-model="ruleForm.fdcq1.fj"
type="textarea"
maxlength="500"
show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
房屋多幢明细
<div class="triangle"></div>
<fdcqxmTable
:ableOperation="viewEdit"
:tableData="ruleForm.fdcqxm"
@updateFdcwxmList="updateFdcwxmList" />
<div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div>
<tdytTable
:ableOperation="viewEdit"
:tableData="ruleForm.tdytqxList"
@upDateTdytxxList="upDateTdytxxList" />
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="14" v-if="ruleForm.qlxx">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="5" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="5"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
:tableData="ruleForm.qlrList"
:gyfs="ruleForm.sldy.gyfs" />
<div v-if="ruleForm.qlxx.djlx == '200'">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
v-if="ruleForm.qlxx"
:disabled="viewEdit"
@upDateQlrxxList="upDateYwrxxList"
:tableData="ruleForm.ywrList"
:gyfs="ruleForm.qlxx.gyfs" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="fdcq1.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.fdcq1.djyy"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import fdcqxmTable from "../commonTable/fdcqxmTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = {
...res.result,
...res.result.qlxxdatas,
};
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
});
that.czrOptions = that.ruleForm.qlrList;
that.isSave = this.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
components: { qlrCommonTable, tdytTable, fdcqxmTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
disabled: true,
tdytOption: [],
czrOptions: [],
mjdw: "1",
czr: "",
ruleForm: {
flow: {
ywh: "",
},
qlxx: {
mj: "",
},
sldy: {
gyfs: "",
},
slsq: {},
fdcq1: {
zyjzmj: "",
ftjzmj: "",
},
zdjbxx: {
ghytmc: "",
},
},
//传递参数
propsParam: this.$attrs,
//表单是否可操作
viewEdit: false,
rules: {
'fdcq1.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: updateFdcwxmList
* @author: renchao
*/
updateFdcwxmList (val) {
this.ruleForm.fdcqxm && (this.ruleForm.fdcqxm = _.cloneDeep(val));
this.key++;
},
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
this.key++;
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
let jzmjArr = this.ruleForm.fdcqxm.filter((item) => {
return item.jzmj && item.jzmj !== '';
});
if (jzmjArr.length < this.ruleForm.fdcqxm.length) {
this.$message({
showClose: true,
message: "请检查房屋多幢明细建筑面积",
type: "error",
});
return false;
}
if (arr.length > 0) {
this.$message({
showClose: true,
message: "土地用途不能为空",
type: "error",
});
return false;
}
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach(item => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description: 受理信息
* @Autor: renchao
* @LastEditTime: 2024-01-24 09:30:19
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="130px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8" v-if="ruleForm.sldyList.length > 0">
<el-form-item label="权利类型:">
<el-input
disabled
v-model="ruleForm.sldyList[0].qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" v-if="ruleForm.sldyList.length > 0">
<el-form-item label="登记类型:">
<el-input
disabled
v-model="ruleForm.sldyList[0].djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('100')">
<el-row>
<el-col :span="19">
<p>房屋信息列表({{ ruleForm.hlist.length }} 户)</p>
</el-col>
<el-col :span="5">
<el-form-item label="发证方式:" :disabled="!viewEdit">
<el-radio-group v-model="ruleForm.slsq.fzfs">
<el-radio label="2">大证</el-radio>
<el-radio label="1">小证</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- <div class="triangle"></div> -->
</el-row>
</div>
<qjhTable :tableData="ruleForm.hlist" v-if="ruleForm.slsq.djywbm.includes('100')"/>
<qlxxTable :tableData="ruleForm.qlxxList" v-if="ruleForm.slsq.djywbm.includes('400')"/>
<div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('100')">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq.djywbm.includes('100')">
<el-col :span="12" v-if="ruleForm.sldyList.length > 0">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldyList[0].gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-if="ruleForm.sldyList[0].gyfs != 0">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldyList[0].sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="
ruleForm.sldyList[0].gyfs != 0 &&
ruleForm.sldyList[0].sqfbcz == '0'
">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:disabled="viewEdit"
@upDateQlrxxList="upDateQlrxxList"
:tableData="ruleForm.qlrList"
:gyfs="ruleForm.sldyList[0].gyfs" v-if="ruleForm.slsq.djywbm.includes('100')" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col v-if="ruleForm.fdcq2List.length > 0">
<el-form-item v-if="ruleForm.slsq" label="登记原因:" prop="djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.fdcq2List[0].djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlxxTable from "../commonTable/qlxxTable.vue";
import qjhTable from "../commonTable/qjhTable.vue";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import {
BatchInit,
Init,
saveBatchData,
saveData,
} from "@/api/workflow/fwsyqFlow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
computed: {
...mapGetters(["dictData", "flag"])
},
components: { qlrCommonTable, qlxxTable,qjhTable},
data () {
return {
isSave: true,
loading: false,
disabled: true,
tdytOption: [],
ruleForm: {
cfdjList: [], //查封登记
diyaqList: [], //抵押权
fdcq2List: [], //房屋信息集合
qlrList: [], //权利人
ywrList: [], //义务人
qlxxList: [], //权利信息集合
sldyList: [], //受理不动产单元集合
slsq: {}, //受理申请流程明细
flow: {}, //受理申请流程明细
sqrList: [], //申请人
ssQlxxList: [], //上手权利信息
user: {}, //用户
zdjbxx: {}, //宗地基本信息
},
czrOptions: [],
czr: "",
//传递参数
propsParam: this.$attrs,
//表单是否可操作
viewEdit: true,
rules: {},
gyfs: "",
bsmSlsq: this.$route.query.bsmSlsq, //受理申请标识码
};
},
mounted (callbackfn, thisArg) {
let that = this
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("isEdit", this.viewEdit);
BatchInit(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code == 200) {
this.ruleForm = res.result;
this.czrOptions = this.ruleForm.qlrList;
this.gyfs = this.ruleForm.sldyList[0].gyfs;
this.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.isSave = this.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
methods: {
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
// 更新义务人信息
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldyList[0].gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldyList[0].sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error"
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
saveBatchData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
this.$store.dispatch("user/refreshPage", true);
} else {
this.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 3px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>
<!--
* @Description: 受理信息
* @Autor: renchao
* @LastEditTime: 2024-01-30 16:07:53
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="16">
不动产单元情况
</el-col>
<el-col :span="4" v-show="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="4" v-show="ruleForm.sldy.djlx=='300'||ruleForm.sldy.djlx=='500'">
<el-button @click="compare">变化情况对比+</el-button>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq2">
<el-col :span="8">
<el-form-item label="土地用途:">
<el-input disabled v-model="ruleForm.fdcq2.yt"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用起止时间:">
<el-input disabled v-model="ruleForm.fdcq2.tdsyqzsj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用期限:">
<el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="规划用途名称:">
<el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋性质:">
<el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋结构:">
<el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq2">
<el-col :span="8">
<el-form-item label="所在层:">
<el-input disabled v-model="ruleForm.fdcq2.szc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总层数:">
<el-input
disabled
v-model.number="ruleForm.fdcq2.zcs"
oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="竣工时间:">
<el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="建筑面积:">
<div class="flex">
<el-input
disabled
v-model="ruleForm.qlxx.mj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专有建筑面积:">
<div class="flex">
<el-input
disabled
v-model="ruleForm.fdcq2.zyjzmj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分摊建筑面积:">
<div class="flex">
<el-input
disabled
v-model="ruleForm.fdcq2.ftjzmj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div>
<tdytTable
:ableOperation="viewEdit"
:tableData="ruleForm.tdytqxList"
@upDateTdytxxList="upDateTdytxxList" />
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:disabled="!viewEdit"
:tableData="ruleForm.qlrList"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.fdcq2" label="登记原因:" prop="fdcq2.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.fdcq2.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/fwsyqFlow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = {
...res.result,
...res.result.zdjbxxdatas,
...res.result.qlxxdatas,
...res.result.jsydsyqdatas,
};
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, tdytTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
mjdw: "1",
//表单是否可操作
viewEdit: false,
disabled: true,
tdytOption: [],
czrOptions: [],
czr: "",
ruleForm: {
flow: {
ywh: "",
},
slry: "",
slsj: "",
qllx: "",
djlx: "",
djqx: "",
sldy: {
gyfs: "",
},
// 宗地代码
zddm: "",
bdcdyh: "",
qlxzmc: "",
qlrxx: [],
// 自然幢号
zrzh: "",
// 户不动产单元号
hbdcdyh: "",
djzt: "",
// 图幅丘幢号
tfqzh: "",
zl: "",
// 房屋用途
fwyt: "",
fwxz: "",
fwjg: "",
// 权利人信息
// 是否分别持证
sffbcz: "",
// 持证人
czr: "",
djyy: "",
// 规划用途名称
zdjbxx: {
ghytmc: "",
},
fdcq2: {
fwxzmc: "",
},
slsq: {
gyfs: "",
},
},
//传递参数
propsParam: {},
rules: {
'fdcq2.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: dataSelectClick
* @author: renchao
*/
dataSelectClick () {
this.$popup(
"房屋所有权",
this.BASE_API.SERVERAPI + "/rest/workflow/main/dataCompare/slxxCompareDetai",
{
formData: {
bsmSldy: this.propsParam.bsmSldy,
qllx: this.propsParam.qllx,
},
}
);
},
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
this.key++;
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
if (arr.length > 0) {
this.$message({
showClose: true,
message: "土地用途不能为空",
type: "error",
});
return false;
}
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error"
});
return false;
}
this.ruleForm.qlrList.forEach(item => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: compare
* @author: renchao
*/
compare () {
this.$popupDialog(
this.ruleForm.qlxx.qllxmc,
"registerBook/comparison",
{
bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
dqqllx: "FDCQ2",
},
"80%",
true
);
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 3px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>
0
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-31 10:14:22
-->
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="16">
不动产单元情况
</el-col>
<el-col :span="4">
<el-button v-if="ruleForm.sldy=='300'||ruleForm.sldy=='500'" @click="compare">变化情况对比+</el-button>
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="原不动产权证号:">
<el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利性质:">
<treeselect
:disabled="!viewEdit"
v-model="ruleForm.zdjbxx.qlxz"
noOptionsText="暂无数据"
placeholder=""
:normalizer="normalizer"
:default-expand-level="1"
:show-count="true"
:options="dictData['A9']" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利设定方式:">
<el-select v-model="ruleForm.zdjbxx.qlsdfs" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A10']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="宗地面积:">
<el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="取得价格:">
<div style="display: flex">
<el-input
maxlength="11"
v-model="ruleForm.jsydsyq.qdjg"
style="width: 500%"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
:disabled="!viewEdit"></el-input>
<el-select v-model="ruleForm.jsydsyq.jedw" disabled>
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="土地等级:">
<el-select placeholder="" v-model="ruleForm.zdjbxx.dj" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A50']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="图幅号:">
<el-input
:disabled="!viewEdit"
v-model="ruleForm.zdjbxx.tfh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地籍号:">
<el-input
v-model="ruleForm.zdjbxx.djh"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="地块代码:">
<el-input
v-model="ruleForm.zdjbxx.dkdm"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="坐落:">
<el-input :disabled="!viewEdit" v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col>
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.jsydsyq.fj"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div>
<tdytTable
:tableData="ruleForm.tdytqxList"
:ableOperation="viewEdit"
@upDateTdytxxList="upDateTdytxxList" />
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="item in czrOptions"
:key="item.id"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
@upDateQlrxxList="upDateQlrxxList"
:gyfs="ruleForm.sldy.gyfs" />
<div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0 && ruleForm.qlxx.djlx==200">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
v-if="ruleForm.ywrList"
:disabled="viewEdit"
:tableData="ruleForm.ywrList"
:key="key"
@upDateQlrxxList="upDateYwrxxList" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item label="登记原因:" prop="jsydsyq.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.jsydsyq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/jsydsyqFlow.js";
export default {
mixins: [ywmix],
mounted () {
let that = this;
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = res.result;
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, tdytTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
key: 0,
isSave: true,
loading: false,
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
//表单是否可操作
viewEdit: false,
disabled: true,
czrOptions: [],
czr: "",
ruleForm: {
slywxx: {},
qlxx: {},
zdjbxx: {},
jsydsyq: {},
},
//传递参数
propsParam: {},
rules: {
'jsydsyq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
};
},
methods: {
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
this.key++;
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
if (arr.length > 0) {
this.$message({
showClose: true,
message: "土地用途不能为空",
type: "error",
});
return false;
}
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false)
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success"
})
that.$store.dispatch("user/refreshPage", true)
} else {
that.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: compare
* @author: renchao
*/
compare () {
this.$popupDialog(
this.ruleForm.qlxx.qllxmc,
"registerBook/comparison",
{
bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
dqqllx: "JSYDSYQ",
},
"80%",
true
);
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description: 房屋多幢受理信息
* @Autor: ssq
* @LastEditTime: 2024-01-31 10:15:25
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="190px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="20">
不动产单元情况
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="发包方:">
<el-input v-model="ruleForm.lq.fbf" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发包方代码:">
<el-input v-model="ruleForm.lq.fbfdm" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="使用权(承包)面积:">
<el-input v-model="ruleForm.lq.syqmj" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="林地所有权性质:">
<el-select v-model="ruleForm.lq.ldsyqxz" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A45']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="森林类别:">
<el-input v-model="ruleForm.lq.sllb" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="主要树种:">
<el-input v-model="ruleForm.lq.zysz" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="株数:">
<el-input v-model="ruleForm.lq.zs" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林种:">
<el-select v-model="ruleForm.lq.lz" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A26']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="起源:">
<el-select v-model="ruleForm.lq.qy" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A52']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="造林年度:">
<el-date-picker
class="width100"
value-format="yyyy"
v-model="ruleForm.lq.zlnd"
:disabled="!viewEdit"
type="year">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林班:">
<el-input v-model="ruleForm.lq.lb" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="小班:">
<el-input v-model="ruleForm.lq.xb" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="小地名:">
<el-input v-model="ruleForm.lq.xdm" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林地使用(承包)起始时间:">
<el-date-picker
class="width100"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="ruleForm.lq.ldsyqssj"
:disabled="!viewEdit"
type="date"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林地使用(承包)结束时间:">
<el-date-picker
class="width100"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="ruleForm.lq.ldsyjssj"
:disabled="!viewEdit"
type="date"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="林地使用 (承包)期限:">
<el-input v-model="ruleForm.lq.ldsyqx" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="附记:">
<el-input
v-model="ruleForm.lq.fj"
:disabled="!viewEdit"
type="textarea"
maxlength="500"
show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12" v-if="ruleForm.qlxx">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item, index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div v-if="ruleForm.ywrList && ruleForm.sldy.djlx == '200'">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
v-if="ruleForm.qlxx"
:disabled="viewEdit"
@upDateQlrxxList="upDateYwrxxList"
:tableData="ruleForm.ywrList"
:gyfs="ruleForm.sldy.gyfs" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="lq.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.lq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/lqFlow.js";
export default {
mixins: [ywmix],
mounted () {
let that = this;
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = {
...res.result,
...res.result.qlxxdatas
};
that.ruleForm.qlrList.forEach(item => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.ruleForm.lq.zlnd ? that.$set(that.ruleForm.lq, 'zlnd', that.ruleForm.lq.zlnd.toString()) : that.$set(that.ruleForm.lq, 'zlnd', "")
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, tdytTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"])
},
data () {
return {
isSave: true,
loading: false,
disabled: true,
tdytOption: [],
czrOptions: [],
czr: "",
ruleForm: {
lq: {
},
flow: {
ywh: "",
},
qlxx: {
mj: "",
},
sldy: {
gyfs: "",
},
slsq: {},
fdcq2: {
zyjzmj: "",
ftjzmj: "",
},
zdjbxx: {
ghytmc: "",
},
},
//传递参数
propsParam: this.$attrs,
//表单是否可操作
viewEdit: true,
rules: {
'lq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
};
},
methods: {
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新业务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach(item => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
}
}
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 3px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="20">
不动产单元情况
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="宗地代码:">
<el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利性质:">
<el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="宗地面积:">
<el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地用途:">
<el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利设定方式:">
<el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="16">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="发包方名称:">
<el-input v-model="ruleForm.nydsyq.fbfmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发包方代码:">
<el-input v-model="ruleForm.nydsyq.fbfdm"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地所有权性质:">
<el-select
v-model="ruleForm.nydsyq.tdsyqxzmc"
:disabled="!viewEdit"
class="width100"
filterable
clearable>
<el-option
v-for="item in dictData['A45']"
:key="item.dname"
:label="item.dname"
:value="item.dname">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="承包期限:">
<el-input disabled v-model="ruleForm.nydsyq.cbqx"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="承包起止时间:">
<el-input disabled v-model="ruleForm.nydsyq.cbqzsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="水域滩涂类型:">
<el-select
v-model="ruleForm.nydsyq.syttlx"
:disabled="!viewEdit"
class="width100"
filterable
clearable
@change="changeSyttlx">
<el-option
v-for="item in dictData['A23']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="养殖业方式:">
<el-select
v-model="ruleForm.nydsyq.yzyfs"
:disabled="!viewEdit"
class="width100"
filterable
clearable
@change="changeYzyfs">
<el-option
v-for="item in dictData['A24']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="草原质量:">
<el-input
v-model="ruleForm.nydsyq.cyzl"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="适宜载畜量:">
<el-input
v-model="ruleForm.nydsyq.syzcl"
:disabled="!viewEdit"
oninput="value=value.replace(/[^\d.]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用地用海分类:">
<el-select
v-model="ruleForm.nydsyq.ydyhfl"
class="width100"
:disabled="!viewEdit"
filterable
clearable
@change="changeYdyhfl">
<el-option
v-for="item in dictData['A51']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地承包合同:">
<el-input
v-model="ruleForm.nydsyq.tdcbht"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col>
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.nydsyq.fj"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
v-model="ruleForm.sldy.gyfs"
:disabled="!viewEdit">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:tableData="ruleForm.qlrList"
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
家庭成员
<div class="triangle"></div>
</div>
<JtcyTable
:tableData="ruleForm.jtcyList"
@upDateJtcyList="upDateJtcyList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item label="登记原因:" prop="nydsyq.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.nydsyq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import ywmix from "@/views/ywbl/mixin/index";
import { Init, saveData } from "@/api/workflow/nydsyqFlow.js";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import JtcyTable from "@/views/workflow/components/JtcyTable";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
this.loading = true
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
that.loading = false
}, 200)
if (res.code === 200) {
that.ruleForm = res.result;
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, JtcyTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
loading: false,
disabled: true,
//持证人选项
czrOptions: [],
czr: "",
ruleForm: {
zdjbxx: {
ghytmc: "",
},
},
//传递参数
propsParam: {},
//表单是否可操作
viewEdit: true,
rules: {
'nydsyq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
},
};
},
methods: {
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
})
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: upDateQlrxxList
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: upDateJtcyList
* @param {*} val
* @author: renchao
*/
upDateJtcyList (val) {
this.ruleForm.jtcyList = _.cloneDeep(val);
},
// 是否持证人变化
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 水域滩涂类型变化事件
* @param {*} e
* @author: renchao
*/
changeSyttlx (e) {
let itemLx = {};
itemLx = this.dictData["A23"].find((item) => {
return item.dcode == e;
});
this.ruleForm.nydsyq.syttlxmc = itemLx.dname;
},
/**
* @description: 养殖业方式变化事件
* @param {*} e
* @author: renchao
*/
changeYzyfs (e) {
let itemLx = {};
itemLx = this.dictData["A24"].find((item) => {
return item.dcode == e;
});
this.ruleForm.nydsyq.yzyfsmc = itemLx.dname;
},
/**
* @description: 用地用海变化事件
* @param {*} e
* @author: renchao
*/
changeYdyhfl (e) {
let itemLx = {};
itemLx = this.dictData["A51"].find((item) => {
return item.dcode == e;
});
this.ruleForm.nydsyq.ydyhflmc = itemLx.dname;
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description: 房屋多幢受理信息
* @Autor: ssq
* @LastEditTime: 2024-01-31 10:17:15
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="190px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="20">
不动产单元情况
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="发包方:">
<el-input v-model="ruleForm.lq.fbf" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发包方代码:">
<el-input v-model="ruleForm.lq.fbfdm" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="使用权(承包)面积:">
<el-input maxlength="12" v-model="ruleForm.lq.syqmj" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="林地所有权性质:">
<el-select v-model="ruleForm.lq.ldsyqxz" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A45']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="森林类别:">
<el-input v-model="ruleForm.lq.sllb" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="主要树种:">
<el-input v-model="ruleForm.lq.zysz" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="株数:">
<el-input v-model="ruleForm.lq.zs" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林种:">
<el-select v-model="ruleForm.lq.lz" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A26']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="起源:">
<el-select v-model="ruleForm.lq.qy" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A52']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="造林年度:">
<!-- <el-input v-model="ruleForm.lq.zlnd"></el-input> -->
<el-date-picker
class="width100"
value-format="yyyy"
v-model="ruleForm.lq.zlnd"
:disabled="!viewEdit"
type="year">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林班:">
<el-input v-model="ruleForm.lq.lb" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="小班:">
<el-input v-model="ruleForm.lq.xb" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="小地名:">
<el-input v-model="ruleForm.lq.xdm" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林地使用(承包)起始时间:">
<el-date-picker
class="width100"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="ruleForm.lq.ldsyqssj"
:disabled="!viewEdit"
type="date"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林地使用(承包)结束时间:">
<el-date-picker
class="width100"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="ruleForm.lq.ldsyjssj"
:disabled="!viewEdit"
type="date"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<!-- <el-col :span="8">
<el-form-item label="土地用途:">
<el-input v-model="ruleForm.lq.xdm"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="林地使用 (承包)期限:">
<el-input v-model="ruleForm.lq.ldsyqx" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="附记:">
<el-input
v-model="ruleForm.lq.fj"
:disabled="!viewEdit"
type="textarea"
maxlength="500"
show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- <div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div> -->
<!-- <tdytTable
:ableOperation="viewEdit"
:tableData="ruleForm.tdytqxList"
@upDateTdytxxList="upDateTdytxxList" /> -->
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12" v-if="ruleForm.qlxx">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item, index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div v-if="ruleForm.ywrList && ruleForm.sldy.djlx == '200'">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
v-if="ruleForm.qlxx"
:disabled="viewEdit"
@upDateQlrxxList="upDateYwrxxList"
:tableData="ruleForm.ywrList"
:gyfs="ruleForm.sldy.gyfs" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.lq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/sllmFlow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
this.loading = true
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
this.ruleForm = {
...res.result,
...res.result.qlxxdatas,
};
this.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, tdytTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
disabled: true,
tdytOption: [],
czrOptions: [],
czr: "",
ruleForm: {
lq: {
zlnd: "",
ldsyqssj: "",
ldsyjssj: ""
},
flow: {
ywh: "",
},
qlxx: {
mj: "",
},
sldy: {
gyfs: "",
},
slsq: {},
fdcq2: {
zyjzmj: "",
ftjzmj: "",
},
zdjbxx: {
ghytmc: "",
},
},
//传递参数
propsParam: this.$attrs,
//表单是否可操作
viewEdit: true,
rules: {},
};
},
methods: {
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新业务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach(item => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach(item => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
this.$store.dispatch("user/refreshPage", true);
} else {
this.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 3px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-04 16:11:40
-->
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
:class="{ readonly: editDisabled }"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="140px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="20">
不动产单元情况
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="宗地代码:">
<el-input v-model="ruleForm.zdjbxx.zddm" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input v-model="ruleForm.sldy.bdcdyh" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利性质:">
<treeselect
v-model="ruleForm.zdjbxx.qlxz"
noOptionsText="暂无数据"
:default-expand-level="1"
:disabled="!viewEdit"
placeholder=""
:normalizer="normalizer"
:show-count="true"
:options="dictData['A9']" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="地块代码:">
<el-input v-model="ruleForm.tdcbjyq.dkdm" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地块名称:">
<el-input v-model="ruleForm.tdcbjyq.dkmc" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="承包方式:">
<el-input v-model="ruleForm.tdcbjyq.cbfs" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="发包方代码:">
<el-input v-model="ruleForm.tdcbjyq.fbfdm" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发包方全称:">
<el-input v-model="ruleForm.tdcbjyq.fbfqc" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发包方负责人:">
<el-input v-model="ruleForm.tdcbjyq.fbffzr" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="承包起始时间:">
<el-date-picker
v-model="ruleForm.tdcbjyq.cbqssj"
class="width100"
type="date"
:disabled="!viewEdit"
:picker-options="pickerOptionsStart"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="承包结束时间:">
<el-date-picker
v-model="ruleForm.tdcbjyq.cbjssj"
:disabled="!viewEdit"
class="width100"
type="date"
placeholder="选择日期"
:picker-options="pickerOptionsEnd"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="承包期限:">
<el-input v-model="ruleForm.tdcbjyq.cbqx" :disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="用途:">
<treeselect
:disabled="!viewEdit"
v-model="ruleForm.tdcbjyq.yt"
noOptionsText="暂无数据"
:default-expand-level="1"
placeholder=""
:normalizer="normalizer"
:show-count="true"
:options="dictData['tdyt']" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="确权面积:">
<div class="flex">
<el-input
:disabled="!viewEdit"
v-model="ruleForm.tdcbjyq.qqmj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select :disabled="!viewEdit" v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地所有权性质:">
<el-select clearable v-model="ruleForm.tdcbjyq.tdsyqxz" class="width100" placeholder="请选择" :disabled="!viewEdit">
<el-option v-for="item in dictData['A45']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="是否永久基本农田:">
<el-radio-group v-model="ruleForm.tdcbjyq.sfyjjbnt" :disabled="!viewEdit">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否自留地:">
<el-radio-group
v-model="ruleForm.tdcbjyq.sfzld"
:disabled="!viewEdit">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用地用海分类:">
<el-select clearable v-model="ruleForm.tdcbjyq.ydyhfl" class="width100" placeholder="请选择" :disabled="!viewEdit">
<el-option v-for="item in dictData['A56']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="承包经营权取得方式:">
<el-select clearable v-model="ruleForm.tdcbjyq.cbjyqqdfs" class="width100" placeholder="请选择" :disabled="!viewEdit">
<el-option v-for="item in dictData['A59']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="附记:">
<el-input maxlength="100" :disabled="!viewEdit" v-model="ruleForm.tdcbjyq.fj"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item, index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
@upDateQlrxxList="upDateQlrxxList"
:key="key"
:gyfs="ruleForm.sldy.gyfs" />
<div v-if="ruleForm.qlxx.djlx == '200'">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
v-if="ruleForm.ywrList"
:disabled="viewEdit"
:tableData="ruleForm.ywrList"
:key="key"
@upDateQlrxxList="upDateYwrxxList" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item label="登记原因:" prop="tdcbjyq.djyy">
<el-input
class="textArea"
maxlength="500"
show-word-limit
type="textarea"
:disabled="!viewEdit"
v-model="ruleForm.tdcbjyq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import ywmix from "@/views/ywbl/mixin/index";
import { Init, saveData } from "@/api/workflow/tdcbjyq.js";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
this.loading = true
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
that.loading = false
}, 200)
if (res.code === 200) {
that.ruleForm = res.result;
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"]),
// 根据流程判断表单是否为只读
editDisabled () {
if (!this.viewEdit) {
//只读状态
return true;
}
return false;
},
},
data () {
return {
// 开始结束日期限制
pickerOptionsStart: {
disabledDate: (time) => {
if (this.ruleForm.tdcbjyq.cbjssj) {
return (
time.getTime() >= new Date(this.ruleForm.tdcbjyq.cbjssj).getTime()
);
}
}
},
// 结束日期限制
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.ruleForm.tdcbjyq.cbqssj) {
return (
time.getTime() <= new Date(this.ruleForm.tdcbjyq.cbqssj).getTime()
);
}
}
},
isSave: true,
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
loading: false,
mjdw: "1",
//表单是否可操作
viewEdit: true,
czr: "",
key: 0,
disabled: true,
czrOptions: [],
ruleForm: {},
//传递参数
propsParam: {},
rules: {
'tdcbjyq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
this.czrOptions = this.ruleForm.qlrList;
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
this.key++;
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
/**
* @description: saveData
* @author: renchao
*/
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
/deep/.el-form-item__error {
display: none;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-31 10:09:50
-->
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="20">
不动产单元情况
</el-col>
<el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="宗地代码:">
<el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利性质:">
<el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="宗地面积:">
<el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利设定方式:">
<el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="农用地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.nydmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="耕地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.gdmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="林地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.ldmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="草地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.cdmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="其他农用地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.qtnydmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建筑使用面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.jsydmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="未利用地面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.tdsyq.wlydmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="mjdw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div>
<tdytTable
:tableData="ruleForm.tdytqxList"
:ableOperation="viewEdit"
@upDateTdytxxList="upDateTdytxxList" />
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item, index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
@upDateQlrxxList="upDateQlrxxList"
:key="key"
:gyfs="ruleForm.sldy.gyfs" />
<div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
v-if="ruleForm.ywrList"
:disabled="viewEdit"
:tableData="ruleForm.ywrList"
:key="key"
@upDateQlrxxList="upDateYwrxxList" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item label="登记原因:" prop="tdsyq.djyy">
<el-input
class="textArea"
maxlength="500"
show-word-limit
type="textarea"
:disabled="!viewEdit"
v-model="ruleForm.tdsyq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import ywmix from "@/views/ywbl/mixin/index";
import { Init, saveData } from "@/api/workflow/tdsyqFlow.js";
import tdytTable from "@/views/workflow/components/tdytTable";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
export default {
mixins: [ywmix],
components: { qlrCommonTable, tdytTable, ywrCommonTable },
mounted () {
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
let that = this;
this.loading = true
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200) {
that.ruleForm = res.result;
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
this.isSave = false
this.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
mjdw: "1",
value2: {
id: "520000198407304275",
user: "史平",
},
props: {
label: "user",
value: "id",
keyword: "keyword",
},
//表单是否可操作
viewEdit: true,
key: 0,
disabled: true,
czrOptions: [],
czr: "",
ruleForm: {},
//传递参数
propsParam: {},
rules: {
'tdsyq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
this.key++;
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
this.czrOptions = this.ruleForm.qlrList;
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
this.key++;
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
if (arr.length > 0) {
this.$message({
showClose: true,
message: "土地用途不能为空",
type: "error",
});
return false;
}
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
})
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error"
})
return false
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
/**
* @description: saveData
* @author: renchao
*/
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
} else {
this.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
});
return false;
}
});
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
不动产情况
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="原不动产证号:">
<el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="预告登记种类:">
<el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用权人:">
<el-input disabled v-model="ruleForm.ygdj.tdsyqr"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋性质:">
<el-select v-model="ruleForm.ygdj.fwxz" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A19']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="房屋用途:">
<el-select v-model="ruleForm.ygdj.ghyt" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A17']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在层:">
<el-input maxlength="20" :disabled="!viewEdit" v-model="ruleForm.ygdj.szc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总层数:">
<el-input
:disabled="!viewEdit"
maxlength="4"
v-model.number="ruleForm.ygdj.zcs"
oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="房屋结构:">
<el-select v-model="ruleForm.ygdj.fwjg" :disabled="!viewEdit">
<el-option
v-for="item in dictData['A46']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建筑面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.ygdj.jzmj"
:disabled="!viewEdit"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select :disabled="!viewEdit" v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="取得价格:">
<div class="flex">
<el-input
:disabled="!viewEdit"
maxlength="11"
v-model="ruleForm.ygdj.qdjg"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select
v-model="ruleForm.ygdj.jedw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="附记:">
<el-input
:disabled="!viewEdit"
v-model="ruleForm.ygdj.fj"
type="textarea"
maxlength="500"
show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12" v-if="ruleForm.qlxx">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
:tableData="ruleForm.qlrList"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
@upDateQlrxxList="upDateYwrxxList"
:disabled="viewEdit"
:tableData="ruleForm.ywrList"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.sldy.djlx=='400'" label="注销登记原因:" prop="djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.ygdj.zxyy">
</el-input>
</el-form-item>
<el-form-item v-else label="登记原因:" prop="ygdj.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.ygdj.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import { Init, saveData } from "@/api/workflow/ygdjFlow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
this.loading = true
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
this.ruleForm = res.result;
this.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = this.ruleForm.qlrList
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.isSave = false
this.loading = false
})
},
components: { qlrCommonTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"])
},
data () {
return {
isSave: true,
loading: false,
mjdw: "1",
//表单是否可操作
viewEdit: true,
disabled: true,
tdytOption: [],
czrOptions: [],
czr: "",
ruleForm: {
qlxx: {},
sldy: {},
slsq: {},
ygdj: {},
zdjbxx: {},
},
//传递参数
propsParam: this.$attrs,
rules: {
'ygdj.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新业务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error"
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 3px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="140px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
预告买卖登记情况
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产证明号:">
<el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利人:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件种类:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件号:">
<el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="房屋面积:">
<el-input disabled v-model="ruleForm.ztQlxx.qlmjmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋用途:">
<el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋性质:">
<el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="房屋取得价格:">
<el-input disabled v-model="ruleForm.ztQlxx.qdjgmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="不动产坐落:">
<el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
预告抵押情况
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="原不动产证号:"
prop="sldy.ybdcqzsh"
:rules="rules.ybdcqzshrules">
<el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预告登记种类:"
prop="ygdj.ygdjzlmc"
:rules="rules.ygdjzlmcrules">
<el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="是否禁止或者限制转让的约定:"
label-width="200px"
prop="ygdj.sfczjzhxz"
:rules="rules.sfczjzhxzrules">
<el-radio-group
v-model="ruleForm.ygdj.sfczjzhxz"
:disabled="!viewEdit">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="被担保主债权数额:"
prop="ygdj.qdjg"
:rules="rules.qdjgrules">
<div class="flex">
<el-input
v-model="ruleForm.ygdj.qdjg"
:disabled="!viewEdit"></el-input>
<el-select
v-model="ruleForm.ygdj.jedw"
:disabled="!viewEdit"
style="width: 68px">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"></el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行起始时间:"
prop="ygdj.zwlxqssj"
:rules="rules.zwlxqssjrules">
<el-date-picker
v-model="ruleForm.ygdj.zwlxqssj"
:disabled="!viewEdit"
type="date"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行结束时间:"
prop="ygdj.zwlxjssj"
:rules="rules.zwlxjssjrules">
<el-date-picker
v-model="ruleForm.ygdj.zwlxjssj"
:disabled="!viewEdit"
type="date"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="担保范围:"
prop="ygdj.dbfw"
:rules="rules.dbfwrules">
<el-input
v-model="ruleForm.ygdj.dbfw"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.ygdj.fj"
:disabled="!viewEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押权人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:tableData="ruleForm.qlrList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
抵押人信息
<div class="triangle"></div>
</div>
<ywrCommonTable
@upDateQlrxxList="upDateYwrxxList"
:tableData="ruleForm.ywrList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.sldy.djlx=='400'" label="注销登记原因:" prop="djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.ygdj.zxyy">
</el-input>
</el-form-item>
<el-form-item v-else label="登记原因:" prop="ygdj.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.ygdj.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import { Init, saveData } from "@/api/workflow/ygdyFlow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
mounted () {
let that = this;
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
this.loading = true;
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
that.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = res.result;
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = this.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, ywrCommonTable },
computed: {
...mapGetters(["dictData", "flag"])
},
data () {
return {
isSave: true,
//表单是否可操作
viewEdit: true,
loading: false,
disabled: true,
tdytOption: [],
czrOptions: [],
czr: "",
ruleForm: {},
//传递参数
propsParam: this.$attrs,
rules: {
ybdcqzshrules: [
{ required: true, message: "原不动产证号", trigger: "blur" },
],
ygdjzlmcrules: [
{ required: true, message: "预告登记种类", trigger: "blur" },
],
sfczjzhxzrules: [
{ required: true, message: "是否禁止或者限制转让的约定:", trigger: "blur" },
],
qdjgrules: [{ required: true, message: "被担保主债权数额", trigger: "blur" }],
zwlxqssjrules: [{ required: true, message: "债务履行起始时间", trigger: "blur" }],
zwlxjssjrules: [{ required: true, message: "债务履行结束时间", trigger: "blur" }],
dbfwrules: [{ required: true, message: "担保范围", trigger: "blur" }],
'ygdj.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: 是否持证人变化
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
this.$store.dispatch("user/refreshPage", true);
} else {
this.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
ref="ruleForm"
label-width="140px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.flow">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.sldyList">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input
disabled
v-model="ruleForm.sldyList[0].qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input
disabled
v-model="ruleForm.sldyList[0].djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div
class="slxx_title title-block"
v-if="ruleForm.slsq.djywbm.includes('400')">
在建工程抵押信息列表({{ ruleForm.qlxxList.length }} 户)
<div class="triangle"></div>
</div>
<div
class="slxx_title title-block"
v-else>
抵押户信息列表信息({{ ruleForm.hlist.length }} 户)
<div class="triangle"></div>
</div>
<qlxxTable :tableData="ruleForm.qlxxList" v-if="ruleForm.slsq.djywbm.includes('400')" />
<qjhTable v-else :tableData="ruleForm.hlist" />
<div class="slxx_title title-block">
抵押信息
<div class="triangle"></div>
</div>
<el-row
:gutter="10"
v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col :span="8">
<el-form-item label="抵押方式:">
<el-radio-group disabled v-model="ruleForm.diyaqList[0].dyfs">
<el-radio label="1">一般抵押</el-radio>
<el-radio label="2">最高额抵押</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抵押金额类型:">
<el-radio-group
v-model="ruleForm.diyaqList[0].dyjelx"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-radio label="0">独立抵押</el-radio>
<el-radio label="1">整体抵押</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="是否存在禁止或者限制转让抵押不动产的约定:"
label-width="300px">
<el-radio-group
v-model="ruleForm.diyaqList[0].sfczjzhxz"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-radio label="1">启用</el-radio>
<el-radio label="0">禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter="10"
v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 1">
<el-form-item label="被担保主债权数额:">
<div style="display: flex">
<el-input
v-model="ruleForm.diyaqList[0].bdbzzqse"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
<el-select
style="width: 68px"
v-model="ruleForm.diyaqList[0].jedw"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 2">
<el-form-item label="最高债权额:">
<el-input
v-model="ruleForm.diyaqList[0].zgzqse"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
<el-select
v-model="ruleForm.diyaqList[0].jedw"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行起始时间:">
<el-date-picker
v-model="ruleForm.diyaqList[0].zwlxqssj"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行结束时间:">
<el-date-picker
v-model="ruleForm.diyaqList[0].zwlxjssj"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col :span="24">
<el-form-item label="担保范围:">
<el-input
v-model="ruleForm.diyaqList[0].dbfw"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col :span="24">
<el-form-item label="最高债权确定事实和数额:">
<el-input
v-model="ruleForm.diyaqList[0].zgzqqdss"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col>
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.diyaqList[0].fj"
:disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押权人信息
<div class="triangle"></div>
</div>
<el-row
:gutter="10"
v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0">
<el-col :span="14">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldyList[0].gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="5" v-show="ruleForm.sldyList[0].gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldyList[0].sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="5"
v-show="
ruleForm.sldyList[0].gyfs != '0' &&
ruleForm.sldyList[0].sqfbcz == '0'
">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0"
:tableData="ruleForm.qlrList"
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
:gyfs="ruleForm.sldyList[0].gyfs" />
<div class="slxx_title title-block">
抵押人信息
<div class="triangle"></div>
</div>
<qlrCommonTable
:tableData="ruleForm.ywrList"
@upDateQlrxxList="upDateYwrxxList"
:disabled="viewEdit" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row
:gutter="10"
v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
<el-col>
<el-form-item
v-if="ruleForm.sldyList[0].djlx == '400'"
label="注销抵押原因:"
prop="djyy">
<el-input
class="textArea"
type="textarea"
:disabled="!viewEdit"
v-model="ruleForm.diyaqList[0].zxdyyy">
</el-input>
</el-form-item>
<el-form-item v-else label="登记原因:" prop="diyaqList[0].djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.diyaqList[0].djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmitClick()">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import qjhTable from "../commonTable/qjhTable";
import qlxxTable from "../commonTable/qlxxTable.vue";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import { bacthInit, saveBatchData } from "@/api/workflow/zjgcdyFlow.js";
import { mapGetters } from "vuex";
export default {
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
this.loading = true
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
bacthInit(formdata).then((res) => {
setTimeout(() => {
that.loading = false
}, 200)
if (res.code === 200 && res.result) {
this.ruleForm = res.result;
this.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
components: { qlrCommonTable, qjhTable, qlxxTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
//表单是否可操作
viewEdit: true,
disabled: true,
czrOptions: [],
czr: "",
ruleForm: {},
//传递参数
propsParam: {},
rules: {
'diyaqList[0].djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
},
tableData: [],
};
},
methods: {
/**
* @description: onSubmitClick
* @author: renchao
*/
onSubmitClick () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认抵押权人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldyList[0].gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,抵押权人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,抵押权人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldyList[0].sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1"
})
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveBatchData(that.ruleForm, that.propsParam.djlx).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新抵押权人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
if (!_.isEqual(val, this.ruleForm.ywrList)) {
this.ruleForm.ywrList = _.cloneDeep(val);
}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<template>
<!-- 受理信息 -->
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="170px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:" prop="qllx">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:" prop="djlx">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:" prop="djqx">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押户信息情况
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="房屋用途:">
<el-input disabled v-model="ruleForm.qjh.showfwyt"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋性质:">
<el-input disabled v-model="ruleForm.qjh.fwxzmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋结构:">
<el-input disabled v-model="ruleForm.qjh.showfwjg"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="建筑面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.qjh.jzmj" disabled
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="套内建筑面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.qjh.tnjzmj" disabled
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分摊建筑面积:">
<div class="flex">
<el-input
maxlength="12"
v-model="ruleForm.qjh.ftjzmj" disabled
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="室号部位:">
<el-input disabled v-model="ruleForm.qjh.shbw"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="抵押方式:">
<!-- <el-input disabled v-model="ruleForm.slywxx.djqxmc"></el-input> -->
<el-radio-group disabled v-model="ruleForm.diyaq.dyfs">
<el-radio label="1">一般抵押</el-radio>
<el-radio label="2">最高额抵押</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item
label="是否存在禁止或者限制转让抵押不动产的约定:"
label-width="350px">
<el-radio-group
v-model="ruleForm.diyaq.sfczjzhxz"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
<el-form-item label="被担保主债权数额:">
<div style="display:flex">
<el-input
v-model="ruleForm.diyaq.bdbzzqse"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
<el-select style="width: 68px" v-model="ruleForm.diyaq.jedw"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
<el-form-item label="最高债权额:">
<div style="display: flex">
<el-input
v-model="ruleForm.diyaq.zgzqse"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
<el-select v-model="ruleForm.diyaq.jedw" style="width: 68px" :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
<el-option
v-for="item in dictData['A57']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行起始时间:">
<el-date-picker
v-model="ruleForm.diyaq.zwlxqssj"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="债务履行结束时间:">
<el-date-picker
v-model="ruleForm.diyaq.zwlxjssj"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="担保范围:">
<el-input
v-model="ruleForm.diyaq.dbfw"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="最高债权确定事实和数额:">
<el-input
v-model="ruleForm.diyaq.zgzqqdss"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="附记:" prop="fj">
<el-input
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.diyaq.fj"
:disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
抵押权人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
:tableData="ruleForm.qlrList"
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
抵押人信息
<div class="triangle"></div>
</div>
<qlrCommonTable
:tableData="ruleForm.ywrList"
@upDateQlrxxList="upDateYwrxxList"
:disabled="viewEdit" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item
v-if="ruleForm.sldy.djlx == '400'"
label="注销抵押原因:"
prop="djyy">
<el-input
class="textArea"
type="textarea"
:disabled="!viewEdit"
v-model="ruleForm.diyaq.zxdyyy">
</el-input>
</el-form-item>
<el-form-item v-else label="登记原因:" prop="diyaq.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.diyaq.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmitClick()">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import { Init, saveData } from "@/api/workflow/zjgcdyFlow.js";
import { mapGetters } from "vuex";
export default {
mounted () {
let that = this
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
this.loading = true
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
this.loading = false
if (res.code === 200 && res.result) {
this.ruleForm = res.result;
window.djlx = res.result.sldy.djlx
this.czrOptions = this.ruleForm.qlrList;
this.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
})
},
components: { qlrCommonTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
mjdw: '1',
isSave: true,
loading: false,
//表单是否可操作
viewEdit: true,
disabled: true,
czrOptions: [],
czr: "",
ruleForm: {},
//传递参数
propsParam: {},
rules: {
'diyaq.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
},
// 键名转换,方法默认是label和children进行树状渲染
normalizer (node) {
//方法
if (node.children == null || node.children == "null") {
delete node.children;
}
return {
id: node.dcode,
label: node.dname,
};
},
};
},
methods: {
/**
* @description: onSubmitClick
* @author: renchao
*/
onSubmitClick () {
let that = this;
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error",
});
return false;
}
this.ruleForm.qlrList.forEach((item, index) => {
if (item.id == that.czr) {
item.sfczr = "1";
} else {
item.sfczr = "0";
}
});
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm, that.propsParam.djlx).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
// 是否持证人变化
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新义务人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
if (!_.isEqual(val, this.ruleForm.ywrList)) {
this.ruleForm.ywrList = _.cloneDeep(val);
}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description: 审批意见
* @Autor: renchao
* @LastEditTime: 2024-01-26 08:46:38
-->
<template>
<div class="spyj" v-Loading="loading">
<div class="box">
<div class="spyj_title">
<div class="righttitle">审批表</div>
</div>
<div v-for="(item, index) in tableData" :key="index">
<el-form
:model="tableData[index]"
label-width="120px"
ref="ruleForm'">
<div class="spyj_form">
<div class="item_left">
<div class="right">{{ item.jdmc }}意见</div>
</div>
<div class="item_right">
<el-row>
<el-col :span="24">
<el-form-item
label-width="0"
class="opinion_item">
<el-input
:disabled="!viewEdit || item.show"
type="textarea"
:rows="4"
class="opinion"
placeholder=""
v-model="item.shyj"></el-input>
<el-button
class="opinion_btn"
@click="commonOpinion(index)"
:disabled="!viewEdit|| item.show">常用意见</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="审查人">
{{ item.shryxm }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item disabled label="审核时间" :key="refresh">
{{ item.shjssj }}
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
</div>
<div class="submit_button" v-if="viewEdit">
<el-button type="primary" :disabled="shows" @click="onSubmit()">保存</el-button>
</div>
</div>
</div>
</template>
<script>
import { saveSpyjBySlsq, getSpyjList } from "@/api/opinion.js";
import { mapGetters } from "vuex";
import { getNewDatesh } from "@/utils/util";
export default {
computed: {
...mapGetters(["dqhj", "yjsqOptions", "userInfo"]),
},
data () {
return {
loading: false,
currentindex: 0,
refresh: 10,
viewEdit: false,
bsmSlsq: this.$route.query.bsmSlsq,
bestepid: this.$route.query.bestepid,
propsParam: {},
tableData: [],
shows: false,
};
},
watch: {
yjsqOptions: {
handler (val) {
this.add(val.opinion);
},
deep: true,
immediate: true,
},
dqhj: {
handler (val) {
this.propsParam = this.$attrs;
this.dataset()
this.getShList();
},
deep: true,
immediate: true,
},
},
methods: {
/**
* @description: dataset
* @param {*} 数据处理
* @author: renchao
*/
dataset () {
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
},
/**
* @description: getShList
* @param {*} obj
* @author: renchao
*/
getShList () {
this.loading = true
var formdata = new FormData();
formdata.append("bsmBusiness", this.propsParam.bsmBusiness);
formdata.append("bestepid", this.$route.query.bestepid);
getSpyjList(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.tableData = res.result;
if (this.shows) {
this.shows = false;
}
var index = this.tableData.findIndex(
(item) => item.jddm === this.$parent.dqhj
);
console.log("this.tableData111",this.tableData);
if (index == -1) {
switch (this.$parent.dqhj) {
case "cs":
this.tableData.push({ jdmc: "初审", jddm: "cs", sxh: 1 });
break;
case "fs":
this.tableData.push({ jdmc: "复审", jddm: "fs", sxh: 2 });
break;
case "hd":
this.tableData.push({ jdmc: "核定", jddm: "hd", sxh: 3 });
break;
}
console.log("this.tableData222",this.tableData);
}
this.tableData.forEach((item) => {
item.show = true;
if (this.$parent.dqhj == item.jddm) {
item["stepid"] = this.$route.query.bestepid;
item.shjssj = getNewDatesh();
item.shkssj = getNewDatesh();
item["shryxm"] = this.userInfo.name;
item["userid"] = this.userInfo.id;
item.show = false;
}
console.log("this.tableData333",this.tableData);
});
this.loading = false
}
})
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
this.tableData.forEach((item, index) => {
item["bsmBusiness"] = this.propsParam.bsmBusiness;
item["czjg"] = "1";
});
var index = this.tableData.findIndex(
(item) => item.shyj == null || item.shyj == ""
);
if (index == -1) {
this.shows = true;
saveSpyjBySlsq(this.tableData).then((res) => {
if (res.code === 200) {
this.$message.success("保存成功");
this.refresh += 1;
this.getShList();
} else {
this.$message.error(res.message);
}
});
} else {
this.$message.error("意见不能为空");
}
},
//打开常用意见列表弹窗
/**
* @description: 打开常用意见列表弹窗
* @param {*} index
* @author: renchao
*/
commonOpinion (index) {
this.currentindex = index;
this.$popupDialog(
"常用意见",
"workflow/components/dialog/commonOpinion",
{},
"70%",
true
);
},
/**
* @description: add
* @param {*} val
* @author: renchao
*/
add (val) {
if (val != "" && this.tableData.length > 0) {
this.$set(this.tableData[this.currentindex], "shyj", val);
}
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.spyj {
width: 100%;
height: 100%;
background-color: #f5f5f5;
.box {
overflow-x: auto;
width: 100%;
height: 95%;
background: #fff;
text-align: center;
padding: 4px;
overflow-y: scroll;
padding-top: 20px;
padding: 20px 40px;
.spyj_title {
width: 100%;
height: 80px;
border: 1px solid $borderColor;
background-color: #eceef2;
display: flex;
}
.leftadd {
width: 3%;
height: 100%;
display: flex;
font-size: 14px;
text-indent: 20px;
align-items: center;
border: 1px solid $borderColor;
}
.righttitle {
width: 80%;
height: 100%;
line-height: 80px;
border: 1px solid $borderColor;
margin: auto;
font-size: 22px;
font-weight: 400;
}
}
/deep/.el-form-item {
margin-bottom: 0;
}
.bottom10 {
margin-bottom: 15px;
}
.spyj_form {
display: flex;
border: 1px solid $borderColor;
.item_left {
width: 150px;
background-color: #f8f8fa;
color: #606266;
display: flex;
font-size: 14px;
text-indent: 50px;
align-items: center;
border-right: 1px solid $borderColor;
}
.item_right {
flex: 1;
width: 100%;
/deep/.el-form-item__label {
background-color: #f8f8fa;
}
/deep/.el-form-item__content {
display: block;
text-align: left;
}
.opinion_item {
/deep/.el-form-item__error {
margin-top: -16px !important;
left: 3px;
}
border-bottom: 1px solid $borderColor;
}
.opinion {
position: relative;
font-size: 14px;
/deep/.el-textarea__inner {
border: none;
}
}
.opinion_btn {
position: absolute;
right: 15px;
bottom: 10px;
}
}
}
.submit_button {
text-align: center;
margin: 15px 0;
}
.el-date-editor.el-input {
width: 100%;
}
}
</style>
<template>
<div class="slxx swxx">
<el-form
:model="ruleForm"
ref="ruleForm"
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
不动产信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="原产证号:">
<el-input disabled v-model="ruleForm.yfczh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="面积(m3):">
<el-input disabled v-model="ruleForm.mj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用途:">
<el-input disabled v-model="ruleForm.yt"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
买方信息
<div class="triangle"></div>
</div>
<lb-table :column="column" :pagination="false" :heightNumSetting="true"
:data="ruleForm.tableDataList">
</lb-table>
<div class="slxx_title title-block">
卖方信息
<div class="triangle"></div>
</div>
<lb-table :column="column1" :pagination="false" :heightNumSetting="true"
:data="ruleForm.tableDataList">
</lb-table>
<div class="slxx_title title-block">
合同信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="合同编号:">
<el-input v-model="ruleForm.htbh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同金额(万元):">
<el-input v-model="ruleForm.htje"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="签订时间:">
<el-date-picker
class="width100"
v-model="ruleForm.qdsj"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
缴税信息
<div class="triangle"></div>
</div>
<lb-table :column="column2" :pagination="false" :heightNumSetting="true"
:data="ruleForm.tableDataList">
</lb-table>
</div>
<el-row class="btn" v-if="viewEdit">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import { mapGetters } from "vuex";
export default {
computed: {
...mapGetters(["dictData", "flag"]),
},
mounted () {
// this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
// Init(formdata).then((res) => {
// if (res.code === 200 && res.result) {
// }
// });
},
data () {
return {
loading: false,
//表单是否可操作
viewEdit: false,
column: [
{
prop: "qlrxm",
label: "权利人姓名"
},
{
prop: "gyqk",
label: "共有情况"
},
{
prop: "zjzl",
label: "身份证号种类"
},
{
prop: "zjhm",
label: "证件号码"
},
],
column1: [{
prop: "ywrxm",
label: "义务人姓名"
},
{
prop: "zjzl",
label: "身份证号种类"
},
{
prop: "zjhm",
label: "证件号码"
}],
column2: [{
type: 'index',
label: "序号",
width: '50'
},
{
prop: "nsr",
label: "纳税人"
},
{
prop: "sz",
label: "税种"
},
{
prop: "jsyj",
label: "计税依据"
},
{
prop: "sl",
label: "税率"
},
{
prop: "jsje",
label: "计税金额"
}],
ruleForm: {
tableDataList: []
}
}
},
methods: {
onSubmit () { }
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-30 15:46:45
-->
<template>
<div class="szxx">
<el-card
:class="classJudge(item)"
v-for="(item, index) in tableData"
:key="index">
<div slot="header" class="szxx_header">
<span class="header_type">{{
item.bdcqzlx == 1 ? "不动产权证书" : "不动产登记证明"
}}</span>
<div class="header_text">{{ item.bdcqzh }}</div>
</div>
<div class="szxx_body card_padding">
<div class="text color_iray">
<span>{{ item.qllx }}</span>
</div>
<div class="text color_red">
<span>{{ item.qlr }}</span><span class="color_iray">({{ item.qllx }})</span>
</div>
<div class="text color_iray">
<span>{{ item.gyqk }}</span>
</div>
<div class="text color_red">
<span>{{ item.bdcdyh }}</span>
</div>
<div class="text color_iray">
<span>{{ item.zl }}</span>
</div>
<div class="text color_red">
<span>{{ item.yt }}</span>
</div>
<div class="text color_iray">
<span>{{ item.mj }}</span>
</div>
<div class="text color_red">
<span>{{ item.syqx }}</span>
</div>
<div class="text color_iray">
<span>印刷序列号:{{ item.ysxlh }}</span>
</div>
</div>
<div class="card_padding" v-if="viewEdit">
<div class="top_line middle_margin"></div>
<div class="text tac" v-if="item.ysxlh">
<el-button
class="operation_button"
type="text"
@click="openInvalidDiglog(item)">再次打印({{ item.szcs }})</el-button>
<el-button
class="operation_button"
type="text"
@click="openRecordPop(item)">缮证记录</el-button>
</div>
<div class="text tac" v-else>
<el-button
class="operation_button"
type="text"
@click="openZsylDialog(item, 2)">证书打印({{ item.szcs }}</el-button>
<el-button
class="operation_button"
type="text"
@click="openRecordPop(item)">缮证记录</el-button>
</div>
</div>
</el-card>
<el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import store from "@/store/index.js";
import { getSlsqBdcqzList } from "@/api/bdcqz.js";
export default {
props: {},
data () {
return {
//表单是否可操作
viewEdit: false,
dialog: false,
tableData: [],
bdcqzlx: 1,
bdcqz: {},
};
},
computed: {
...mapGetters(["workFresh"]),
},
watch: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.list();
},
},
},
created () {
this.list();
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
},
methods: {
/**
* @description: 初始化列表
* @author: renchao
*/
list () {
return new Promise((resolve, reject) => {
var bsmSlsq = this.$route.query.bsmSlsq;
getSlsqBdcqzList({ bsmSlsq: bsmSlsq }).then((res) => {
resolve(res.code);
if (res.code === 200) {
this.tableData = res.result;
if (res.result) {
this.bdcqz = res.result[0];
}
}
});
});
},
/**
* @description: 打开证书预览弹窗
* @param {*} item
* @param {*} type
* @author: renchao
*/
openZsylDialog (item, type) {
store.dispatch("user/reWorkFresh", false);
if (type == 1) {
this.$popupDialog(
"证书证明预览",
"workflow/top/zsyl/index",
{ bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq },
'1230px',
true
);
} else {
this.$popupDialog(
"证书证明打印",
"workflow/main/szxx/zsdy",
{ ...item },
"76%",
true
);
}
},
/**
* @description: 再次打印
* @param {*} item
* @author: renchao
*/
openInvalidDiglog (item) {
this.$popupDialog(
"证书证明打印",
"workflow/main/szxx/zsdy",
{ ...item },
"76%",
true
);
},
/**
* @description: openRecordPop
* @param {*} item
* @author: renchao
*/
openRecordPop (item) {
this.$popupDialog(
"缮证记录",
"workflow/main/szxx/szRecord",
{ bsmBdcqz: item.bsmBdcqz },
"60%",
true
);
},
/**
* @description: classJudge 判断class
* @param {*} item
* @author: renchao
*/
classJudge (item) {
let className = "box-card";
if (item.bdcqzlx == 1) {
className += " zs-card";
} else {
className += " zm-card";
}
if (item.szcs == 0) {
className += " no-print";
}
return className;
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
.szxx {
box-sizing: border-box;
padding-right: 15px;
width: 100%;
height: 100%;
overflow-y: scroll;
padding-bottom: 55px;
.box-card {
float: left;
width: 350px;
margin: 10px;
box-shadow: none;
background-image: url("~@/image/zm-bg.png");
background-size: 100% 100%;
border: 1px solid transparent;
/deep/ .el-card__header {
padding: 12px 66px;
background-size: auto;
border-bottom: 0;
position: relative;
}
.szxx_header {
color: #8b4534;
}
.szxx_body {
height: 330px;
}
}
.zs-card {
border: 1px solid #a6b0be;
background-image: none;
/deep/ .el-card__header {
background-image: url("~@/image/zs-red.png");
.szxx_header {
color: #ffe47c;
}
}
.top_line {
border-top: 1px solid #d3dbe5;
width: 330px;
margin: 0 auto 10px;
}
}
.zm-card {
/deep/ .el-card__header {
&:after {
content: "";
display: inline-block;
width: 330px;
height: 1px;
background-color: #b28676;
position: absolute;
left: 10px;
bottom: 0;
}
}
}
.zm-card.no-print {
background-image: url("~@/image/zm-gray.png");
/deep/ .el-card__header {
&:after {
background-color: #6d7278;
}
}
.szxx_header {
color: #6d7278;
}
}
.zs-card.no-print {
/deep/ .el-card__header {
background-image: url("~@/image/zs-gray.png");
.szxx_header {
color: #ffffff;
}
}
}
}
.szxx_header {
// color: #ffffff;
// font-weight: bolder;
font-size: 16px;
.header_type {
display: flex;
justify-content: center;
align-content: center;
}
.header_text {
text-align: center;
margin-top: 2px;
line-height: 22px;
}
}
.text {
margin-bottom: 8px;
text-align: left;
text-indent: 16px;
}
.text.tac {
text-align: center;
}
.color_iray {
color: #6d7278;
}
.color_red {
color: #ab0c0c;
}
.middle_margin {
margin-bottom: 10px;
}
.operation_button {
border: 1px solid #5c95e5;
padding: 5px;
text-align: center;
}
.card_padding {
padding-top: 8px;
font-size: 14px;
line-height: 22px;
}
/deep/.el-card__body {
padding: 0px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-04 14:13:28
-->
<template>
<lb-table :column="tableData.columns" heightNumSetting :pagination="false" :key="key" :data="tableData.data">
</lb-table>
</template>
<script>
import { mapGetters } from 'vuex'
import { getSzRecordList } from "@/api/bdcqz.js";
import table from "@/utils/mixin/table";
import { szxxdatas } from "../../javascript/szxxdata";
export default {
components: {
},
mixins: [table],
computed: {
...mapGetters(["dictData"]),
},
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
key: 0,
dataIndex: 0,
dialog: false,
details: {},
tableData: {
total: 0,
columns: szxxdatas.columns(),
data: [],
},
}
},
mounted () {
this.query()
},
methods: {
/**
* @description: query
* @author: renchao
*/
query () {
getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then(res => {
if (res.code == 200) {
this.tableData.data = res.result;
this.key++
}
})
}
}
}
</script>
<style scoped lang='scss'>
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-06 13:26:37
-->
<template>
<div>
<div class="zsdy-content" v-Loading="loading">
<el-form
:model="ruleForm"
ref="ruleForm"
label-width="120px">
<el-form-item label="印刷序列号:" prop="ysxlh">
<el-row>
<el-col :span="18">
<el-select v-model="ruleForm.ysxlh" @change="handleSelect" :disabled="disabled" placeholder="请选择">
<el-option
v-for="item in ysxlh"
:key="item.ysxlh"
:label="item.ysxlh"
:value="item.ysxlh">
</el-option>
</el-select>
</el-col>
<el-col :span="4" v-if="this.formData.bdcqzlx==1">
<el-tabs v-model="activeTitle">
<el-tab-pane label="第一页" name="title1"></el-tab-pane>
<el-tab-pane label="第二页" name="title2"></el-tab-pane>
</el-tabs>
</el-col>
<el-col :span="2" v-if="this.formData.ysxlh" style="float:right">
<el-button type="primary" @click="handleZF" v-if="disabled">作废</el-button>
</el-col>
</el-row>
</el-form-item>
</el-form>
<div class="zs-content">
<canvas ref="zs1" width="1024" v-show="this.formData.bdcqzlx==1 && activeTitle=='title1'" height="739"></canvas>
<canvas ref="zs" width="1024" v-show="this.formData.bdcqzlx==1 && activeTitle=='title2'" height="739"></canvas>
<canvas ref="zm" width="1169" v-show="this.formData.bdcqzlx==2" height="828"></canvas>
</div>
</div>
<!-- 打印模板需要此模块 -->
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" v-show="false">
<embed id="LODOP_EM" type="application/x-print-lodop" width="1180" height="720" pluginspage="install_lodop32.exe" />
</object>
<div class="text-center pt-10">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="handlePrint" v-if="disabled">打印</el-button>
<el-button type="primary" @click="handleSubmit" v-else>确定</el-button>
</div>
<el-dialog title="证书作废" :visible.sync="invalidDiglog" width="40%" :modal-append-to-body="false" top="30vh">
<div class="invalid-diglog">
<div class="invalid-title">
<i class="el-icon-question invalid-icon"></i>
<div class="invalid-body">您确定作废证书并再次打印?印刷序列号{{bdcqz.ysxlh}}</div>
</div>
<div class="invalid-reson">作废原因:</div>
<el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input>
<div class="text-center pt-10">
<el-button @click="closeInvalidDiglog">取 消</el-button>
<el-button type="primary" @click="confirmInvalid">确 定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import QRCode from 'qrcode'
import store from '@/store/index.js'
import { datas } from "../../javascript/zsyl.js";
import { getPrintTemplateByCode } from "@/api/print";
import { getLodop } from "@/utils/LodopFuncs"
import { readYsxlh, certificate, getBdcqzDetail, invalidCertificate } from "@/api/bdcqz.js";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
activeTitle: 'title1',
// 详细信息
bdcqz: {},
key: 0,
disabled: false,
// 不动产证书图片地址
imgSrc1: require('@/image/bdcqz/bdcqzs1.jpg'),
imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
bdczmSrc: require('@/image/bdcqz/bdczm.jpg'),
loading: false,
//印刷序列号集合
ysxlh: [],
//列名称对象
columns: [],
//tab选择绑定值
activeName: '',
invalidDiglog: false,
zfyy: "",
ruleForm: {
bsmBdcqz: "",
szmc: "不动产权证书",
bdcqzlx: "",
szzh: "",
ysxlh: ""
}
}
},
mounted () {
store.dispatch('user/refreshPage', false)
this.columns = datas.columns()
this.ysxlhList()
// 获取详细信息
this.getDetail()
if (this.formData.ysxlh) {
this.disabled = true
} else {
this.disabled = false
}
},
methods: {
/**
* @description: 获取详细信息
* @author: renchao
*/
getDetail () {
this.loading = true
getBdcqzDetail(this.formData.bsmBdcqz).then(res => {
this.bdcqz = res.result
this.loading = false
if (this.bdcqz.ysxlh) this.ruleForm.ysxlh = this.bdcqz.ysxlh
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage()
} else {
this.drawTextzmImage()
}
})
},
/**
* @description: 获取印刷序列号列表
* @author: renchao
*/
ysxlhList () {
readYsxlh({ zslx: this.formData.bdcqzlx }).then((res) => {
if (res.code === 200) {
this.ysxlh = res.result;
}
})
},
/**
* @description: handleSelect
* @param {*} val
* @author: renchao
*/
handleSelect (val) {
this.bdcqz.ysxlh = this.ruleForm.ysxlh
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage()
} else {
this.drawTextzmImage()
}
},
/**
* @description: closeInvalidDiglog
* @author: renchao
*/
closeInvalidDiglog () {
this.zfyy = "";
this.invalidDiglog = false
},
/**
* @description: handleZF
* @author: renchao
*/
handleZF () {
this.invalidDiglog = true
},
/**
* @description: 作废缮证信息
* @author: renchao
*/
confirmInvalid () {
store.dispatch('user/reWorkFresh', false)
invalidCertificate({ bsmBdcqz: this.bdcqz.bsmBdcqz, zfyy: this.zfyy }).then((res) => {
if (res.code === 200) {
this.$message.success("作废成功");
this.disabled = false
this.invalidDiglog = false;
this.zfyy = ''
this.ruleForm.ysxlh = ''
this.bdcqz.ysxlh = ''
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage()
} else {
this.drawTextzmImage()
}
store.dispatch('user/reWorkFresh', true)
} else {
this.$message.error(res.message);
}
})
},
/**
* @description: 不动产证书
* @author: renchao
*/
drawTextOnImage1 () {
const canvas = this.$refs.zs1;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '18px 楷体';
context.fillStyle = '#000000';
let date = this.bdcqz.djsj.split(' ')[0].split('/');
let nian = date[0]
let yue = date[1]
let ri = date[2]
this.bdcqz.nian = nian
this.bdcqz.yue = yue
this.bdcqz.ri = ri
context.fillText(nian ? nian : '', 780, 499);
context.fillText(yue ? yue : '', 840, 499);
context.fillText(ri ? ri : '', 885, 499);
QRCode.toDataURL(this.bdcqz.bdcqzh, { margin: 0 })
.then(url => {
const qrImage = new Image();
this.bdcqz.qrImage = url; // 将二维码图片的 URL 存储到 bdcqz 对象的 qrImage 属性中
qrImage.onload = () => {
context.drawImage(qrImage, 670, 400, 100, 100);
};
qrImage.src = url;
})
.catch(error => {
console.error(error);
});
context.fillText(this.bdcqz.bdcqzbm ? this.bdcqz.bdcqzbm : '', 745, 633);
};
image.src = this.imgSrc1;
},
drawTextOnImage () {
this.drawTextOnImage1()
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
const canvas = this.$refs.zs;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '18px 楷体';
context.fillStyle = '#000000';
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
// context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56);
if (getByteLen(this.bdcqz.sxqc) > 14) {
const originalFont = context.font;
// 设置新的字体大小
context.font = '14px 楷体'; // 替换为你想要的字体和大小
// 绘制 bdcdyh
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 165, 56);
// 恢复原始字体设置
context.font = originalFont;
} else {
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 170, 56);
}
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97);
context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136);
this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223);
context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263);
context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303);
context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346);
let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : [];
if (getByteLen(this.bdcqz.mj) > 37) {
lines6.forEach((line, index) => {
const y = 378 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
} else {
lines6.forEach((line, index) => {
const y = 386 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
}
// 权利其他状态
const maxWidth = 332; // 最大宽度限制
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 37)
if (getByteLen(lines[i]) > 37) {
let currentLine = '';
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(line, 129, 495 + (29 * (i - 1)) + 4 * num + (index * 14)); // 调整行高
})
} else {
arr.forEach((line, index) => {
context.fillText(line, 129, 493 + (26 * (i - 1)) + (index * 14)); // 调整行高
})
}
} else {
if (i > 0) {
context.fillText(lines[i] ? lines[i] : '', 129, 500 + 4 * num + (29 * (i - 1)));
} else {
context.fillText(lines[i] ? lines[i] : '', 129, 505 + (27 * (i - 1)));
}
}
}
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
lines1.forEach((line, index) => {
const y = 100 + (index * 30); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 395) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 580, y + (index * 30)); // 调整行高
})
})
let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : [];
if (getByteLen(this.bdcqz.syqx) > 37) {
lines3.forEach((line, index) => {
const y = 423 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
} else {
lines3.forEach((line, index) => {
const y = 430 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 315) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
}
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
if (getByteLen(this.bdcqz.zl) > 37) {
lines2.forEach((line, index) => {
const y = 170 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
} else {
lines2.forEach((line, index) => {
const y = 180 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
}
}
image.src = this.imgSrc
},
/**
* @description: 不动产证明
* @author: renchao
*/
drawTextzmImage () {
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
const canvas = this.$refs.zm;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '18px 楷体';
context.fillStyle = '#000000';
// ysxlh
context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712);
// djsj
if (this.bdcqz.djsj) {
let djsjList = this.bdcqz.djsj.split(' ')[0].split('/')
context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580);
context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580);
context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580);
}
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125);
// context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 750, 125);
if (getByteLen(this.bdcqz.sxqc) > 14) {
const originalFont = context.font;
// 设置新的字体大小
context.font = '14px 楷体'; // 替换为你想要的字体和大小
// 绘制 bdcdyh
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 725, 125);
// 恢复原始字体设置
context.font = originalFont;
} else {
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 755, 125);
}
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123);
context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180);
// context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
// 权利人
let qlrlines = this.bdcqz.qlr
if (getByteLen(this.bdcqz.qlr) > 32) {
let currentLine = '';
let arr = [];
for (let word of qlrlines) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine); // 将最后一行添加到数组
// 绘制所有行
for (let i = 0; i < arr.length; i++) {
context.fillText(arr[i], 775, 218 + i * 20); // lineHeight 为行高
}
} else {
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
}
// 义务人
// context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
let ywrlines = this.bdcqz.ywr
if (getByteLen(this.bdcqz.ywr) > 32) {
let currentLine = '';
let arr = [];
for (let word of ywrlines) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine); // 将最后一行添加到数组
// 绘制所有行
for (let i = 0; i < arr.length; i++) {
context.fillText(arr[i], 775, 268 + i * 20); // lineHeight 为行高
}
} else {
context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
}
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
if (getByteLen(this.bdcqz.zl) > 32) {
lines2.forEach((line, index) => {
const y = 315 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + (index * 20)); // 调整行高
})
})
} else {
lines2.forEach((line, index) => {
const y = 325 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + (index * 20)); // 调整行高
})
})
}
// bdcdyh
this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
// 保存当前字体设置
const originalFont = context.font;
// 设置新的字体大小
context.font = '16px 楷体'; // 替换为你想要的字体和大小
// 绘制 bdcdyh
context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
// 恢复原始字体设置
context.font = originalFont;
// qlqtzk
function getByteLenBdcdy (val) {
var encoder = new TextEncoder('utf-8');
return encoder.encode(val).length;
}
const maxWidth = 290; // 最大宽度限制
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
let bdcdyNum = Math.ceil(getByteLenBdcdy(lines[0]) / 43)
// 单独处理不动产单元号
let linesBdcdy = lines[0] ? lines[0].split(' ') : [];
if (getByteLenBdcdy(lines[0]) > 43) {
linesBdcdy.forEach((line, index) => {
const y = 412 + (index * 17); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 770, y + (index * 17)); // 调整行高
})
})
} else {
linesBdcdy.forEach((line, index) => {
const y = 418 + (index * 17); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 770, y + (index * 17)); // 调整行高
})
})
}
for (let i = 1; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 32)
if (getByteLen(lines[i]) > 32) {
let currentLine = '';
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
})
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + (index * 17)); // 调整行高
})
}
} else {
if (i > 0) {
context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + 6 * num + (25 * (i - 1)));
} else {
context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + (25 * (i - 1)));
}
}
}
// fj
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
for (let i = 0; i < lines1.length; i++) {
let num = Math.ceil(getByteLen(lines1[i]) / 37)
if (getByteLen(lines1[i]) > 37) {
let currentLine = '';
let arr = [];
for (let word of lines1[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(line, 770, 605 + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
})
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 605 + (24 * (i - 1)) + (index * 17)); // 调整行高
})
}
} else {
if (i > 0) {
context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + 6 * num + (25 * (i - 1)));
} else {
context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + (25 * (i - 1)));
}
}
}
}
image.src = this.bdczmSrc;
},
/**
* @description: 打印
* @author: renchao
*/
handlePrint () {
let that = this
if (this.ruleForm.ysxlh == '') {
this.$message.error('请选择印刷序列号');
return;
}
store.dispatch('user/reWorkFresh', false)
if (this.bdcqz.bdcqzlx == 1) {
if (this.activeTitle == 'title1') {
getPrintTemplateByCode({ tmpno: 'zsdy1' }).then(resInfo => {
if (resInfo.code == 200) {
//打开模板设计
let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
console.log(that.bdcqz);
for (let key in that.bdcqz) {
LODOP.SET_PRINT_STYLEA(key, "CONTENT", that.bdcqz[key]);
}
LODOP.PREVIEW();
} else {
that.$message.error(resInfo.message)
}
that.$popupCacel()
//刷新列表
store.dispatch('user/reWorkFresh', true)
})
} else {
getPrintTemplateByCode({ tmpno: 'zsdy' }).then(resInfo => {
if (resInfo.code == 200) {
//打开模板设计
let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
that.bdcqz.bdcdyh1 = that.bdcqz.bdcdyh.slice(0, 6) + ' ' + that.bdcqz.bdcdyh.slice(6, 12) + ' ' +
that.bdcqz.bdcdyh.slice(12, 19) + ' ' + that.bdcqz.bdcdyh.slice(19, that.bdcqz.bdcdyh.length)
//todo 调取后端接口获取数据 循环set
for (let key in that.bdcqz) {
LODOP.SET_PRINT_STYLEA(key, "CONTENT", that.bdcqz[key]);
}
LODOP.PREVIEW();
} else {
that.$message.error(resInfo.message)
}
that.$popupCacel()
//刷新列表
store.dispatch('user/reWorkFresh', true)
})
}
} else {
getPrintTemplateByCode({ tmpno: 'zmdy' }).then(resInfo => {
if (resInfo.code == 200) {
//打开模板设计
let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
// 年月日
this.bdcqz.nian = this.bdcqz.djsj.split(' ')[0].split('/')[0]
this.bdcqz.yue = this.bdcqz.djsj.split(' ')[0].split('/')[1]
this.bdcqz.ri = this.bdcqz.djsj.split(' ')[0].split('/')[1]
this.bdcqz.bdcdyh1 = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
//todo 调取后端接口获取数据 循环set
for (let key in this.bdcqz) {
LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.bdcqz[key]);
}
LODOP.PREVIEW();
} else {
this.$message.error(resInfo.message)
}
that.$popupCacel()
//刷新列表
store.dispatch('user/reWorkFresh', true)
})
}
},
/**
* @description: 保存打印记录
* @author: renchao
*/
handleSubmit () {
let that = this
if (this.ruleForm.ysxlh == '') {
this.$message.error('请选择印刷序列号');
return;
}
store.dispatch('user/reWorkFresh', false)
this.ruleForm.bsmBdcqz = this.bdcqz.bsmBdcqz;
this.ruleForm.bdcqzlx = this.bdcqz.bdcqzlx;
this.ruleForm.szzh = this.bdcqz.bdcqzh;
this.bdcqz.ysxlh = this.ruleForm.ysxlh
certificate(this.ruleForm).then((res) => {
if (res.code === 200) {
that.$popupCacel()
this.handlePrint()
} else {
this.$message.error(res.message)
}
store.dispatch('user/reWorkFresh', true)
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
/deep/.el-tabs__nav-wrap::after {
display: none;
}
/deep/.el-tabs__header {
margin: 0;
}
/deep/.el-form-item--small.el-form-item {
margin-bottom: 0;
}
.zsdy-content {
height: 80vh;
overflow-y: scroll;
}
.zs-content {
text-align: center;
}
.invalid-diglog {
padding-bottom: 20px;
font-size: 16px;
font-weight: bold;
color: rgb(99, 99, 99);
.invalid-title {
display: flex;
align-content: center;
.invalid-icon {
color: rgb(254, 148, 0);
font-size: 34px;
margin-right: 10px;
}
.invalid-body {
line-height: 40px;
margin-bottom: 10px;
}
}
.invalid-reson {
margin-bottom: 10px;
}
.dialog-footer {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-18 14:06:16
-->
<template>
<div style="width:100%;height:100%;">
<canvas id="mxcad" style="width:100%;height:100%;">
</canvas>
</div>
</template>
<script>
import Mx from "mxdraw"
export default {
mounted () {
// 动态加载 js库核心代码
Mx.loadCoreCode().then(() => {
// Mx.MxFun.setMxServer("ws://localhost:5090") // 开启socket通信 可编辑图纸
// 创建控件对象
Mx.MxFun.createMxObject({
canvasId: "mxcad", // canvas元素的id
cadFile: "buf/hhhh.dwg", // http方式(预览): 加载public/demo文件夹下转换后的图纸
callback: (mxDraw, {
canvas,
canvasParent
}) => {
// 可以拿到canvas元素和它的父级元素
// 拿到图层数据
mxDraw.addEvent('uiSetLayerData', (listLayer) => {
console.log(listLayer)
})
},
isNewFile: true // 是否新建文件
})
})
},
}
</script>
<style scoped lang="scss">
#mxcad {
pointer-events: none;
}
</style>
\ No newline at end of file
......@@ -86,7 +86,7 @@ export default {
case "B1":
getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
let { result } = res
this.$popupDialog("流程图", "workflow/components/processViewer", {
this.$popupDialog("流程图", "workflow/top/processViewer/index", {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedActivityIds,
......@@ -122,13 +122,13 @@ export default {
this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true)
break;
case "B5":
this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", {
this.$popupDialog("证书证明预览", "workflow/top/zsyl/index", {
bsmSlsq: this.bsmSlsq,
entryType: '1'
}, '1230px', true)
break;
case "B-ZSXG":
this.$popupDialog("证书修改", "workflow/components/dialog/zsxg", { bsmSlsq: this.bsmSlsq, }, '55%', true)
this.$popupDialog("证书修改", "workflow/top/zsxg/index", { bsmSlsq: this.bsmSlsq, }, '55%', true)
break;
case "B6":
this.$popupDialog("打印申请书", "workflow/components/dialog/sqs",
......@@ -171,11 +171,11 @@ export default {
getZdInfo(this.currentSelectProps.bdcdyid).then(res => {
this.bsmZd = res?.result[0]?.bsmZd
console.log(this.bsmZd);
this.$popupDialog('图形定位', 'workflow/components/dialog/txdw', { bsmZd: this.bsmZd }, '85%', true)
this.$popupDialog('图形定位', 'workflow/top/map/index', { bsmZd: this.bsmZd }, '85%', true)
})
break;
case "back": //退回按钮
this.$popupDialog("退回", "workflow/components/th", {
this.$popupDialog("退回", "workflow/top/back/index", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid ? this.bestepid : ''
}, '800px', true)
......@@ -283,10 +283,11 @@ export default {
* @author: renchao
*/
sendToNext (obj) {
this.$popupDialog("转出", "djbworkflow/components/zc", {
this.$popupDialog("转出", "workflow/top/transfer/index", {
obj: obj,
bsmSlsq: this.bsmSlsq,
tabList: this.tabList
tabList: this.tabList,
tshowidea: this.showidea
}, '800px', true)
},
/**
......@@ -295,10 +296,11 @@ export default {
* @author: renchao
*/
sendToEnd (obj) {
this.$popupDialog("转出", "djbworkflow/components/zc", {
this.$popupDialog("转出", "workflow/top/transfer/index", {
obj: "",
bsmSlsq: this.bsmSlsq,
tabList: this.tabList
tabList: this.tabList,
showidea: this.showidea
}, '800px', true)
},
/**
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-08-02 14:24:20
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<div class="title">请选择要退回到的环节:</div>
<el-form ref="queryForm" label-width="90px">
<ul style="margin-bottom: 15px">
<li
v-for="(item, index) in dataList"
class="listDetail"
:key="index"
@click="changeSelectItem(item)">
<p class="icon">
<el-radio
v-model="selectActivity"
:label="item.activityId"
@change="changeSelectItem(item)"></el-radio>
</p>
<p>{{ item.activityName }}</p>
<p v-for="(child, childIndex) in item.assignee" :key="childIndex">
{{ child.name }}
</p>
</li>
</ul>
<div class="title">退回意见:</div>
<el-form-item>
<el-input
class="textArea"
type="textarea"
v-model="outstepopinion"
placeholder="请输入退回意见"></el-input>
</el-form-item>
<el-form-item>
<el-button style="float:right" @click="cancelBack">取消</el-button>
<el-button type="primary" @click="onSubmit" style="float:right">退回</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import { getTaskBackNode, sendBackTask } from "@/api/workFlow.js"
import { popupCacel } from "@/utils/popup.js";
export default {
props: {
formData: {
type: Object,
default: {},
},
},
data () {
return {
selectActivity: "",
dataList: [],
outstepopinion: "",
selectItem: {},
};
},
created () {
this.getBackNode();
},
methods: {
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
if (!this.outstepopinion) {
this.$message.error("请填写退回意见");
} else {
sendBackTask({
bsmSlsq: this.formData.bsmSlsq,
backNodeList: [this.selectItem],
message: this.outstepopinion
}).then((res) => {
if (res.code == 200) {
this.$message.success("退回成功");
setTimeout(() => {
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
window.close();
this.$emit("input", false);
}, 1000);
} else {
this.$message.error(res.message);
}
});
}
},
/**
* @description: changeSelectItem
* @param {*} item
* @author: renchao
*/
changeSelectItem (item) {
this.selectItem = item;
this.selectActivity = item.activityId;
},
//获取可回退环节信息
/**
* @description: 获取可回退环节信息
* @author: renchao
*/
getBackNode () {
getTaskBackNode(this.formData).then((res) => {
if (res.code == 200) {
this.dataList = res.result;
console.log("this.dataList", this.dataList);
if (res.result) {
this.selectActivity = res.result[0].activityId;
this.selectItem = res.result[0];
}
}
});
},
/**
* @description: cancelBack
* @author: renchao
*/
cancelBack () {
popupCacel();
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.listDetail {
display: flex;
align-items: center;
width: 100%;
p {
line-height: 30px;
height: 30px;
@include flex-center;
flex: 1;
width: 100%;
border: 1px solid rgb(233, 235, 237);
margin-top: -1px;
margin-left: -1px;
}
.icon {
flex: 0 0 60px;
}
}
.title {
margin-bottom: 10px;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-radio .el-radio__label {
display: none;
}
</style>
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-23 14:07:58
*/
/**
* @description: 按钮操作
* @param attribute:按钮属性
* @param address:地址栏数据
* @param sldy:受理单元数据
* @author: renchao
*/
export function buttonOnclike(attribute, address, sldy) {
//按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿,B10:打印回执 ZSXG: 证书修改
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
switch (item.value) {
case "B0":
btn_add(attribute, address, sldy);
break;
case "B1":
btn_flow(attribute, address, sldy);
break;
case "B2": //材料分屏按钮
btn_clfp(attribute, address, sldy);
break;
case "B3": //材料导入
btn_cldr(attribute, address, sldy);
break;
case "B4":
btn_djb(attribute, address, sldy);
break;
case "B5":
btn_zsyl(attribute, address, sldy);
break;
case "B-ZSXG":
btn_zsxg(attribute, address, sldy);
break;
case "B6":
btn_dysqs(attribute, address, sldy);
break;
case "B7":
btn_zslq(attribute, address, sldy);
break;
case "B8":
btn_houses(attribute, address, sldy);
break;
// 图形定位
case "B-TXDW":
btn_map(attribute, address, sldy);
break;
case "back": //退回按钮
btn_back(attribute, address, sldy);
break;
case "transfer": //转件按钮
btn_transfer(attribute, address, sldy);
break;
case "stop": //终止按钮
btn_stop(attribute, address, sldy);
break;
case "signout":
btn_signout(attribute, address, sldy);
break;
case "B9":
btn_record(attribute, address, sldy);
break;
case "B10":
break;
case "rm":
btn_deleteFlow();
break;
// 互联网数据共享
case "B-HLGXSJ":
btn_dataShare(attribute, address, sldy);
break;
default:
console.log("未开发!");
break;
}
}
//新增受理单元
function btn_add(attribute, address, sldy) {
this.openDialog(attribute);
}
//流程图
function btn_flow(attribute, address, sldy) {
getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
let { result } = res
this.$popupDialog("流程图", "workflow/components/processViewer", {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedActivityIds,
unfinishedTaskSet: result.runningActivityIds,
rejectedTaskSet: result.rejectedActivityIds,
finishedSequenceFlowSet: result.finishedSequenceFlowIds
},
handlinglist: result.runningTasks,
allCommentList: result.finishedTasks
}, '80%', true)
})
}
//材料分屏
function btn_clfp(attribute, address, sldy) {
this.splitScreen = this.splitScreen ? false : true;
this.$store.dispatch("app/settScreen", this.splitScreen);
if (this.splitScreen) {
//如果当前选项卡为材料信息内容,递减到上一个选项卡内容
if (this.tabName == this.clxxTab.value) {
this.tabName = this.tabList[this.clxxIndex - 1].value;
this.getFromRouter(this.tabList[this.clxxIndex - 1].value);
}
//删除材料信息选项卡数据
this.tabList.splice(this.clxxIndex, 1);
} else {
//新增材料信息选项卡数据
this.tabList.splice(this.clxxIndex, 0, this.clxxTab);
}
}
//材料导入
function btn_cldr(attribute, address, sldy) {
document.getElementById("cldr").click();
}
//登记簿
function btn_djb(attribute, address, sldy) {
this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true)
}
//打印申请书
function btn_dysqs(attribute, address, sldy) {
this.$popupDialog("打印申请书", "workflow/components/dialog/sqs",
{ bsmSldy: this.currentSelectProps.bsmSldy }, '30%', true
)
}
//证书预览
function btn_zsyl(attribute, address, sldy) {
this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", {
bsmSlsq: this.bsmSlsq,
entryType: '1'
}, '1230px', true)
}
//证书修改
function btn_zsxg(attribute, address, sldy) {
this.$popupDialog("证书修改", "workflow/components/dialog/zsxg", { bsmSlsq: this.bsmSlsq, }, '55%', true);
}
//证书领取
function btn_zslq(attribute, address, sldy) {
this.$popupDialog("证书领取", "workflow/components/dialog/zslq",
{ bsmSlsq: this.$route.query.bsmSlsq }, '70%', true
)
}
//楼盘表
function btn_houses(attribute, address, sldy) {
!window.djlx && getZrzbsmList(this.bsmSlsq).then((res) => {
if (res.code === 200) {
ywPopupDialog('楼盘表', 'lpb/index', {
bsm: res.result[0],
onlyShow: false,
unitData: window.unitData,
bsmSlsq: this.bsmSlsq,
showSave: true,
djlx: window.djlx
}, '85%', true, false)
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
this.$message.error(err)
});
window.djlx && ywPopupDialog('楼盘表', 'lpb/zjgcdy', {
onlyShow: false,
unitData: window.unitData,
bsmSlsq: this.bsmSlsq,
showSave: true,
djlx: window.djlx
}, '85%', true, false)
}
//登簿
function btn_record(attribute, address, sldy) {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid ? this.bestepid : '');
this.$confirm("请确认是否登簿", "提示", {
iconClass: "el-icon-info", //自定义图标样式
confirmButtonText: "确认", //确认按钮文字更换
cancelButtonText: "取消", //取消按钮文字更换
showClose: true, //是否显示右上角关闭按钮
type: "warning", //提示类型 success/info/warning/error
}).then(function () {
record(formdata).then((res) => {
if (res.code === 200) {
if (res.result.length === 1) {
res.result[0].state ? that.$message({
message: '登簿成功',
type: 'success'
}) : ywPopupDialog("登簿错误明细", "workflow/components/dialog/dblist", { result: res.result }, '30%', true)
}
else {
ywPopupDialog("登簿错误明细", "workflow/components/dialog/dblist", { result: res.result }, '30%', true)
}
} else {
that.$message.error(res.message)
}
})
})
}
//转件
function btn_transfer(attribute, address, sldy) {
getNextLinkInfo({
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid ? this.bestepid : ''
}).then((res) => {
if (res.code === 200) {
if (res.result) {
this.sendToNext(res.result);
} else {
this.sendToEnd();
}
}
});
}
//退回
function btn_back(attribute, address, sldy) {
this.$popupDialog("退回", "workflow/components/th", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid ? this.bestepid : ''
}, '800px', true)
}
//退出
function btn_signout(attribute, address, sldy) {
window.close();
//取消认领
unClaimTask(this.bsmSlsq, this.bestepid ? this.bestepid : '')
}
//终止流程
function btn_stop(attribute, address, sldy) {
this.$popupDialog("终止", "workflow/components/stop", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid ? this.bestepid : ''
}, '600px', true);
}
//删除流程
function btn_deleteFlow(attribute, address, sldy) {
this.del();
}
//数据共享
function btn_dataShare(attribute, address, sldy) {
this.$popupDialog("互联网数据共享", "sjgx/gbmhlgxsjgx/gbmhlgxsjgx", {}, '90%', true)
}
//图形定位
function btn_map(attribute, address, sldy) {
getZdInfo(this.currentSelectProps.bdcdyid).then(res => {
this.bsmZd = res?.result[0]?.bsmZd;
this.$popupDialog('图形定位', 'workflow/components/dialog/txdw', { bsmZd: this.bsmZd }, '85%', true)
})
}
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-23 17:20:01
-->
<template>
<iframe :src="ip +'/txdw/#/' + formData.bsmZd" frameborder="0" style="width: 100%; height:710px;"></iframe>
</template>
<script>
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
ip: window._config.services.management
}
}
}
</script>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:41:15
-->
<template>
<div>
<div class="process-viewer">
<div
v-show="!isLoading"
ref="processCanvas"
class="process-canvas"
style="height: 280px"
/>
<!-- 自定义箭头样式,用于成功状态下流程连线箭头 -->
<defs ref="customSuccessDefs">
<marker
id="sequenceflow-end-white-success"
view-box="0 0 20 20"
ref-x="11"
ref-y="10"
marker-width="10"
marker-height="10"
orient="auto"
>
<path
class="success-arrow"
d="M 1 5 L 11 10 L 1 15 Z"
style="
stroke-width: 1px;
stroke-linecap: round;
stroke-dasharray: 10000, 1;
"
/>
</marker>
<marker
id="conditional-flow-marker-white-success"
view-box="0 0 20 20"
ref-x="-1"
ref-y="10"
marker-width="10"
marker-height="10"
orient="auto"
>
<path
class="success-conditional"
d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
style="
stroke-width: 1px;
stroke-linecap: round;
stroke-dasharray: 10000, 1;
"
/>
</marker>
</defs>
<!-- 自定义箭头样式,用于失败状态下流程连线箭头 -->
<defs ref="customFailDefs">
<marker
id="sequenceflow-end-white-fail"
view-box="0 0 20 20"
ref-x="11"
ref-y="10"
marker-width="10"
marker-height="10"
orient="auto"
>
<path
class="fail-arrow"
d="M 1 5 L 11 10 L 1 15 Z"
style="
stroke-width: 1px;
stroke-linecap: round;
stroke-dasharray: 10000, 1;
"
/>
</marker>
<marker
id="conditional-flow-marker-white-fail"
view-box="0 0 20 20"
ref-x="-1"
ref-y="10"
marker-width="10"
marker-height="10"
orient="auto"
>
<path
class="fail-conditional"
d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
style="
stroke-width: 1px;
stroke-linecap: round;
stroke-dasharray: 10000, 1;
"
/>
</marker>
</defs>
<div style="position: absolute; top: 0px; left: 0px; width: 100%">
<el-row type="flex" justify="end">
<el-button-group key="scale-control" size="medium">
<el-button
size="medium"
type="default"
:plain="true"
:disabled="defaultZoom <= 0.3"
icon="el-icon-zoom-out"
@click="processZoomOut()"
/>
<el-button size="medium" type="default" style="width: 90px">{{
Math.floor(this.defaultZoom * 10 * 10) + "%"
}}</el-button>
<el-button
size="medium"
type="default"
:plain="true"
:disabled="defaultZoom >= 3.9"
icon="el-icon-zoom-in"
@click="processZoomIn()"
/>
<el-button
size="medium"
type="default"
icon="el-icon-c-scale-to-original"
@click="processReZoom()"
/>
<slot />
</el-button-group>
</el-row>
</div>
</div>
<!-- 已完成节点悬浮弹窗 -->
<div class="information-list">
<el-select v-model="selectValue" @change="handleSelect">
<el-option
v-for="item in selectOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<div class="cutline">
<p class="cutlines">图例</p>
<div v-for="item in cutlinelist" :key="item.value" class="concent" :style="{ backgroundColor: item.backgroundColor,borderColor:item.color }">
{{item.value}}
</div>
</div>
<el-table
height="190"
:data="taskCommentList"
size="mini"
border
header-cell-class-name="table-header-gray"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="55px"
/>
<el-table-column label="环节" prop="name" align="center" />
<el-table-column
label="转入时间"
prop="createTime"
:formatter="formatDate"
width="160"
align="center"
/>
<el-table-column
label="认领时间"
prop="claimTime"
:formatter="formatDate"
width="160"
align="center"
/>
<el-table-column
label="转出时间"
prop="endTime"
:formatter="formatDate"
width="160"
align="center"
/>
<el-table-column label="经办人" prop="agent" align="center" />
<el-table-column label="操作方式" prop="controls" align="center" />
<el-table-column label="意见" prop="idea" align="center" />
</el-table>
</div>
</div>
</template>
<script>
import "@/styles/package/theme/index.scss";
import BpmnViewer from "bpmn-js/lib/Viewer";
import MoveCanvasModule from "diagram-js/lib/navigation/movecanvas";
export default {
props: {
formData: {
type: Object,
default: {},
},
},
data() {
return {
dlgTitle: undefined,
defaultZoom: 1,
// 是否正在加载流程图
isLoading: true,
bpmnViewer: undefined,
// 已完成流程元素
processNodeInfo: undefined,
// 当前任务id
selectTaskId: undefined,
// 任务节点审批记录
taskList: [],
taskCommentList: [],
// 已完成任务悬浮延迟Timer
hoverTimer: null,
// 下拉
selectValue: "",
selectOptions: [],
cutlinelist:[
{
value: "完成节点",
color: "#4eb819",
backgroundColor :"rgba(78, 184, 25,0.2)"
},
{
value: "当前节点",
color: "#409EFF",
backgroundColor :"rgba(64, 158, 255,0.2)"
},
{
value: "挂起节点",
color: "#E6A23C",
backgroundColor :"rgba(230, 162, 60,0.2)"
},
{
value: "阻塞节点",
color: "#F56C6C",
backgroundColor :"rgb(245, 108, 108,0.2)"
},
{
value: "未激活节点",
color: "#000000",
backgroundColor :"none",
}
],
};
},
created() {
this.$nextTick(() => {
// 获取流程记录
this.getCommentList();
this.setProcessStatus(this.formData.finishedInfo);
this.importXML(this.formData.xml);
});
},
destroyed() {
this.clearViewer();
},
methods: {
/**
* @description: formatDate
* @param {*} row
* @param {*} column
* @author: renchao
*/
formatDate(row, column) {
let data = row[column.property];
if (data == null) {
return null;
}
let dt = new Date(data);
return (
dt.getFullYear() +
"-" +
(dt.getMonth() + 1) +
"-" +
dt.getDate() +
" " +
dt.getHours() +
":" +
dt.getMinutes() +
":" +
dt.getSeconds()
);
},
/**
* @description: processReZoom
* @author: renchao
*/
processReZoom() {
this.defaultZoom = 1;
this.bpmnViewer.get("canvas").zoom("fit-viewport", "auto");
},
/**
* @description: processZoomIn
* @param {*} zoomStep
* @author: renchao
*/
processZoomIn(zoomStep = 0.1) {
const newZoom = Math.floor(this.defaultZoom * 100 + zoomStep * 100) / 100;
if (newZoom > 4) {
throw new Error(
"[Process Designer Warn ]: The zoom ratio cannot be greater than 4"
);
}
this.defaultZoom = newZoom;
this.bpmnViewer.get("canvas").zoom(this.defaultZoom);
},
/**
* @description: processZoomOut
* @param {*} zoomStep
* @author: renchao
*/
processZoomOut(zoomStep = 0.1) {
const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100;
if (newZoom < 0.2) {
throw new Error(
"[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2"
);
}
this.defaultZoom = newZoom;
this.bpmnViewer.get("canvas").zoom(this.defaultZoom);
},
/**
* @description: getOperationTagType
* @param {*} type
* @author: renchao
*/
getOperationTagType(type) {
return "success";
},
// 流程图预览清空
/**
* @description: 流程图预览清空
* @param {*} e
* @author: renchao
*/
clearViewer(a) {
if (this.$refs.processCanvas) {
this.$refs.processCanvas.innerHTML = "";
}
if (this.bpmnViewer) {
this.bpmnViewer.destroy();
}
this.bpmnViewer = null;
},
// 添加自定义箭头
/**
* @description: 添加自定义箭头
* @author: renchao
*/
addCustomDefs() {
const canvas = this.bpmnViewer.get("canvas");
const svg = canvas._svg;
const customSuccessDefs = this.$refs.customSuccessDefs;
const customFailDefs = this.$refs.customFailDefs;
svg.appendChild(customSuccessDefs);
svg.appendChild(customFailDefs);
},
// 任务悬浮弹窗
/**
* @description: 任务悬浮弹窗
* @param {*} element
* @author: renchao
*/
onSelectElement(element) {
this.selectTaskId = undefined;
this.dlgTitle = undefined;
let allfinishedTaskSet = [
...this.processNodeInfo.finishedTaskSet,
...this.processNodeInfo.unfinishedTaskSet,
];
if (this.processNodeInfo == null || allfinishedTaskSet == null) return;
if (element == null || allfinishedTaskSet.indexOf(element.id) === -1) {
return;
}
this.selectTaskId = element.id;
this.selectValue = element.id;
this.dlgTitle = element.businessObject
? element.businessObject.name
: undefined;
// 计算当前悬浮任务审批记录,如果记录为空不显示弹窗
this.taskCommentList = (this.taskList || []).filter((item) => {
return item.taskDefinitionKey === this.selectTaskId;
});
if (this.taskCommentList.length == 0) {
this.taskCommentList = this.taskList;
}
},
// 下拉列表切换
/**
* @description: 下拉列表切换
* @param {*} val
* @author: renchao
*/
handleSelect(val) {
this.taskCommentList = (this.taskList || []).filter((item) => {
return item.taskDefinitionKey === val;
});
if (this.taskCommentList.length == 0) {
this.taskCommentList = this.taskList;
}
},
// 显示流程图
/**
* @description: 显示流程图
* @param {*} xml
* @author: renchao
*/
async importXML(xml) {
let xmlData = this.$x2js.xml2js(xml).definitions.process;
this.selectOptions = xmlData.userTask.map((item) => {
return { value: item._id, label: item._name };
});
this.selectOptions = [
{ value: xmlData.startEvent._id, label: "浏览记录" },
...this.selectOptions,
];
this.selectOptions = this.selectOptions
.map((item) => {
if (this.formData.finishedInfo.finishedTaskSet.includes(item.value)) {
return item;
}
if (
this.formData.finishedInfo.unfinishedTaskSet.includes(item.value)
) {
return item;
}
})
.filter(Boolean);
this.selectValue = xmlData.startEvent._id;
this.clearViewer("a");
if (xml != null && xml !== "") {
try {
this.bpmnViewer = new BpmnViewer({
additionalModules: [
// 移动整个画布
MoveCanvasModule,
],
container: this.$refs.processCanvas,
});
// 任务节点悬浮事件
this.bpmnViewer.on("element.click", ({ element }) => {
this.onSelectElement(element);
});
await this.bpmnViewer.importXML(xml);
this.isLoading = true;
this.addCustomDefs();
} catch (e) {
this.clearViewer("b");
} finally {
this.isLoading = false;
this.setProcessStatus(this.processNodeInfo);
this.$nextTick(() => {
this.processReZoom();
});
}
}
},
// 获取流程记录
/**
* @description: 获取流程记录
* @author: renchao
*/
getCommentList() {
this.formData.allCommentList.forEach(async (item, index) => {
// item.comments.forEach(element => {
// if(element.type=="COMPLETE"){
// this.formData.allCommentList[index].idea=element.message
// this.formData.allCommentList[index].controls="完成"
// }
// });
let type = item.comments[item.comments.length - 1].type;
this.formData.allCommentList[index].idea =
item.comments[item.comments.length - 1].message;
// 操作方式
let controls = "";
// 正在办理
// 已完结
// 已退回
switch (type) {
case "COMPLETE":
controls = "完成";
break;
case "CLAIM":
controls = "完成";
break;
case "ASSIGN":
controls = "转办";
break;
case "DELEGATE":
controls = "委派";
break;
case "UNCLAIM":
controls = "取消认领";
break;
case "STOP":
controls = "终止";
break;
case "BACK":
controls = "退回";
break;
}
this.formData.allCommentList[index].controls = controls;
this.formData.allCommentList[index].agent = item.assignee.name;
});
this.formData.handlinglist.forEach(async (item, index) => {
if (item.assignee.name) {
this.formData.handlinglist[index].agent = item.assignee.name;
} else {
let str = "";
item.countersign.forEach((item) => {
str += item.name + ",";
});
str = str.slice(0, -1);
this.formData.allCommentList[index].agent = str;
}
});
this.taskList = [
...this.formData.allCommentList,
...this.formData.handlinglist,
];
// this.taskList =this.formData.allCommentList;
// 处理数据之后赋值
this.taskCommentList = this.taskList;
this.taskCommentList = this.taskCommentList.sort(this.sortDownDate);
},
/**
* 时间排序函数
* @description: formatDate
* @param {*} row
* @param {*} column
* @author: renchao
*/
sortDownDate(a, b) {
return Date.parse(a.createTime) - Date.parse(b.createTime);
},
// 设置流程图元素状态
/**
* @description: 设置流程图元素状态
* @param {*} processNodeInfo
* @author: renchao
*/
setProcessStatus(processNodeInfo) {
this.processNodeInfo = processNodeInfo;
if (
this.isLoading ||
this.processNodeInfo == null ||
this.bpmnViewer == null
)
return;
const {
finishedTaskSet,
rejectedTaskSet,
unfinishedTaskSet,
finishedSequenceFlowSet,
} = this.processNodeInfo;
const canvas = this.bpmnViewer.get("canvas");
const elementRegistry = this.bpmnViewer.get("elementRegistry");
if (Array.isArray(finishedSequenceFlowSet)) {
finishedSequenceFlowSet.forEach((item) => {
if (item != null) {
canvas.addMarker(item, "success");
const element = elementRegistry.get(item);
const conditionExpression =
element.businessObject.conditionExpression;
if (conditionExpression) {
canvas.addMarker(item, "condition-expression");
}
}
});
}
if (Array.isArray(finishedTaskSet)) {
finishedTaskSet.forEach((item) => canvas.addMarker(item, "success"));
}
if (Array.isArray(unfinishedTaskSet)) {
unfinishedTaskSet.forEach((item) => canvas.addMarker(item, "primary"));
}
if (Array.isArray(rejectedTaskSet)) {
rejectedTaskSet.forEach((item) => {
if (item != null) {
const element = elementRegistry.get(item);
if (element.type.includes("Task")) {
canvas.addMarker(item, "danger");
} else {
canvas.addMarker(item, "warning");
}
}
});
}
},
},
};
</script>
<style scoped lang="scss">
.information-list {
height: 220px;
margin-top: 10px;
p {
font-size: 16px;
line-height: 24px;
}
}
/deep/.bjs-powered-by {
display: none;
}
// /deep/.information-list {
// height: 170px;
// overflow: visible;
// }
.cutline {
float: right;
width: 30%;
height: 30px;
display: flex;
margin-right: 30px;
justify-content: space-between;
.cutlines{
line-height: 30px;
font-weight: 600;
margin-right: 50px;
}
.concent{
line-height: 30px;
line-height: 14px;
text-align: center;
align-items: center;
margin: auto;
padding: 3px;
border-radius: 4px;
border:1px solid #fff;
}
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-27 08:51:13
-->
<template>
<div class="from-clues">
<div class="invalid-title">
<i class="el-icon-question invalid-icon"></i>
<div class="invalid-body">您是否确定终止该业务办理?</div>
</div>
<div class="invalid-reson">退件原因:</div>
<el-input
v-model="stopMessage"
placeholder="请输入终止原因"
type="textarea"
:rows="4"></el-input>
<div style="overflow:hidden;text-align:center;margin-top:10px">
<el-button @click="cancelBack">取消</el-button>
<el-button type="primary" @click="onSubmit">退件</el-button>
</div>
</div>
</template>
<script>
import { stopTask } from "@/api/workFlow.js";
import { popupCacel } from "@/utils/popup.js";
export default {
props: {
formData: {
type: Object,
default: {},
},
},
data () {
return {
stopMessage: "",
};
},
methods: {
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
stopTask({
bsmSlsq: this.formData.bsmSlsq,
bestepid: this.formData.bestepid,
stopMessage: this.stopMessage,
}).then((res) => {
this.$message.success("终止成功");
setTimeout(() => {
// window.opener.location.reload(); //刷新父窗口
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
window.close();
this.$emit("input", false);
}, 1000);
});
},
/**
* @description: closeDialog
* @author: renchao
*/
cancelBack () {
popupCacel();
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.invalid-title {
display: flex;
align-content: center;
.invalid-icon {
color: rgb(254, 148, 0);
font-size: 34px;
margin-right: 10px;
}
.invalid-body {
line-height: 40px;
margin-bottom: 10px;
}
}
.invalid-reson {
margin-bottom: 10px;
}
.dialog-footer {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-01-19 16:48:37
-->
<template>
<div class="from-clues">
<div class="from-clues-header">
<el-form ref="queryForm" label-width="180px" v-if="this.formData.obj">
<el-form-item label="下一环节名称:">
{{ this.formData.obj.taskName }}
</el-form-item>
<el-form-item label="下一环节办理人:">
{{ this.formData.obj.usernames.join(",") }}
</el-form-item>
</el-form>
<el-form ref="queryForm" label-width="180px" v-else>
<el-form-item label="">
此环节为流程最后环节,转出后流程将结束
</el-form-item>
</el-form>
<div v-if="this.formData.showidea">
<div class="invalid-reson">审批意见:</div>
<el-input
class="opinion"
v-model="shyj"
placeholder="请输入审批意见"
type="textarea"
:rows="4"></el-input>
</div>
<div style="text-align:center">
<el-button @click="cancelBack">取消转出</el-button>
<el-button type="primary" @click="submitForm">确定转出</el-button>
</div>
</div>
</div>
</template>
<script>
import { completeTask, getNextLinkInfo } from "@/api/workFlow.js";
import { popupCacel } from "@/utils/popup.js";
import { mapGetters } from "vuex";
export default {
props: {
formData: {
type: Object,
default: {},
},
},
data () {
return {
queryForm: {},
shyj: "",
};
},
methods: {
/**
* @description: submitForm
* @author: renchao
*/
commonOpinion () {
this.$popup('常用意见', "workflow/components/dialog/commonOpinion", {
title: "常用意见",
width: '75%', // 初始化75% 不需要改的话 可以直接不要
formData: {}, // 父组件传给子组件的参数
cancel: function () { }, //取消事件的回调 没有按钮可以不需要
confirm: function () { } //确认事件的回调 没有按钮可以不需要
})
},
submitForm () {
let that = this
this.queryForm = {
bsmSlsq: this.formData.bsmSlsq,
shyj: this.shyj,
stepform: JSON.stringify(this.formData.tabList),
};
completeTask(this.queryForm).then((res) => {
if (res.code === 200) {
popupCacel();
that.$message.success("转件成功");
setTimeout(() => {
window.close();
that.$emit("input", false);
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
}, 360);
} else {
this.$message.error(res.message);
}
}).catch((error) => {
// 可以添加适当的错误处理
this.$message.error("提交任务失败");
});
},
/**
* @description: closeDialog
* @author: renchao
*/
cancelBack () {
popupCacel();
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.el-button {
margin-top: 20px;
margin-right: 10px;
}
.opinion {
position: relative;
font-size: 14px;
}
.opinion_btn {
position: absolute;
right: 35px;
bottom: 80px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-15 15:41:43
-->
<template>
<div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中...">
<!-- 表单部分 -->
<el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length >1" style="margin-top:-15px">
<el-tab-pane :label="item.qlr + (item.bdcqzh !== null ? '(' + item.bdcqzh + ')' : '')" :name="item.bsmBdcqz"
v-for="(item, index) in headTabBdcqz" :key="index">
</el-tab-pane>
</el-tabs>
<el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty>
<div v-else>
<div style="height:540px">
<el-form class="zs" :model="bdcqz" v-if="this.bdcqz.bdcqzlx==1" ref="ruleForm" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="权利人">
<el-input v-model="bdcqz.qlr"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="共有情况">
<el-select v-model="bdcqz.gyqk" class="width100" placeholder="请选择">
<el-option
v-for="item in gyqkList"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="坐落">
<el-input v-model="bdcqz.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="不动产单元号">
<el-input v-model="bdcqz.bdcdyh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="权利类型">
<el-input v-model="bdcqz.qllx"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="权利性质 ">
<el-input v-model="bdcqz.qlxz"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="用途">
<el-input v-model="bdcqz.yt"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="面积">
<el-input v-model="bdcqz.mj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="使用期限 ">
<el-input v-model="bdcqz.syqx"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="权利其他状况">
<el-input v-model="bdcqz.qlqtzk" :rows="4" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="附记">
<el-input v-model="bdcqz.fj" :rows="4" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :model="bdcqz" class="zm" v-else ref="ruleForm" label-width="110px">
<el-row>
<el-col :span="24">
<el-form-item label="证明权利或事项">
<el-input v-model="bdcqz.zmqlhsx"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="权利人(申请人)">
<el-input v-model="bdcqz.qlr"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="义务人">
<el-input v-model="bdcqz.ywr"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="坐落">
<el-input v-model="bdcqz.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="不动产单元号">
<el-input v-model="bdcqz.bdcdyh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="其他状况">
<el-input v-model="bdcqz.qlqtzk" :rows="6" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="附记">
<el-input v-model="bdcqz.fj" :rows="6" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div style="text-align:center">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="handleSubmit">保存</el-button>
</div>
</div>
</div>
</template>
<script>
import store from '@/store/index.js'
import { getSlsqBdcqzList, editBdcqz } from "@/api/bdcqz.js"
export default {
name: "zsxg",
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
gyqkList: store.getters.dictData['A34'],
key: 0,
noData: false,
loading: false,
bdcqz: {},
//tab切换栏数组
headTabBdcqz: [],
//tab选择绑定值
activeName: '',
}
},
mounted () {
this.getHeadTabBdcqz()
},
methods: {
/**
* @description: 获取受理申请下全部不动产权证
* @author: renchao
*/
getHeadTabBdcqz () {
this.loading = true
getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
if (res.code == 200) {
this.noData = true
if (res.result && res.result.length > 0) {
this.bdcqz = res.result[0]
this.headTabBdcqz = _.cloneDeep(res.result)
if (this.formData.bsmBdcqz) {
this.activeName = this.formData.bsmBdcqz
} else {
this.activeName = res.result[0].bsmBdcqz
}
}
}
this.loading = false
})
},
handleClick (tab) {
this.bdcqz = _.cloneDeep(this.headTabBdcqz[tab.index])
},
handleSubmit () {
editBdcqz(this.bdcqz).then(res => {
if (res.code == 200) {
this.$message.success('保存成功');
//刷新列表
this.$popupCacel()
} else {
this.$message.error(res.message)
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-06 13:23:44
-->
<template>
<div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中..." style="text-align: center;">
<!-- 表单部分 -->
<div style="margin-top:-20px">
<el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length >1">
<el-tab-pane :label="item.qlr + (item.bdcqzh !== null ? '(' + item.bdcqzh + ')' : '')" :name="item.bsmBdcqz"
v-for="(item, index) in headTabBdcqz" :key="index">
</el-tab-pane>
</el-tabs>
</div>
<el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty>
<div style="max-height:89vh;overflow-y:auto">
<div v-show="this.bdcqz.bdcqzlx==1">
<el-tabs v-model="activeTitle">
<el-tab-pane label="第一页" name="title1"></el-tab-pane>
<el-tab-pane label="第二页" name="title2"></el-tab-pane>
</el-tabs>
<div style="width:1169px;overflow-x: hidden;">
<canvas ref="zs1" width="1024" v-show="activeTitle=='title1'" height="739"></canvas>
<canvas ref="zs" width="1024" v-show="activeTitle=='title2'" height="739"></canvas>
</div>
</div>
<div style="width:1169px;overflow-x: hidden;" v-show="this.bdcqz.bdcqzlx==2">
<canvas ref="zm" width="1169" height="828"></canvas>
</div>
</div>
</div>
</template>
<script>
import QRCode from 'qrcode'
import { datas } from "../../javascript/zsyl.js";
import { getSlsqBdcqzList } from "@/api/bdcqz.js"
export default {
name: "zsyl",
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
activeTitle: 'title1',
key: 0,
noData: false,
imgSrc1: require('@/image/bdcqz/bdcqzs1.jpg'),
imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
bdczmSrc: require('@/image/bdcqz/bdczm.jpg'),
loading: false,
//印刷序列号集合
ysxlh: [],
//列名称对象
columns: [],
//选择的不动产权证文件
bdcqz: '',
//证书打开类型 是否需要展示打印按钮
isToPrint: false,
//tab切换栏数组
headTabBdcqz: [],
//tab选择绑定值
activeName: '',
//证书图片预览
previewImage: '',
ruleForm: {
bsmBdcqz: '',
szmc: '不动产权证书',
szzh: '',
ysxlh: '',
},
}
},
mounted () {
this.columns = datas.columns();
if (this.formData.bdcqz) {
//从缮证进入
this.bdcqz = this.formData.bdcqz
} else {
//从按钮进入
this.getHeadTabBdcqz();
}
},
methods: {
/**
* @description: 获取证书内容
* @param {*} code
* @author: renchao
*/
getRowValue (code) {
var value = this.bdcqz[code];
return value;
},
/**
* @description: 获取受理申请下全部不动产权证
* @author: renchao
*/
getHeadTabBdcqz () {
this.loading = true
getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
if (res.code == 200) {
this.noData = true
if (res.result && res.result.length > 0) {
this.bdcqz = res.result[0]
this.headTabBdcqz = res.result
if (this.formData.bsmBdcqz) {
this.activeName = this.formData.bsmBdcqz
} else {
this.activeName = res.result[0].bsmBdcqz
}
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage()
} else {
this.drawTextzmImage()
}
}
}
this.loading = false
})
},
/**
* @description: tab表头切换方法
* @param {*} e
* @author: renchao
*/
handleClick (tab, event) {
this.bdcqz = this.headTabBdcqz[tab.index]
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage()
} else {
this.drawTextzmImage()
}
},
/**
* @description: 不动产证书
* @author: renchao
*/
drawTextOnImage1 () {
const canvas = this.$refs.zs1;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '18px 楷体';
context.fillStyle = '#000000';
let date = this.bdcqz.djsj.split(' ')[0].split('/');
let nian = date[0]
let yue = date[1]
let ri = date[2]
this.bdcqz.nian = nian
this.bdcqz.yue = yue
this.bdcqz.ri = ri
context.fillText(nian ? nian : '', 780, 499);
context.fillText(yue ? yue : '', 840, 499);
context.fillText(ri ? ri : '', 885, 499);
QRCode.toDataURL(this.bdcqz.bdcqzh, { margin: 0 })
.then(url => {
const qrImage = new Image();
this.bdcqz.qrImage = url; // 将二维码图片的 URL 存储到 bdcqz 对象的 qrImage 属性中
qrImage.onload = () => {
context.drawImage(qrImage, 670, 400, 100, 100);
};
qrImage.src = url;
})
.catch(error => {
console.error(error);
});
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 745, 633);
};
image.src = this.imgSrc1;
},
drawTextOnImage () {
this.drawTextOnImage1()
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
const canvas = this.$refs.zs;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '18px 楷体';
context.fillStyle = '#000000';
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
if (getByteLen(this.bdcqz.sxqc) > 14) {
const originalFont = context.font;
// 设置新的字体大小
context.font = '14px 楷体'; // 替换为你想要的字体和大小
// 绘制 bdcdyh
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 165, 56);
// 恢复原始字体设置
context.font = originalFont;
} else {
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 170, 56);
}
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97);
context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136);
this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223);
context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263);
context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303);
context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346);
// context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : [];
if (getByteLen(this.bdcqz.mj) > 37) {
lines6.forEach((line, index) => {
const y = 378 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
} else {
lines6.forEach((line, index) => {
const y = 386 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
}
// 权利其他状态
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 38)
if (getByteLen(lines[i]) > 37) {
let currentLine = '';
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 323) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(line, 129, 495 + (29 * (i - 1)) + 4 * num + (index * 14)); // 调整行高
})
} else {
arr.forEach((line, index) => {
context.fillText(line, 129, 493 + (26 * (i - 1)) + (index * 14)); // 调整行高
})
}
} else {
if (i > 0) {
context.fillText(lines[i] ? lines[i] : '', 129, 500 + 4 * num + (29 * (i - 1)));
} else {
context.fillText(lines[i] ? lines[i] : '', 129, 505 + (27 * (i - 1)));
}
}
}
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
lines1.forEach((line, index) => {
const y = 100 + (index * 30); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 395) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 580, y + (index * 30)); // 调整行高
})
})
let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : [];
if (getByteLen(this.bdcqz.syqx) > 37) {
lines3.forEach((line, index) => {
const y = 423 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
} else {
lines3.forEach((line, index) => {
const y = 430 + (index * 27); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 315) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
}
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
if (getByteLen(this.bdcqz.zl) > 37) {
lines2.forEach((line, index) => {
const y = 170 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
} else {
lines2.forEach((line, index) => {
const y = 180 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + (index * 20)); // 调整行高
})
})
}
}
image.src = this.imgSrc
},
/**
* @description: 不动产证明
* @author: renchao
*/
drawTextzmImage () {
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
const canvas = this.$refs.zm;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '18px 楷体';
context.fillStyle = '#000000';
// ysxlh
context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712);
// djsj
if (this.bdcqz.djsj) {
let djsjList = this.bdcqz.djsj.split(' ')[0].split('/')
context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580);
context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580);
context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580);
}
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125);
if (getByteLen(this.bdcqz.sxqc) > 14) {
const originalFont = context.font;
// 设置新的字体大小
context.font = '14px 楷体'; // 替换为你想要的字体和大小
// 绘制 bdcdyh
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 725, 125);
// 恢复原始字体设置
context.font = originalFont;
} else {
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 755, 125);
}
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123);
context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180);
// context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
// 权利人
let qlrlines = this.bdcqz.qlr
if (getByteLen(this.bdcqz.qlr) > 32) {
let currentLine = '';
let arr = [];
for (let word of qlrlines) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine); // 将最后一行添加到数组
// 绘制所有行
for (let i = 0; i < arr.length; i++) {
context.fillText(arr[i], 775, 218 + i * 20); // lineHeight 为行高
}
} else {
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
}
// 义务人
// context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
let ywrlines = this.bdcqz.ywr
if (getByteLen(this.bdcqz.ywr) > 32) {
let currentLine = '';
let arr = [];
for (let word of ywrlines) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine); // 将最后一行添加到数组
// 绘制所有行
for (let i = 0; i < arr.length; i++) {
context.fillText(arr[i], 775, 268 + i * 20); // lineHeight 为行高
}
} else {
context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
}
// context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
if (getByteLen(this.bdcqz.zl) > 32) {
lines2.forEach((line, index) => {
const y = 315 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + (index * 20)); // 调整行高
})
})
} else {
lines2.forEach((line, index) => {
const y = 325 + (index * 20); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + (index * 20)); // 调整行高
})
})
}
// bdcdyh
this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
// context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
// 保存当前字体设置
const originalFont = context.font;
// 设置新的字体大小
context.font = '16px 楷体'; // 替换为你想要的字体和大小
// 绘制 bdcdyh
context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
// 恢复原始字体设置
context.font = originalFont;
// qlqtzk
function getByteLenBdcdy (val) {
var encoder = new TextEncoder('utf-8');
return encoder.encode(val).length;
}
const maxWidth = 295; // 最大宽度限制
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
let bdcdyNum = Math.ceil(getByteLenBdcdy(lines[0]) / 43)
// 单独处理不动产单元号
let linesBdcdy = lines[0] ? lines[0].split(' ') : [];
if (getByteLenBdcdy(lines[0]) > 43) {
linesBdcdy.forEach((line, index) => {
const y = 412 + (index * 17); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 770, y + (index * 17)); // 调整行高
})
})
} else {
linesBdcdy.forEach((line, index) => {
const y = 418 + (index * 17); // 每行文本的垂直位置
let currentLine = '';
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 770, y + (index * 17)); // 调整行高
})
})
}
for (let i = 1; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 32)
if (getByteLen(lines[i]) > 32) {
let currentLine = '';
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
})
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + (index * 17)); // 调整行高
})
}
} else {
if (i > 0) {
context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + 6 * num + (25 * (i - 1)));
} else {
context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + (25 * (i - 1)));
}
}
}
// fj
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
for (let i = 0; i < lines1.length; i++) {
let num = Math.ceil(getByteLen(lines1[i]) / 37)
if (getByteLen(lines1[i]) > 37) {
let currentLine = '';
let arr = [];
for (let word of lines1[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(line, 770, 605 + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
})
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 605 + (24 * (i - 1)) + (index * 17)); // 调整行高
})
}
} else {
if (i > 0) {
context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + 6 * num + (25 * (i - 1)));
} else {
context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + (25 * (i - 1)));
}
}
}
}
image.src = this.bdczmSrc;
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
/deep/.el-tabs__nav-wrap::after {
display: none;
}
/deep/.el-tabs__header {
margin: 0;
}
/deep/.el-form-item--small.el-form-item {
margin-bottom: 0;
}
/deep/.mask-content {
padding-top: 10px !important;
}
.imgClass {
display: inline-block;
height: auto;
max-width: 100%;
}
.middle_padding {
padding-bottom: 10px;
}
.zsyl-button {
text-align: center;
margin-top: 20px;
.operation_button {
width: 100px;
border: 1px solid rgb(0, 121, 254);
}
.dy-button {
color: white;
background-color: rgb(0, 121, 254);
}
}
.table-column {
border-spacing: 1px;
width: 100%;
tr td {
border: 1px solid #ccc;
text-align: center;
height: 40px;
padding: 4px;
font-size: 13px;
background: rgb(251, 249, 229);
}
}
.zsyl-title {
background: #fafbe5;
text-align: center;
padding: 5px 0px;
font-size: 20px;
}
.no-data {
font-size: 18px;
display: flex;
text-align: center;
justify-content: center;
}
</style>
......@@ -18,7 +18,6 @@ export default {
*/
moreQueryClick () {
this.isSearch = true
},
/**
* @description: 查询事件
......@@ -80,6 +79,7 @@ export default {
this.queryForm[item.zdm] = ''
}
this.searchForm[item.zdm] = ''
this.queryClick()
},
/**
* @description: iterationData
......
......@@ -10,17 +10,17 @@
<el-row>
<!-- <el-col :span="8">
<el-form-item label="申请业务名称" prop="sqywmc">
<el-input v-model="ruleForm.sqywmc" placeholder="请输入申请业务名称"></el-input>
<el-input v-model.trim="ruleForm.sqywmc" clearable placeholder="请输入申请业务名称"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="权利人" prop="qlrmc">
<el-input v-model="ruleForm.qlrmc" placeholder="请输入权利人"></el-input>
<el-input v-model.trim="ruleForm.qlrmc" clearable placeholder="请输入权利人"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="义务人" prop="ywrmc">
<el-input v-model="ruleForm.ywrmc" placeholder="请输入义务人"></el-input>
<el-input v-model.trim="ruleForm.ywrmc" clearable placeholder="请输入义务人"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" class="btnColRight">
......
......@@ -201,7 +201,7 @@
tableData: {
total: 0,
columns: datas.columns(),
data: [],
data: []
},
jumpid: ""
}
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-10-27 17:19:42
* @LastEditTime: 2023-10-30 09:01:45
-->
<template>
<div class="from-clues">
......@@ -193,24 +193,12 @@
data () {
return {
queryForm: {
ywly: "",
qllx: "",
djlx: "",
ywh: "",
bdcdyh: "",
sqrmc: "",
sqrzjhm: "",
zl: ""
},
searchForm: {
ywlymc: "",
qllxmc: "",
djlxmc: "",
ywh: "",
bdcdyh: "",
sqrmc: "",
sqrzjhm: "",
zl: ""
},
tableData: {
total: 0,
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-06 16:56:48
* @LastEditTime: 2024-02-02 16:35:20
-->
<template>
<div class="from-clues">
......@@ -81,7 +81,7 @@
</div>
<div class="submit_button">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
</div>
</div>
......@@ -132,7 +132,7 @@
</div>
<div class="submit_button">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
</div>
</div>
......@@ -295,9 +295,14 @@
* @description: submitForm
* @author: renchao
*/
handleAdd () {
submitForm () {
let that = this
if (this.bdcdysz.length == 0) {
this.$message.error("请至少选择一条数据");
return;
}
this.loading = true
if (this.sqywInfo.isworkFrame) {
store.dispatch('user/reMenuRefresh', false)
againAddSldy({
bsmSqyw: that.sqywInfo.bsmSqyw,
......@@ -323,14 +328,7 @@
}).catch(() => {
that.loading = false
})
},
submitForm () {
let that = this
if (this.bdcdysz.length == 0) {
this.$message.error("请至少选择一条数据");
return;
}
this.loading = true
} else {
if (!that.isJump) {
startBusinessFlow({
bsmSqyw: that.sqywInfo.bsmSqyw,
......@@ -386,6 +384,7 @@
that.loading = false
})
}
}
},
/**
* @description: handleSelectionChange
......
......@@ -119,7 +119,7 @@
</div>
<div class="submit_button">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
</div>
</div>
......@@ -264,9 +264,14 @@
* @description: submitForm
* @author: renchao
*/
handleAdd () {
submitForm () {
let that = this
if (this.bdcdysz.length == 0) {
this.$message.error("请至少选择一条数据");
return;
}
this.loading = true
if (this.sqywInfo.isworkFrame) {
store.dispatch('user/reMenuRefresh', false)
againAddSldy({
bsmSqyw: that.sqywInfo.bsmSqyw,
......@@ -292,14 +297,7 @@
}).catch(() => {
that.loading = false
})
},
submitForm () {
let that = this
if (this.bdcdysz.length == 0) {
this.$message.error("请至少选择一条数据");
return;
}
this.loading = true
} else {
if (!that.isJump) {
startBusinessFlow({
bsmSqyw: that.sqywInfo.bsmSqyw,
......@@ -355,6 +353,7 @@
that.loading = false
})
}
}
},
/**
* @description: handleSelectionChange
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-06 16:58:53
* @LastEditTime: 2024-02-02 16:35:49
-->
<template>
<div class="from-clues">
......@@ -52,7 +52,7 @@
</div>
<div class="submit_button">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" plain @click="handleAdd" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-if="sqywInfo.isworkFrame">添加单元</el-button>
<el-button type="primary" plain @click="submitForm" :loading="loading" v-else>发起申请</el-button>
</div>
</div>
......@@ -132,9 +132,14 @@
* @description: submitForm
* @author: renchao
*/
handleAdd () {
submitForm () {
let that = this
if (this.bdcdysz.length == 0) {
this.$message.error("请至少选择一条数据");
return;
}
this.loading = true
if (this.sqywInfo.isworkFrame) {
store.dispatch('user/reMenuRefresh', false)
againAddSldy({
bsmSqyw: that.sqywInfo.bsmSqyw,
......@@ -160,14 +165,7 @@
}).catch(() => {
that.loading = false
})
},
submitForm () {
let that = this
if (this.bdcdysz.length == 0) {
this.$message.error("请至少选择一条数据");
return;
}
this.loading = true
} else {
startBusinessFlow({
bsmSqyw: that.sqywInfo.bsmSqyw,
bdcdysz: that.bdcdysz,
......@@ -195,6 +193,7 @@
}).catch(() => {
that.loading = false
})
}
},
/**
* @description: handleSelectionChange
......
......@@ -71,7 +71,7 @@
import { ywPopupDialog } from "@/utils/popup.js";
import { datas, sendThis } from "../javascript/selectH.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import { selectHQjdc } from "@/api/ywsq.js";
// import { selectHQjdc } from "@/api/ywsq.js";
import { startBusinessFlow, againAddSldy } from "@/api/workFlow.js";
export default {
mixins: [ywsqTable, jump],
......@@ -123,16 +123,16 @@
* @author: renchao
*/
queryClick () {
this.$startLoading();
this.queryForm.sqywbm = this.sqywInfo.djywbm;
selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
this.$endLoading();
if (res.code === 200) {
let { total, records } = res.result;
this.tableData.total = total;
this.tableData.data = records;
}
});
// this.$startLoading();
// this.queryForm.sqywbm = this.sqywInfo.djywbm;
// selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
// this.$endLoading();
// if (res.code === 200) {
// let { total, records } = res.result;
// this.tableData.total = total;
// this.tableData.data = records;
// }
// });
},
/**
* @description: submitForm
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-11-16 14:12:03
* @LastEditTime: 2023-11-16 16:48:57
-->
<template>
<div class="from-clues">
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-02 16:37:04
* @LastEditTime: 2024-02-02 16:39:35
-->
<template>
<div class="from-clues">
......
......@@ -58,7 +58,7 @@
import { ywPopupDialog } from "@/utils/popup.js";
import { datas, sendThis } from "../javascript/selectH.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import { selectHQjdc } from "@/api/ywsq.js";
// import { selectHQjdc } from "@/api/ywsq.js";
import { startTogetherFlow, againAddSldy } from "@/api/workFlow.js";
export default {
mixins: [ywsqTable, jump],
......@@ -89,14 +89,14 @@
queryClick () {
this.$startLoading();
this.queryForm.sqywbm = this.sqywInfo.djywbm;
selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
this.$endLoading();
if (res.code === 200) {
let { total, records } = res.result;
this.tableData.total = total;
this.tableData.data = records;
}
});
// selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
// this.$endLoading();
// if (res.code === 200) {
// let { total, records } = res.result;
// this.tableData.total = total;
// this.tableData.data = records;
// }
// });
},
/**
* @description: submitForm
......
......@@ -10,7 +10,7 @@
<el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="70px">
<el-row>
<el-col :span="4">
<el-form-item label="权利类型">
<el-form-item label="权利类型" prop="qllx">
<el-select v-model="queryForm.qllx" filterable class="width100" clearable placeholder="请选择权利类型">
<el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
......@@ -18,7 +18,7 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="登记类型">
<el-form-item label="登记类型" prop="djlx">
<el-select v-model="queryForm.djlx" filterable class="width100" clearable placeholder="请选择登记类型">
<el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
......@@ -26,7 +26,7 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="权属状态">
<el-form-item label="权属状态" prop="qszt">
<el-select v-model="queryForm.qszt" filterable class="width100" clearable placeholder="请选择登记类型">
<el-option
v-for="item in qsztlist"
......@@ -37,46 +37,47 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="不动产单元号" label-width="105px">
<el-input placeholder="请输入不动产单元号" maxlength="28" v-model="queryForm.bdcdyh" clearable class="width100">
<el-form-item label="不动产单元号" prop="bdcdyh" label-width="105px">
<el-input placeholder="请输入不动产单元号" maxlength="28" v-model.trim="queryForm.bdcdyh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="不动产权证号" label-width="105px">
<el-input placeholder="请输入不动产权证号" v-model="queryForm.bdcqzh" clearable class="width100">
<el-form-item label="不动产权证号" prop="bdcqzh" label-width="105px">
<el-input placeholder="请输入不动产权证号" v-model.trim="queryForm.bdcqzh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="业务号:">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" clearable class="width100">
<el-form-item label="业务号:" prop="ywh">
<el-input placeholder="请输入业务号" v-model.trim="queryForm.ywh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="坐落:" label-width="105px">
<el-input v-model="queryForm.zl" placeholder="坐落" clearable class="width100">
<el-form-item label="坐落:" prop="zl" label-width="105px">
<el-input v-model.trim="queryForm.zl" placeholder="坐落" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="权利人:" label-width="105px">
<el-input v-model="queryForm.qlrmc" placeholder="权利人" clearable class="width100">
<el-form-item label="权利人:" prop="qlrmc" label-width="105px">
<el-input v-model.trim="queryForm.qlrmc" placeholder="权利人" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="义务人:">
<el-input v-model="queryForm.ywrmc" placeholder="义务人" clearable class="width100">
<el-form-item label="义务人:" prop="ywrmc">
<el-input v-model.trim="queryForm.ywrmc" placeholder="义务人" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button @click="handleReset">重置</el-button>
<el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button>
</el-form-item>
</el-col>
......@@ -161,6 +162,9 @@
}
});
},
handleReset () {
this.$refs.queryForm.resetFields();
},
/**
* @description: handleSort
* @param {*} name
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-10-17 09:29:06
* @LastEditTime: 2023-10-31 14:44:39
-->
<template>
<div class="from-clues">
......@@ -10,7 +10,7 @@
<el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="100px">
<el-row>
<el-col :span="5">
<el-form-item label="业务来源">
<el-form-item label="业务来源" prop="ywly">
<el-select v-model="queryForm.ywly" class="width100" filterable clearable placeholder="请选择业务来源">
<el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
......@@ -18,7 +18,7 @@
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="权利类型">
<el-form-item label="权利类型" prop="qllx">
<el-select v-model="queryForm.qllx" class="width100" filterable clearable placeholder="请选择权利类型">
<el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
......@@ -26,7 +26,7 @@
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="登记类型">
<el-form-item label="登记类型" prop="djlx">
<el-select v-model="queryForm.djlx" class="width100" filterable clearable placeholder="请选择登记类型">
<el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
......@@ -34,14 +34,15 @@
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="业务号">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" clearable class="width200px">
<el-form-item label="业务号" prop="ywh">
<el-input placeholder="请输入业务号" v-model.trim="queryForm.ywh" clearable class="width200px">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button @click="handleReset">重置</el-button>
<el-button type="primary" native-type="submit" @click="handleSearch">查询</el-button>
<!-- <el-button @click="moreQueryClick">高级查询</el-button> -->
</el-form-item>
......@@ -49,25 +50,25 @@
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="不动产单元号">
<el-input placeholder="请输入不动产单元号" v-model="queryForm.bdcdyh" clearable class="width100">
<el-form-item label="不动产单元号" prop="bdcdyh">
<el-input placeholder="请输入不动产单元号" v-model.trim="queryForm.bdcdyh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="申请人">
<el-input placeholder="如需要模糊查询,前后输入%" v-model="queryForm.sqrmc" clearable class="width100">
<el-form-item label="申请人" prop="sqrmc">
<el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.sqrmc" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="申请人证件号">
<el-input placeholder="如需要模糊查询,前后输入%" v-model="queryForm.sqrzjhm" clearable class="width100">
<el-form-item label="申请人证件号" prop="sqrzjhm">
<el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.sqrzjhm" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="坐落">
<el-form-item label="坐落" prop="zl">
<el-input placeholder="如需要模糊查询,前后输入%" v-model.trim="queryForm.zl" clearable class="width100">
</el-input>
</el-form-item>
......@@ -114,7 +115,6 @@
this.queryClick()
},
methods: {
// 初始化数据
/**
* @description: 初始化数据
* @author: renchao
......@@ -130,6 +130,9 @@
}
})
},
handleReset () {
this.$refs.queryForm.resetFields();
},
/**
* @description: handleSort
* @param {*} name
......
......@@ -11,25 +11,25 @@
<el-row>
<el-col :span="5">
<el-form-item label="项目名称" label-width="70px">
<el-input placeholder="请输入项目名称" v-model="queryForm.xmmc" clearable class="width100">
<el-input placeholder="请输入项目名称" v-model.trim="queryForm.xmmc" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="项目编号">
<el-input placeholder="请输入项目编号" v-model="queryForm.xmbh" clearable class="width100">
<el-input placeholder="请输入项目编号" v-model.trim="queryForm.xmbh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="宗地代码">
<el-input placeholder="请输入宗地代码" v-model="queryForm.zddm" clearable class="width100">
<el-input placeholder="请输入宗地代码" v-model.trim="queryForm.zddm" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="自然幢号">
<el-input placeholder="请输入自然幢号" v-model="queryForm.zrzh" clearable class="width100">
<el-input placeholder="请输入自然幢号" v-model.trim="queryForm.zrzh" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-08-29 12:55:07
*/
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data extends filter {
constructor() {
super()
}
columns () {
return {
//发证列表
fzgrid: [
{
label: '序号',
type: 'index',
width: '50'
},
{
prop: "fzrmc",
label: "发证人"
},
{
prop: "bdcqzlx",
label: "不动产权证类型",
width: '130',
render: (h, scope) => {
return (
<div>
<span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
<span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
</div>
)
}
},
{
label: "权利类型",
width: '100',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.qllx} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.qllx}</span>
</el-tooltip>
)
}
},
{
label: "面积(㎡)",
width: '100',
render: (h, scope) => {
return (
<el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
<span class="ellipsis-table"> {scope.row.mj}</span>
</el-tooltip>
)
}
},
{
prop: "fzsj",
label: "发证时间",
width: '140',
},
{
prop: "lzrxm",
label: "领证人姓名"
},
],
}
}
}
let datas = new data()
export {
datas,
sendThis
}
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:39:03
*/
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data extends filter {
constructor() {
super()
}
columns () {
return [
{
width:"50px",
label: '序号',
type: 'index',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
{
prop: "szry",
label: "缮证人员",
},
{
prop: "szsj",
label: "缮证时间",
},
{
label: "是否作废",
render: (h, scope) => {
if (scope.row.sfzf == '0') {
return <div></div>
} else {
return <div>已作废</div>
}
}
},
{
prop: "bz",
label: "备注信息",
},
]
}
}
let szxxdatas = new data()
export {
szxxdatas,
sendThis
}
......@@ -11,25 +11,25 @@
<el-row>
<el-col :span="5">
<el-form-item label="不动产权证号" label-width="100px">
<el-input placeholder="请输入不动产权证号" class="width100" v-model="queryForm.bdcqzh" clearable>
<el-input placeholder="请输入不动产权证号" class="width100" v-model.trim="queryForm.bdcqzh" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="印刷序列号" label-width="100px">
<el-input placeholder="请输入印刷序列号" class="width100" v-model="queryForm.ysxlh" clearable>
<el-input placeholder="请输入印刷序列号" class="width100" v-model.trim="queryForm.ysxlh" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="业务号">
<el-input placeholder="请输入业务号" class="width100" v-model="queryForm.ywh" clearable>
<el-input placeholder="请输入业务号" class="width100" v-model.trim="queryForm.ywh" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="领取人">
<el-input placeholder="请输入领取人" class="width100" v-model="queryForm.lzrxm" clearable>
<el-input placeholder="请输入领取人" class="width100" v-model.trim="queryForm.lzrxm" clearable>
</el-input>
</el-form-item>
</el-col>
......@@ -103,7 +103,7 @@
* @author: renchao
*/
openDialog (item) {
this.$popupDialog("证书证明预览", "workflow/components/dialog/zsylxq", {
this.$popupDialog("证书证明预览", "zhcx/zslqcx/zsylxq", {
bsmSlsq: item.bsmSlsq,
bsmBdcqz: item.bsmBdcqz
}, '1230px', true)
......
<!--
* @Description:
* @Autor: miaofang
* @LastEditTime: 2023-10-23 16:16:24
-->
<template>
<div
class="from-clues loadingtext"
v-Loading="loading"
element-loading-text="拼命加载中..."
style="height: 720px; text-align: center">
<!-- 表单部分 -->
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="证书预览" name="zsyl">
<el-empty
description="暂无数据"
v-if="headTabBdcqz.length == 0 && noData"></el-empty>
<div class="zsys">
<canvas
ref="zs"
width="1000"
v-show="this.bdcqz.bdcqzlx == 1"
height="700"></canvas>
<canvas
ref="zm"
width="1180"
v-show="this.bdcqz.bdcqzlx == 2"
height="780"></canvas>
</div>
</el-tab-pane>
<el-tab-pane label="证书详情" name="lcjl">
<div class="slxx_title title-block">
证书详情信息
<div class="triangle"></div>
</div>
<el-form :rules="rules" ref="ruleForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="权利人" prop="cyxm">
<el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="义务人" prop="jtgxdm">
<el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落" prop="cbfdm">
<el-input disabled v-model="bdcqz.zl" maxlegth="15"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不动产单元号" prop="cyxm">
<el-input disabled v-model="bdcqz.bdcdyh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="印刷序列号" prop="jtgxdm">
<el-input disabled v-model="bdcqz.ysxlh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产权证号" prop="cbfdm">
<el-input disabled v-model="bdcqz.bdcqzh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="slxx_title title-block">
缮证记录信息
<div class="triangle"></div>
</div>
<lb-table
class="sz"
:column="szxxtableData.columns"
heightNumSetting
:pagination="false"
:key="key"
:data="szxxtableData.data">
</lb-table>
<div class="slxx_title title-block">
发证记录信息
<div class="triangle"></div>
</div>
<lb-table
border
:column="tableDatas.columns"
:heightNum="100"
:data="tableDatas.data"
:pagination="false">
</lb-table>
</el-tab-pane>
<el-tab-pane label="电子证照" name="third"> 等一个照片 </el-tab-pane>
</el-tabs>
</div>
</template>
<script>
// import { zsyldatas } from "../../javascript/zsyl.js";
import { getSlsqBdcqzList } from "@/api/bdcqz.js";
import { getCertificateList } from "@/api/bdcqz.js";
import { getSzRecordList } from "@/api/bdcqz.js";
import { szxxdatas } from "./szxxdatapart";
import { datas } from "./fzxxdatapart";
export default {
name: "zsyl",
props: {
formData: {
type: Object,
default: {},
},
},
data () {
return {
key: 0,
noData: false,
imgSrc: require("@/image/bdcqz/bdcqzs2.jpg"),
bdczmSrc: require("@/image/bdcqz/bdczm.jpg"),
loading: false,
//印刷序列号集合
ysxlh: [],
//列名称对象
columns: [],
//选择的不动产权证文件
bdcqz: "",
//证书打开类型 是否需要展示打印按钮
isToPrint: false,
//tab切换栏数组
tabslist: [],
headTabBdcqz: [],
//tab选择绑定值
activeName: "zsyl",
//证书图片预览
previewImage: "",
ruleForm: {
bsmBdcqz: "",
szmc: "不动产权证书",
bsmBdcqz: "",
szzh: "",
ysxlh: "",
},
formdata: {},
szxxtableData: {
total: 0,
columns: szxxdatas.columns(),
data: [],
},
tableDatas: {
total: 0,
columns: datas.columns().fzgrid,
data: [],
},
};
},
mounted () {
this.queryClick();
this.query();
if (this.formData.bdcqz) {
//从缮证进入
this.bdcqz = this.formData.bdcqz;
} else {
//从按钮进入
this.getHeadTabBdcqz();
}
},
methods: {
/**
* @description: queryClick
* @author: miaofang
*/
queryClick () {
this.formdata.bsmSlsq = this.formData.bsmSlsq;
getCertificateList(this.formdata).then((res) => {
if (res.code === 200) {
this.tableDatas.data = res.result ? res.result : [];
}
})
},
/**
* @description: query
* @author: miaofang
*/
query () {
getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then((res) => {
if (res.code == 200) {
this.szxxtableData.data = res.result;
this.key++;
}
})
},
/**
* @description: 获取证书内容
* @param {*} code
* @author: miaofang
*/
getRowValue (code) {
var value = this.bdcqz[code];
return value;
},
/**
* @description: 获取受理申请下全部不动产权证
* @author: miaofang
*/
getHeadTabBdcqz () {
this.loading = true;
getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then((res) => {
if (res.code == 200) {
this.noData = true;
if (res.result && res.result.length > 0) {
this.bdcqz = res.result[0];
this.headTabBdcqz = res.result;
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage();
} else {
this.drawTextzmImage();
}
}
}
this.loading = false;
});
},
/**
* @description: tab表头切换方法
* @param {*} e
* @author: miaofang
*/
handleClick (tab, event) {
console.log(tab, event);
this.bdcqz = this.headTabBdcqz[0];
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage();
} else {
this.drawTextzmImage();
}
},
/**
* @description: 不动产证书
* @author: miaofang
*/
drawTextOnImage () {
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
const canvas = this.$refs.zs;
const context = canvas.getContext("2d");
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = "18px 楷体";
context.fillStyle = "#000000";
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 60, 56);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 113, 56);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 180, 56);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 370, 56);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 129, 97);
context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : "", 129, 136);
this.bdcdyh =
this.bdcqz.bdcdyh.slice(0, 6) +
" " +
this.bdcqz.bdcdyh.slice(6, 12) +
" " +
this.bdcqz.bdcdyh.slice(12, 19) +
" " +
this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
context.fillText(this.bdcdyh ? this.bdcdyh : "", 129, 223);
context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : "", 129, 263);
context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : "", 129, 303);
context.fillText(this.bdcqz.yt ? this.bdcqz.yt : "", 129, 346);
// context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(" ") : [];
if (getByteLen(this.bdcqz.mj) > 41) {
lines6.forEach((line, index) => {
const y = 378 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
} else {
lines6.forEach((line, index) => {
const y = 386 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
// 权利其他状态
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 38);
if (getByteLen(lines[i]) > 38) {
let currentLine = "";
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 323) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(
line,
129,
490 + 26 * (i - 1) + 4 * num + index * 14
); // 调整行高
});
} else {
arr.forEach((line, index) => {
context.fillText(line, 129, 500 + 26 * (i - 1) + index * 14); // 调整行高
});
}
} else {
if (i > 0) {
context.fillText(
lines[i] ? lines[i] : "",
129,
500 + 4 * num + 24 * (i - 1)
);
} else {
context.fillText(
lines[i] ? lines[i] : "",
129,
505 + 24 * (i - 1)
);
}
}
}
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
lines1.forEach((line, index) => {
const y = 100 + index * 30; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 395) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 580, y + index * 30); // 调整行高
});
});
let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(" ") : [];
if (getByteLen(this.bdcqz.syqx) > 41) {
lines3.forEach((line, index) => {
const y = 423 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
} else {
lines3.forEach((line, index) => {
const y = 430 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 315) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
if (getByteLen(this.bdcqz.zl) > 41) {
lines2.forEach((line, index) => {
const y = 170 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
} else {
lines2.forEach((line, index) => {
const y = 180 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
};
image.src = this.imgSrc;
},
/**
* @description: 不动产证明
* @author: miaofang
*/
drawTextzmImage () {
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
const canvas = this.$refs.zm;
const context = canvas.getContext("2d");
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = "18px 楷体";
context.fillStyle = "#000000";
// ysxlh
context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : "", 280, 712);
// djsj
if (this.bdcqz.djsj) {
let djsjList = this.bdcqz.djsj.split(" ")[0].split("/");
context.fillText(djsjList[0] ? djsjList[0] : "", 327, 580);
context.fillText(djsjList[1] ? djsjList[1] : "", 393, 580);
context.fillText(djsjList[2] ? djsjList[2] : "", 443, 580);
}
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 620, 125);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 665, 125);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 750, 125);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 960, 123);
context.fillText(
this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : "",
775,
180
);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 775, 228);
// 义务人
context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : "", 775, 275);
// context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
if (getByteLen(this.bdcqz.zl) > 41) {
lines2.forEach((line, index) => {
const y = 315 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + index * 20); // 调整行高
});
});
} else {
lines2.forEach((line, index) => {
const y = 325 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + index * 20); // 调整行高
});
});
}
// bdcdyh
this.bdcdyh =
this.bdcqz.bdcdyh.slice(0, 6) +
" " +
this.bdcqz.bdcdyh.slice(6, 12) +
" " +
this.bdcqz.bdcdyh.slice(12, 19) +
" " +
this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
context.fillText(this.bdcdyh ? this.bdcdyh : "", 775, 373);
// qlqtzk
const maxWidth = 295; // 最大宽度限制
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 37);
if (getByteLen(lines[i]) > 37) {
let currentLine = "";
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(
line,
770,
428 + 25 * (i - 1) + 5 * num + index * 15
); // 调整行高
});
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 435 + 25 * (i - 1) + index * 14); // 调整行高
});
}
} else {
if (i > 0) {
context.fillText(
lines[i] ? lines[i] : "",
770,
440 + 5 * num + 24 * (i - 1)
);
} else {
context.fillText(
lines[i] ? lines[i] : "",
770,
440 + 24 * (i - 1)
);
}
}
}
// fj
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
for (let i = 0; i < lines1.length; i++) {
let num = Math.ceil(getByteLen(lines1[i]) / 37);
if (getByteLen(lines1[i]) > 37) {
let currentLine = "";
let arr = [];
for (let word of lines1[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(
line,
770,
610 + 25 * (i - 1) + 5 * num + index * 15
); // 调整行高
});
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 610 + 25 * (i - 1) + index * 15); // 调整行高
});
}
} else {
if (i > 0) {
context.fillText(
lines1[i] ? lines1[i] : "",
770,
610 + 5 * num + 23 * (i - 1)
);
} else {
context.fillText(
lines1[i] ? lines1[i] : "",
770,
610 + 23 * (i - 1)
);
}
}
}
};
image.src = this.bdczmSrc;
},
},
computed: {
hdiffHeight () {
return 0;
// return this.headTabBdcqz.length > 1 ? 54 : 0
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.imgClass {
display: inline-block;
height: auto;
max-width: 100%;
}
.middle_padding {
padding-bottom: 10px;
}
.zsyl-button {
text-align: center;
margin-top: 20px;
.operation_button {
width: 100px;
border: 1px solid rgb(0, 121, 254);
}
.dy-button {
color: white;
background-color: rgb(0, 121, 254);
}
}
.table-column {
border-spacing: 1px;
width: 100%;
tr td {
border: 1px solid #ccc;
text-align: center;
height: 40px;
padding: 4px;
font-size: 13px;
background: rgb(251, 249, 229);
}
}
.zsyl-title {
background: #fafbe5;
text-align: center;
padding: 5px 0px;
font-size: 20px;
}
.no-data {
font-size: 18px;
display: flex;
text-align: center;
justify-content: center;
}
.el-tab-pane {
width: 1190px;
height: 670px;
overflow-y: auto;
}
.zsys {
width: 1180px;
height: 670px;
}
/deep/.el-table {
height: 100px !important;
}
// /deep/.sz {
// height: 340px !important;
// }
.el-form {
margin-top: 20px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-24 14:07:02
* @LastEditTime: 2023-10-27 16:12:06
-->
<template>
<div class="from-clues">
......@@ -11,19 +11,19 @@
<el-row>
<el-col :span="5">
<el-form-item label="企业名称" label-width="70px">
<el-input placeholder="请输入企业名称" v-model="queryForm.qymc" clearable>
<el-input placeholder="请输入企业名称" v-model.trim="queryForm.qymc" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="项目名称" label-width="70px">
<el-input placeholder="请输入项目名称" v-model="queryForm.xmmc" clearable>
<el-input placeholder="请输入项目名称" v-model.trim="queryForm.xmmc" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="自然幢号">
<el-input placeholder="请输入自然幢号" v-model="queryForm.zrzh" clearable>
<el-input placeholder="请输入自然幢号" v-model.trim="queryForm.zrzh" clearable>
</el-input>
</el-form-item>
</el-col>
......@@ -89,7 +89,7 @@
}
})
},
openDialog(){
openDialog () {
this.$popup('楼盘表', 'lpb/index', {
width: '85%',
formData: {
......