ea18b6ac by tianhaohao@pashanhoo.com

Merge branch 'dev' of http://yun.pashanhoo.com:9090/bdc/bdcdj-web into dev

2 parents 28c1657c 39820f70
Showing 83 changed files with 4624 additions and 87 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: 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-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: 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: 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>
<!--
* @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: 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-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>