541bc29f by renchao@pashanhoo.com

style:cas配置

2 parents 7a7810bc c78c3b0e
Showing 79 changed files with 4724 additions and 33 deletions
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-01 10:22:52
* @LastEditTime: 2023-06-02 09:49:22
-->
<!DOCTYPE html>
<html>
......@@ -14,14 +14,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
<title>
<%= webpackConfig.name %>
</title>
</head>
<script>
window.baseUrl = location.origin || location.protocol + '//' + location.host
window._config = {
// 是否微服务模式,业务系统根据需要读取
// 是否微服务模式,业务系统根据需要读取,此demo未使用
cloudEnable: false,
baseUrl: location.origin || location.protocol + '//' + location.host,
// 是否启用单点登录
casEnable: true,
// cas 基地址
......@@ -36,7 +35,7 @@
.then(response => response.json())
.then(config => {
window.config = config
});
})
</script>
<body>
......
......@@ -15,13 +15,33 @@ export function BatchInit (data) {
let apiUrl = "";
switch (data.get("djlx")) {
case "300":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/xfBatchInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/changeBatchInit";
break;
case "400":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/jfBatchInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/logoutBatchInit";
break;
case "800":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/cfBatchInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/seizeBatchInit";
break;
}
return request({
url: apiUrl,
method: 'post',
data
})
}
export function Init (data) {
let apiUrl = "";
switch (data.get("djlx")) {
case "300":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/changeInit";
break;
case "400":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/logoutInit";
break;
case "800":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/cfdj/seizeInit";
break;
}
return request({
......
......@@ -5,6 +5,43 @@
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* 国有建设用地使用权/房屋所有权-批量房屋初始化
* @param data
* @author ssq 2023年5月26日14点29分
*/
export function BatchInit(data){
let apiUrl = "";
switch (data.get("djlx")) {
case "100":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/fristBatchInit";
break;
case "200":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/transferInit";
break;
case "300":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/changeInit";
break;
case "400":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/logoutBatchSave";
break;
case "500":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/riviseInit";
break;
case "901":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/renewalInit";
break;
case "902":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq2lr/replaceInit";
break;
}
return request({
url: apiUrl,
method: 'post',
data
})
}
/**
* @description: 初始化内容
* @param {*} data
......
......@@ -10,25 +10,25 @@ export function Init (data) {
let apiUrl = "";
switch (data.get("djlx")) {
case "100":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/fristInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/fristInit";
break;
case "200":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/transferInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/transferInit";
break;
case "300":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/changeInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/changeInit";
break;
case "400":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/logoutInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/logoutInit";
break;
case "500":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/riviseInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/riviseInit";
break;
case "901":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/renewalInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/renewalInit";
break;
case "902":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdj/replaceInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygmmdj/replaceInit";
break;
}
return request({
......@@ -40,7 +40,7 @@ export function Init (data) {
// 初始化内容
export function saveData (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ygdj/saveData',
url: SERVER.SERVERAPI + '/rest/ywbl/ygmmdj/saveData',
method: 'post',
data
})
......
......@@ -10,25 +10,25 @@ export function Init (data) {
let apiUrl = "";
switch (data.get("djlx")) {
case "100":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/fristInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/fristInit";
break;
case "200":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/transferInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/transferInit";
break;
case "300":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/changeInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/changeInit";
break;
case "400":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/logoutInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/logoutInit";
break;
case "500":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/riviseInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/riviseInit";
break;
case "901":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/renewalInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/renewalInit";
break;
case "902":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdy/replaceInit";
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/ygdydj/replaceInit";
break;
}
return request({
......@@ -40,7 +40,7 @@ export function Init (data) {
// 初始化内容
export function saveData (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ygdy/saveData',
url: SERVER.SERVERAPI + '/rest/ywbl/ygdydj/saveData',
method: 'post',
data
})
......
......@@ -28,6 +28,7 @@
</template>
<script>
import axios from 'axios'
import Cookies from 'js-cookie'
import { mapGetters } from 'vuex'
import NoticeBar from '@/components/NoticeBar/index'
import {
......@@ -40,7 +41,7 @@
computed: {
...mapGetters(['sidebar', 'avatar', 'name']),
baseUrl () {
return window.baseUrl;
return window._config.baseUrl;
},
},
data () {
......@@ -64,7 +65,6 @@
window.removeEventListener('message')
},
methods: {
queryNoticeList () {
getHomeNoticeList().then(res => {
if (res.result) {
......@@ -74,7 +74,11 @@
},
logout () {
axios.post(this.BASE_API.ip + "/management/logout").then(() => {
if (process.env.NODE_ENV === 'development') {
localStorage.removeItem('token')
} else {
Cookies.remove('token')
}
if (window._config.casEnable) {
window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(window.location.href);
} else {
......
/*
* @Description: 项目权限
* @Autor: renchao
* @LastEditTime: 2023-05-31 15:55:14
* @LastEditTime: 2023-06-01 16:16:04
*/
import Vue from 'vue'
import axios from 'axios'
import router from './router'
import store from './store'
import axios from 'axios'
import Cookies from 'js-cookie'
import { getMenuInfo } from '@/api/user'
import { getUrlParam } from '@/utils/operation'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import getPageTitle from '@/utils/get-page-title'
import Cookies from 'js-cookie'
NProgress.configure({ showSpinner: false }) // NProgress Configuration
router.beforeEach(async (to, from, next) => {
......@@ -42,7 +42,11 @@ router.beforeEach(async (to, from, next) => {
'service': locationUrl
}
}).then(async (res) => {
if (process.env.NODE_ENV === 'development') {
localStorage.setItem('token', res.data.content.accessToken)
} else {
Cookies.set('ACCESS_TOKEN', res.data.content.accessToken)
}
window.location.href = localStorage.getItem('location')
}).catch(e => {
......
......@@ -34,6 +34,14 @@ export const constantRoutes = [
hidden: true,
meta: { title: '发起申请' }
},
// 业务流程框架
{
path: '/djbworkFrame',
component: () => import('@/views/djbworkflow/workFrame.vue'),
name: 'djbworkFrame',
hidden: true,
meta: { title: '登记簿编辑' }
},
//登记簿详情
{
path: '/djbFrameall',
......
/*
* @Description: 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器
* @Autor: renchao
* @LastEditTime: 2023-06-01 09:20:24
* @LastEditTime: 2023-06-01 16:05:00
*/
import axios from 'axios'
import Cookies from 'js-cookie'
import { Message } from 'element-ui'
import { endLoadingSubCount } from './requestLoading'
......@@ -12,7 +13,7 @@ const service = axios.create({
baseURL:
process.env.NODE_ENV == "development"
? process.env.VUE_APP_BASE_API
: window.baseUrl + "/",
: window._config.baseUrl + "/",
withCredentials: true, //是否允许跨域
headers: {
'Content-Type': 'application/json; charset=utf-8'
......@@ -23,14 +24,16 @@ const service = axios.create({
// request interceptor
service.interceptors.request.use(
config => {
if (process.env.NODE_ENV === 'development') {
const token = localStorage.getItem('token')
// 添加请求头
if (token) {
config.headers['Authorization'] = "Bearer " + token
config.headers['Authorization'] = 'Bearer ' + token
} else {
config.headers.delete('Authorization')
}
return config;
}
return config
},
error => {
// do something with request error
......@@ -62,7 +65,12 @@ service.interceptors.response.use(
window.__isNeedLogin = false
Message.error('token失效,请重新登录');
let locationUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;
if (process.env.NODE_ENV === 'development') {
localStorage.removeItem('token')
} else {
Cookies.remove('token')
}
if (window._config.casEnable) {
window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(locationUrl);
} else {
......
<template>
<dialogBox title="配置常办项目" @submitForm="submitForm" saveButton="保存" :isFullscreen="false" width="50%"
@closeDialog="closeDialog" v-model="myValue">
<Tree :data="projectList" show-checkbox node-key="id" :default-checked-keys="defaultCheckeds" ref="tree"
default-expand-all :props="defaultProps" @check-change="handleClick" />
</dialogBox>
</template>
<script>
import { getMenuInfo } from "@/api/user.js";
import Tree from "@/components/Tree/src/tree.vue"
import { saveFrequentProjectsList, getHomeFrequentProjects } from "@/api/user.js";
export default {
components: {
Tree
},
props: {
value: { type: Boolean, default: false },
bindItem: { type: Array, default: [] }
},
data () {
return {
myValue: false,
defaultCheckeds: [],
projectList: [],
checkedItem: [],
defaultProps: {
children: "children",
label: "name",
disabled: function (data, node) {
if (data.children && data.children.length > 0) {
return true
} else {
return false
}
}
},
uniqueValue: ''//最后拿到的唯一选择的moduldCode值,相当于id
}
},
watch: {
value (val) {
this.myValue = val
if (val) {
this.queryClick()
}
}
},
mounted () {
this.dealCheckedItem();
},
methods: {
submitForm () {
var checkedNodes = this.$refs.tree.getCheckedNodes();
if (checkedNodes.length > 6) {
this.$message.error("最多选择6个项目!");
return
}
saveFrequentProjectsList(checkedNodes).then(res => {
if (res.code == 200) {
this.$parent.queryProjectList();
this.$message.success("保存成功");
this.$emit("input", false);
} else {
this.$message.error(res.message);
}
})
},
queryClick () {
let that = this
getMenuInfo().then(res => {
this.projectList = res.result.slice(0, -2)
})
function lookForAllId (arr = []) {
for (let item of that.bindItem) {
arr.push(item.id)
if (item.children && item.children.length) lookForAllId(item.children, arr)
}
return arr
}
this.defaultCheckeds = lookForAllId()
},
dealCheckedItem () {
},
//关闭窗口
closeDialog () {
this.$emit("input", false);
},
//节点选择状态发生改变时
handleClick (data, checked, node) {
var checkedNodes = this.$refs.tree.getCheckedNodes();
if (checkedNodes.length > 6) {
this.$message({
message: '最后选择6条数据',
type: 'warning',
customClass: 'messageIndex'
})
this.$refs.tree.setChecked(data, false) // 取消当前节点的选中状态
}
}
}
}
</script>
<style scoped lang='scss'>
/deep/.el-tree-node.is-expanded>.el-tree-node__children {
display: flex;
flex-wrap: wrap;
}
</style>
<template>
<div class="bdcqldjml">
<table class="mlTable">
<tr>
<th colspan="5" class="title">不动产权利登记目录</th>
</tr>
<tr>
<td>序号</td>
<td>不动产单元号</td>
<td>不动产类型</td>
<td>所在本数</td>
<td>备注</td>
</tr>
<tr v-for="(item, index) in bdcqlml" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.bdcdyh }}</td>
<td>{{ item.bdclx }}</td>
<td>{{ item.szbs }}</td>
<td>{{ item.bz }}</td>
</tr>
</table>
</div>
</template>
<script>
import { getBdcqldjmlByBdcdyid } from "@/api/registerBook.js";
export default {
data() {
return {
bdcqlml: [],
propsParam: this.$attrs,
};
},
mounted() {
getBdcqldjmlByBdcdyid({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
if (res.code === 200) {
this.bdcqlml = res.result;
}
});
},
};
</script>
<style lang="scss" scoped>
.bdcqldjml {
width: 100%;
height: 100%;
background: #fff;
overflow-y: scroll;
.mlTable {
width: 90%;
margin: 0 auto;
color: #333;
border-spacing: 1px;
background-color: #333;
.title {
font-size: 20px;
line-height: 60px;
font-family: serif;
position: relative;
}
td,
th {
background-color: white;
line-height: 30px;
padding: 0 4px;
text-align: center;
}
}
}
</style>
<template>
<div class="bdcqljqtsx">
<div class="content">
<div class="title">不动产权利及其他事项<br />登记信息</div>
<div>
不动产单元号:
<div class="underline">{{ propsParam.bdcdyh }}</div>
</div>
<br /><br /><br />
<div>
<div class="underline">{{ qlxxList.ztqlmc }}</div>
登记 共
<div class="underline">{{ qlxxList.ztql.total }}</div>
</div>
<br /><br />
<div>
抵押权登记 共
<div class="underline">{{ qlxxList.diyaq.total }}</div>
</div>
<br />
<div>
地役权登记 共
<div class="underline">{{ qlxxList.diyiq.total }}</div>
</div>
<br />
<div>
预告登记 共
<div class="underline">{{ qlxxList.ygdj.total }}</div>
</div>
<br />
<div>
异议登记 共
<div class="underline">{{ qlxxList.yydj.total }}</div>
</div>
<br />
<div>
查封登记 共
<div class="underline">{{ qlxxList.cfdj.total }}</div>
</div>
<br />
</div>
</div>
</template>
<script>
import { getBdcqljqtsx } from "@/api/registerBook.js";
export default {
name: "bdcqljqtsx",
data() {
return {
//传递参数
propsParam: this.$attrs,
qlxxList: "",
};
},
mounted() {
getBdcqljqtsx({
bdcdyid: this.propsParam.bdcdyid,
bdcdyh: this.propsParam.bdcdyh,
}).then((res) => {
if (res.code === 200) {
this.qlxxList = res.result;
}
});
},
};
</script>
<style lang="scss" scoped>
.bdcqljqtsx {
width: 100%;
height: 100%;
background: #fff;
.content {
width: 50%;
height: 100%;
margin: 0 auto;
text-align: right;
color: #333;
font-family: "Arial Negreta", "Arial Normal", "Arial", sans-serif;
font-weight: 700;
font-size: 18px;
line-height: 16px;
.title {
font-size: 32px;
text-align: center;
padding: 40px 0;
line-height: 34px;
}
.underline {
font-size: 14px;
font-weight: normal;
text-decoration: underline;
display: inline-block;
}
}
}
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getCfdjList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "查封登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().CFDJ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getCfdjList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
this.tableData.forEach((item, index) => {
if (item.sfbxf == '1') {
item.zxywh = '';
item.zxdbr = '';
item.zxsj = '';
}
})
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<template>
<div class="jtfccx-edit">
<div class="jtfccx-edit-con">
<el-form ref="form" :model="form" label-width="160px">
<el-row>
<el-col :span="8">
<el-form-item label="权属状态" label-width="140px">
<el-select v-model="form.qszt">
<el-option v-for="item in qsztList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利类型" label-width="140px">
<el-input v-model="form.qllxmc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型" label-width="140px">
<el-input v-model="form.djlxmc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上手业务号" label-width="140px">
<el-input v-model="form.ssywh" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="档案号" label-width="140px">
<el-input v-model="form.dah" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="业务号" label-width="140px">
<el-input v-model="form.ywh" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产单元号" label-width="140px">
<el-input v-model="form.bdcdyh" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落" label-width="140px">
<el-input v-model="form.zl" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="共有情况" label-width="140px">
<el-input v-model="form.gyqk" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利人类型" label-width="140px">
<el-input v-model="form.qlrlx" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利人" label-width="140px">
<el-input v-model="form.qlrmc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件种类" label-width="140px">
<el-input v-model="form.qlrzjzl" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件号" label-width="140px">
<el-input v-model="form.qlrzjhm" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="使用权面积" label-width="140px">
<el-input v-model="form.mj" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利性质" label-width="140px">
<el-input v-model="form.qlxzmc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地用途" label-width="140px">
<el-input v-model="form.ytmc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="使用权起止时间" label-width="140px">
<el-input v-model="form.syqqzsj" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地使用期限" label-width="140px">
<el-input v-model="form.tdsyqx" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="取得价格(万元)" label-width="140px">
<el-input v-model="form.qdjg" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记原因" label-width="140px">
<el-input v-model="form.djyy" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产权证号" label-width="140px">
<el-input v-model="form.bdcqzh" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记时间" label-width="140px">
<el-input v-model="form.djsj" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登簿人" label-width="140px">
<el-input v-model="form.dbr" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附记" label-width="140px">
<el-input v-model="form.fj" ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="btn">
<el-button type="primary" @click="submitForm">保存</el-button>
<el-button @click="closeDialog">取消</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
export default {
props: {
formData: {
type: Object,
default: () => { },
},
},
data () {
return {
form:{},
qsztList: [
{
value: "0",
label: "临时",
},
{
value: "1",
label: "现势",
},
{
value: "2",
label: "历史",
},
],
label:"",
};
},
mounted () {
console.log("this.formData.data",this.formData.data);
if (this.formData.data) {
this.$nextTick(() => {
this.form = Object.assign({}, this.formData.data)
this.form.qszt=this.form.qszt=='0'?"临时":this.form.qszt=='1'?"现势":"历史"
})
console.log("this.form",this.form);
}
},
methods: {
//新增常用意见
submitForm () {
this.$refs.form.validate(valid => {
if (valid) {
console.log("from",this.form);
// addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => {
// if (res.code == 200) {
// this.$message.success("新增成功")
// this.closeaddDiglog();
// this.getList()
// } else {
// this.$message.error(res.message)
// }
// })
} else {
return false;
}
});
},
closeDialog () {
console.log("this.$refs['form']",this.$refs['form']);
this.$popupCacel()
this.$refs['form'].resetFields();
// this.resetTableFields();
}
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "~@/styles/public.scss";
.jtfccx-edit {
@include flex;
flex-direction: column;
overflow-y: hidden;
max-height: 85vh;
padding: 0 2px;
.btn{
text-align: center;
}
}
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getDiyaqList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "抵押权登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().DYAQ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getDiyaqList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getDiyiqList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "地役权登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().DYIQ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getDiyiqList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
var qlxxPage = [
{ qllx: "A01", id: "jsydsyq", form: "jsydsyq.vue", label: "集体土地所有权" },
{ qllx: "A02", id: "jsydsyq", form: "jsydsyq.vue", label: "国家土地所有权" },
{ qllx: "A03", id: "jsydsyq", form: "jsydsyq.vue", label: "国有建设用地使用权" },
{ qllx: "A04", id: "", form: "", label: "国有建设用地使用权/房屋所有权" },
{ qllx: "A05", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权" },
{ qllx: "A06", id: "", form: "", label: "宅基地使用权/房屋所有权" },
{ qllx: "A07", id: "jsydsyq", form: "jsydsyq.vue", label: "集体建设用地使用权" },
{ qllx: "A08", id: "", form: "", label: "集体建设用地使用权/房屋所有权" },
{ qllx: "A09", id: "jsydsyq", form: "jsydsyq.vue", label: "土地承包经营权" },
{ qllx: "A11", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权" },
{ qllx: "A12", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权/森林、林木使用权" },
{ qllx: "A13", id: "jsydsyq", form: "jsydsyq.vue", label: "草原使用权" },
{ qllx: "A14", id: "jsydsyq", form: "jsydsyq.vue", label: "水域滩涂养殖权" },
{ qllx: "A15", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权" },
{ qllx: "A16", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权/建(构)筑物所有权" },
{ qllx: "A17", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权(无居民海岛)" },
{ qllx: "A18", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权(无居民海岛)/建筑物(设施)使用权" },
{ qllx: "A19", id: "diyiq", form: "diyiq.vue", label: "地役权" },
{ qllx: "A23", id: "jsydsyq", form: "jsydsyq.vue", label: "国有农用地的使用权" },
{ qllx: "A24", id: "jsydsyq", form: "jsydsyq.vue", label: "国有建设用地使用权/构筑物所有权" },
{ qllx: "A25", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权/构筑物所有权" },
{ qllx: "A26", id: "jsydsyq", form: "jsydsyq.vue", label: "集体建设用地使用权/构筑物所有权" },
{ qllx: "A29", id: "jsydsyq", form: "jsydsyq.vue", label: "国有未利用地的使用权" },
{ qllx: "A30", id: "jsydsyq", form: "jsydsyq.vue", label: "集体农用地使用权" },
{ qllx: "A31", id: "jsydsyq", form: "jsydsyq.vue", label: "土地承包经营权/森林、林木使用权" },
{ qllx: "A33", id: "jsydsyq", form: "jsydsyq.vue", label: "林地经营权/林木所有权" },
{ qllx: "A34", id: "jsydsyq", form: "jsydsyq.vue", label: "林地经营权/林木使用权" },
{ qllx: "A35", id: "jsydsyq", form: "jsydsyq.vue", label: "林地承包经营权/林木所有权" },
{ qllx: "A36", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权/林木所有权" },
{ qllx: "A37", id: "diyaq", form: "diyaq.vue", label: "抵押权" },
{ qllx: "B37", id: "diyaq", form: "diyaq.vue", label: "抵押权" },
{ qllx: "B38", id: "yydj", form: "yydj.vue", label: "异议登记" },
{ qllx: "B39", id: "cfdj", form: "cfdj.vue", label: "查封登记" },
{ qllx: "B40", id: "ygdj", form: "ygdj.vue", label: "预告登记" },
{ qllx: "B41", id: "ygdj", form: "ygdj.vue", label: "预告登记" },
];
//组装登记簿树形结构
export function loadTreeData(qlxxData, bdcdyh) {
let treedata = [];
//加载封面
treedata.push({ id: "djbfm", form: "djbfm.vue", label: "登记簿封面" });
treedata.push({ id: "zdjbxx", form: "zdjbxx.vue", label: "宗地基本信息\n(" + bdcdyh.substring(0, 19) + ")", children: [] });
treedata[1].children.push({ id: "bdcqldjml", form: "bdcqldjml.vue", label: "不动产权利登记目录", children: [] });
treedata[1].children[0].children.push({
id: "bdcqljqtsx", form: "bdcqljqtsx.vue", label: "不动产权利及其他事项\n (" + bdcdyh.slice(19) + ")", children: [],
});
//主体权利
treedata[1].children[0].children[0].children.push(getNode(qlxxData.ztqllx, qlxxData.ztql, qlxxData.bdcdylx));
//抵押权
treedata[1].children[0].children[0].children.push(getNode("A37", qlxxData.diyaq, ''));
//地役权
treedata[1].children[0].children[0].children.push(getNode("A19", qlxxData.diyiq, ''));
//预告登记
treedata[1].children[0].children[0].children.push(getNode("B40", qlxxData.ygdj, ''));
//异议登记
treedata[1].children[0].children[0].children.push(getNode("B38", qlxxData.yydj, ''));
//查封登记
treedata[1].children[0].children[0].children.push(getNode("B39", qlxxData.cfdj, ''));
return treedata;
}
//获取权利类型、不动产单元类型对应的树形节点信息
export function getNode(qllx, qlxx, bdcdylx) {
let node;
for (var i = 0; i < qlxxPage.length; i++) {
if (qlxxPage[i].qllx == qllx) {
if (qllx == "A04" || qllx == "A06" || qllx == "A08") {
if (bdcdylx == "4") {
node = { id: "fdcq1", form: "fdcq1.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
} else {
node = { id: "fdcq2", form: "fdcq2.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
}
} else {
node = { id: qlxxPage[i].id, form: qlxxPage[i].form, label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
}
break;
}
};
return node;
}
<template>
<div class="djbfm">
<br /><br />
<p>
<font>{{ info.sheng }}</font>
省 (区、市)
<font>{{ info.shi }}</font>
市 (区)
<font>{{ info.xian }}</font>
区 (县、市)
</p>
<p>
<font>{{ info.jdh }}</font>
街道 (乡、镇)
<font>{{ info.jfh }}</font>
街坊 (村)
<font>{{ info.zh }}</font>
</p>
<div class="title">不动产登记簿</div>
<br />
<p>
宗地/宗海号:
<font>{{ info.zddm }}</font>
</p>
<div class="bottom">
<p>
登记机构:
<font>{{ info.djjg }}</font>
</p>
</div>
</div>
</template>
<script>
import { getDjbfm } from "@/api/registerBook.js";
export default {
data () {
return {
//传递参数
propsParam: this.$attrs,
info: {},
};
},
mounted () {
this.loadData();
},
methods: {
loadData () {
getDjbfm({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
if (res.code === 200) {
this.info = res.result;
}
});
},
},
};
</script>
<style lang="scss" scoped>
.djbfm {
width: 100%;
height: 100%;
background: #fff;
border-right: 1px solid #ccc;
line-height: 45px;
text-align: center;
font-size: 18px;
font-family: serif;
position: relative;
font {
border-bottom: 1px solid #000;
display: inline-block;
padding: 0 15px;
line-height: 16px;
}
.title {
height: 40%;
display: flex;
font-size: 38px;
color: #000;
justify-content: center;
align-items: center;
}
.bottom {
position: absolute;
bottom: 0px;
text-align: center;
width: 100%;
left: 0;
height: 100px;
line-height: 100px;
p {
font-size: 28px;
}
font {
font-size: 24px;
line-height: 24px;
}
}
}
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<!-- 固定前三个 -->
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
item.prop == 'qszt' && row.qszt == '1' ? 'xianshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '1'">
有效
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getJsydsyqList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "建设用地使用权、宅基地使用权登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().JSYDSYQ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getJsydsyqList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getFdcq2List } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "房地产权登记信息(独幢、层、套、间房屋)",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().FDCQ2,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getFdcq2List({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<!-- 固定前三个 -->
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
item.prop == 'qszt' && row.qszt == '1' ? 'xianshiIcon' : '',
]"
>
<div class="setbut" v-if="item.prop == 'cz'">
<el-button type="text" icon="el-icon-edit-outline" @click="editDialog(row)">编辑</el-button>
<el-button type="text" icon="el-icon-edit-outline" @click="AddDialog(row)">新增</el-button>
<el-button type="text" icon="el-icon-edit-outline" @click="deleteDialog(row)">删除</el-button>
</div>
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '1'">
有效
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getJsydsyqList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "建设用地使用权、宅基地使用权登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().JSYDSYQ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getJsydsyqList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
console.log("this.tableData",this.tableData);
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
AddDialog(row){
this.$popupDialog("新增", "djbBook/components/djbeditDialog", {
data: ''
})
},
editDialog(row){
this.$popupDialog("编辑", "djbBook/components/djbeditDialog", {
data: row
})
},
// 删除
deleteDialog(row){
console.log("row",row);
let that = this
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
// let bsmClmx = this.previewImg.imgList[this.previewImg.index].bsmClmx
// deleteClmx(bsmClmx).then(res => {
// if (res.code == 200) {
// that.$emit('updateList', res.result)
// that.$message({
// message: '删除成功!',
// type: 'success'
// })
// }
// })
that.$message({
message: '删除成功!',
type: 'success'
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
}
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox">
<!-- 固定前三个 -->
<table class="xxTable">
<tr v-for="(item, colindex) in columns.slice(0, 3)" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
item.prop == 'qszt' && row.qszt == '1' ? 'xianshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '1'">
有效
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
<table class="xxTable rollTable">
<tr v-for="(item, colindex) in columns.slice(3)" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getNydsyqList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "农用地使用权登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().NYDSYQ,
};
},
created () {
var qllx = this.$route.query.sqywbm.substr(0, 3)
if (qllx == 'A09') {
this.title = '土地经营权登记信息'
} else {
this.title = '农用地使用权登记信息'
}
this.loadData();
},
methods: {
loadData () {
getNydsyqList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
.djxxTable {
width: 100%;
height: 100%;
background: #fff;
color: #333;
.tableBox {
margin: 0 auto;
display: flex;
flex-wrap: wrap;
.title {
width: 100%;
font-weight: 700;
font-size: 16px;
text-align: center;
background: #e9e9e9;
height: 62px;
line-height: 62px;
position: relative;
margin: 0 3px;
.checkbox {
position: absolute;
right: 20px;
bottom: -16px;
height: 62px;
}
}
.xxTableBox {
overflow: scroll;
width: 100%;
}
.xxTable>tr:first-child th {
width: 140px;
}
.xxTable {
//border-spacing: 1px;
width: 100%;
// table-layout: fixed;
tr {
box-sizing: border-box;
}
tr>th {
border: 1px solid #ccc;
background: #F2F2F2;
color: #333333;
font-size: 16px;
height: 40px;
}
tr:nth-child(1) {
position: sticky;
top: 0px;
z-index: 3;
margin-top: -2px;
}
tr:nth-child(2) {
position: sticky;
top: 40px;
z-index: 3;
}
tr:nth-child(3) {
position: sticky;
top: 80px;
z-index: 3;
box-shadow: 0px 15px 10px -15px #409EFF;
}
tr td:first-child {
position: sticky;
left: 0;
z-index: 2;
margin-left: -2px;
}
th.linshi,
th.xianshi {
background: #464c5b;
}
th.lishi {
background: rgba(70, 76, 91, 0.8);
}
.one th {
height: 25px;
font-size: 14px;
}
th.linshi {
color: #fe9400;
}
.two th {
height: 45px;
p:nth-child(2) {
font-size: 14px;
}
}
.linshiIcon {
position: relative;
.icon {
position: absolute;
top: 12px;
right: -5px;
transform: rotate(45deg);
color: #fff;
font-size: 12px;
z-index: 10;
}
}
.linshiIcon::after {
content: "";
display: block;
width: 0;
height: 0;
border-width: 0px 0px 55px 55px;
border-style: none solid solid;
border-color: transparent transparent #fe9400;
position: absolute;
top: 0;
right: 0;
transform: rotate(-90deg);
}
.xianshiIcon {
position: relative;
.icon {
position: absolute;
top: 9px;
right: 5px;
transform: rotate(45deg);
color: #fff;
font-size: 12px;
z-index: 10;
}
}
.xianshiIcon::after {
content: "";
display: block;
width: 0;
height: 0;
border-width: 0px 0px 55px 55px;
border-style: none solid solid;
border-color: transparent transparent #67C23A;
position: absolute;
top: 0;
right: 0;
transform: rotate(-90deg);
}
tr {
display: flex;
}
tr td {
border: 1px solid rgb(227, 226, 226);
text-align: center;
height: 40px;
font-size: 13px;
width: 140px;
flex: 1;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
min-width: 280px;
z-index: 1;
}
>tr:nth-child(odd) td {
background: #f2f2f2;
}
>tr:nth-child(even) td {
background: #f9f9f9;
}
td.linshi {
color: #fe9400;
}
tr>td.lishi {
color: #7f7f7f;
}
}
.rollTable {
margin-top: -2px;
display: block;
height: calc(100vh - 185px);
overflow-y: scroll;
margin-left: 2px;
}
}
}
\ No newline at end of file
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getYgdjList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "预告登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().YGDJ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getYgdjList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<template>
<div class="djxxTable">
<div class="tableBox">
<div class="title">
{{ title }}
<div class="checkbox">
<el-checkbox-group v-model="checkList" @change="checkChange">
<el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import { getYydjList } from "@/api/registerBook.js";
import { datas } from "./qlxxFormData.js";
export default {
data () {
return {
title: "异议登记信息",
qsztList: datas.columns().qsztList,
checkList: datas.columns().checkList,
//传递参数
propsParam: this.$attrs,
//列表数据
tableData: [],
//空列值个数
emptycolNum: datas.columns().emptycolNum,
//列名称对象
columns: datas.columns().YYDJ,
};
},
created () {
this.loadData();
},
methods: {
loadData () {
getYydjList({
bdcdyid: this.propsParam.bdcdyid,
qllx: this.propsParam.qllx,
qszt: this.checkList,
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (this.tableData.length < datas.columns().emptycolNum) {
this.emptycolNum =
datas.columns().emptycolNum - this.tableData.length;
} else {
this.emptycolNum = 0;
}
}
});
},
checkChange () {
if (this.checkList.length === 0) {
this.tableData = [];
this.emptycolNum = datas.columns().emptycolNum;
} else {
this.loadData();
}
},
getQsztName (code) {
let name = "";
for (let item of this.qsztList) {
if (item.value == code) {
name = item.label;
break;
}
}
return name;
},
},
};
</script>
<style lang="scss" scoped>
@import "./qlxxCommon.scss";
</style>
<!--
* @Description :宗地基本信息
* @Autor : miaofang
* @LastEditTime : 2023-05-31 13:59:27
-->
<template>
<div class="tableDivCss">
<table cellpadding="0" cellspacing="0" class="tableCss">
<tr>
<th colspan="5" class="title">宗地基本信息</th>
</tr>
<tr>
<td>单位</td>
<td colspan="4">{{ zdjbxx.mjdw | dictionary('A7') }}</td>
</tr>
<tr>
<td>不动产类型</td>
<td colspan="4">{{ bdclxList[zdjbxx.bdclx] }}</td>
</tr>
<tr>
<td>坐落</td>
<td colspan="4">{{ zdjbxx.zl }}</td>
</tr>
<tr>
<td rowspan="8">土地状况</td>
</tr>
<tr>
<td style="width:15%">宗地面积</td>
<td style="width:30%">{{ zdjbxx.zdmj }}</td>
<td style="width:15%">用途</td>
<td style="width:30%">{{ zdjbxx.ghytmc }}</td>
</tr>
<tr>
<td>等级</td>
<td>{{ zdjbxx.djmc }}</td>
<td>价格</td>
<td>{{ zdjbxx.jg }}</td>
</tr>
<tr>
<td>权利类型</td>
<td>{{ zdjbxx.qllxmc }}</td>
<td>权利性质</td>
<td>{{ zdjbxx.qlxzmc }}</td>
</tr>
<tr>
<td>权利设定方式</td>
<td>{{zdjbxx.qlsdfs | dictionary('A10')}}</td>
<td>容积率</td>
<td>{{ zdjbxx.rjl }}</td>
</tr>
<tr>
<td>建筑密度</td>
<td>{{ zdjbxx.jzmd }}</td>
<td>建筑限高</td>
<td>{{ zdjbxx.jzxg }}</td>
</tr>
<tr>
<td>图幅号</td>
<td>{{ zdjbxx.tfh }}</td>
<td>地籍号</td>
<td>{{ zdjbxx.djh }}</td>
</tr>
<tr>
<td>档案号</td>
<td>{{ zdjbxx.dah }}</td>
<td>地块代码</td>
<td>{{ zdjbxx.dkdm }}</td>
</tr>
<tr>
<td rowspan="5">宗地四至</td>
</tr>
<tr>
<td></td>
<td colspan="3">{{ zdjbxx.zdszd }}</td>
</tr>
<tr>
<td></td>
<td colspan="3">{{ zdjbxx.zdszn }}</td>
</tr>
<tr>
<td>西</td>
<td colspan="3">{{ zdjbxx.zdszx }}</td>
</tr>
<tr>
<td></td>
<td colspan="3">{{ zdjbxx.zdszb }}</td>
</tr>
<tr>
<td>登记时间</td>
<td colspan="2">{{ zdjbxx.bz }}</td>
<td>登簿人</td>
<td>{{ zdjbxx.bz }}</td>
</tr>
<tr>
<td>附记</td>
<td colspan="4">{{ zdjbxx.fj }}</td>
</tr>
<!-- <tr>
<td>状态</td>
<td colspan="2">{{ zdjbxx.zt }}</td>
<td>区县代码</td>
<td>{{ zdjbxx.qxdm }}</td>
</tr> -->
<tr v-if="showGroup">
<td rowspan="4">变化情况</td>
<!-- <table cellspacing="0" cellpadding="0" :width="bhqkTableWidth">
<tr v-for="(item, index) in bhqkColumns" :key="index">
<td class="bhqkTh">{{ item.label }}</td>
</tr>
</table> -->
</tr>
<tr v-if="showGroup">
<td>变化原因</td>
<td>变化内容</td>
<td>登记时间</td>
<td>登簿人</td>
</tr>
<!-- <tr >
<td>{{ zdbhqks[0].bhyy }}</td>
<td>{{ zdbhqks[0].bhnr }}</td>
<td>{{ zdbhqks[0].djsj }}</td>
<td>{{ zdbhqks[0].dbr }}</td>
</tr> -->
</table>
</div>
</template>
<script>
import store from '@/store/index.js'
import { getZdjjxxBybdcdyid } from "@/api/registerBook.js";
export default {
data () {
return {
bhqkColumns: [
{
prop: "ssywh",
label: "上手业务号",
},
{
prop: "zddm",
label: "宗地代码",
},
{
prop: "bhqzddm",
label: "变化前宗地代码",
},
{
prop: "bhnr",
label: "变化内容",
},
{
prop: "bhyy",
label: "变化原因",
},
{
prop: "djsj",
label: "登记时间",
},
{
prop: "dbr",
label: "登簿人",
},
{
prop: "fj",
label: "附记",
},
],
bhqkTableWidth: 745,
zdjbxx: {},
zdbhqks: [],
propsParam: this.$attrs,
showGroup: false,
bdclxList: ["", "宗地", "宗海", "自然幢", "多幢", "构筑物", "林权", "户"]
}
},
filters: {
dictionary: function (value, param) {
const foundItem = store.getters.dictData[param].find(item => item.dcode === String(value))
if (foundItem) {
return foundItem.dname
}
}
},
created () {
this.loadData()
},
methods: {
loadData () {
console.log("this.$attrs",this.$attrs);
console.log("this.propsParam",this.propsParam);
if(this.propsParam.bsmSldy){
console.log("宗地基本信息");
}else{
console.log("登记簿里宗地基本信息");
getZdjjxxBybdcdyid({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
if (res.code === 200) {
this.zdjbxx = res.result.zdjbxx;
this.zdbhqks = res.result.zdbhqkList;
if (this.zdbhqks != null && this.zdbhqks.length > 0) {
this.showGroup = true;
}
}
})
}
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/styles/tablecss.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:41:09
-->
<template>
<div>
<lb-table :column="column" border :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableDataList">
</lb-table>
<addJtcy v-model="dialog" :details="details" @updateDetail="updateDetail" />
</div>
</template>
<script>
import addJtcy from './addJtcy.vue'
import { mapGetters } from 'vuex'
export default {
components: {
addJtcy
},
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.$route.query.viewtype == 1 ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.addClick() }}></i>
}
</div>
},
render: (h, scope) => {
return (
<div>
{
this.$route.query.viewtype == 1 ? <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" onClick={() => { this.readClick(scope) }}>读取</el-button>
}
},
{
prop: "cyxm",
label: "成员姓名"
},
{
prop: "sfzhm",
label: "身份证号码"
},
{
prop: "dh",
label: "联系电话"
},
{
label: '修改',
render: (h, scope) => {
return (
<div>
{
this.$route.query.viewtype == 1 ? <el-button
icon="el-icon-view"
type="text"
onClick={() => { this.queryViewClick(scope.$index, scope.row) }}>查看</el-button> : <el-button
icon="el-icon-edit-outline"
type="text"
onClick={() => { this.editClick(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 {
this.column = dataList
}
},
immediate: true
}
},
methods: {
updateDetail (value) {
this.tableDataList[this.dataIndex] = value
this.key++
this.$emit('upDateJtcyList', this.tableDataList)
},
// 新增
addClick () {
this.dialog = true
},
// 删除
deleClick (index, row) {
this.tableData.splice(index, 1)
},
// 身份证读取
readClick () { },
// 修改
editClick (index, row) {
console.log(row, 'rowrowrowrowrow');
this.dataIndex = index
this.dialog = true
this.details = row
},
queryViewClick () {
this.dialog = true
}
}
}
</script>
<style scoped lang='scss'>
</style>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:28
-->
<template>
<dialogBox title="家庭成员信息" width="60%" isMain v-model="myValue" :isFullscreen="false" @submitForm="submitForm"
@closeDialog="closeDialog">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="姓名/名称" prop="cyxm">
<el-input v-model="ruleForm.cyxm" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="家庭关系" prop="jtgxdm">
<el-select clearable v-model="ruleForm.jtgxdm" class="width100" placeholder="请选择">
<el-option v-for="item in jtgx" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="承包方代码" prop="cbfdm">
<el-input v-model="ruleForm.cbfdm" maxlegth="15"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="身份证号码" prop="zjh">
<el-input v-model="ruleForm.sfzhm" maxlength="15" oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="dh">
<el-input v-model="ruleForm.dh" maxlength="11" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别">
<el-select clearable v-model="ruleForm.xb" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A43']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="发证机关">
<el-input v-model="ruleForm.fzjg"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属行业">
<el-input v-model="ruleForm.sshy"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="国家/地区">
<el-input v-model="ruleForm.gj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="户籍所在省市">
<el-input v-model="ruleForm.hjszss"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="地址">
<el-input v-model="ruleForm.dz"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="邮编">
<el-input v-model="ruleForm.yb"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="工作单位">
<el-input v-model="ruleForm.gzdw"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="电子邮件">
<el-input v-model="ruleForm.dzyj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否共有人">
<el-input v-model="ruleForm.gzdw"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</dialogBox>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
props: {
value: { type: Boolean, default: false },
details: { type: Object, default: {} }
},
computed: {
...mapGetters(["dictData"]),
},
data () {
return {
myValue: this.value,
jtgx: [
{ value: '0', label: '本人或户主' },
{ value: '1', label: '配偶' },
{ value: '2', label: '子' },
{ value: '3', label: '女' },
{ value: '4', label: '子孙、孙女、外孙子、外孙女' },
{ value: '5', label: '父母' },
{ value: '6', label: '祖父母、外祖父母' },
{ value: '7', label: '兄、弟、姐、妹' },
{ value: '8', label: '其他' },
],
ruleForm: {
qlrlx: '',
sqrmc: '',
zjzl: '',
zjh: '',
dh: '',
xb: '',
frmc: '',
gjdq: '',
szss: '',
dz: '',
yb: '',
fzjg: '',
dzyj: '',
qlbl: '',
gzdw: '',
dljg: '',
dlrxm: '',
dlrzjlx: '',
dlrzjh: ''
},
rules: {
qlrlx: [
{ required: true, message: '权利人类型', trigger: 'change' }
],
sqrmc: [
{ required: true, message: '姓名/名称', trigger: 'blur' }
],
zjzl: [
{ required: true, message: '证件种类', trigger: 'change' }
],
zjh: [
{ required: true, message: '证件号', trigger: 'blur' }
]
}
}
},
watch: {
value (val) {
this.myValue = _.cloneDeep(val)
},
details: {
handler: function (val, oldVal) {
this.ruleForm = val
},
deep: true
}
},
methods: {
closeDialog () {
this.$emit("input", false);
this.$refs['ruleForm'].resetFields();
},
submitForm () {
this.$emit("input", false);
this.$emit("updateDetail", _.cloneDeep(this.ruleForm));
// this.$refs['ruleForm'].validate((valid) => {
// if (valid) {
// this.$message({
// message: '修改成功!',
// type: 'success'
// })
// } else {
// this.$message.error('请完善必填项');
// }
// })
}
}
}
</script>
<style scoped lang="scss">
.submit-button {
text-align: center;
height: 52px;
padding-top: 10px;
background-color: #fff;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-04-26 16:05:28
-->
<template>
<div class='batchDel'>
<lb-table :column="columns" :data="formData.dataList" :maxHeight="460" :heightNumSetting="true" :pagination="false"
@selection-change="handleSelectionChange">
</lb-table>
<div class="text-center">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="submitdelclick" plain>确定</el-button>
</div>
</div>
</template>
<script>
import { deleteFlow } from "@/api/ywbl.js"
import store from '@/store/index.js'
export default {
components: {},
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
columns: [
{
type: 'selection',
label: '全选'
},
{
label: '序号',
type: 'index',
width: '50',
},
{
prop: "bdcdyh",
label: "不动产单元号",
},
{
prop: "zl",
label: "坐落",
},
],
dataList: [],
selectBdcdy: [],
}
},
methods: {
// 批量删除确定按钮
submitdelclick () {
var formdata = new FormData();
formdata.append("bsmSldyList", this.selectBdcdy);
formdata.append("bsmSlsq", this.formData.bsmSlsq);
deleteFlow(formdata).then(res => {
if (res.code == 200) {
this.$popupCacel();
store.dispatch('user/refreshPage', true);
this.$message.success("删除成功");
} else {
this.$message.error(res.message)
}
})
},
// 批量删除勾选事件
handleSelectionChange (e) {
this.selectBdcdy = [];
e.forEach((item, index) => {
this.selectBdcdy.push(item.bsmSldy)
})
}
}
}
</script>
<style scoped lang='scss'>
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:48
-->
<template>
<lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :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: [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
{
prop: "qllxmc",
label: "权利类型"
},
{
prop: "bdcqzh",
label: "不动产权证号"
},
{
prop: "qlrmc",
label: "权利人"
},
{
prop: "ytmc",
label: "用途"
},
{
prop: "mj",
label: "面积"
},
{
prop: "zl",
label: "坐落"
},
],
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: "fs",
label: "份数"
})
}
},
immediate: true
}
},
methods: {
}
}
</script>
<style scoped lang='scss'>
</style>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:38
-->
<template>
<div class="clxx">
<div class="right">
<!-- 材料预览 -->
<div class="clyl-box">
<div class="menu-tree">
<el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button>
<div class="item">
材料目录({{tableData.length}})
<div style="margin-top:10px">
<div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div>
<div v-for="(item,index) in tableData" :key="item.bsmSj"
:class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)">
<span v-if="item.isrequired==1" class="required">必选</span>
{{ item.sjmc }}
<span class="cl_number">({{item.children ? item.children.length : 0}})</span>
</div>
</div>
</div>
<el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()" v-if="!this.$route.query.viewtype">新增</el-button>
</div>
<image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview"
@prevPriview="prevPriview" />
</div>
</div>
<clxxAddDialog v-model="isDialog" />
<!-- <clxxDetailDialog v-model="detailDialog" :data="tableData" /> -->
</div>
</template>
<script>
import { mapGetters } from "vuex";
import clxxAddDialog from "./dialog/clxxAddDialog.vue";
import clxxDetailDialog from "./dialog/clxxDetailDialog.vue";
import imagePreview from '@/views/components/imagePreview.vue'
import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js";
import { popupDialog } from "@/utils/popup.js";
export default {
components: { clxxAddDialog, imagePreview, clxxDetailDialog },
data () {
return {
isDialog: false,
iclass: "",
// 材料目录选中
treeCheckIndex: 0,
treeCheckId: "",
key: 0,
tableData: [],
previewImg: {
// 收件标识码
bsmSj: '',
bsmSlsq: this.$parent.bsmSlsq,
index: 0,
selectedIndex: 0,
imgList: []
}
}
},
computed: {
...mapGetters(["dictData"])
},
created () {
this.clmlInitList(1)
},
methods: {
// 自动预览
nextPriview () {
if (this.treeCheckIndex < this.tableData.length) {
this.treeCheckIndex++
this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj
this.previewImg.index = 0
this.previewImg.imgList = this.tableData[this.treeCheckIndex].children
this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj
}
},
prevPriview () {
if (this.treeCheckIndex >= 1) {
this.treeCheckIndex--
this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj
this.previewImg.index = this.previewImg.imgList.length
this.previewImg.imgList = this.tableData[this.treeCheckIndex].children
this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj
}
},
// 材料目录明细初始化
clmlInitList (type) {
//type 1:列表初始化 2:新增材料
return new Promise(resolve => {
this.unitData = this.$parent.unitData;
var formdata = new FormData();
formdata.append("bsmSldy", this.unitData[0]?.bsmSldy);
formdata.append("bsmSlsq", this.$parent.bsmSlsq);
InitClml(formdata).then((res) => {
if (res.code == 200) {
resolve(res.code)
if (res.result && res.result.length > 0) {
this.tableData = res.result;
if (type == 1) {
this.treeClick(this.tableData[0], 0);
} else {
//新增材料后刷新列表焦点置于新增的对象上
this.treeClick(this.tableData[this.tableData.length - 1], this.tableData.length - 1);
}
}
} else {
this.$message.error(res.message)
}
})
})
},
setChecked (item) {
this.treeCheckId = item.bsmSj;
this.title = item.sjmc;
this.titleYs = 1;
this.titleNum = item.children.length;
this.previewImg.imgList = item.children;
this.previewImg.bsmSj = item.bsmSj;
},
updateList (val) {
let that = this
if (val != null) { //删除最后一张图片时 val=null
this.tableData.forEach(item => {
if (item.bsmSj === val.bsmSj) {
item.children = val.children
}
})
this.previewImg.imgList = _.cloneDeep(val.children)
if (this.previewImg.index == this.previewImg.imgList.length) {
this.previewImg.index = this.previewImg.index - 1
}
} else {
this.previewImg.imgList = []
this.tableData.forEach((item, index) => {
if (this.treeCheckId == item.bsmSj) {
item.children = []
that.treeCheckIndex = index
}
})
}
},
// 添加材料目录
handleAdd () {
this.isDialog = true;
},
// 新增弹窗保存
addSave (data) {
let obj = {
bsmSlsq: this.$parent.bsmSlsq,
isrequired: "1",
sjmc: data.clmc,
sjsl: 0,
smzt: '',
ys: 0,
sjlx: data.cllx,
sfxjcl: "1", // 是否必选
};
saveClml(obj).then(async (res) => {
if (res.code == 200) {
let res = await this.clmlInitList(2)
if (res == 200) this.$message({
message: "新增成功",
type: "success",
})
}
});
},
// 材料目录点击选中
treeClick (item, index) {
this.previewImg.index = 0
this.treeCheckId = item?.bsmSj
this.treeCheckIndex = index
this.previewImg.imgList = item?.children
this.previewImg.bsmSj = item?.bsmSj
},
// 小图片点击
imgClick (item, index) {
this.showImg = item;
this.titleYs = index + 1;
},
// 字典
dicStatus (val, code) {
let data = this.$store.getters.dictData[code],
name = "暂无";
if (data) {
data.map((item) => {
if (item.dcode == val) {
name = item.dname
}
});
return name
}
},
//查看明细
viewDetail () {
this.$popupDialog("查看明细", "workflow/components/dialog/clxxDetailDialog", {
data: this.tableData
}, "60%")
},
//设置tableData
setTableData (tableData) {
this.$nextTick(res => {
this.tableData = tableData;
})
},
},
};
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
.active {
background: $light-blue !important;
color: #fff;
}
.required {
font-size: 12px;
color: $pink;
float: left;
}
.cl_number {
float: right;
}
.clxx {
width: 100%;
display: flex;
padding-left: 5px;
height: calc(100vh - 125px);
.left {
display: flex;
flex-direction: column;
justify-content: space-between;
.item {
width: 28px;
height: 49%;
@include flex-center;
background-color: #e4e7ed;
border-bottom-right-radius: 10px;
padding: 5px;
cursor: pointer;
transition: all 0.3s;
&:hover {
@extend .active;
}
}
}
.right {
width: 100%;
height: 100%;
.clmlmx-box {
margin: 0 auto;
.title {
text-align: center;
height: 60px;
line-height: 60px;
border: 1px solid #dfe6ec;
font-size: 20px;
background: #81d3f81a;
margin-bottom: -1px;
}
}
.clyl-box {
width: 100%;
height: 100%;
display: flex;
.menu-tree {
width: 20%;
min-width: 160px;
height: 100%;
margin-right: 10px;
border-right: 1px dotted #d9d9d9;
padding: 0 15px;
.item {
line-height: 30px;
padding-top: 5px;
border-bottom: 1px solid #e8e8e8;
font-size: 16px;
text-align: center;
color: $light-blue;
.itemIcon {
float: right;
line-height: 60px;
cursor: pointer;
}
.child {
line-height: 32px;
border-bottom: 1px solid #e8e8e8;
padding-left: 10px;
color: #6b6b6b;
cursor: pointer;
box-sizing: border-box;
border-radius: 6px;
line-height: 20px;
transition: all 0.3s;
padding: 8px 0;
}
.child:hover {
color: $light-blue;
transform: scale(1.1);
}
.checked {
border: 1px solid $light-blue;
color: $light-blue;
}
}
}
.clyl-img {
width: 75%;
height: 100%;
background: #f3f4f7;
margin: 0 auto;
position: relative;
}
}
}
}
</style>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:39:47
-->
<template>
<dialogBox title="申请人信息" width="60%" isMain v-model="myValue" :isFullscreen="false" @submitForm="submitForm"
@closeDialog="closeDialog" :isButton="showButton">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="权利人类型" prop="sqrlx">
<el-select clearable v-model="ruleForm.sqrlx" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A36']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="姓名/名称" prop="sqrmc">
<el-input v-model="ruleForm.sqrmc" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件种类" prop="zjzl">
<el-select clearable v-model="ruleForm.zjzl" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A30']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="证件号" prop="zjh">
<el-input v-model="ruleForm.zjh" maxlength="15" oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="dh">
<el-input v-model="ruleForm.dh" maxlength="11" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别">
<el-select clearable v-model="ruleForm.xb" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A43']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="法人名称">
<el-input v-model="ruleForm.frmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="国家/地区">
<el-input v-model="ruleForm.gjdq"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="户籍所在省市">
<el-input v-model="ruleForm.szss"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="地址">
<el-input v-model="ruleForm.txdz"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮编">
<el-input v-model="ruleForm.yb"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="发证机关">
<el-input v-model="ruleForm.fzjg"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电子邮件">
<el-input v-model="ruleForm.dzyj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利比例">
<el-input v-model="ruleForm.qlbl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工作单位">
<el-input v-model="ruleForm.gzdw"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="代理机构">
<el-input v-model="ruleForm.dljg"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="联系电话">
<el-input v-model="ruleForm.lxdh" maxlength="11" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="代理人姓名">
<el-input v-model="ruleForm.dlrxm"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="代理人证件类型">
<el-select clearable v-model="ruleForm.dlrzjlx" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A30']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="代理人证件号">
<el-input v-model="ruleForm.dlrzjh" maxlength="20"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</dialogBox>
</template>
<script>
import { mapGetters } from "vuex";
export default {
props: {
value: { type: Boolean, default: false },
details: { type: Object, default: {} },
showButton: { type: Boolean, default: false }
},
computed: {
...mapGetters(["dictData"]),
},
data () {
return {
myValue: this.value,
ruleForm: {
sqrlx: "",
sqrmc: "",
zjzl: "",
zjh: "",
dh: "",
xb: "",
frmc: "",
gjdq: "",
szss: "",
txdz: "",
yb: "",
fzjg: "",
dzyj: "",
qlbl: "",
gzdw: "",
dljg: "",
dlrxm: "",
dlrzjlx: "",
dlrzjh: "",
},
rules: {
sqrlx: [{ required: true, message: "权利人类型", trigger: "change" }],
sqrmc: [{ required: true, message: "姓名/名称", trigger: "blur" }],
zjzl: [{ required: true, message: "证件种类", trigger: "change" }],
zjh: [{ required: true, message: "证件号", trigger: "blur" }],
},
};
},
watch: {
value (val) {
this.myValue = _.cloneDeep(val);
},
details: {
handler: function (val, oldVal) {
this.ruleForm = val;
},
deep: true,
},
},
methods: {
closeDialog () {
this.$emit("input", false);
this.$refs["ruleForm"].resetFields();
},
submitForm () {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
this.$emit("input", false);
this.$emit("updateDetail", _.cloneDeep(this.ruleForm));
} else {
return false;
}
});
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/dialogBoxheader.scss";
.submit-button {
text-align: center;
height: 52px;
padding-top: 10px;
background-color: #fff;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-09 09:20:10
-->
<template>
<dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
:isFullscreen="false">
<el-form :model="ruleForm" ref="ruleForm" label-width="70px">
<el-row>
<el-col :span="24">
<el-form-item label="材料类型">
<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="材料名称">
<el-input v-model="ruleForm.clmc"></el-input>
</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: "",
},
};
},
computed: {
...mapGetters(["dictData"]),
},
watch: {
value (val) {
this.myValue = val;
},
},
methods: {
closeDialog () {
this.$emit("input", false);
this.ruleForm = {
cllx: "",
clmc: "",
}
},
handleSubmit () {
this.$parent.addSave(this.ruleForm);
this.ruleForm = {
cllx: "",
clmc: "",
}
this.$emit("input", 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-05-17 10:39:57
-->
<template>
<div class="clmlmx-box">
<div class="title">申请材料目录</div>
<lb-table :column="column" :key="key" :heightNumSetting="true" :pagination="false" :data="formData.data">
</lb-table>
<div class="text-center">
<el-button @click="$popupCacel">取消</el-button>
</div>
</div>
</template>
<script>
import store from '@/store/index.js'
import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
column: [
{
width: "50",
label: '序号',
type: 'index'
},
{
prop: "isrequired",
label: "是否必选",
width: "80",
render: (h, scope) => {
if (scope.row.sfxjcl === "1") {
return (
<div>
<span>可选</span>
</div>
);
}
else {
return (
<div>
<span>必选</span>
</div>
);
}
},
},
{
prop: "sjmc",
label: "材料名称",
},
{
prop: "sjlx",
label: "材料类型",
width: "80",
render: (h, scope) => {
return (
<div>
<span>{this.dicStatus(scope.row.sjlx, "A40")}</span>
</div>
);
},
},
{
prop: "sjsl",
label: "份数",
width: "50"
},
{
prop: "smzt",
label: "扫描状态",
width: "80",
render: (h, scope) => {
if (scope.row.children && scope.row.children.length > 0) {
return (
<div>
<span>已扫描</span>
</div>
);
} else {
return (
<div>
<span>未扫描</span>
</div>
);
}
},
},
{
label: "扫描页数",
width: "80",
render: (h, scope) => {
if (scope.row.children && scope.row.children.length > 0) {
return (
<div>
<span>{scope.row.children.length}</span>
</div>
);
} else {
return (
<div>
<span>0</span>
</div>
);
}
},
},
{
label: "操作",
width: "80",
render: (h, scope) => {
return (
<div>
<el-button
type="text"
disabled={scope.$index == 0}
onClick={() => {
this.moveUpward(scope.$index, scope.row);
}}
>
上移
</el-button>
<el-button
type="text"
disabled={scope.$index + 1 == this.tableData.length}
onClick={() => {
this.moveDown(scope.$index, scope.row);
}}
>
下移
</el-button>
</div>
);
},
},
],
key: 0,
tableData: []
}
},
created () {
console.log(this.formData.data, 'formData');
},
methods: {
// 材料目录明细初始化
clmlInitList () {
return new Promise(resolve => {
this.unitData = this.$parent.unitData;
var formdata = new FormData();
formdata.append("bsmSldy", this.unitData[0]?.bsmSldy);
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
InitClml(formdata).then((res) => {
if (res.code == 200) {
resolve(res.code)
if (res.result && res.result.length > 0) {
this.data = res.result;
} else {
this.data = []
}
} else {
this.$message.error(res.message)
}
})
})
},
// 上移
moveUpward (index, row) {
let obj = {
xh: row.xh,
bsmSlsq: row.bsmSlsq,
moveDirection: "UP",
};
// 接口待调
moveClml(obj).then(async (res) => {
if (res.code == 200) {
let res = await this.clmlInitList()
if (res == 200) {
this.$message({
message: '上移成功',
type: 'success'
})
this.$parent.setTableData(this.data)
}
} else {
this.$message.error(res.message);
}
})
},
// 下移
moveDown (index, row) {
let obj = {
xh: row.xh,
bsmSlsq: row.bsmSlsq,
moveDirection: "DOWN",
}
// 接口待调
moveClml(obj).then(async (res) => {
if (res.code == 200) {
let res = await this.clmlInitList()
if (res == 200) {
this.$message({
message: '下移成功',
type: 'success'
})
}
} else {
this.$message.error(res.message);
}
})
},
// 材料目录删除
handleDelete (index, row) {
let that = this
this.$confirm('此操作将永久删除该 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => {
if (res.code == 200) {
let res = await that.clmlInitList()
if (res == 200) {
that.$message({
message: "删除成功",
type: "success",
})
// this.$parent.setTableData(this.data)
}
}
})
}).catch(() => {
this.$message({
type: 'info',
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>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:02
-->
<template>
<div>
<el-button type="primary" native-type="submit" @click="openDialog">新增常用</el-button>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" v-show="addDialog">
<el-form-item prop="commonOpinion">
<div class="invalid-reson">常用意见:</div>
<el-input v-model="form.commonOpinion" placeholder="请输入常用意见" type="textarea" :rows="4"></el-input>
</el-form-item>
<el-form-item class="text-center">
<el-button @click="closeaddDiglog">取 消</el-button>
<el-button type="primary" @click="addOpinion">确 定</el-button>
</el-form-item>
</el-form>
<lb-table :heightNumSetting="true"
@row-dblclick="handleRowClick"
:pagination="false" :column="columns" :minHeight="300" :data="tableData.data">
</lb-table>
<div style="height:15px"></div>
<div class="text-center">
<el-button @click="$popupCacel">取消</el-button>
</div>
</div>
</template>
<script>
import store from '@/store/index.js'
import { getUserCommonOpinion, addUserCommonOpinion, delUserCommonOpinion } from "@/api/fqsq.js"
export default {
components: {},
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
addDialog: false,
columns: [
{
label: '序号',
type: 'index',
width: '50',
},
{
prop: "opinion",
label: "意见描述",
},
{
label: '操作',
width: '100',
render: (h, scope) => {
return (
<div>
<el-button type="text" onClick={() => { this.useCommonOpinion(scope.row) }}>使用</el-button>
<el-button type="text" onClick={() => { this.deleteOpinion(scope.row) }}>删除</el-button>
</div>
)
}
}
],
tableData: {
total: 0,
data: [],
},
form: {
commonOpinion: '',
},
rules: {
commonOpinion: [
{ required: true, message: '请输入常用意见', trigger: 'blur' }
]
}
}
},
mounted () {
this.getList()
},
methods: {
getList () {
getUserCommonOpinion().then(res => {
this.tableData.data = res.result
})
},
//新增常用意见
addOpinion () {
this.$refs.form.validate(valid => {
if (valid) {
addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => {
if (res.code == 200) {
this.$message.success("新增成功")
this.closeaddDiglog();
this.getList()
} else {
this.$message.error(res.message)
}
})
} else {
return false;
}
});
},
//打开新增弹窗
openDialog () {
this.addDialog = true
},
//关闭新增弹窗
closeaddDiglog () {
this.addDialog = false
this.$refs['form'].resetFields();
},
handleRowClick (item) {
this.useCommonOpinion(item)
},
//使用常用意见
useCommonOpinion (item) {
store.dispatch('workflow/setOptions', item.opinion);
this.$popupCacel()
},
//删除常用意见
deleteOpinion (item) {
this.$confirm("确定要删除吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
delUserCommonOpinion({ bsmOpinion: item.bsmOpinion }).then(res => {
if (res.code == 200) {
this.$message.success("删除成功")
this.getList()
} else {
this.$message.error(res.message)
}
})
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
//关闭列表弹窗
closeDialog () {
this.form.commonOpinion = "";
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "~@/styles/dialogBox.scss";
.invalid-reson {
margin-bottom: 10px;
}
.dialog-footer {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
</style>
\ No newline at end of file
<!--
* @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 { datas } 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: datas.columns(),
data: [],
},
}
},
mounted () {
this.query()
},
methods: {
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>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:09
-->
<template>
<div>
<div class="zsdy-content loadingtext">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="120px">
<el-form-item label="印刷序列号:" prop="ysxlh">
<el-select v-model="ruleForm.ysxlh" placeholder="请选择">
<el-option
v-for="item in ysxlh"
:key="item.ysxlh"
:label="item.ysxlh"
:value="item.ysxlh">
</el-option>
</el-select>
</el-form-item>
</el-form>
<img :src="previewImage" style="width: 100%">
</div>
<div class="text-center pt-10">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="handleSubmit">确定</el-button>
</div>
</div>
</template>
<script>
import store from '@/store/index.js'
import { datas } from "../../javascript/zsyl.js";
import { readYsxlh, certificate, bdcqzPreview } from "@/api/bdcqz.js";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
//印刷序列号集合
ysxlh: [],
//证书预览图片
previewImage: '',
//列名称对象
columns: [],
ruleForm: {
bsmBdcqz: "",
szmc: "不动产权证书",
bdcqzlx: "",
szzh: "",
ysxlh: ""
},
rules: {
ysxlh: [
{ required: true, message: "请选择印刷序列号", trigger: "change" }
]
}
}
},
created () {
store.dispatch('user/refreshPage', false)
this.columns = datas.columns()
this.ysxlhList()
this.getBdcqzPreview()
},
methods: {
//获取印刷序列号列表
ysxlhList () {
readYsxlh({ zslx: this.formData.bdcqz.bdcqzlx }).then((res) => {
if (res.code === 200) {
this.ysxlh = res.result;
}
})
},
handleSubmit () {
this.savePrintRecord()
},
//获取证书内容
getRowValue (code) {
var value = this.bdcqz[code];
return value;
},
getBdcqzPreview () {
this.$startLoading()
bdcqzPreview(this.formData.bdcqz).then(res => {
this.$endLoading()
let blob = new Blob([res]);
let url = window.URL.createObjectURL(blob);
this.previewImage = url;
})
},
//保存打印记录
savePrintRecord () {
this.ruleForm.bsmBdcqz = this.formData.bdcqz.bsmBdcqz;
this.ruleForm.bdcqzlx = this.formData.bdcqz.bdcqzlx;
this.ruleForm.szzh = this.formData.bdcqz.bdcqzh;
certificate(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$popupCacel()
this.$message.success("提交成功")
//刷新列表
store.dispatch('user/refreshPage', true);
} else {
this.$message.error(res.message)
}
});
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.zsdy-content {
height: 80vh;
overflow-y: scroll;
}
.aaaa {
width: 1024px;
height: 739px;
font-family: KaiTi;
font-weight: 700;
}
.bdcdjzm {
width: 1123px;
height: 794px;
font-family: KaiTi;
font-weight: 700;
}
.zmyl-box {
//position: relative;
position: absolute;
height: 600px;
width: 280px;
margin-left: 775px;
font-size: 16px;
justify-content: space-between;
}
.bdcqzh {
height: 70px;
left: 0;
bottom: 0;
font-size: 18px;
}
.zsyl-box {
display: flex;
justify-content: space-between;
// padding: 20px;
font-size: 16px;
height: 100%;
$left: 131px;
.zsyl-left {
width: 460px;
position: relative;
.qlr {
position: absolute;
top: 40px;
left: $left;
}
.gyqk {
position: absolute;
top: 80px;
left: $left;
}
.zl {
position: absolute;
top: 120px;
left: $left;
}
.bdcdyh {
position: absolute;
top: 160px;
left: $left;
}
.qllx {
position: absolute;
top: 205px;
left: $left;
}
.qlxz {
position: absolute;
top: 250px;
left: $left;
}
.yt {
position: absolute;
top: 290px;
left: $left;
}
.mj {
position: absolute;
top: 330px;
left: $left;
}
.syqx {
position: absolute;
top: 370px;
left: $left;
}
.qt {
position: absolute;
top: 420px;
left: $left;
}
}
.zsyl-right {
flex: 1;
text-align: left;
position: relative;
.fj {
position: absolute;
left: 115px;
top: 5px;
}
}
.zsyl-title {
margin-bottom: 12px;
}
/deep/.el-table__row {
background: #fafbe5 !important;
}
}
.middle_padding {
padding-bottom: 10px;
}
.zsyl-button {
text-align: center;
margin-top: 20px;
.operation_button {
width: 100px;
border: 1px solid rgb(0, 121, 254);
}
.dy-button {
color: white;
background-color: rgb(0, 121, 254);
}
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-18 10:53:49
-->
<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="6">
<el-form-item label="领证人" prop="lzrxm">
<el-input v-model="ruleForm.lzrxm"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件类型" prop="lzrzjlb">
<el-select v-model="ruleForm.lzrzjlb" filterable clearable placeholder="请选择">
<el-option v-for="item in zjzlData" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件号" prop="lzrzjh">
<el-input v-model="ruleForm.lzrzjh"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<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>
import Vue from 'vue'
import store from '@/store/index.js'
import table from "@/utils/mixin/table";
import { getUnclaimedBdcqz, issueCertificate } from "@/api/bdcqz.js";
import { datas } from "../../javascript/fzxxdata";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
mixins: [table],
data () {
return {
zjzlData: 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, message: '请输入电话号码', trigger: 'blur' }
]
},
tableData: {
total: 0,
columns: datas.columns().lzgrid,
data: []
}
}
},
mounted () {
this.$nextTick(() => {
this.loadGrid()
})
},
methods: {
//列表初始化
loadGrid () {
getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => {
if (res.code === 200) {
this.tableData.data = res.result.list;
this.ruleForm.fzrmc = res.result.fzrmc
this.ruleForm.fzsj = res.result.fzsj
this.ruleForm.fzsl = res.result.fzsl
this.ruleForm.bdcqzList = res.result.list;
}
})
},
handleSelectionChange (val) {
this.ruleForm.bdcqzList = val
},
handleRowClick (row) {
this.$refs.table.toggleRowSelection(row)
},
handleSubmit () {
this.$refs.ruleForm.validate(valid => {
if (valid) {
issueCertificate(this.ruleForm).then(res => {
if (res.code == 200) {
this.$message.success('保存成功');
this.$popupCacel()
} else {
this.$message.error(res.message)
}
})
} else {
this.$message.error("请填写领取人信息!")
return false;
}
})
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-29 14:22:48
-->
<template>
<div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中..." style="height:720px">
<!-- 表单部分 -->
<el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length > 1">
<el-tab-pane :label="item.qlr + '(' + item.bdcqzh + ')'" :name="item.bsmBdcqz"
v-for="(item, index) in headTabBdcqz" :key="index"></el-tab-pane>
</el-tabs>
<div class="no-data" v-if="headTabBdcqz.length == 0">暂无数据</div>
<!-- <img :src="previewImage" class="imgClass"> -->
<canvas ref="canvas" :width="canvasWidth" :height="canvasHeight"></canvas>
</div>
</template>
<script>
import { datas } from "../../javascript/zsyl.js";
import { getSlsqBdcqzList, bdcqzPreview } from "@/api/bdcqz.js"
export default {
name: "zsyl",
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
canvasWidth: 1018,
canvasHeight: 720,
loading: false,
//印刷序列号集合
ysxlh: [],
//列名称对象
columns: [],
//选择的不动产权证文件
bdcqz: '',
//证书打开类型 是否需要展示打印按钮
isToPrint: false,
//tab切换栏数组
headTabBdcqz: [],
//tab选择绑定值
activeName: '',
//证书图片预览
previewImage: '',
ruleForm: {
bsmBdcqz: '',
szmc: '不动产权证书',
bdcqzlx: '',
szzh: '',
ysxlh: '',
},
}
},
mounted () {
this.columns = datas.columns();
if (this.formData.bdcqz) {
//从缮证进入
this.bdcqz = this.formData.bdcqz
} else {
//从按钮进入
this.getHeadTabBdcqz();
}
},
methods: {
//获取证书内容
getRowValue (code) {
var value = this.bdcqz[code];
return value;
},
//获取受理申请下全部不动产权证
getHeadTabBdcqz () {
this.loading = true
getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
if (res.code == 200) {
if (res.result && res.result.length > 0) {
this.activeName = res.result[0].bsmBdcqz
this.bdcqz = res.result[0]
this.headTabBdcqz = res.result
this.drawTextOnImage();
}
}
this.loading = false
})
},
//tab表头切换方法
handleClick (e) {
this.bdcqz = this.headTabBdcqz[e.index - 0]
this.activeName = this.headTabBdcqz.bsmBdcqz
// this.getBdcqzPreview();
this.drawTextOnImage()
},
// getBdcqzPreview () {
// bdcqzPreview(this.bdcqz).then(res => {
// this.loading = false
// let blob = new Blob([res]);
// let url = window.URL.createObjectURL(blob);
// this.previewImage = url;
// this.drawTextOnImage()
// })
// },
drawTextOnImage () {
const canvas = this.$refs.canvas;
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = '15px 楷体';
context.fillStyle = '#000000';
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 138, 97);
context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 138, 138);
context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 138, 180);
context.fillText(this.bdcqz.bdcdyh ? this.bdcqz.bdcdyh : '', 138, 223);
context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 138, 263);
context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 138, 303);
context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 138, 346);
context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 138, 386);
context.fillText(this.bdcqz.syqx ? this.bdcqz.syqx : '', 138, 429);
context.fillText(this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk : '', 138, 469);
context.fillText(this.bdcqz.fj ? this.bdcqz.fj : '', 580, 100);
}
image.src = this.imgSrc;
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.imgClass {
display: inline-block;
height: auto;
max-width: 100%;
}
.middle_padding {
padding-bottom: 10px;
}
.zsyl-button {
text-align: center;
margin-top: 20px;
.operation_button {
width: 100px;
border: 1px solid rgb(0, 121, 254);
}
.dy-button {
color: white;
background-color: rgb(0, 121, 254);
}
}
.table-column {
border-spacing: 1px;
width: 100%;
tr td {
border: 1px solid #ccc;
text-align: center;
height: 40px;
padding: 4px;
font-size: 13px;
background: rgb(251, 249, 229);
}
}
.zsyl-title {
background: #fafbe5;
text-align: center;
padding: 5px 0px;
font-size: 20px;
}
.no-data {
font-size: 18px;
display: flex;
text-align: center;
justify-content: center;
}
</style>
<!--
* @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
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-16 15:55:45
-->
<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">
<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 table from "@/utils/mixin/table";
import { getCertificateList } from "@/api/bdcqz.js";
import { datas } from "../javascript/fzxxdata";
export default {
mixins: [table],
data () {
return {
ruleForm: {
ysxlh: '',
zsh: '',
qlr: '',
bsmSldy: ''
},
tableData: {
total: 0,
columns: datas.columns().fzgrid,
data: []
},
dialogVisible: false
}
},
methods: {
queryClick () {
this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
getCertificateList(this.ruleForm).then(res => {
if (res.code === 200) {
this.tableData.data = res.result ? res.result : []
}
})
},
zslqClick () {
this.$popupDialog("不动产权证领取", "workflow/components/dialog/zslq", {}, '80%', true)
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
</style>
\ No newline at end of file
No preview for this file type