aec0ce0b by xiaomiao

--no commit message

2 parents 86bc39c3 526076e3
Showing 192 changed files with 1025 additions and 3243 deletions
......@@ -10,6 +10,7 @@
"dependencies": {
"@antv/g2": "^4.2.8",
"@babel/polyfill": "^7.12.1",
"@riophae/vue-treeselect": "^0.4.0",
"axios": "^0.21.1",
"bpmn-js": "^7.4.0",
"bpmn-js-properties-panel": "^0.37.2",
......@@ -22,6 +23,7 @@
"node-sass": "^4.14.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"qrcode": "^1.5.3",
"vue": "2.6.10",
"vue-json-editor": "^1.4.3",
"vue-quill-editor": "^3.0.6",
......
{
"TITLE": "不动产登记系统",
"SERVERAPI": "/bdcdj",
"ip": "http://192.168.2.38"
"IDCARDURL": "http://127.0.0.1:33088/function=get_idcard&readnew=0"
}
\ No newline at end of file
......
{
"TITLE": "不动产登记系统",
"SERVERAPI": "/bdcdj",
"ip": "http://192.168.2.38"
}
\ No newline at end of file
{
"TITLE": "不动产登记系统",
"SERVERAPI": "service-bdcdj-th",
"ip": "http://192.168.2.38"
}
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-02 09:49:22
* @LastEditTime: 2023-06-20 10:23:38
-->
<!DOCTYPE html>
<html>
......@@ -22,7 +22,7 @@
cloudEnable: false,
baseUrl: location.origin || location.protocol + '//' + location.host,
// 是否启用单点登录
casEnable: true,
casEnable: false,
// cas 基地址
casBaseURL: 'http://192.168.2.38/cas',
services: {
......@@ -31,7 +31,7 @@
business: 'http://localhost:7001'
}
}
fetch('<%= BASE_URL %>config.json')
fetch('/dj/config.json')
.then(response => response.json())
.then(config => {
window.config = config
......
......@@ -67,6 +67,9 @@ export function uploadSjClmx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/clxx/uploadSjClmx',
method: 'post',
headers: {
'Content-Type': 'multipart/form-data'
},
data
})
}
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-16 14:05:25
*/
import request from '@/utils/request'
import { log } from 'bpmn-js-token-simulation'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* @description: 添加补录记录
* @param {*} data
* @author: renchao
*/
export function addRepairRecord (data) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/addRepairRecord',
method: 'post',
data
})
}
/**
* @description: 删除流程
* @param {*} params
* @author: renchao
*/
export function deleteFlow (params) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/deleteFlow?bsmSlsq='+params,
method: 'get',
})
}
/**
* @description: 删除补录记录
* @param {*} params
* @author: renchao
*/
export function deleteRepairRecord (params) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/deleteRepairRecord?bsmRepair='+params,
method: 'get',
})
}
/**
* @description: 初始化内容
* @param {*} params
* @author: renchao
*/
export function init (params) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/init?bsmRepair='+params,
method: 'get',
})
}
/**
* @description: 左侧菜单集合
* @param {*} params
* @author: renchao
*/
export function leftMenubl (params) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/leftMenu?bsmSlsq='+params,
method: 'get',
params
})
}
/**
* @description: 获取权利类型数组
* @param {*} params
* @author: renchao
*/
export function getQllxByBdcdyid (params) {
return request({
url: SERVER.SERVERAPI + '/rest/djbDetail/getQllxByBdcdyid',
method: 'get',
params
})
}
/**
* @description: 保存数据
* @param {*} data
* @author: renchao
*/
export function save (data) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/save',
method: 'post',
data
})
}
/**
* @description: 发起业务申请流程
* @param {*} data
* @author: renchao
*/
export function startBusinessFlow (data) {
return request({
url: SERVER.SERVERAPI + '/rest/djbRepair/startBusinessFlow',
method: 'post',
data
})
}
/*
* @Description: 用户首页
* @Autor: renchao
* @LastEditTime: 2023-05-16 16:06:51
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* @description: 获取首页通知公告列表
* @author: renchao
*/
export function getHomeNoticeList () {
return request({
url: SERVER.SERVERAPI + '/rest/home/getHomeNoticeList',
method: 'get'
})
}
/**
* @description:
* @author: renchao
*/
// 获取首页待办事项
export function getHomeTodoList () {
return request({
url: SERVER.SERVERAPI + '/rest/home/getHomeTodoList',
method: 'get'
})
}
/**
* @description: 获取首页已办事项
* @author: renchao
*/
export function getHomeDoneList () {
return request({
url: SERVER.SERVERAPI + '/rest/home/getHomeDoneList',
method: 'get'
})
}
/**
* @description: 获取首页常办项目
* @author: renchao
*/
export function getHomeFrequentProjects () {
return request({
url: SERVER.SERVERAPI + '/rest/home/getHomeFrequentProjects',
method: 'get'
})
}
/**
* @description: 保存常办项目
* @param {*} data
* @author: renchao
*/
export function saveFrequentProjectsList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/home/saveFrequentProjectsList',
method: 'post',
data
})
}
\ No newline at end of file
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-18 10:53:07
* @LastEditTime: 2023-06-16 16:06:39
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
const url = SERVER.SERVERAPI + '/rest/zhcx/lpcx/'
import request from "@/utils/request";
let SERVER = window.config
? window.config
: JSON.parse(localStorage.getItem("ApiUrl"));
const url = SERVER.SERVERAPI + "/rest/zhcx/lpcx/";
//
/**
* @description:楼盘查询- 根据条件进行列表查询
* @param {*} data
* @author: renchao
*/
export function getLpZrz (data) {
export function getLpZrz(data) {
return request({
url: 'service-lpb/rest/zhcx/lpcx/getLpZrz',
method: 'post',
data: data
})
url: "service-lpb-zq/rest/zhcx/lpcx/getLpZrz",
method: "post",
data: data,
});
}
/**
......@@ -25,32 +27,47 @@ export function getLpZrz (data) {
* @param {*} zrzbsm
* @author: renchao
*/
export function getLpb (zrzbsm) {
export function getLpb(zrzbsm) {
return request({
url: url + 'getLpb?scyclx=1&zrzbsm=' + zrzbsm,
method: 'get'
})
url: "service-lpb-zq/rest/zhcx/lpcx/getLpb?scyclx=0&zrzbsm=" + zrzbsm,
method: "get",
});
}
/**
* @description: 获取楼盘表房屋用途,房屋性质右侧房屋用途统计数据
* @param {*} zrzbsm
* @author: renchao
*/
export function getLpbFwytAndQlxz (zrzbsm) {
export function getLpbFwytAndQlxz(zrzbsm) {
return request({
url: url + 'getLpbFwytAndQlxz?scyclx=1&zrzbsm=' + zrzbsm,
method: 'get'
})
url:
"service-lpb-zq/rest/zhcx/lpcx/getLpbFwytAndQlxz?scyclx=0&zrzbsm=" +
zrzbsm,
method: "get",
});
}
/**
* @description: 获取楼盘表缺失项统计
* @param {*} zrzbsm
* @author: renchao
*/
export function getLpbQsxtj (zrzbsm) {
export function getLpbQsxtj(zrzbsm) {
return request({
url: url + 'getLpbQsxtj?scyclx=1&zrzbsm=' + zrzbsm,
method: 'get'
})
url: "service-lpb-zq/rest/zhcx/lpcx/getLpbQsxtj?scyclx=0&zrzbsm=" + zrzbsm,
method: "get",
});
}
/**
* @description: 楼盘表 获取单元状态统计数据
* @param {*} data
* zrzbsm 自然幢标识码
* scyclx 实测预测类型 0预测,1实测
* @return {*}
*/
export function getLpbTj(zrzbsm) {
return request({
url: "service-lpb-zq/rest/zhcx/lpcx/getLpbTj?scyclx=0&zrzbsm=" + zrzbsm,
method: "get",
});
}
......
......@@ -72,6 +72,19 @@ export function getBdcqljqtsx (data) {
}
/**
* @description: 获取土地所有权
* @param {*} data
* @author: renchao
*/
export function getTdsyqList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/djbDetail/getTdsyqList',
method: 'post',
data
})
}
/**
* @description: 获取建设用地使用权
* @param {*} data
* @author: renchao
......
......@@ -66,3 +66,15 @@ export function choiceBdcdy (data) {
})
}
/**
* @description: 选择补录权利信息
* @param {*} data
* @author: renchao
*/
export function selectRepairQlxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectRepairQlxx',
method: 'post',
data
})
}
......
......@@ -5,62 +5,6 @@
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* @description: 获取首页通知公告列表
* @author: renchao
*/
export function getHomeNoticeList () {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/getHomeNoticeList',
method: 'get'
})
}
/**
* @description:
* @author: renchao
*/
// 获取首页待办事项
export function getHomeTodoList () {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/getHomeTodoList',
method: 'get'
})
}
/**
* @description: 获取首页已办事项
* @author: renchao
*/
export function getHomeDoneList () {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/getHomeDoneList',
method: 'get'
})
}
/**
* @description: 获取首页常办项目
* @author: renchao
*/
export function getHomeFrequentProjects () {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/getHomeFrequentProjects',
method: 'get'
})
}
/**
* @description: 保存常办项目
* @param {*} data
* @author: renchao
*/
export function saveFrequentProjectsList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/saveFrequentProjectsList',
method: 'post',
data
})
}
/**
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:31:23
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
// 初始化内容
export function Init (data) {
let apiUrl = "";
switch (data.get("djlx")) {
case "100":
apiUrl = "/rest/ywbl/tdsyq/firstInit";
break;
case "200":
apiUrl = "/rest/ywbl/tdsyq/transferInit";
break;
case "300":
apiUrl = "/rest/ywbl/tdsyq/changeInit";
break;
case "400":
apiUrl = "/rest/ywbl/tdsyq/logoutInit";
break;
case "500":
apiUrl = "/rest/ywbl/tdsyq/riviseInit";
break;
case "901":
apiUrl = "/rest/ywbl/tdsyq/renewalInit";
break;
case "902":
apiUrl = "/rest/ywbl/tdsyq/replaceInit";
break;
}
return request({
url: SERVER.SERVERAPI + apiUrl,
method: 'post',
data
})
}
/**
* @description: 受理信息保存
* @param {*} data
* @author: renchao
*/
export function saveData (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/tdsyq/saveData',
method: 'post',
data
})
}
/**
* @description: 流程图
* @param {*} bsmSlsq
* @param {*} bestepid
* @author: renchao
*/
export function getWorkFlowImage (bsmSlsq, bestepid) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/getWorkFlowImage',
method: 'get',
params: {
bsmSlsq: bsmSlsq,
bestepid: bestepid
}
})
}
......@@ -29,6 +29,29 @@ export function getleftMenu () {
method: 'post'
})
}
/**
* @description: 登记簿补录
* @author: renchao
*/
export function getRepairBiz () {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/BusinessApply/getRepairBiz',
method: 'post'
})
}
/**
* @description: 一并申请业务
* @author: renchao
*/
export function getTogetherBiz () {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/BusinessApply/getTogetherBiz',
method: 'post'
})
}
/**
* @description: 业务办理-获取下个节点内容
* @param {*} bsmSqyw
......@@ -54,18 +77,6 @@ export function selectScBdcdy (data) {
})
}
// /*
// 业务办理-选择单元-根据条件进行列表查询-房屋所有权
// */
// export function selectFwsyq (data) {
// return request({
// url: 'ywbl/ywsq/selectFwsyq',
// method: 'post',
// data
// showLoading: true
// })
// }
/**
* @description: 待办箱列表查询接口
* @param {*} data
......@@ -104,6 +115,19 @@ export function startBusinessFlow (data) {
}
/**
* @description: 业务办理-发起补录申请流程
* @param {*} data
* @author: renchao
*/
export function startRepairFlow (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/startRepairFlow',
method: 'post',
data
})
}
/**
* @description: 已办箱列表查询接口
* @param {*} data
* @author: renchao
......@@ -167,7 +191,7 @@ export function addCollectBiz (bsmSqyw) {
}
/**
* @description: 业务办理-业务申请-添加收藏业务
* @description: 业务办理-业务申请-取消收藏业务
* @param {*} bsmSqyw
* @author: renchao
*/
......@@ -285,7 +309,7 @@ export function selectZdjbxxSplitMergeLast (data) {
*/
export function selectZrz (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectZrz',
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectZrzQjdc',
method: 'post',
data
})
......@@ -316,6 +340,18 @@ export function selectH (data) {
})
}
/**
* @description: 业务办理-选择单元-查询土地所有权信息
* @param {*} data
* @author: renchao
*/
export function selectTdsyqQlxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectTdsyqQlxx',
method: 'post',
data
})
}
/**
* @description: 业务办理-选择单元-查询建设用地、宅基地信息
......@@ -348,7 +384,7 @@ export function selectJsydQlxxSplitMergeBefore (data) {
*/
export function selectFwsyq (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectFwsyq',
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectFwsyqQlxx',
method: 'post',
data
})
......@@ -394,9 +430,9 @@ export function selectYgdy (data) {
* @param data
* @returns {*}
*/
export function selectAllHInfo (data) {
export function selectHQjdc (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectAllHInfo',
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectHQjdc',
method: 'post',
data
})
......
......@@ -7,12 +7,14 @@ import dialogBox from '@/components/DialogBox/dialogBox.vue'
import LbTable from '@/components/LbTable/lb-table.vue'
import Theme from '@/components/Theme/theme.vue'
import Popup from '@/components/Popup/index'
import Treeselect from '@riophae/vue-treeselect' //树形下拉框组件
import MessageBox from '@/components/MessageBox/index.js'
export default {
install: (Vue) => {
Vue.component('dialogBox', dialogBox);
Vue.component('lbTable', LbTable);
Vue.component('Theme', Theme);
Vue.component('Treeselect', Treeselect);
Vue.prototype.$popup = Popup.install;
Vue.prototype.$alertMes = MessageBox.alert;
}
......
......@@ -75,7 +75,7 @@
},
heightNum: {
type: Number,
default: 355,
default: 0,
},
maxHeight: {
type: Number,
......@@ -126,8 +126,8 @@
methods: {
// 单选
singleElection (row) {
console.log("点击行");
this.selected = this.data.indexOf(row);
this.$emit('row-click', row)
},
tableRowClassName ({ row, rowIndex }) {
......@@ -138,7 +138,7 @@
getHeight () {
if (!this.heightNumSetting) {
let _this = this
if (this.heightNum) {
if (this.heightNum == 0) {
_this.$nextTick(() => {
if (document.querySelector(".tags-view-container")) {
window.addEventListener('resize', () => {
......
......@@ -7,8 +7,8 @@
</template>
<script>
import vuePhotoZoomPro from '@/components/PhotoZoom/vue-photo-zoom-pro'
export default {
import vuePhotoZoomPro from '@/components/PhotoZoom/vue-photo-zoom-pro'
export default {
name: 'PicZoom',
components: { vuePhotoZoomPro },
data () {
......@@ -38,5 +38,5 @@ export default {
default: 'width:100%;height:100%'
}
},
}
}
</script>
\ No newline at end of file
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-14 15:05:38
*/
import Vue from 'vue'
import Popup from './index.vue'
const PopupBox = Vue.extend(Popup)
......@@ -36,9 +41,9 @@ const Popup1 = (title, editItem, data, formData) => {
document.body.appendChild(instance.$el)
Vue.nextTick(() => {
instance.isShow = true
})
// 将组件实例赋值给loading
popuping = instance
})
return instance
}
export default Popup1
......
<svg t="1661331325273" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2167" width="200" height="200"><path d="M521.309091 158.254545a27.927273 27.927273 0 0 1 27.927273 27.927273v586.472727a27.927273 27.927273 0 0 1-27.927273 27.927273h-372.363636a83.781818 83.781818 0 0 1-83.781819-83.781818V242.036364a83.781818 83.781818 0 0 1 83.781819-83.781819z m400.290909 0a83.781818 83.781818 0 0 1 83.502545 76.893091l0.279273 6.888728v474.763636a83.781818 83.781818 0 0 1-76.893091 83.502545l-6.888727 0.279273h-260.654545a27.927273 27.927273 0 0 1-4.51491-55.482182L660.945455 744.727273h260.654545a27.927273 27.927273 0 0 0 27.554909-23.412364l0.372364-4.514909V242.036364a27.927273 27.927273 0 0 0-23.412364-27.554909L921.6 214.109091h-260.654545a27.927273 27.927273 0 0 1-4.51491-55.482182L660.945455 158.254545h260.654545z m-428.218182 55.854546H148.945455a27.927273 27.927273 0 0 0-27.55491 23.412364L121.018182 242.036364v474.763636a27.927273 27.927273 0 0 0 27.927273 27.927273h344.436363V214.109091z" p-id="2168"></path></svg>
\ No newline at end of file
......@@ -9,17 +9,10 @@
</div>
<div class="right-menu">
<svg-icon class="function" icon-class='function' />
<!-- <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover" @command="handleCommand">
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="a">个人中心</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
<div class="avatar-wrapper">
<span style="padding-right:10px">{{ name }}</span>
<img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" />
<!-- <i class="el-icon-caret-bottom" /> -->
</div>
<svg-icon class="shutdown" @click.native="logout" icon-class='shutdown' />
</div>
</div>
......@@ -31,9 +24,8 @@
import Cookies from 'js-cookie'
import { mapGetters } from 'vuex'
import NoticeBar from '@/components/NoticeBar/index'
import {
getHomeNoticeList
} from "@/api/user"
import { getHomeNoticeList } from "@/api/home"
import {setToken} from "@/utils/util";
export default {
components: {
NoticeBar
......@@ -73,23 +65,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) {
axios.post(window._config.services.management + "/management/logout").then(() => {
setToken(undefined)
sessionStorage.removeItem('token')
localStorage.setItem('dj-location',window.location.href)
window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(window.location.href);
} else {
this.$router.push({
path: '/login',
replace: true,
query: {
redirect: router.currentRoute.value.fullPath
}
})
}
})
},
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-30 15:28:52
* @LastEditTime: 2023-06-20 10:02:14
*/
import Vue from 'vue'
import App from './App'
import 'normalize.css/normalize.css' // a modern alternative to CSS resets
import Element from 'element-ui'
import Element, { install } from 'element-ui'
import axios from 'axios'
import '@/styles/element-variables.scss'
import '@/styles/index.scss'
import Base from '@/components/Base/base' // 全局组件引入
import mixin from '@/utils/mixin/theme.js'
import Loading from '@/components/Loading/index.js';
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { startLoadingAddCount, endLoadingSubCount } from './utils/requestLoading'
Vue.mixin(mixin);
Vue.use(Loading.directive);
import rules from './utils/rule.js'
// 引入xml
import x2js from 'x2js'
Vue.prototype.$x2js = new x2js()
// 全局方法挂载
Vue.prototype.$rules = rules
// 全局加载
Vue.prototype.$startLoading = startLoadingAddCount
Vue.prototype.$endLoading = endLoadingSubCount
......
/*
* @Description: 项目权限
* @Autor: renchao
* @LastEditTime: 2023-06-02 10:44:17
* @LastEditTime: 2023-06-20 10:07:56
*/
import Vue from 'vue'
import axios from 'axios'
......@@ -9,10 +9,11 @@ import router from './router'
import store from './store'
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 {getToken, getUrlParam, setToken} from "@/utils/util";
NProgress.configure({ showSpinner: false }) // NProgress Configuration
router.beforeEach(async (to, from, next) => {
......@@ -22,42 +23,24 @@ router.beforeEach(async (to, from, next) => {
let hasAddDict = store.state.dict.addDict
let hasAddRoute = store.state.permission.addRoutes
// cas操作
const token = localStorage.getItem("token") || Cookies.get('token');
if (to.path === '/login') {
if (token) {
next('/')
} else {
next()
}
return
}
if (window._config.casEnable === true) {
let locationUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;
if (!token) {
let ticket = getUrlParam('ticket');
if (ticket) {
axios.get(Vue.prototype.BASE_API.ip + "/management/cas/validate", {
const token = getToken()
let locationUrl = window.location.origin + window.location.pathname;
function casValidate (ticket){
axios.get(window._config.services.management + "/management/cas/validate", {
params: {
'ticket': ticket,
'service': locationUrl
}
ticket: ticket,
service: locationUrl,
},
}).then(async (res) => {
if (process.env.NODE_ENV === 'development') {
localStorage.setItem('token', res.data.content.accessToken)
if (res.data.status === 1) {
setToken(res.data.content.accessToken)
window.location.href = localStorage.getItem('dj-location') + '#' + localStorage.getItem('hash')
} else {
Cookies.set('token', res.data.content.accessToken)
alert(res.data.message)
}
window.location.href = localStorage.getItem('location')
}).catch(e => {
console.log(e)
})
} else {
localStorage.setItem("location", window.location.href)
window.location.href = window._config.casBaseURL + '/login?service=' + encodeURIComponent(locationUrl);
}
} else {
permission()
}).catch((e) => {
console.log(e);
});
}
async function permission () {
if (!hasAddDict) {
......@@ -80,22 +63,55 @@ router.beforeEach(async (to, from, next) => {
}
}
}
if (window._config.casEnable === true) {
if (!token) {
let ticket = getUrlParam("ticket");
if (ticket) {
casValidate(ticket)
} else {
localStorage.setItem("location", window.location.href)
window.location.href = window._config.casBaseURL + '/login?service=' + encodeURIComponent(locationUrl);
}
} else {
permission()
}
} else {
// 使用自定义页面实现单点登录
if (!token) {
const redirectData = {
path: '/login',
replace: true,
let ticket = getUrlParam('ticket');
if (ticket) {
casValidate(ticket)
} else {
if (to.path === '/login') {
if (getUrlParam('_flag') === '1') {
next();
return
} else {
//todo: loginUrl 需要业务系统根据登录页面路由地址获取,这里只是简写
localStorage.setItem('dj-location',locationUrl)
localStorage.setItem('hash',to.fullPath)
window.location.href = window._config.services.management + `/management/cas/status?loginUrl=${window._config.baseUrl}/dj/&hash=/login&`
return
}
if (to.path) {
redirectData.query = {
...redirectData.query,
redirect: to.path,
};
}
next(redirectData)
localStorage.setItem('dj-location',locationUrl)
localStorage.setItem('hash',to.fullPath)
//todo: loginUrl 需要业务系统根据登录页面路由地址获取,这里只是简写
window.location.href = window._config.services.management + `/management/cas/status?loginUrl=${window._config.baseUrl}/dj/&hash=/login`
}
}else{
if (to.path === '/login') {
const redirectUrl = getUrlParam('redirectUrl');
if (redirectUrl && redirectUrl !== '') {
window.location.href = redirectUrl
return
} else {
next('/');
return
}
next()
}
permission()
}
}
NProgress.done()
})
......
......@@ -40,7 +40,7 @@ export const constantRoutes = [
component: () => import('@/views/djbworkflow/workFrame.vue'),
name: 'djbworkFrame',
hidden: true,
meta: { title: '登记簿编辑' }
meta: { title: '登记簿补录' }
},
//登记簿详情
{
......@@ -72,6 +72,14 @@ export const constantRoutes = [
}
]
},
// 登录页
{
path: '/login',
component: () => import('@/views/login/index'),
name: 'login',
hidden: true,
meta: { title: '登录' }
},
]
/**
* asyncRoutes
......
export function getSjlx (level) {
const resultMap = {
1: '系统数据',
2: '存量数据',
3: '补录数据',
}
return resultMap[level] || resultMap.default;
}
\ No newline at end of file
import { log } from 'bpmn-js-token-simulation';
import { mapGetters } from 'vuex'
import { defaultParameters } from "../../views/ywbl/ywsq/javascript/publicDefaultPar";
export default {
......@@ -9,13 +10,23 @@ export default {
}
}
},
created() {
},
computed: {
...mapGetters(['dictData']),
},
mounted () {
window.addEventListener('keydown', this.handkeyCode, true)//开启监听键盘按下事件
this.handleSearch()
},
methods: {
handkeyCode(e) {
if(e.keyCode === 13){
console.log("安");
this.handleSearch()
}
},
handleSearch(){
this.pageData.currentPage = 1
if (this.fetchData) {
......
import Vue from 'vue'
import axios from 'axios'
import request from '@/utils/request';
import { Message } from "element-ui";
export function removeTreeListItem (treeList, dictId, idName = 'bsmDict') {
if (!treeList || !treeList.length) {
......@@ -111,25 +114,29 @@ export function down (index, data) {
}
}
export function getUrlParam (paraName) {
let url = document.location.toString();
let arrObj = url.split('?');
if (arrObj.length > 1) {
let arrPara = arrObj[1].split('&');
let arr;
for (let i = 0; i < arrPara.length; i++) {
arr = arrPara[i].split('=');
if (arr != null && arr[0] === paraName) {
const index = arr[1].indexOf("#");
return arr[1].substring(0, index);
}
}
return '';
} else {
return '';
}
/**
* @description: 身份证读卡器
* @author: renchao
*/
export function getIdCardInfo (level) {
const resultMap = {
A: '设备',
default: axios.post(Vue.prototype.BASE_API.IDCARDURL),
}
return resultMap[level] || resultMap.default
}
/**
* @description: 高拍仪组件
* @author: renchao
*/
export function getAltimeterInfo () {
let data = {
"filepath": "base64",
"rotate": "0",
"cutpage": "0",
"camidx": "0",
"ColorMode": "0",
"quality": "3"
}
return axios.post("http://127.0.0.1:38088/video=grabimage", JSON.stringify(data))
}
\ No newline at end of file
......
......@@ -2,13 +2,13 @@
/*
* @Description: 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器
* @Autor: renchao
* @LastEditTime: 2023-06-02 10:18:32
* @LastEditTime: 2023-06-20 10:24:00
*/
import axios from 'axios'
import Router from '@/router'
import Cookies from 'js-cookie'
import { Message } from 'element-ui'
import { endLoadingSubCount } from './requestLoading'
import {getToken, setToken} from "@/utils/util";
// create an axios instance
const service = axios.create({
......@@ -27,15 +27,7 @@ const service = axios.create({
service.interceptors.request.use(
config => {
if (process.env.NODE_ENV === 'development') {
const token = localStorage.getItem('token')
// 添加请求头
if (token) {
config.headers['Authorization'] = 'Bearer ' + token
} else {
config.headers.delete('Authorization')
}
} else {
const token = Cookies.get('token')
const token = getToken()
// 添加请求头
if (token) {
config.headers['Authorization'] = 'Bearer ' + token
......@@ -75,11 +67,8 @@ 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')
}
setToken(undefined)
sessionStorage.removeItem('token')
if (window._config.casEnable) {
window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(locationUrl);
} else {
......@@ -92,7 +81,6 @@ service.interceptors.response.use(
return false
}
}
} else {
// 对响应错误做点什么
Message({
......
// 手机号码验证
const validatePhone = (rule, value, callback) => {
const patter = new RegExp('^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$')
if (!patter.test(value)) {
return callback(new Error('请输入正确格式的手机号!'))
} else {
callback() // 必须有此项回调,否则验证会一直不通过
}
}
export default {
common: {
phone: [{// 手机号
required: true,
message: '手机号不能为空'
}, {
validator: validatePhone,
trigger: 'blur'
}]
}
}
\ No newline at end of file
import Cookies from 'js-cookie'
const cookies = {}
/**
* @description 存储 cookie 值
* @param {String} name cookie name
* @param {String} value cookie value
* @param {Object} setting cookie setting
*/
cookies.set = function (name = 'default', value = '', cookieSetting = {}) {
let currentCookieSetting = {
expires: 1
}
Object.assign(currentCookieSetting, cookieSetting)
Cookies.set(`${name}`, value, currentCookieSetting)
}
/**
* @description 拿到 cookie 值
* @param {String} name cookie name
*/
cookies.get = function (name = 'default') {
return Cookies.get(`${name}`)
}
/**
* @description 拿到 cookie 全部的值
*/
cookies.getAll = function () {
return Cookies.get()
}
/**
* @description 删除 cookie
* @param {String} name cookie name
*/
cookies.remove = function (name = 'default') {
return Cookies.remove(`${name}`)
}
export default cookies
import cookies from './util.cookies'
export function getUrlParam (paraName) {
let url = document.location.toString();
let arrObj = url.split('?');
if (arrObj.length > 1) {
let arrPara = arrObj[1].split('&');
let arr;
for (let i = 0; i < arrPara.length; i++) {
arr = arrPara[i].split('=');
if (arr != null && arr[0] === paraName) {
// 截取#之前的内容
let result = arr[1].endsWith('#/') ? arr[1].substr(0, arr[1].indexOf('#')) : arr[1];
return result;
}
}
return '';
} else {
return '';
}
}
export function setToken (token) {
if (token === undefined) {
if (process.env.NODE_ENV === 'development') {
sessionStorage.removeItem('token')
} else {
cookies.remove('ACCESS_TOKEN')
}
} else {
if (process.env.NODE_ENV === 'development') {
sessionStorage.setItem('token', token);
} else {
cookies.set('ACCESS_TOKEN', token)
}
}
}
export function getToken () {
if (process.env.NODE_ENV === 'development') {
return sessionStorage.getItem('token')
}
return cookies.get('ACCESS_TOKEN')
}
// 获取当前时间
export function getNewDate (type = 1) {
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
if (type == 1) {
return `${year}${month}${day}日`
} else {
return `${year}${month}${day}${hours}${minutes}${seconds}秒`
}
}
\ No newline at end of file
......@@ -8,7 +8,7 @@
<script>
import { getMenuInfo } from "@/api/user.js";
import Tree from "@/components/Tree/src/tree.vue"
import { saveFrequentProjectsList, getHomeFrequentProjects } from "@/api/user.js";
import { saveFrequentProjectsList, getHomeFrequentProjects } from "@/api/home.js";
export default {
components: {
Tree
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-21 16:35:04
-->
<template>
<div class="rlPopup">
<div class="prev handle-btn" @click="prev()">
<div class="prev handle-btn" v-if="!isScan" @click="prev()">
<i class="el-icon-arrow-left"></i>
</div>
<div class="next handle-btn" @click="next()">
<div class="next handle-btn" v-if="!isScan" @click="next()">
<i class="el-icon-arrow-right"></i>
</div>
<div class="img-list-wrap">
<div v-for="(img, i) in previewImg.imgList" :key="i">
<img src="http://127.0.0.1:38088/video=stream&camidx=0" v-if="isScan" alt="高拍仪">
<div v-for="(img, i) in previewImg.imgList" :key="i" v-else>
<photo-zoom :url="img.fjurl" :bigWidth="165" v-if="i === previewImg.index" :scale="2"
overlayStyle="width: 100%;height:100%">
</photo-zoom>
......@@ -16,7 +22,7 @@
<!--缩略图-->
<div class="thumb-wrap">
<div class="thumb-wrap-button">
<el-button type="primary" @click="clickImage">(放大) 显示(缩小)</el-button>
<el-button type="primary" @click="clickImage" v-if="previewImg.imgList.length>0">(放大) 显示(缩小)</el-button>
<el-upload class="fileUpdate" ref="upload" action="" :show-file-list="false" :multiple="true" :auto-upload="false"
:on-change="handleChange"
accept=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg" :before-upload="beforeUpload">
......@@ -24,6 +30,10 @@
</el-upload>
<el-button type="primary" icon="el-icon-delete-solid" @click="handleDelete"
v-if="!this.$route.query.viewtype && thumbnailImages.length>0">删除</el-button>
<div v-if="!this.$route.query.viewtype" class="pl-5">
<el-button type="primary" @click="handleOpenScan">{{scanTitle}}</el-button>
<el-button type="primary" @click="handleViewScan" v-if="isScan">拍照</el-button>
</div>
</div>
<ul>
<li v-for="(img, index) in thumbnailImages" :key="index" :class="{ active: previewImg.index === index }"
......@@ -39,6 +49,7 @@
</template>
<script>
import PhotoZoom from '@/components/PhotoZoom'
import { getAltimeterInfo, getUuid } from '@/utils/operation.js'
import { uploadSjClmx, deleteClmx } from "@/api/clxx.js";
import publicPicture from '@/components/publicPicture/index.vue'
export default {
......@@ -55,6 +66,9 @@
},
data () {
return {
isScan: false,
// 打开高拍仪
scanTitle: '打开高拍仪',
transform: {
scale: 1,
degree: 0
......@@ -70,12 +84,16 @@
watch: {
previewImg: {
handler (newValue, oldValue) {
if (newValue.imgList.length > 0) {
if (newValue.imgList && newValue.imgList.length > 0) {
this.allLi = _.cloneDeep(newValue.imgList).map(item => item.fjurl)
this.thumbnailImages = newValue.imgList
} else {
this.allLi = []
this.thumbnailImages = []
}
},
deep: true
deep: true,
immediate: true
}
},
created () {
......@@ -92,6 +110,69 @@
}
},
methods: {
/**
* @description: 打开高拍仪
* @author: renchao
*/
handleOpenScan () {
this.isScan = !this.isScan
if (this.isScan) {
this.$message({
message: '正在启动程序请稍等',
type: 'success'
})
setTimeout(() => {
this.scanTitle = '关闭高拍仪'
}, 4000)
} else {
this.scanTitle = '打开高拍仪'
}
},
/**
* @description: 拍照
* @author: renchao
*/
handleViewScan () {
function dataURLtoBlob (base64String) {
const arr = base64String.split(',');
if (arr.length !== 2) {
throw new Error('Invalid Base64 format');
}
const mime = arr[0].match(/:(.*?);/)[1];
if (!mime) {
throw new Error('Cannot retrieve MIME type');
}
const bstr = atob(arr[1]);
const n = bstr.length;
const u8arr = new Uint8Array(n);
for (let i = 0; i < n; i++) {
u8arr[i] = bstr.charCodeAt(i);
}
return new Blob([u8arr], { type: mime });
}
function blobToFile (blob) {
let name = getUuid(8) + '.jpg'
const file = new File([blob], name);
return file;
}
getAltimeterInfo().then(res => {
let blob = dataURLtoBlob('data:image/png;base64,' + res.data.photoBase64);
let file = blobToFile(blob);
var formData = new FormData();
formData.append('file', file)
formData.append("bsmSj", this.previewImg.bsmSj);
formData.append("bsmSlsq", this.previewImg.bsmSlsq);
uploadSjClmx(formData).then((res) => {
if (res.code == 200) {
this.$emit('updateList', res.result)
this.$message({
message: '上传成功!',
type: 'success'
})
}
})
})
},
prev () {
let len = this.previewImg.imgList.length
if (this.isFirst || len == 0) {
......@@ -142,8 +223,6 @@
this.$refs.upload.clearFiles();
setTimeout(() => {
if (length !== this.maxLength) return
console.log(files);
// let data = _.cloneDeep(this.previewImg.imgList[this.previewImg.index])
var formData = new FormData();
files.forEach(file => {
formData.append('file', file.raw)
......@@ -157,10 +236,9 @@
message: '上传成功!',
type: 'success'
})
}
})
})
}, 0)
},
handleDelete () {
let that = this
......@@ -170,9 +248,11 @@
type: 'warning'
}).then(async () => {
let bsmClmx = this.previewImg.imgList[this.previewImg.index].bsmClmx
let bsmSj = this.previewImg.imgList[this.previewImg.index].bsmSj
this.previewImg.imgList = this.previewImg.imgList.filter(item => item.bsmClmx != bsmClmx)
deleteClmx(bsmClmx).then(res => {
if (res.code == 200) {
that.$emit('updateList', res.result)
that.$emit('updateList', { children: this.previewImg.imgList, bsmSj: bsmSj })
that.$message({
message: '删除成功!',
type: 'success'
......
<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' : '',
]">
<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>
<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:
* @Description: 添加家庭成员
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:28
-->
......
......@@ -3,6 +3,7 @@
* @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"
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:40:48
* @Description: 权利人列表
* @Autor: miaofang
* @LastEditTime: 2023-06-14 10:40:48
-->
<template>
<lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
......
......@@ -33,7 +33,7 @@
<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-input v-model="ruleForm.zjh" maxlength="15" oninput="value=value.replace(/[^\X0-9]/g,'')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
......
<!--
* @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-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-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
import { log } from "bpmn-js-token-simulation";
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: "A03", id: "fdcq2", form: "jsydsyq.vue", label: "国有建设用地使用权" },
{ qllx: "A04", id: "", form: "", label: "国有建设用地使用权/房屋所有权" },
{ qllx: "A05", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权" },
{ qllx: "A06", id: "", form: "", label: "宅基地使用权/房屋所有权" },
......@@ -36,6 +37,7 @@ var qlxxPage = [
{ qllx: "B39", id: "cfdj", form: "cfdj.vue", label: "查封登记" },
{ qllx: "B40", id: "ygdj", form: "ygdj.vue", label: "预告登记" },
{ qllx: "B41", id: "ygdj", form: "ygdj.vue", label: "预告登记" },
{ qllx: "DJB", id: "djbfm", form: "djbfm.vue", label: "预告登记" },
];
//组装登记簿树形结构
......@@ -43,10 +45,10 @@ 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.push({ id: "zdjbxx", form: "zdjbxx.vue", label: "宗地基本信息", 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: [],
id: "bdcqljqtsx", form: "bdcqljqtsx.vue", label: "不动产权利及其他事项", children: [],
});
//主体权利
treedata[1].children[0].children[0].children.push(getNode(qlxxData.ztqllx, qlxxData.ztql, qlxxData.bdcdylx));
......@@ -71,12 +73,14 @@ export function getNode(qllx, qlxx, bdcdylx) {
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 +")"};
node = { id: "fdcq1", form: "fdcq1.vue", label: qlxxPage[i].label};
} else {
node = { id: "fdcq2", form: "fdcq2.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
node = { id: "fdcq2", form: "fdcq2.vue", label: qlxxPage[i].label};
}
} else {
node = { id: qlxxPage[i].id, form: qlxxPage[i].form, label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
console.log("jin1111");
node = { id: qlxxPage[i].id, form: qlxxPage[i].form, label: qlxxPage[i].label};
console.log("nodenodenodenode",node);
}
break;
}
......
......@@ -6,34 +6,73 @@
<template>
<div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
<div v-if="this.isShowdrawer">
<div class="title">
登记簿列表
<el-menu
@select="djbClick"
class="title-batch"
>
<el-menu-item index="-1" key="-1" class="menus">
<div>登记簿</div>
</el-menu-item>
</el-menu>
<div class="blxx">
<el-menu
@select="blxxClick"
class="title-batch"
>
<el-menu-item index="-1" key="-1" class="menus">
<div>补录信息</div>
</el-menu-item>
</el-menu>
<el-menu :default-active="activeIndex" @select="unitClick">
<el-menu-item
v-for="(item, index) in supplementarylist"
:index="index.toString()"
:key="index"
>
<div>
<p v-if="item.operate=='D'">{{ item.qllxmc }} <span class="tpcolor">(删除)</span></p>
<p v-else >{{ item.qllxmc }} <span class="tpcolor">({{ item.operate=="U"?"编辑":"新增" }})</span></p>
</div>
<el-tree ref="tree" :data="treedata" :props="defaultProps" @node-click="handleNodeClick"
:default-expand-all="true" :expand-on-click-node="false" node-key="id" :default-checked-keys="[showTab]">
</el-tree>
<i
class="el-icon-delete"
@click.stop="handleDel(item)"
></i>
</el-menu-item>
</el-menu>
</div>
<div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
</div>
<div
class="map-drawer-click map-drawer"
v-if="!isShowdrawer"
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div class="map-drawer-expand map-drawer" v-else @click="
"
></div>
<div
class="map-drawer-expand map-drawer"
v-else
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
"
></div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { leftMenu } from "@/api/fqsq.js"
import { deleteSlbdcdy } from "@/api/ywbl.js";
import { getBdcqljqtsx } from "@/api/registerBook.js";
import { mapGetters } from "vuex";
import { leftMenu } from "@/api/fqsq.js";
import { deleteRepairRecord } from "@/api/djbbl.js";
import { leftMenubl } from "@/api/djbbl.js";
import { deleteSlbdcdy } from "@/api/ywbl.js";
import { getBdcqljqtsx } from "@/api/registerBook.js";
import { loadTreeData, getNode } from "./djbFrameData.js";
export default {
data () {
export default {
data() {
return {
supplementarylist: [],
//受理申请标识码
bsmSlsq: this.$route.query.bsmSlsq,
//当前流程所在环节
......@@ -42,15 +81,13 @@ import { loadTreeData, getNode } from "./djbFrameData.js";
bdcdyid: this.$route.query.bdcdyid,
//当前流程所在环节
bdcdyh: this.$route.query.bdcdyh,
qllx:this.$route.query.qllx,
qllx: this.$route.query.qllx,
// 默认选中
activeIndex: '0',
activeIndex: "0",
// 折叠
isShowdrawer: true,
// 批量操作
showBatch: false,
//批量操作按钮名称
batchButtonName: '',
batchButtonName: "",
//左侧菜单数据集合
unitData: [],
// 设置表单传递数据
......@@ -64,66 +101,122 @@ import { loadTreeData, getNode } from "./djbFrameData.js";
label: "label",
},
showTab: "bdcqldjml", // 选中状态,根据表格中权利类型判断
}
};
},
mounted () {
mounted() {
this.loadBdcdylist();
this.getleftMenubl();
},
computed: {
...mapGetters(['isRefresh'])
// ...mapGetters(["isRefresh"]),
},
watch: {
isRefresh: {
handler (newVal, oldVal) {
if (newVal) this.loadBdcdylist()
},
immediate: true
}
// isRefresh: {
// handler(newVal, oldVal) {
// if (newVal) this.loadBdcdylist();
// },
// immediate: true,
// },
},
methods: {
//读取申请单元信息
loadBdcdylist () {
this.loadData ()
},
// 获取登记簿菜单
loadData () {
getBdcqljqtsx({
bdcdyid: this.bdcdyid,
bdcdyh: this.bdcdyh,
}).then((res) => {
if (res.code === 200) {
console.log("res.result","res.result",res.result);
this.treedata = loadTreeData(res.result, this.bdcdyh);
console.log("this.treedata","this.treedata",this.treedata);
this.$nextTick(function () {
this.defaultNode = getNode(this.qllx, { linShi: 0, xianShi: 0, liShi: 0 }, "");
this.$refs.tree.setCurrentKey(this.defaultNode.id); //data[0].id为默认选中的节点
this.$parent.loadComponent(this.currentSelectProps,this.defaultNode);
loadBdcdylist(add) {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
leftMenu(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.currentSelectProps = res.result[0];
this.$emit("getCurrentSelectProps", this.currentSelectProps);
if(add){
this.$parent.getQllxByBdcdyid()
}
}
});
},
// 获取右侧菜单
getleftMenubl(row) {
leftMenubl(this.bsmSlsq).then((res) => {
this.supplementarylist = res.result;
if(row){
this.supplementarylist.forEach((item,index) => {
if(item.bsmRepair==row.bsmRepair){
this.activeIndex=index.toString()
// 补录成功后定位到该条记录
this.unitClick(index)
}
})
}
if(this.supplementarylist.length){
this.unitClick(0)
}else{
this.$emit("getCurrentSelectProps", this.currentSelectProps);
}
});
this.currentSelectProps = {
bdcdyid: this.bdcdyid,
bdcdyh: this.bdcdyh,
qllx: this.qllx,
bsmQlxx: this.bsmQlxx,
};
// this.$parent.stepForm();
},
handleNodeClick (data, node, elem) {
this.$parent.loadComponent(this.currentSelectProps,data);
handleNodeClick(data, node, elem) {
this.$parent.loadComponent(this.currentSelectProps, data);
this.$parent.tabset();
},
//申请单元点击事件
unitClick(index) {
this.currentSelectProps = this.supplementarylist[index];
this.$emit("getCurrentSelectProps", this.currentSelectProps);
},
//登记簿点击事件
djbClick() {
this.loadBdcdylist();
},
// 删除补录记录
handleDel(row) {
this.$confirm("此操作将永久删除该条补录记录, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteRepairRecord(row.bsmRepair).then((res) => {
this.$message({
type: "success",
message: "删除成功!",
});
this.$nextTick(() => {
this.getleftMenubl();
this.blxxClick()
if(!this.supplementarylist.length){
getdjblist()
}
});
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
//补录信息点击事件默认展示第一条补录记录
blxxClick() {
if(this.supplementarylist.length){
this.unitClick(0);
}
},
},
};
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "../../workFrame.scss";
.leftmenu ul {
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "../../workFrame.scss";
.leftmenu ul {
height: calc(100vh - 120px);
}
/deep/.rollTable {
}
/deep/.rollTable {
height: calc(100vh - 240px) !important;
}
......@@ -160,7 +253,7 @@ import { loadTreeData, getNode } from "./djbFrameData.js";
height: 45px;
}
/deep/ .el-tree-node:focus>.el-tree-node__content {
/deep/ .el-tree-node:focus > .el-tree-node__content {
background-color: #f5f5f5;
color: #0079fe;
border-right: 4px solid #0079fe;
......@@ -170,13 +263,35 @@ import { loadTreeData, getNode } from "./djbFrameData.js";
white-space: pre-wrap;
}
/deep/ .is-current>.el-tree-node__content {
/deep/ .is-current > .el-tree-node__content {
background-color: #f5f5f5;
color: #0079fe;
border-right: 4px solid #0079fe;
}
.title-batch{
background-color: salmon;
.menus {
background-color: #e7f4fe;
div{
font-size: 16px;
font-weight: 600;
}
}
.blxx {
.el-menu-item{
display: flex;
justify-content: space-between;
}
border: #b0d9f8 solid 1px;
.tpcolor{
color: red;
line-height: 22px;
}
.el-icon-delete{
margin-right: 3px;
// background-color: saddlebrown;
height: 27px;
float: left;
}
}
</style>
......
......@@ -63,7 +63,7 @@
<div v-else>已完结</div>
</template>
</el-table-column>
<el-table-column label="环节名称" prop="taskName" minWidth="100" align="center" />
<el-table-column label="环节名称" prop="name" minWidth="100" align="center" />
<el-table-column label="办理人" prop="agent" minWidth="120" align="center" />
<el-table-column label="处理时间" prop="createTime" width="160" align="center" />
<el-table-column label="办结时间" prop="finishTime" width="160" align="center" />
......@@ -76,7 +76,6 @@
<script>
import '@/styles/package/theme/index.scss'
import BpmnViewer from 'bpmn-js/lib/Viewer'
import { getusername } from "@/api/getusername.js";
import MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas'
export default {
props: {
......@@ -107,7 +106,6 @@
}
},
created () {
this.$nextTick(() => {
// 获取流程记录
this.getCommentList()
......@@ -177,18 +175,18 @@
this.dlgTitle = element.businessObject ? element.businessObject.name : undefined
// 计算当前悬浮任务审批记录,如果记录为空不显示弹窗
this.taskCommentList = (this.taskList || []).filter(item => {
return item.taskDefKey === this.selectTaskId
return item.taskDefinitionKey === this.selectTaskId
})
if (this.selectTaskId.length > 3) {
if (this.taskCommentList.length==0) {
this.taskCommentList = this.taskList;
}
},
// 下拉列表切换
handleSelect (val) {
this.taskCommentList = (this.taskList || []).filter(item => {
return item.taskDefKey === val
return item.taskDefinitionKey === val
})
if (val.length > 3) {
if (this.taskCommentList.length==0) {
this.taskCommentList = this.taskList;
}
},
......@@ -239,32 +237,13 @@
// 获取流程记录
getCommentList() {
this.formData.allCommentList.forEach(async (item,index) => {
var arr=item.assigneeName.split(",");
// 获取用户名
let res = await getusername(arr)
if(res){
let str=""
res.data.content.forEach((el,i) => {
if(str==""){
str=el.name;
}else{
str += ","+el.name;
}
this.formData.allCommentList[index].agent=str
})
}
this.formData.allCommentList[index].agent=item.assignee.name
})
setTimeout(() => {
this.taskList =this.formData.allCommentList;
// 处理数据之后赋值
this.taskCommentList=this.taskList
}, 100)
// this.$nextTick(() => {
// this.taskList =this.formData.allCommentList;
// this.taskCommentList=this.taskList
// })
},
// 设置流程图元素状态
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:41:49
-->
<template>
<div class="szxx">
<el-card class="box-card" v-for="(item, index) in tableData" :key="index">
<div slot="header" class="szxx_header">
<span class="header_type">{{
item.bdcqzlx == 1 ? "不动产权证书" : "不动产登记证明"
}}</span>
<div class="header_text">{{ item.bdcqzh }}</div>
</div>
<div class="szxx_body card_padding">
<div class="text color_iray">
<span>{{ item.qllx }}</span>
</div>
<div class="text color_red">
<span>{{ item.qlr }}</span>
</div>
<div class="text color_iray">
<span>{{ item.gyqk }}</span>
</div>
<div class="text color_red">
<span>{{ item.bdcdyh }}</span>
</div>
<div class="text color_iray">
<span>{{ item.zl }}</span>
</div>
<div class="text color_red">
<span>{{ item.yt }}</span>
</div>
<div class="text color_iray">
<span>{{ item.mj }}</span>
</div>
<div class="text color_red">
<span>{{ item.syqx }}</span>
</div>
<div class="text color_iray">
<span>印刷序列号:{{ item.ysxlh }}</span>
</div>
</div>
<div class="card_padding">
<div class="top_line middle_margin"></div>
<div class="text" v-if="item.ysxlh">
<el-button class="operation_button" type="text" @click="openInvalidDiglog(item)">再次打印({{ item.szcs
}})</el-button>
<el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button>
</div>
<div class="text" v-else>
<el-button class="operation_button" type="text" @click="openZsylDialog(item, 2)">证书打印1({{ item.szcs
}}</el-button>
<el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button>
</div>
</div>
</el-card>
<el-dialog title="证书作废" :visible.sync="invalidDiglog" width="30%" :modal-append-to-body="false" top="30vh">
<div class="invalid-diglog">
<div class="invalid-title">
<i class="el-icon-question invalid-icon"></i>
<div class="invalid-body">您确定作废证书并再次打印?</div>
</div>
<div class="invalid-reson">作废原因:</div>
<el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input>
<div class="text-center pt-10">
<el-button @click="closeInvalidDiglog">取 消</el-button>
<el-button type="primary" @click="confirmInvalid">确 定</el-button>
</div>
</div>
</el-dialog>
<el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { getSlsqBdcqzList, invalidCertificate } from "@/api/bdcqz.js";
export default {
props: {},
data () {
return {
dialog: false,
tableData: [],
bdcqzlx: 1,
bdcqz: {},
zfyy: "",
invalidDiglog: false,
bsmSz: "",
bsmBdcqz: ""
};
},
computed: {
...mapGetters(['isRefresh'])
},
watch: {
isRefresh: {
handler (newVal, oldVal) {
if (newVal) this.list()
}
}
},
created () {
this.list();
},
methods: {
//初始化列表
list () {
var bsmSlsq = this.$route.query.bsmSlsq;
getSlsqBdcqzList({ bsmSlsq: bsmSlsq }).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
if (res.result) {
this.bdcqz = res.result[0];
}
}
});
},
//打开证书预览弹窗
openZsylDialog (item, type) {
if (type == 1) {
//证书预览
this.$popupDialog("证书预览", "workflow/components/dialog/zsyl", { bdcqz: item }, "70%", true);
} else {
this.$popupDialog("不动产权证书", "workflow/components/dialog/zsdy", { bdcqz: item }, "70%", true);
}
},
//再次打印
openInvalidDiglog (item) {
this.bsmSz = item.bsmSz;
this.invalidDiglog = true;
this.bsmBdcqz = item.bsmBdcqz
},
closeInvalidDiglog () {
this.invalidDiglog = false;
this.bsmSz = "";
this.zfyy = "";
},
//作废缮证信息
confirmInvalid () {
invalidCertificate({ bsmBdcqz: this.bsmBdcqz, zfyy: this.zfyy }).then((res) => {
if (res.code === 200) {
this.list();
this.$message.success("作废成功");
this.invalidDiglog = false;
this.zfyy = ''
this.openZsylDialog(this.bdcqz);
} else {
this.$message.error(res.message);
}
});
},
openRecordPop (item) {
this.$popupDialog("缮证记录", "workflow/components/dialog/szRecord", { bsmBdcqz: item.bsmBdcqz }, '60%', true)
}
},
};
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
.szxx {
box-sizing: border-box;
padding-right: 15px;
width: 100%;
height: 600px;
overflow-y: scroll;
.box-card {
float: left;
width: 300px;
margin-top: 10px;
margin-right: 10px;
.szxx_body {
height: 240px;
}
}
}
.szxx_header {
color: #ffffff;
font-weight: bolder;
font-size: 16px;
.header_type {
display: flex;
justify-content: center;
align-content: center;
}
.header_text {
text-align: center;
margin-top: 10px;
line-height: 30px;
}
}
.top_line {
border-top: 2px solid rgb(222, 222, 222);
}
.text {
margin-bottom: 10px;
text-align: center;
}
.color_iray {
color: rgb(153, 153, 153);
}
.color_red {
color: rgb(255, 89, 24);
}
.middle_margin {
margin-bottom: 10px;
}
.operation_button {
border: 1px solid rgb(0, 121, 254);
padding: 5px;
text-align: center;
}
.card_padding {
padding-top: 8px;
}
.invalid-diglog {
padding-bottom: 20px;
font-size: 16px;
font-weight: bold;
color: rgb(99, 99, 99);
.invalid-title {
display: flex;
align-content: center;
.invalid-icon {
color: rgb(254, 148, 0);
font-size: 34px;
margin-right: 10px;
}
.invalid-body {
line-height: 40px;
margin-bottom: 10px;
}
}
.invalid-reson {
margin-bottom: 10px;
}
.dialog-footer {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
}
/deep/.el-card__header {
background-color: rgb(198, 67, 83);
}
/deep/.el-card__body {
padding: 0px;
}
</style>
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-01 09:48:15
-->
<template>
<canvas id="mxcad">
</canvas>
</template>
<script>
import Mx from "mxdraw"
export default {
mounted () {
// 动态加载 js库核心代码
Mx.loadCoreCode().then(() => {
// Mx.MxFun.setMxServer("ws://localhost:5090") // 开启socket通信 可编辑图纸
// 创建控件对象
Mx.MxFun.createMxObject({
canvasId: "mxcad", // canvas元素的id
cadFile: "/buf/hhhh.dwg", // http方式(预览): 加载public/demo文件夹下转换后的图纸
// cadFile: "test2.dwg", // socket通信方式请直接提供图纸名称 如:text.dwg
callback: (mxDraw, {
canvas,
canvasParent
}) => {
// 可以拿到canvas元素和它的父级元素
console.log(canvas, canvasParent)
console.log(mxDraw)
// 拿到图层数据
mxDraw.addEvent('uiSetLayerData', (listLayer) => {
console.log(listLayer)
})
},
isNewFile: true // 是否新建文件
})
})
}
}
</script>
<style scoped lang='scss'>
#cad-container {
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-09 09:20:10
-->
<template>
<el-dialog
:close-on-click-modal="false"
title="选择权利类型"
class="qllxdialog"
:visible.sync="dialogVisible"
custom-class="insetDialog"
append-to-body
width="31%"
>
<!-- <el-radio-group v-model="radio">
<el-radio-button
v-for="(value, key) in qllxlistdata"
:key="key"
:label="value"
></el-radio-button>
</el-radio-group> -->
<el-button class="gettypebutton" v-for="(value, key) in qllxlistdata"
:key="key"
:label="value" @click="clicksss(key)" plain>{{value}}</el-button>
<div class="btn">
<el-button type="primary" @click="handleSubmit">确定</el-button>
<el-button type="primary" @click="closeDialog">取消</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
dialogVisible: false,
qllxlistdata: {},
radio: "",
qllx:""
};
},
methods: {
closeDialog() {
this.dialogVisible = false;
},
clicksss(el){
this.qllx=el
},
handleSubmit() {
if(this.qllx){
let qllxobj = {
qllx:this.qllx,
bsmQlxx:""
};
this.$parent.addRepairRecord(qllxobj)
}else{
this.$message({
type: "warning",
message: "请选择权利类型!",
});
}
this.qllx=""
},
},
};
</script>
<style scoped lang="scss">
@import '~@/styles/public.scss';
.qllxdialog {
margin-top: 160px;
/deep/.el-dialog__body {
margin-top: 10px;
// height: 100px;
padding: 20px;
}
.gettypebutton{
cursor: pointer;
margin-left: 20px;
width: 45%;
line-height: 20px;
background-color: #ebebeb;
margin-top: 20px;
padding-left: 20px;
border-radius: 2px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border: 1px solid #ebebeb;
-webkit-transition: all 0.3s;
transition: all 0.3s;
color: #000;
}
.gettypebutton:hover{
border: 1px solid #0F93F6;
color: #0F93F6;
}
.gettypebutton:focus{
background-color: #0F93F6;
border: 1px solid #0F93F6;
color: #ebebeb;
}
.btn{
margin-top:30px;
text-align: center;
.el-button {
margin-top: 10px;
margin-left: 20px;
}
}
}
</style>
This diff could not be displayed because it is too large.