e19b50fe by renchao@pashanhoo.com

Merge branch 'dev'

2 parents 501683c9 1e7fbdd1
/*
* @Description: 模板管理
* @Autor: renchao
* @LastEditTime: 2023-05-16 16:02:32
* @LastEditTime: 2024-02-23 10:45:18
*/
import request from '@/utils/request'
......@@ -71,3 +71,45 @@ export function getPrintTemplateByCode (params) {
params: params
})
}
/**
* @description: 获取受理凭证
* @param {*} params
* @author: renchao
*/
export function getPrintAcceptance (bsmSldy) {
return request({
url: SERVER.SERVERAPI + '/rest/print/applicationForms/getPrintAcceptance',
method: 'get',
params: {
bsmSldy: bsmSldy
}
})
}
/**
* @description: 获取补充材料通知书
* @param {*} bsmSldy
* @author: renchao
*/
export function getPrintSupplementalMaterials (bsmSldy, data) {
return request({
url: SERVER.SERVERAPI + '/rest/print/applicationForms/getPrintSupplementalMaterials/' + bsmSldy,
method: 'post',
data
})
}
/**
* @description: 获取补充材料接收凭证
* @param {*} bsmSldy
* @author: renchao
*/
export function getPrintReceiveSupplementalMaterials (bsmSldy) {
return request({
url: SERVER.SERVERAPI + '/rest/print/applicationForms/getPrintReceiveSupplementalMaterials',
method: 'get',
params: {
bsmSldy: bsmSldy
}
})
}
......
<!--
* @Description: 功能:流程图
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:57
-->
<template>
<div class='flowChart'>
<img :src="formData" alt="">
</div>
</template>
<script>
export default {
props: {
formData: {
type: String,
default: ''
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.flowChart {
margin: 20px 0;
}
</style>
\ No newline at end of file
......@@ -1379,6 +1379,10 @@ class data extends filter {
label: "小地名",
},
{
prop: "bdcqzh",
label: "不动产权证号",
},
{
prop: "djjg",
label: "登记机构",
},
......
<!--
* @Description: 流程图
* @Autor: renchao
* @LastEditTime: 2023-07-25 09:26:01
-->
<template>
<div class='flowChart'>
<img :src="formData" alt="">
</div>
</template>
<script>
export default {
props: {
formData: {
type: String,
default: ''
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.flowChart {
margin: 20px 0;
}
</style>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-17 13:51:09
-->
<template>
<lb-table :column="column" :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import addQlr from './dialog/addQlr.vue'
import { mapGetters } from 'vuex'
export default {
components: {
addQlr
},
computed: {
...mapGetters(["dictData"]),
},
props: {
tableData: {
type: Array,
default: function () {
return []
}
},
gyfs: {
type: String,
default: '1'
}
},
data () {
return {
key: 0,
dataIndex: 0,
dialog: false,
details: {},
tableDataList: [],
qlrCommonTable: [
{
width: '50',
renderHeader: (h, scope) => {
return <div> {
this.ableOperation ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }}></i>
}
</div>
},
render: (h, scope) => {
return (
<div>
{
this.ableOperation ? <span>{scope.$index + 1}</span> :
<i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i>
}
</div>
)
}
},
{
prop: "sqrmc",
label: "姓名/名称"
},
{
prop: "zjzl",
label: "证件种类"
},
{
prop: "zjh",
label: "证件号"
},
{
prop: "dh",
label: "联系电话"
},
{
prop: "frmc",
label: "法人"
},
{
label: '操作',
render: (h, scope) => {
return (
<div>
{
<el-button icon="el-icon-view" type="text" onClick={() => { this.handleView(scope.$index, scope.row) }}>查看</el-button>
}
</div>
)
}
}
],
column: this.qlrCommonTable
}
},
watch: {
tableData: {
handler: function (val, oldVal) {
let that = this
if (val.length == 0 || !val) {
that.tableDataList = _.cloneDeep([{
sqrmc: '',
dlrzjlx: '',
dlrzjh: '',
fr: ''
}])
} else {
that.tableDataList = _.cloneDeep(val)
}
},
immediate: true,
deep: true
},
gyfs: {
handler (newVal, oldValue) {
let dataList = _.cloneDeep(this.qlrCommonTable)
if (newVal == '1') {
this.column = _.cloneDeep(dataList).slice(1, dataList.length)
} else if ((newVal == '2')) {
this.column = dataList
} else {
this.column = _.cloneDeep(dataList)
this.column.splice(
2, 0, {
prop: "qlbl",
label: "份数"
})
}
},
immediate: true
}
},
methods: {
/**
* @description: updateDetail
* @param {*} value
* @author: renchao
*/
updateDetail (value) {
this.tableDataList[this.dataIndex] = value
this.key++
this.$emit('upDateQlrxxList', this.tableDataList)
},
// 添加
/**
* @description: 添加
* @author: renchao
*/
handleAdd () {
this.dialog = true
},
// 减
/**
* @description: 减
* @param {*} index
* @param {*} row
* @author: renchao
*/
handleMinus (index, row) {
this.tableData.splice(index, 1)
},
// 身份证读取
/**
* @description: 身份证读取
* @author: renchao
*/
readClick () { },
// 修改
/**
* @description: 修改
* @param {*} index
* @param {*} row
* @author: renchao
*/
handleEdit (index, row) {
console.log(row, 'rowrowrowrowrow');
this.dataIndex = index
this.dialog = true
this.details = row
},
/**
* @description: handleView
* @author: renchao
*/
handleView () {
this.dialog = true
}
}
}
</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-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>
......@@ -312,7 +312,7 @@
this.$store.dispatch("user/reWorkFresh", false);
this.$popupDialog(
"申请材料目录",
"workflow/components/dialog/clxxDetailDialog",
"workflow/main/clxx/clxxDetailDialog",
{
data: this.tableData,
bsmSldy: this.$parent.currentSelectProps.bsmSldy,
......
......@@ -155,7 +155,7 @@
},
hanldeAdd () {
let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
this.$popupDialog('新增', 'workflow/components/dialog/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
this.$popupDialog('新增', 'workflow/main/sfxx/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
},
handleDelete (row) {
let that = this
......
......@@ -285,7 +285,6 @@
</div>
</template>
<script>
import sqrViewTable from "@/views/workflow/components/sqrViewTable";
import { Init, saveData } from "@/api/workflow/cfdjFlow.js";
import { mapGetters } from "vuex";
export default {
......@@ -341,7 +340,7 @@
});
},
watch: {},
components: { sqrViewTable },
components: { },
props: {
flag: {
type: Boolean,
......
<!--
* @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: ssq
* @LastEditTime: 2024-01-31 10:11:41
* @LastEditTime: 2024-02-27 14:02:53
-->
<template>
<div class="slxx">
......@@ -296,7 +296,7 @@
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
import fdcqxmTable from "../commonTable/fdcqxmTable";
import fdcqxmTable from "./fdcqxmTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
import { mapGetters } from "vuex";
......@@ -304,7 +304,7 @@
mixins: [ywmix],
mounted () {
let that = this
this.loading = true
// this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
......
<!--
* @Description: 受理信息
* @Autor: renchao
* @LastEditTime: 2024-01-30 16:07:53
-->
<template>
<div class="slxx">
<el-form
:model="ruleForm"
:rules="rules"
v-Loading="loading"
ref="ruleForm"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
申请业务信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
<el-row>
<el-col :span="16">
不动产单元情况
</el-col>
<el-col :span="4" v-show="ruleForm.sldy.djlx=='500'">
<el-form-item label="是否创建证书:" style="height:24px">
<el-radio-group v-model="ruleForm.sldy.sfxysczs">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="4" v-show="ruleForm.sldy.djlx=='300'||ruleForm.sldy.djlx=='500'">
<el-button @click="compare">变化情况对比+</el-button>
</el-col>
</el-row>
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.sldy.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq2">
<el-col :span="8">
<el-form-item label="土地用途:">
<el-input disabled v-model="ruleForm.fdcq2.yt"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用起止时间:">
<el-input disabled v-model="ruleForm.fdcq2.tdsyqzsj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用期限:">
<el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="规划用途名称:">
<el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋性质:">
<el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋结构:">
<el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq2">
<el-col :span="8">
<el-form-item label="所在层:">
<el-input disabled v-model="ruleForm.fdcq2.szc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总层数:">
<el-input
disabled
v-model.number="ruleForm.fdcq2.zcs"
oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="竣工时间:">
<el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="建筑面积:">
<div class="flex">
<el-input
disabled
v-model="ruleForm.qlxx.mj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专有建筑面积:">
<div class="flex">
<el-input
disabled
v-model="ruleForm.fdcq2.zyjzmj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分摊建筑面积:">
<div class="flex">
<el-input
disabled
v-model="ruleForm.fdcq2.ftjzmj"
oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
<el-select disabled v-model="mjdw" style="width: 68px">
<el-option
v-for="item in dictData['A7']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode">
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div>
<tdytTable
:ableOperation="viewEdit"
:tableData="ruleForm.tdytqxList"
@upDateTdytxxList="upDateTdytxxList" />
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="共有方式:">
<el-radio-group
:disabled="!viewEdit"
v-model="ruleForm.sldy.gyfs">
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
<el-form-item label="是否分别持证:">
<el-radio-group
v-model="ruleForm.sldy.sqfbcz"
:disabled="!viewEdit"
@input="updaterow()">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span="6"
v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
<el-form-item label="持证人:">
<el-select
v-model="czr"
placeholder="持证人"
:disabled="!viewEdit">
<el-option
v-for="(item,index) in czrOptions"
:key="index"
:label="item.sqrmc"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable
@upDateQlrxxList="upDateQlrxxList"
:disabled="!viewEdit"
:tableData="ruleForm.qlrList"
:gyfs="ruleForm.sldy.gyfs" />
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.fdcq2" label="登记原因:" prop="fdcq2.djyy">
<el-input
class="textArea"
type="textarea"
maxlength="500"
show-word-limit
:disabled="!viewEdit"
v-model="ruleForm.fdcq2.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="isSave">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import ywmix from "@/views/ywbl/mixin/index";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/fwsyqFlow.js";
import { mapGetters } from "vuex";
export default {
mixins: [ywmix],
mounted () {
let that = this
this.loading = true
this.viewEdit = this.$parent.currentSelectTab.ableOperation;
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.viewEdit);
Init(formdata).then((res) => {
setTimeout(() => {
this.loading = false
}, 200)
if (res.code === 200 && res.result) {
that.ruleForm = {
...res.result,
...res.result.zdjbxxdatas,
...res.result.qlxxdatas,
...res.result.jsydsyqdatas,
};
that.ruleForm.qlrList.forEach((item) => {
item.id = item.bsmSqr
if (item.sfczr == '1') {
that.czr = item.bsmSqr
}
})
that.czrOptions = that.ruleForm.qlrList;
that.isSave = that.viewEdit
} else {
that.isSave = false
that.$confirm(res.message, '提示', {
cancelButtonText: '取消',
showConfirmButton: false,
type: 'warning'
})
}
}).catch(() => {
this.loading = false
this.isSave = false
})
},
components: { qlrCommonTable, tdytTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
isSave: true,
loading: false,
mjdw: "1",
//表单是否可操作
viewEdit: false,
disabled: true,
tdytOption: [],
czrOptions: [],
czr: "",
ruleForm: {
flow: {
ywh: "",
},
slry: "",
slsj: "",
qllx: "",
djlx: "",
djqx: "",
sldy: {
gyfs: "",
},
// 宗地代码
zddm: "",
bdcdyh: "",
qlxzmc: "",
qlrxx: [],
// 自然幢号
zrzh: "",
// 户不动产单元号
hbdcdyh: "",
djzt: "",
// 图幅丘幢号
tfqzh: "",
zl: "",
// 房屋用途
fwyt: "",
fwxz: "",
fwjg: "",
// 权利人信息
// 是否分别持证
sffbcz: "",
// 持证人
czr: "",
djyy: "",
// 规划用途名称
zdjbxx: {
ghytmc: "",
},
fdcq2: {
fwxzmc: "",
},
slsq: {
gyfs: "",
},
},
//传递参数
propsParam: {},
rules: {
'fdcq2.djyy': [
{ required: true, message: '请输入登记原因', trigger: 'blur' }
]
}
}
},
methods: {
/**
* @description: dataSelectClick
* @author: renchao
*/
dataSelectClick () {
this.$popup(
"房屋所有权",
this.BASE_API.SERVERAPI + "/rest/workflow/main/dataCompare/slxxCompareDetai",
{
formData: {
bsmSldy: this.propsParam.bsmSldy,
qllx: this.propsParam.qllx,
},
}
);
},
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
this.key++;
},
/**
* @description: 是否持证人变化
* @param {*} val
* @author: renchao
*/
updaterow () {
this.czr = "";
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
if (!_.isEqual(val, this.ruleForm.qlrList)) {
this.ruleForm.qlrList = _.cloneDeep(val);
this.czrOptions = this.ruleForm.qlrList;
}
this.num = 0
this.ruleForm.qlrList.forEach(item => {
if (item.id == this.czr) {
this.num++
}
})
if (this.num == 0) {
this.czr = ''
}
},
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
let that = this;
let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
if (arr.length > 0) {
this.$message({
showClose: true,
message: "土地用途不能为空",
type: "error",
});
return false;
}
if (this.ruleForm.qlrList.length == 0) {
this.$message({
showClose: true,
message: "请确认权利人信息",
type: "error",
});
return false;
}
if (this.ruleForm.sldy.gyfs == "0") {
if (this.ruleForm.qlrList.length > 1) {
this.$message({
showClose: true,
message: "共有方式:单独所有,权利人只能是一个人",
type: "error",
});
return false;
}
this.ruleForm.qlrList[0].sfczr = "1";
} else {
if (this.ruleForm.qlrList.length <= 1) {
this.$message({
showClose: true,
message:
"共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
type: "error",
});
return false;
}
//是否分别持证
if (this.ruleForm.sldy.sqfbcz == "1") {
//是
this.ruleForm.qlrList.forEach((item, index) => {
item.sfczr = "1";
});
} else {
if (that.czr === '') {
that.$message({
showClose: true,
message: "请选择持证人",
type: "error"
});
return false;
}
this.ruleForm.qlrList.forEach(item => {
if (item.id == that.czr) {
item.sfczr = "1"
} else {
item.sfczr = "0"
}
})
}
}
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
that.$store.dispatch("user/refreshPage", false);
saveData(that.ruleForm).then((res) => {
if (res.code === 200) {
that.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
that.$store.dispatch("user/refreshPage", true);
} else {
that.$message({
showClose: true,
message: res.message,
type: "error",
});
}
})
} else {
that.$message({
showClose: true,
message: "请输入登记原因",
type: "error"
})
return false
}
})
},
/**
* @description: compare
* @author: renchao
*/
compare () {
this.$popupDialog(
this.ruleForm.qlxx.qllxmc,
"registerBook/comparison",
{
bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
dqqllx: "FDCQ2",
},
"80%",
true
);
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 3px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>
......@@ -330,7 +330,7 @@
import ywmix from "@/views/ywbl/mixin/index";
import { Init, saveData } from "@/api/workflow/nydsyqFlow.js";
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import JtcyTable from "@/views/workflow/components/JtcyTable";
import JtcyTable from "./JtcyTable";
export default {
mixins: [ywmix],
mounted () {
......
......@@ -308,6 +308,7 @@
</el-col>
</el-row>
<qlrCommonTable
style="margin-bottom:3px"
:tableData="ruleForm.qlrList"
@upDateQlrxxList="upDateQlrxxList"
:disabled="viewEdit"
......
......@@ -11,7 +11,7 @@
import { mapGetters } from 'vuex'
import { getSzRecordList } from "@/api/bdcqz.js";
import table from "@/utils/mixin/table";
import { szxxdatas } from "../../javascript/szxxdata";
import { szxxdatas } from "./szxxdata";
export default {
components: {
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-02 09:06:20
* @LastEditTime: 2024-02-23 16:27:17
*/
import Vue from 'vue'
import { getPrintTemplateByCode } from "@/api/print";
import { getPrintTemplateByCode, getPrintAcceptance, getPrintReceiveSupplementalMaterials } from "@/api/print";
import { uploadUndo } from "@/api/clxx";
import { getLodop } from "@/utils/LodopFuncs";
import adapter from "@/utils/sqs/adapter";
......@@ -77,7 +77,7 @@ export default {
*/
operation (item) {
//按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿,B10:打印回执 ZSXG: 证书修改
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout 受理凭证 slpz
let that = this;
switch (item.value) {
case "B0":
......@@ -195,7 +195,7 @@ export default {
});
break;
case "stop": //终止按钮
this.$popupDialog("终止", "workflow/components/stop", {
this.$popupDialog("终止", "workflow/top/stop/index", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid ? this.bestepid : ''
}, '600px', true)
......@@ -242,6 +242,86 @@ export default {
case "B-HLGXSJ":
this.$popupDialog("互联网数据共享", "sjgx/gbmhlgxsjgx/gbmhlgxsjgx", {}, '90%', true)
break;
// slpz 受理凭证
case "slpz":
getPrintTemplateByCode({ tmpno: 'bdcdjslpz' }).then(res => {
if (res.code === 200) {
getPrintAcceptance(this.currentSelectProps.bsmSldy).then(infoRes => {
if (infoRes.code === 200) {
if (infoRes.result.fileList && infoRes.result.fileList.length > 0) {
infoRes.result.fileList.forEach((it, index) => {
let key = index + 1
this.$set(infoRes.result, "file" + key, it.sjmc)
this.$set(infoRes.result, "file" + key + 'ys', it.ys)
})
}
let date = infoRes.result.sqrq
infoRes.result.sqnian = date.split(' ')[0].split('-')[0]
infoRes.result.sqyue = date.split(' ')[0].split('-')[1]
infoRes.result.sqri = date.split(' ')[0].split('-')[2]
console.log(infoRes.result)
let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
// 装载第一个模板并设置数据
LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent);
for (let key in infoRes.result) {
LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]);
}
// 进行预览
LODOP.PREVIEW();
} else {
this.$message.error(infoRes.message);
}
});
} else {
this.$message.error(res.message);
}
})
break;
// 补充材料通知书
case "bccltzs":
this.$popupDialog("补充材料通知书", "workflow/top/bcclml/index",
{ bsmSlsq: this.$route.query.bsmSlsq, bsmSldy: this.currentSelectProps.bsmSldy },
'70%', true)
break;
// 获取补充材料接收凭证
case "slpz":
getPrintTemplateByCode({ tmpno: 'bdcdjslpz' }).then(res => {
if (res.code === 200) {
getPrintAcceptance(this.currentSelectProps.bsmSldy).then(infoRes => {
if (infoRes.code === 200) {
if (infoRes.result.fileList && infoRes.result.fileList.length > 0) {
infoRes.result.fileList.forEach((it, index) => {
let key = index + 1
this.$set(infoRes.result, "file" + key, it.sjmc)
this.$set(infoRes.result, "file" + key + 'ys', it.ys)
})
}
let date = infoRes.result.sqrq
infoRes.result.sqnian = date.split(' ')[0].split('-')[0]
infoRes.result.sqyue = date.split(' ')[0].split('-')[1]
infoRes.result.sqri = date.split(' ')[0].split('-')[2]
console.log(infoRes.result)
let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
// 装载第一个模板并设置数据
LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent);
for (let key in infoRes.result) {
LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]);
}
// 进行预览
LODOP.PREVIEW();
} else {
this.$message.error(infoRes.message);
}
});
} else {
this.$message.error(res.message);
}
})
break;
}
},
/**
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-26 09:04:04
-->
<template>
<div class="clmlmx-box">
<lb-table :column="column" :key="key" row-key="bsmSj" ref="table" :heightNumSetting="true" :calcHeight="600"
:pagination="false" :data="tableData" @row-click="handleRowClick" @selection-change="handleSelectionChange">
</lb-table>
<div class="text-center">
<el-button @click="handleCancel">取消</el-button>
<el-button type="primary" @click="handleSubmit" :loading="loading">打印</el-button>
</div>
</div>
</template>
<script>
import Vue from 'vue'
import store from '@/store/index.js'
import { ywPopupCacel } from "@/utils/popup.js";
import { getLodop } from "@/utils/LodopFuncs";
import { updateClml, InitClml } from "@/api/clxx.js";
import { getPrintTemplateByCode, getPrintSupplementalMaterials } from "@/api/print";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
selectList: [],
loading: false,
sortable: null,
column: [
{
type: 'selection',
label: '全选',
width: '50'
},
{
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: "份数",
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: "材料类型",
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>
)
}
}
],
key: 0,
tableData: []
}
},
mounted () {
var formdata = new FormData();
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) {
if (res.result && res.result.length > 0) {
this.tableData = res.result
this.key++
}
} else {
this.$message.error(res.message);
}
})
},
beforeDestroy () {
if (this.sortable) {
this.sortable.destroy();
}
},
methods: {
handleSelectionChange (val) {
this.selectList = val
},
handleRowClick (row) {
let refs = 'table';
this.$refs[refs].toggleRowSelection(row)
},
handleCancel () {
ywPopupCacel()
},
handleSubmit () {
this.loading = true
if (this.selectList.length == 0) {
this.$message.error('请先选择材料目录')
return
}
getPrintTemplateByCode({ tmpno: 'bdcdjbccltts' }).then(res => {
if (res.code === 200) {
getPrintSupplementalMaterials(this.formData.bsmSldy, this.selectList).then(infoRes => {
this.loading = false
if (infoRes.code === 200) {
if (infoRes.result.fileList && infoRes.result.fileList.length > 0) {
infoRes.result.fileList.forEach((it, index) => {
let key = index + 1
this.$set(infoRes.result, "file" + key, it.sjmc)
this.$set(infoRes.result, "file" + key + 'ys', it.ys)
})
}
let date = infoRes.result.sqrq
infoRes.result.sqnian = date.split(' ')[0].split('-')[0]
infoRes.result.sqyue = date.split(' ')[0].split('-')[1]
infoRes.result.sqri = date.split(' ')[0].split('-')[2]
console.log(infoRes.result)
let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
// 装载第一个模板并设置数据
LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent);
for (let key in infoRes.result) {
LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]);
}
// 进行预览
LODOP.PREVIEW();
} else {
this.$message.error(infoRes.message);
}
}).catch(() => {
this.loading = false
})
} else {
this.loading = false
this.$message.error(res.message);
}
})
},
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: miaofang
* @LastEditTime: 2023-07-19 09:52:42
-->
<template>
<div class="fm" id="boxaaa">
<div class="title">不动产登记簿</div>
<div class="title">(回执)</div>
<p class="bian">
编号: <span>{{ Receiptdata.sldyList[0].ybdcqzsh||"" }}</span>
</p>
<div class="texts">
<p class="jsjg">{{ Receiptdata.cfdjList[0].cfjg }}:</p>
<p class="concent">
<span>{{ sj }}</span> ,你院协助执行通知书订单号为:<font>{{
Receiptdata.qlxxList[0].ywh||""
}}</font
>收悉,具体执行情况如下。
</p>
</div>
<p class="bian">{{ Receiptdata.user.organizationName }}</p>
<p class="bian">{{ sj }}(盖章)</p>
<table class="xxTable">
<tr>
<td>序号</td>
<td>坐落</td>
<td>控制反馈</td>
<td>控制措施</td>
</tr>
<tr v-for="(item, index) in Receiptdata.sldyList" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.zl }}</td>
<td>已控</td>
<td>{{ item.djlxmc }}</td>
</tr>
</table>
</div>
</template>
<script>
import { BatchInit } from "@/api/workflow/cfdjFlow.js";
export default {
props: {
Receiptdata: {
type: Object,
default: {},
},
},
data() {
return {
sj: "",
data:false
};
},
mounted() {
this.loadData();
},
watch: {
Receiptdata: {
handler(newValue, oldValue) {
this.$nextTick(() => {
this.Receiptdata = newValue;
this.loadData();
});
},
},
},
methods: {
openPrint () {
// 获取打印回执数据
var formdata = new FormData();
formdata.append("bsmSldy", this.currentSelectProps.bsmSldy);
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.currentSelectProps.djlx);
BatchInit(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.Receiptdata = res.result
this.shows = true
setTimeout(() => {
this.prinsss()
}, 100)
} else {
this.$message.error(res.message)
}
})
},
/**
* @description: loadData
* @author: miaofang
*/
loadData() {
let dateTime = new Date(this.Receiptdata.slsq.slsj);
let y = dateTime.getFullYear();
let m = dateTime.getMonth() + 1;
m = m < 10 ? "0" + m : m;
let d = dateTime.getDate();
d = d < 10 ? "0" + d : d;
let h = dateTime.getHours();
h = h < 10 ? "0" + h : h;
let M = dateTime.getMinutes();
M = M < 10 ? "0" + M : M;
let s = dateTime.getSeconds();
s = s < 10 ? "0" + s : s;
this.sj = y + "年" + m + "月" + d + "日";
},
},
};
</script>
<style lang="scss" scoped>
#boxaaa{
font {
border-bottom: 1px solid #000;
display: inline-block;
padding: 0 15px;
line-height: 16px;
}
.title {
height: 60px;
display: flex;
font-size: 32px;
color: #000;
justify-content: center;
align-items: center;
}
.bian {
text-align: right;
}
.texts{
margin-top: 40px;
margin-bottom: 40px;
}
.jsjg {
text-align: left;
}
.concent {
width: 100%;
line-height: 40px;
text-align: left;
text-indent: 2em;
}
p {
font-family: serif;
}
.xxTable {
width: 100%;
border-collapse: collapse;
font-family: serif;
margin-top: 20px;
tr td {
border: 1px solid #000;
text-align: center;
height: 40px;
line-height: 17px;
font-size: 13px;
min-width: 80px;
z-index: 1;
min-width: 80px;
padding: 5px;
}
}
}
.fm {
background: #fff;
font-size: 18px;
margin: auto;
}
</style>
......@@ -10,7 +10,7 @@
<!-- 左侧业务功能按钮 -->
<ul>
<li v-for="(item, index) in leftButtonList" :key="index">
<div v-if="item.value == 'B10'" @click="openPrint()">
<div v-if="item.value == 'cfhzd'" @click="openPrint()">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</div>
......@@ -117,17 +117,14 @@
import ordinaryMenu from "./components/leftmenu/ordinaryMenu.vue";
// 引入左侧菜单
import segmentMenu from "./components/leftmenu/segmentMenu.vue";
// 回执单
import receipt from "./components/receipt.vue";
import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue";
import { BatchInit } from "@/api/workflow/cfdjFlow.js";
export default {
components: {
selectBdc,
NoticeBar,
ordinaryMenu,
segmentMenu,
receipt,
segmentMenu
},
mixins: [WorkFlow, publicFlow],
data () {
......@@ -176,24 +173,6 @@
window.removeEventListener("unload", (e) => this.unloadHandler(e));
},
methods: {
openPrint () {
// 获取打印回执数据
var formdata = new FormData();
formdata.append("bsmSldy", this.currentSelectProps.bsmSldy);
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("djlx", this.currentSelectProps.djlx);
BatchInit(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.Receiptdata = res.result
this.shows = true
setTimeout(() => {
this.prinsss()
}, 100)
} else {
this.$message.error(res.message)
}
})
},
prinsss () {
printJS({
printable: "boxaaa", // // 文档来源:pdf或图像的url,html元素的id或json数据的对象
......@@ -236,6 +215,7 @@
unClaimTask(this.$route.query.bsmSlsq, this.bestepid ? this.bestepid : '')
}
},
getPrintSlpz() {},
/**
* @description: 申请单元点击事件
* @param {*} index
......
......@@ -15,10 +15,10 @@ class data extends filter {
}
columns () {
return [
{
type: 'selection',
label: '全选',
},
// {
// type: 'selection',
// label: '全选',
// },
{
label: '序号',
type: 'index',
......@@ -32,6 +32,19 @@ class data extends filter {
}
},
{
prop: "bglx",
label: "变化情况",
minWidth: '80',
render: (h, scope) => {
switch (scope.row.bglx) {
case '1':
return <span>变更前</span>
case '2':
return <span>变更后</span>
}
}
},
{
prop: "status",
label: "状态",
width: '130',
......