style:cas配置
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-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 { | ... | ... |
src/views/components/addProject.vue
0 → 100644
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> |
src/views/djbBook/bdcqldjml.vue
0 → 100644
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> |
src/views/djbBook/bdcqljqtsx.vue
0 → 100644
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> |
src/views/djbBook/cfdj.vue
0 → 100644
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> |
src/views/djbBook/diyaq.vue
0 → 100644
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> |
src/views/djbBook/diyiq.vue
0 → 100644
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> |
src/views/djbBook/djbFrameData.js
0 → 100644
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 |
src/views/djbBook/djbfm.vue
0 → 100644
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> |
src/views/djbBook/fdcq1.vue
0 → 100644
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> |
src/views/djbBook/fdcq2.vue
0 → 100644
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> |
src/views/djbBook/jsydsyq.vue
0 → 100644
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> |
src/views/djbBook/nydsyq.vue
0 → 100644
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> |
src/views/djbBook/qlxxCommon.scss
0 → 100644
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 |
src/views/djbBook/qlxxFormData.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbBook/ygdj.vue
0 → 100644
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> |
src/views/djbBook/yydj.vue
0 → 100644
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> |
src/views/djbBook/zdjbxx.vue
0 → 100644
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 |
src/views/djbworkflow/components/addJtcy.vue
0 → 100644
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 |
src/views/djbworkflow/components/clxx.vue
0 → 100644
This diff is collapsed.
Click to expand it.
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> |
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/fzxx.vue
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/spyj.vue
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/stop.vue
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/szxx.vue
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/th.vue
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/zc.vue
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/components/zdt.vue
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/flowform.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/javascript/fzxxdata.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/javascript/szxxdata.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/javascript/zsyl.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/mixin/index.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/mixin/public.js
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/workFrame.scss
0 → 100644
This diff is collapsed.
Click to expand it.
src/views/djbworkflow/workFrame.vue
0 → 100644
This diff is collapsed.
Click to expand it.
No preview for this file type
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
src/views/ywbl/slsqxx/fdcq2/slxxOverview.vue
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment