541bc29f by renchao@pashanhoo.com

style:cas配置

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