Merge branch 'dev' of http://yun.pashanhoo.com:9090/bdc/bdcdj-web into dev
Showing
70 changed files
with
10592 additions
and
315 deletions
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-05-31 16:04:35 | 4 | * @LastEditTime: 2023-06-02 09:47:57 |
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> | ... | ... |
... | @@ -5,6 +5,43 @@ | ... | @@ -5,6 +5,43 @@ |
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 | ... | ... |
... | @@ -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 | if (process.env.NODE_ENV === 'development') { | ||
77 | localStorage.removeItem('token') | 78 | localStorage.removeItem('token') |
79 | } else { | ||
80 | Cookies.remove('ACCESS_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-02 10:44:17 |
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 | |
16 | NProgress.configure({ showSpinner: false }) // NProgress Configuration | 17 | NProgress.configure({showSpinner: false}) // NProgress Configuration |
17 | 18 | ||
18 | router.beforeEach(async (to, from, next) => { | 19 | router.beforeEach(async (to, from, next) => { |
19 | Vue.prototype.$currentRoute = to | 20 | Vue.prototype.$currentRoute = to |
... | @@ -22,7 +23,7 @@ router.beforeEach(async (to, from, next) => { | ... | @@ -22,7 +23,7 @@ router.beforeEach(async (to, from, next) => { |
22 | let hasAddDict = store.state.dict.addDict | 23 | let hasAddDict = store.state.dict.addDict |
23 | let hasAddRoute = store.state.permission.addRoutes | 24 | let hasAddRoute = store.state.permission.addRoutes |
24 | // cas操作 | 25 | // cas操作 |
25 | const token = localStorage.getItem("token") | 26 | const token = localStorage.getItem("token") || Cookies.get('ACCESS_TOKEN'); |
26 | if (to.path === '/login') { | 27 | if (to.path === '/login') { |
27 | if (token) { | 28 | if (token) { |
28 | next('/') | 29 | next('/') |
... | @@ -42,7 +43,11 @@ router.beforeEach(async (to, from, next) => { | ... | @@ -42,7 +43,11 @@ router.beforeEach(async (to, from, next) => { |
42 | 'service': locationUrl | 43 | 'service': locationUrl |
43 | } | 44 | } |
44 | }).then(async (res) => { | 45 | }).then(async (res) => { |
46 | if (process.env.NODE_ENV === 'development') { | ||
45 | localStorage.setItem('token', res.data.content.accessToken) | 47 | localStorage.setItem('token', res.data.content.accessToken) |
48 | } else { | ||
49 | Cookies.set('ACCESS_TOKEN', res.data.content.accessToken) | ||
50 | } | ||
46 | window.location.href = localStorage.getItem('location') | 51 | window.location.href = localStorage.getItem('location') |
47 | 52 | ||
48 | }).catch(e => { | 53 | }).catch(e => { |
... | @@ -51,12 +56,12 @@ router.beforeEach(async (to, from, next) => { | ... | @@ -51,12 +56,12 @@ router.beforeEach(async (to, from, next) => { |
51 | } else { | 56 | } else { |
52 | localStorage.setItem("location", window.location.href) | 57 | localStorage.setItem("location", window.location.href) |
53 | window.location.href = window._config.casBaseURL + '/login?service=' + encodeURIComponent(locationUrl); | 58 | window.location.href = window._config.casBaseURL + '/login?service=' + encodeURIComponent(locationUrl); |
54 | permission() | ||
55 | } | 59 | } |
56 | } else { | 60 | } else { |
57 | permission() | 61 | permission() |
58 | } | 62 | } |
59 | async function permission () { | 63 | |
64 | async function permission() { | ||
60 | if (!hasAddDict) { | 65 | if (!hasAddDict) { |
61 | store.dispatch('dict/generateDic') | 66 | store.dispatch('dict/generateDic') |
62 | } | 67 | } |
... | @@ -64,14 +69,14 @@ router.beforeEach(async (to, from, next) => { | ... | @@ -64,14 +69,14 @@ router.beforeEach(async (to, from, next) => { |
64 | next() | 69 | next() |
65 | // next({ ...to, replace: true }) | 70 | // next({ ...to, replace: true }) |
66 | } else { | 71 | } else { |
67 | const { result: getMenuData } = await getMenuInfo() | 72 | const {result: getMenuData} = await getMenuInfo() |
68 | const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData) | 73 | const accessRoutes = await store.dispatch('permission/generateRoutes', getMenuData) |
69 | // 获取用户信息 | 74 | // 获取用户信息 |
70 | await store.dispatch('user/getUserInfo') | 75 | await store.dispatch('user/getUserInfo') |
71 | router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }]) | 76 | router.addRoutes([...accessRoutes, {path: '*', redirect: '/404', hidden: true}]) |
72 | const routeTo = Cookies.get('routerTo') | 77 | const routeTo = Cookies.get('routerTo') |
73 | if (routeTo && routeTo !== '/') { | 78 | if (routeTo && routeTo !== '/') { |
74 | next({ ...to, replace: true }) | 79 | next({...to, replace: true}) |
75 | } else { | 80 | } else { |
76 | next('/home') | 81 | next('/home') |
77 | } | 82 | } | ... | ... |
... | @@ -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 | /* |
2 | * @Description: 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器 | 3 | * @Description: 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器 |
3 | * @Autor: renchao | 4 | * @Autor: renchao |
4 | * @LastEditTime: 2023-06-01 09:20:24 | 5 | * @LastEditTime: 2023-06-02 10:18:32 |
5 | */ | 6 | */ |
6 | import axios from 'axios' | 7 | import axios from 'axios' |
8 | import Router from '@/router' | ||
9 | import Cookies from 'js-cookie' | ||
7 | import { Message } from 'element-ui' | 10 | import { Message } from 'element-ui' |
8 | import { endLoadingSubCount } from './requestLoading' | 11 | import { endLoadingSubCount } from './requestLoading' |
9 | 12 | ||
... | @@ -12,7 +15,7 @@ const service = axios.create({ | ... | @@ -12,7 +15,7 @@ const service = axios.create({ |
12 | baseURL: | 15 | baseURL: |
13 | process.env.NODE_ENV == "development" | 16 | process.env.NODE_ENV == "development" |
14 | ? process.env.VUE_APP_BASE_API | 17 | ? process.env.VUE_APP_BASE_API |
15 | : window.baseUrl + "/", | 18 | : window._config.baseUrl + "/", |
16 | withCredentials: true, //是否允许跨域 | 19 | withCredentials: true, //是否允许跨域 |
17 | headers: { | 20 | headers: { |
18 | 'Content-Type': 'application/json; charset=utf-8' | 21 | 'Content-Type': 'application/json; charset=utf-8' |
... | @@ -23,14 +26,16 @@ const service = axios.create({ | ... | @@ -23,14 +26,16 @@ const service = axios.create({ |
23 | // request interceptor | 26 | // request interceptor |
24 | service.interceptors.request.use( | 27 | service.interceptors.request.use( |
25 | config => { | 28 | config => { |
29 | if (process.env.NODE_ENV === 'development') { | ||
26 | const token = localStorage.getItem('token') | 30 | const token = localStorage.getItem('token') |
27 | // 添加请求头 | 31 | // 添加请求头 |
28 | if (token) { | 32 | if (token) { |
29 | config.headers['Authorization'] = "Bearer " + token | 33 | config.headers['Authorization'] = 'Bearer ' + token |
30 | } else { | 34 | } else { |
31 | config.headers.delete('Authorization') | 35 | config.headers.delete('Authorization') |
32 | } | 36 | } |
33 | return config; | 37 | } |
38 | return config | ||
34 | }, | 39 | }, |
35 | error => { | 40 | error => { |
36 | // do something with request error | 41 | // do something with request error |
... | @@ -62,20 +67,23 @@ service.interceptors.response.use( | ... | @@ -62,20 +67,23 @@ service.interceptors.response.use( |
62 | window.__isNeedLogin = false | 67 | window.__isNeedLogin = false |
63 | Message.error('token失效,请重新登录'); | 68 | Message.error('token失效,请重新登录'); |
64 | let locationUrl = window.location.protocol + '//' + window.location.host + window.location.pathname; | 69 | let locationUrl = window.location.protocol + '//' + window.location.host + window.location.pathname; |
70 | if (process.env.NODE_ENV === 'development') { | ||
65 | localStorage.removeItem('token') | 71 | localStorage.removeItem('token') |
72 | } else { | ||
73 | Cookies.remove('ACCESS_TOKEN') | ||
74 | } | ||
66 | if (window._config.casEnable) { | 75 | if (window._config.casEnable) { |
67 | window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(locationUrl); | 76 | window.location.href = window._config.casBaseURL + '/logout?service=' + encodeURIComponent(locationUrl); |
68 | } else { | 77 | } else { |
69 | router.replace({ | 78 | Router.replace({ |
70 | path: '/login', | 79 | path: '/login', |
71 | query: { | 80 | query: { |
72 | redirect: router.currentRoute.value.fullPath | 81 | redirect: Router.currentRoute.value.fullPath |
73 | } | 82 | } |
74 | }) | 83 | }) |
75 | return false | 84 | return false |
76 | } | 85 | } |
77 | } | 86 | } |
78 | |||
79 | } else { | 87 | } else { |
80 | // 对响应错误做点什么 | 88 | // 对响应错误做点什么 |
81 | Message({ | 89 | Message({ | ... | ... |
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
1 | import filter from '@/utils/filter.js' | ||
2 | |||
3 | class data extends filter { | ||
4 | constructor() { | ||
5 | super() | ||
6 | } | ||
7 | columns() { | ||
8 | return { | ||
9 | //空列值个数 | ||
10 | emptycolNum: 3, | ||
11 | checkList: ["0", "1", "2"], | ||
12 | //权属状态集合 | ||
13 | qsztList: [ | ||
14 | { | ||
15 | value: "0", | ||
16 | label: "临时", | ||
17 | }, | ||
18 | { | ||
19 | value: "1", | ||
20 | label: "现势", | ||
21 | }, | ||
22 | { | ||
23 | value: "2", | ||
24 | label: "历史", | ||
25 | }, | ||
26 | ], | ||
27 | JSYDSYQ: [ | ||
28 | |||
29 | { prop:"cz", | ||
30 | label:"操作", | ||
31 | render: (h, scope) => { | ||
32 | return ( | ||
33 | <div> | ||
34 | <el-button type="text" icon="el-icon-edit-outline" onClick={() => { vm.openDialog(scope.row) }}>登记薄</el-button> | ||
35 | <el-button type="text" icon="el-icon-film" onClick={() => { vm.handleLpbClick(scope.row) }}>楼盘表</el-button> | ||
36 | </div> | ||
37 | ) | ||
38 | } | ||
39 | }, | ||
40 | { | ||
41 | prop: "qszt", | ||
42 | label: "权属状态", | ||
43 | }, | ||
44 | { | ||
45 | prop: "qllxmc", | ||
46 | label: "权利类型", | ||
47 | }, | ||
48 | { | ||
49 | prop: "djlxmc", | ||
50 | label: "登记类型", | ||
51 | }, | ||
52 | { | ||
53 | prop: "ssywh", | ||
54 | label: "上手业务号", | ||
55 | }, | ||
56 | { | ||
57 | prop: "dah", | ||
58 | label: "档案号", | ||
59 | }, | ||
60 | { | ||
61 | prop: "ywh", | ||
62 | label: "业务号", | ||
63 | }, | ||
64 | { | ||
65 | prop: "bdcdyh", | ||
66 | label: "不动产单元号", | ||
67 | }, | ||
68 | { | ||
69 | prop: "zl", | ||
70 | label: "坐落", | ||
71 | }, | ||
72 | { | ||
73 | prop: "gyqk", | ||
74 | label: "共有情况", | ||
75 | }, | ||
76 | { | ||
77 | prop: "qlrlx", | ||
78 | label: "权利人类型", | ||
79 | }, | ||
80 | { | ||
81 | prop: "qlrmc", | ||
82 | label: "权利人", | ||
83 | }, | ||
84 | { | ||
85 | prop: "qlrzjzl", | ||
86 | label: "证件种类", | ||
87 | }, | ||
88 | { | ||
89 | prop: "qlrzjhm", | ||
90 | label: "证件号", | ||
91 | }, | ||
92 | { | ||
93 | prop: "mj", | ||
94 | label: "使用权面积(m²)", | ||
95 | }, | ||
96 | { | ||
97 | prop: "qlxzmc", | ||
98 | label: "权利性质", | ||
99 | }, | ||
100 | { | ||
101 | prop: "ytmc", | ||
102 | label: "土地用途", | ||
103 | }, | ||
104 | { | ||
105 | prop: "syqqzsj", | ||
106 | label: "使用权起止时间", | ||
107 | }, | ||
108 | // { | ||
109 | // prop: "syqjssj", | ||
110 | // label: "使用权结束时间", | ||
111 | // }, | ||
112 | // { | ||
113 | // prop: "tdsyqx", | ||
114 | // label: "土地使用期限", | ||
115 | // }, | ||
116 | { | ||
117 | prop: "tdsyqx", | ||
118 | label: "土地使用期限", | ||
119 | }, | ||
120 | { | ||
121 | prop: "qdjg", | ||
122 | label: "取得价格(万元)", | ||
123 | }, | ||
124 | { | ||
125 | prop: "djyy", | ||
126 | label: "登记原因", | ||
127 | }, | ||
128 | { | ||
129 | prop: "bdcqzh", | ||
130 | label: "不动产权证号", | ||
131 | }, | ||
132 | { | ||
133 | prop: "djsj", | ||
134 | label: "登记时间", | ||
135 | }, | ||
136 | { | ||
137 | prop: "dbr", | ||
138 | label: "登簿人", | ||
139 | }, | ||
140 | { | ||
141 | prop: "fj", | ||
142 | label: "附记", | ||
143 | }, | ||
144 | ], | ||
145 | FDCQ2: [ | ||
146 | |||
147 | { prop:"cz", | ||
148 | label:"操作" | ||
149 | }, | ||
150 | { | ||
151 | prop: "qszt", | ||
152 | label: "权属状态", | ||
153 | }, | ||
154 | { | ||
155 | prop: "qllxmc", | ||
156 | label: "权利类型", | ||
157 | }, | ||
158 | { | ||
159 | prop: "djlxmc", | ||
160 | label: "登记类型", | ||
161 | }, | ||
162 | { | ||
163 | prop: "ssywh", | ||
164 | label: "上手业务号", | ||
165 | }, | ||
166 | { | ||
167 | prop: "dah", | ||
168 | label: "档案号", | ||
169 | }, | ||
170 | { | ||
171 | prop: "ywh", | ||
172 | label: "业务号", | ||
173 | }, | ||
174 | { | ||
175 | prop: "bdcdyh", | ||
176 | label: "不动产单元号", | ||
177 | }, | ||
178 | { | ||
179 | prop: "zl", | ||
180 | label: "坐落", | ||
181 | }, | ||
182 | { | ||
183 | prop: "gyfs", | ||
184 | label: "共有情况", | ||
185 | }, | ||
186 | { | ||
187 | prop: "qlrlx", | ||
188 | label: "权利人类型", | ||
189 | }, | ||
190 | { | ||
191 | prop: "qlrmc", | ||
192 | label: "权利人", | ||
193 | }, | ||
194 | { | ||
195 | prop: "qlrzjzl", | ||
196 | label: "证件种类", | ||
197 | }, | ||
198 | { | ||
199 | prop: "qlrzjhm", | ||
200 | label: "证件号", | ||
201 | }, | ||
202 | { | ||
203 | prop: "tdsyqr", | ||
204 | label: "土地使用权人", | ||
205 | }, | ||
206 | { | ||
207 | prop: "dytdmj", | ||
208 | label: "独用土地面积(m²)", | ||
209 | }, | ||
210 | { | ||
211 | prop: "fttdmj", | ||
212 | label: "分摊土地面积(m²)", | ||
213 | }, | ||
214 | { | ||
215 | prop: "tdsyqzsj", | ||
216 | label: "土地使用期限", | ||
217 | }, | ||
218 | { | ||
219 | prop: "syqqzsj", | ||
220 | label: "使用权起止时间", | ||
221 | }, | ||
222 | { | ||
223 | prop: "fdcjyjg", | ||
224 | label: "房地产交易价格(万元)", | ||
225 | }, | ||
226 | { | ||
227 | prop: "ytmc", | ||
228 | label: "规划用途", | ||
229 | }, | ||
230 | { | ||
231 | prop: "fwxzmc", | ||
232 | label: "房屋性质", | ||
233 | }, | ||
234 | { | ||
235 | prop: "fwjgmc", | ||
236 | label: "房屋结构", | ||
237 | }, | ||
238 | { | ||
239 | prop: "szc", | ||
240 | label: "所在层", | ||
241 | }, | ||
242 | { | ||
243 | prop: "zcs", | ||
244 | label: "总层数", | ||
245 | }, | ||
246 | { | ||
247 | prop: "mj", | ||
248 | label: "建筑面积(m2)", | ||
249 | }, | ||
250 | { | ||
251 | prop: "zyjzmj", | ||
252 | label: "专有建筑面积(m2)", | ||
253 | }, | ||
254 | |||
255 | { | ||
256 | prop: "ftjzmj", | ||
257 | label: "分摊建筑面积(m2)", | ||
258 | }, | ||
259 | { | ||
260 | prop: "jgsj", | ||
261 | label: "竣工时间", | ||
262 | }, | ||
263 | { | ||
264 | prop: "djyy", | ||
265 | label: "登记原因", | ||
266 | }, | ||
267 | { | ||
268 | prop: "bdcqzh", | ||
269 | label: "不动产权证号", | ||
270 | }, | ||
271 | { | ||
272 | prop: "djsj", | ||
273 | label: "登记时间", | ||
274 | }, | ||
275 | { | ||
276 | prop: "dbr", | ||
277 | label: "登簿人", | ||
278 | }, | ||
279 | { | ||
280 | prop: "fj", | ||
281 | label: "附记", | ||
282 | }, | ||
283 | ], | ||
284 | NYDSYQ: [ | ||
285 | |||
286 | { prop:"cz", | ||
287 | label:"操作" | ||
288 | }, | ||
289 | { | ||
290 | prop: "qszt", | ||
291 | label: "权属状态", | ||
292 | }, | ||
293 | { | ||
294 | prop: "qllxmc", | ||
295 | label: "权利类型", | ||
296 | }, | ||
297 | { | ||
298 | prop: "djlxmc", | ||
299 | label: "登记类型", | ||
300 | }, | ||
301 | { | ||
302 | prop: "ssywh", | ||
303 | label: "上手业务号", | ||
304 | }, | ||
305 | { | ||
306 | prop: "dah", | ||
307 | label: "档案号", | ||
308 | }, | ||
309 | { | ||
310 | prop: "ywh", | ||
311 | label: "业务号", | ||
312 | }, | ||
313 | { | ||
314 | prop: "bdcdyh", | ||
315 | label: "不动产单元号", | ||
316 | }, | ||
317 | { | ||
318 | prop: "zl", | ||
319 | label: "坐落", | ||
320 | }, | ||
321 | { | ||
322 | prop: "gyqk", | ||
323 | label: "共有情况", | ||
324 | }, | ||
325 | { | ||
326 | prop: "qlrlx", | ||
327 | label: "权利人类型", | ||
328 | }, | ||
329 | { | ||
330 | prop: "qlrmc", | ||
331 | label: "权利人", | ||
332 | }, | ||
333 | { | ||
334 | prop: "qlrzjzl", | ||
335 | label: "证件种类", | ||
336 | }, | ||
337 | { | ||
338 | prop: "qlrzjhm", | ||
339 | label: "证件号", | ||
340 | }, | ||
341 | { | ||
342 | prop: "mj", | ||
343 | label: "使用权面积(m²)", | ||
344 | }, | ||
345 | { | ||
346 | prop: "qlxzmc", | ||
347 | label: "权利性质", | ||
348 | }, | ||
349 | { | ||
350 | prop: "ytmc", | ||
351 | label: "土地用途", | ||
352 | }, | ||
353 | { | ||
354 | prop: "fbfdm", | ||
355 | label: "发包方代码", | ||
356 | }, | ||
357 | { | ||
358 | prop: "fbfmc", | ||
359 | label: "发包方名称", | ||
360 | }, | ||
361 | { | ||
362 | prop: "cbqzsj", | ||
363 | label: "承包起止时间", | ||
364 | }, | ||
365 | { | ||
366 | prop: "cbqx", | ||
367 | label: "承包期限", | ||
368 | }, | ||
369 | { | ||
370 | prop: "tdsyqxzmc", | ||
371 | label: "土地所有权性质", | ||
372 | }, | ||
373 | { | ||
374 | prop: "syttlxmc", | ||
375 | label: "水域滩涂类型", | ||
376 | }, | ||
377 | { | ||
378 | prop: "yzyfsmc", | ||
379 | label: "养殖业方式", | ||
380 | }, | ||
381 | { | ||
382 | prop: "cyzl", | ||
383 | label: "草原质量", | ||
384 | }, | ||
385 | { | ||
386 | prop: "syzcl", | ||
387 | label: "适宜载畜量", | ||
388 | }, | ||
389 | { | ||
390 | prop: "ydyhflmc", | ||
391 | label: "用地用海分类", | ||
392 | }, | ||
393 | { | ||
394 | prop: "djyy", | ||
395 | label: "登记原因", | ||
396 | }, | ||
397 | { | ||
398 | prop: "bdcqzh", | ||
399 | label: "不动产权证号", | ||
400 | }, | ||
401 | { | ||
402 | prop: "djsj", | ||
403 | label: "登记时间", | ||
404 | }, | ||
405 | { | ||
406 | prop: "dbr", | ||
407 | label: "登簿人", | ||
408 | }, | ||
409 | { | ||
410 | prop: "fj", | ||
411 | label: "附记", | ||
412 | }, | ||
413 | ], | ||
414 | DYAQ: [ | ||
415 | |||
416 | { prop:"cz", | ||
417 | label:"操作" | ||
418 | }, | ||
419 | { | ||
420 | prop: "qszt", | ||
421 | label: "权属状态", | ||
422 | }, | ||
423 | { | ||
424 | prop: "dybdclx", | ||
425 | label: "抵押不动产类型", | ||
426 | }, | ||
427 | { | ||
428 | prop: "djlxmc", | ||
429 | label: "登记类型", | ||
430 | }, | ||
431 | { | ||
432 | prop: "ssywh", | ||
433 | label: "上手业务号", | ||
434 | }, | ||
435 | { | ||
436 | prop: "dah", | ||
437 | label: "档案号", | ||
438 | }, | ||
439 | { | ||
440 | prop: "ywh", | ||
441 | label: "业务号", | ||
442 | }, | ||
443 | { | ||
444 | prop: "bdcdyh", | ||
445 | label: "不动产单元号", | ||
446 | }, | ||
447 | { | ||
448 | prop: "zl", | ||
449 | label: "在建建筑物坐落", | ||
450 | }, | ||
451 | { | ||
452 | prop: "qlrmc", | ||
453 | label: "抵押权人", | ||
454 | }, | ||
455 | { | ||
456 | prop: "qlrzjzl", | ||
457 | label: "抵押权人证件种类", | ||
458 | }, | ||
459 | { | ||
460 | prop: "qlrzjhm", | ||
461 | label: "抵押权人证件号", | ||
462 | }, | ||
463 | { | ||
464 | prop: "ywrmc", | ||
465 | label: "抵押人", | ||
466 | }, | ||
467 | { | ||
468 | prop: "ywrzjzl", | ||
469 | label: "抵押人证件种类", | ||
470 | }, | ||
471 | { | ||
472 | prop: "ywrzjhm", | ||
473 | label: "抵押人证件号", | ||
474 | }, | ||
475 | { | ||
476 | prop: "dyfs", | ||
477 | label: "抵押方式", | ||
478 | render: (h, scope) => { | ||
479 | return ( | ||
480 | <div> | ||
481 | <span v-show={scope.row.dyfs == '1'}>一般抵押权</span> | ||
482 | <span v-show={scope.row.dyfs == '2'}>最高额抵押权</span> | ||
483 | </div> | ||
484 | ) | ||
485 | } | ||
486 | }, | ||
487 | { | ||
488 | prop: "sfygdj", | ||
489 | label: "是否预告登记", | ||
490 | }, | ||
491 | { | ||
492 | prop: "zjjzwdyfw", | ||
493 | label: "在建建筑物抵押范围", | ||
494 | }, | ||
495 | { | ||
496 | prop: "dymj", | ||
497 | label: "抵押面积", | ||
498 | }, | ||
499 | { | ||
500 | prop: "bdbzzqse", | ||
501 | label: "被担保主债权数额(万元)", | ||
502 | }, | ||
503 | { | ||
504 | prop: "dbfw", | ||
505 | label: "担保范围", | ||
506 | }, | ||
507 | { | ||
508 | prop: "zwlxqssj", | ||
509 | label: "债务履行起始时间", | ||
510 | }, | ||
511 | { | ||
512 | prop: "zwlxjssj", | ||
513 | label: "债务履行结束时间", | ||
514 | }, | ||
515 | { | ||
516 | prop: "zwlxqx", | ||
517 | label: "债务履行期限(债务确定期间)", | ||
518 | }, | ||
519 | { | ||
520 | prop: "zgzqqdsshse", | ||
521 | label: "最高债权确定事实和数额", | ||
522 | }, | ||
523 | { | ||
524 | prop: "sfczyd", | ||
525 | label: "是否存在禁止或限制转让抵押不动产的约定", | ||
526 | }, | ||
527 | { | ||
528 | prop: "djyy", | ||
529 | label: "登记原因", | ||
530 | }, | ||
531 | { | ||
532 | prop: "bdcqzh", | ||
533 | label: "不动产登记证明号", | ||
534 | }, | ||
535 | { | ||
536 | prop: "fj", | ||
537 | label: "附记", | ||
538 | }, | ||
539 | { | ||
540 | prop: "qlqtzk", | ||
541 | label: "权利其他状况", | ||
542 | }, | ||
543 | { | ||
544 | prop: "djsj", | ||
545 | label: "登记时间", | ||
546 | }, | ||
547 | { | ||
548 | prop: "dbr", | ||
549 | label: "登簿人", | ||
550 | }, | ||
551 | { | ||
552 | prop: "djjg", | ||
553 | label: "登记机构", | ||
554 | }, | ||
555 | { | ||
556 | prop: "zxywh", | ||
557 | label: "注销抵押业务号", | ||
558 | }, | ||
559 | { | ||
560 | prop: "zxdyyy", | ||
561 | label: "注销抵押原因", | ||
562 | }, | ||
563 | { | ||
564 | prop: "zxsj", | ||
565 | label: "注销登记时间", | ||
566 | }, | ||
567 | { | ||
568 | prop: "zxdbr", | ||
569 | label: "登簿人", | ||
570 | }, | ||
571 | |||
572 | ], | ||
573 | DYIQ: [ | ||
574 | |||
575 | { prop:"cz", | ||
576 | label:"操作" | ||
577 | }, | ||
578 | { | ||
579 | prop: "qszt", | ||
580 | label: "权属状态", | ||
581 | }, | ||
582 | { | ||
583 | prop: "djlxmc", | ||
584 | label: "登记类型", | ||
585 | }, | ||
586 | { | ||
587 | prop: "ssywh", | ||
588 | label: "上手业务号", | ||
589 | }, | ||
590 | { | ||
591 | prop: "dah", | ||
592 | label: "档案号", | ||
593 | }, | ||
594 | { | ||
595 | prop: "ywh", | ||
596 | label: "业务号", | ||
597 | }, | ||
598 | { | ||
599 | prop: "gydbdcdyh", | ||
600 | label: "供役地不动产单元号", | ||
601 | }, | ||
602 | { | ||
603 | prop: "gydqlr", | ||
604 | label: "供役地权利人", | ||
605 | }, | ||
606 | { | ||
607 | prop: "gydqlrzjzl", | ||
608 | label: "供役地权利人证件种类", | ||
609 | }, | ||
610 | { | ||
611 | prop: "xydbdcdyh", | ||
612 | label: "需役地不动产单元号", | ||
613 | }, | ||
614 | { | ||
615 | prop: "xydzl", | ||
616 | label: "需役地坐落", | ||
617 | }, | ||
618 | { | ||
619 | prop: "xydqlr", | ||
620 | label: "需役地权利人", | ||
621 | }, | ||
622 | { | ||
623 | prop: "xydqlrzjzl", | ||
624 | label: "需役地权利人证件种类", | ||
625 | }, | ||
626 | { | ||
627 | prop: "xydzjh", | ||
628 | label: "需役地证件号", | ||
629 | }, | ||
630 | { | ||
631 | prop: "djyy", | ||
632 | label: "登记原因", | ||
633 | }, | ||
634 | { | ||
635 | prop: "dyqnr", | ||
636 | label: "地役权内容", | ||
637 | }, | ||
638 | { | ||
639 | prop: "qlqssj", | ||
640 | label: "权利起始时间", | ||
641 | }, | ||
642 | { | ||
643 | prop: "qljssj", | ||
644 | label: "权利结束时间", | ||
645 | }, | ||
646 | { | ||
647 | prop: "bdcdjzmh", | ||
648 | label: "不动产登记证明号", | ||
649 | }, | ||
650 | { | ||
651 | prop: "qxdm", | ||
652 | label: "区县代码", | ||
653 | }, | ||
654 | { | ||
655 | prop: "djjg", | ||
656 | label: "登记机构", | ||
657 | }, | ||
658 | { | ||
659 | prop: "dbr", | ||
660 | label: "登簿人", | ||
661 | }, | ||
662 | { | ||
663 | prop: "djsj", | ||
664 | label: "登记时间", | ||
665 | }, | ||
666 | ], | ||
667 | YGDJ: [ | ||
668 | |||
669 | { prop:"cz", | ||
670 | label:"操作" | ||
671 | }, | ||
672 | { | ||
673 | prop: "qszt", | ||
674 | label: "权属状态", | ||
675 | }, | ||
676 | { | ||
677 | prop: "ygdjzl", | ||
678 | label: "预告登记种类", | ||
679 | }, | ||
680 | { | ||
681 | prop: "djlxmc", | ||
682 | label: "登记类型", | ||
683 | }, | ||
684 | { | ||
685 | prop: "ssywh", | ||
686 | label: "上手业务号", | ||
687 | }, | ||
688 | { | ||
689 | prop: "dah", | ||
690 | label: "档案号", | ||
691 | }, | ||
692 | { | ||
693 | prop: "ywh", | ||
694 | label: "业务号", | ||
695 | }, | ||
696 | { | ||
697 | prop: "bdcdyh", | ||
698 | label: "不动产单元号", | ||
699 | }, | ||
700 | { | ||
701 | prop: "zl", | ||
702 | label: "坐落", | ||
703 | }, | ||
704 | { | ||
705 | prop: "qlrmc", | ||
706 | label: "权利人", | ||
707 | }, | ||
708 | { | ||
709 | prop: "qlrzjzl", | ||
710 | label: "证件种类", | ||
711 | }, | ||
712 | { | ||
713 | prop: "qlrzjhm", | ||
714 | label: "证件号", | ||
715 | }, | ||
716 | { | ||
717 | prop: "ywrmc", | ||
718 | label: "义务人", | ||
719 | }, | ||
720 | { | ||
721 | prop: "ywrzjzl", | ||
722 | label: "证件种类", | ||
723 | }, | ||
724 | { | ||
725 | prop: "ywrzjhm", | ||
726 | label: "证件号", | ||
727 | }, | ||
728 | { | ||
729 | prop: "fwxz", | ||
730 | label: "房屋性质", | ||
731 | }, | ||
732 | { | ||
733 | prop: "ghyt", | ||
734 | label: "规划用途", | ||
735 | }, | ||
736 | { | ||
737 | prop: "fwzcs", | ||
738 | label: "房屋总层数", | ||
739 | }, | ||
740 | { | ||
741 | prop: "fwszc", | ||
742 | label: "房屋所在层", | ||
743 | }, | ||
744 | { | ||
745 | prop: "jzmj", | ||
746 | label: "建筑面积", | ||
747 | }, | ||
748 | { | ||
749 | prop: "djyy", | ||
750 | label: "登记原因", | ||
751 | }, | ||
752 | { | ||
753 | prop: "qdjg", | ||
754 | label: "取得价格/被担保主债权数额", | ||
755 | }, | ||
756 | { | ||
757 | prop: "jedw", | ||
758 | label: "金额单位", | ||
759 | }, | ||
760 | { | ||
761 | prop: "dbfw", | ||
762 | label: "担保范围", | ||
763 | }, | ||
764 | { | ||
765 | prop: "sfczyd", | ||
766 | label: "是否存在禁止或限制转让抵押不动产的约定", | ||
767 | }, | ||
768 | { | ||
769 | prop: "djsj", | ||
770 | label: "登记时间", | ||
771 | }, | ||
772 | { | ||
773 | prop: "bdcqzh", | ||
774 | label: "不动产登记证明号", | ||
775 | }, | ||
776 | { | ||
777 | prop: "dbr", | ||
778 | label: "登簿人", | ||
779 | }, | ||
780 | { | ||
781 | prop: "zxywh", | ||
782 | label: "注销预告业务号", | ||
783 | }, | ||
784 | { | ||
785 | prop: "zxyy", | ||
786 | label: "注销预告原因", | ||
787 | }, | ||
788 | { | ||
789 | prop: "zxsj", | ||
790 | label: "注销时间", | ||
791 | } | ||
792 | ], | ||
793 | CFDJ: [ | ||
794 | |||
795 | { prop:"cz", | ||
796 | label:"操作" | ||
797 | }, | ||
798 | { | ||
799 | prop: "qszt", | ||
800 | label: "权属状态", | ||
801 | }, | ||
802 | { | ||
803 | prop: "cflxmc", | ||
804 | label: "查封类型", | ||
805 | }, | ||
806 | { | ||
807 | prop: "ssywh", | ||
808 | label: "上手业务号", | ||
809 | }, | ||
810 | { | ||
811 | prop: "dah", | ||
812 | label: "档案号", | ||
813 | }, | ||
814 | { | ||
815 | prop: "ywh", | ||
816 | label: "业务号", | ||
817 | }, | ||
818 | { | ||
819 | prop: "bdcdyh", | ||
820 | label: "不动产单元号", | ||
821 | }, | ||
822 | { | ||
823 | prop: "zl", | ||
824 | label: "坐落", | ||
825 | }, | ||
826 | { | ||
827 | prop: "cfjg", | ||
828 | label: "查封机关", | ||
829 | }, | ||
830 | { | ||
831 | prop: "qlrmc", | ||
832 | label: "不动产权利人", | ||
833 | }, | ||
834 | { | ||
835 | prop: "qlrzjzl", | ||
836 | label: "证件种类", | ||
837 | }, | ||
838 | { | ||
839 | prop: "qlrzjhm", | ||
840 | label: "证件号", | ||
841 | }, | ||
842 | |||
843 | { | ||
844 | prop: "cfwh", | ||
845 | label: "查封文号", | ||
846 | }, | ||
847 | { | ||
848 | prop: "cfwj", | ||
849 | label: "查封文件", | ||
850 | }, | ||
851 | { | ||
852 | prop: "cfqssj", | ||
853 | label: "查封起始时间", | ||
854 | }, | ||
855 | { | ||
856 | prop: "cfjssj", | ||
857 | label: "查封结束时间", | ||
858 | }, | ||
859 | { | ||
860 | prop: "cfqx", | ||
861 | label: "查封期限", | ||
862 | }, | ||
863 | { | ||
864 | prop: "cffw", | ||
865 | label: "查封范围", | ||
866 | }, | ||
867 | { | ||
868 | prop: "djjg", | ||
869 | label: "登记机构", | ||
870 | }, | ||
871 | { | ||
872 | prop: "dbr", | ||
873 | label: "登簿人", | ||
874 | }, | ||
875 | { | ||
876 | prop: "djsj", | ||
877 | label: "登记时间", | ||
878 | }, | ||
879 | { | ||
880 | prop: "zxywh", | ||
881 | label: "解封业务号", | ||
882 | }, | ||
883 | { | ||
884 | prop: "jfjg", | ||
885 | label: "解封机关", | ||
886 | }, | ||
887 | { | ||
888 | prop: "jfwh", | ||
889 | label: "解封文号", | ||
890 | }, | ||
891 | { | ||
892 | prop: "jfwj", | ||
893 | label: "解封文件", | ||
894 | }, | ||
895 | { | ||
896 | prop: "zxsj", | ||
897 | label: "解封登记时间", | ||
898 | }, | ||
899 | { | ||
900 | prop: "zxdbr", | ||
901 | label: "解封登簿人", | ||
902 | }, | ||
903 | ], | ||
904 | YYDJ: [ | ||
905 | |||
906 | { prop:"cz", | ||
907 | label:"操作" | ||
908 | }, | ||
909 | { | ||
910 | prop: "qszt", | ||
911 | label: "权属状态", | ||
912 | }, | ||
913 | { | ||
914 | prop: "qllxmc", | ||
915 | label: "权利类型", | ||
916 | }, | ||
917 | { | ||
918 | prop: "djlxmc", | ||
919 | label: "登记类型", | ||
920 | }, | ||
921 | { | ||
922 | prop: "ssywh", | ||
923 | label: "上手业务号", | ||
924 | }, | ||
925 | { | ||
926 | prop: "dah", | ||
927 | label: "档案号", | ||
928 | }, | ||
929 | { | ||
930 | prop: "ywh", | ||
931 | label: "业务号", | ||
932 | }, | ||
933 | { | ||
934 | prop: "bdcdyh", | ||
935 | label: "不动产单元号", | ||
936 | }, | ||
937 | { | ||
938 | prop: "zl", | ||
939 | label: "坐落", | ||
940 | }, | ||
941 | { | ||
942 | prop: "yyr", | ||
943 | label: "异议人", | ||
944 | }, | ||
945 | { | ||
946 | prop: "zjzl", | ||
947 | label: "证件种类", | ||
948 | }, | ||
949 | { | ||
950 | prop: "zjh", | ||
951 | label: "证件号", | ||
952 | }, | ||
953 | { | ||
954 | prop: "yysx", | ||
955 | label: "异议事项", | ||
956 | }, | ||
957 | { | ||
958 | prop: "bdcdjzmh", | ||
959 | label: "不动产登记证明号", | ||
960 | }, | ||
961 | { | ||
962 | prop: "djjg", | ||
963 | label: "登记机构", | ||
964 | }, | ||
965 | { | ||
966 | prop: "dbr", | ||
967 | label: "登簿人", | ||
968 | }, | ||
969 | { | ||
970 | prop: "djsj", | ||
971 | label: "登记时间", | ||
972 | }, | ||
973 | { | ||
974 | prop: "zxyyywh", | ||
975 | label: "注销异议业务号", | ||
976 | }, | ||
977 | { | ||
978 | prop: "zxyyyy", | ||
979 | label: "注销异议原因", | ||
980 | }, | ||
981 | { | ||
982 | prop: "zxyydbr", | ||
983 | label: "注销异议登簿人", | ||
984 | }, | ||
985 | { | ||
986 | prop: "zxyydjsj", | ||
987 | label: "注销异议登记时间", | ||
988 | }, | ||
989 | ], | ||
990 | } | ||
991 | } | ||
992 | |||
993 | |||
994 | } | ||
995 | |||
996 | let datas = new data() | ||
997 | |||
998 | export { | ||
999 | datas | ||
1000 | } |
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
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:40:46 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="clxx"> | ||
8 | <div class="left"> | ||
9 | <div v-for="item in menuList" :key="item.id" :class="['item', checkedId == item.id ? 'active' : '']" | ||
10 | @click="menuClick(item)"> | ||
11 | {{ item.label }} | ||
12 | </div> | ||
13 | </div> | ||
14 | <div class="right"> | ||
15 | <!-- 材料目录明细 --> | ||
16 | <div class="clmlmx-box" v-if="checkedId == '1'"> | ||
17 | <div class="title">申请材料目录</div> | ||
18 | <lb-table :column="column" :key="key" :heightNum="150" :pagination="false" :data="tableData"> | ||
19 | </lb-table> | ||
20 | </div> | ||
21 | <!-- 材料预览 --> | ||
22 | <div class="clyl-box" v-else> | ||
23 | <div class="menu-tree"> | ||
24 | <div class="item"> | ||
25 | 材料目录({{tableData.length}}) | ||
26 | <div> | ||
27 | <div v-for="(item,index) in tableData" :key="item.bsmSj" | ||
28 | :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)"> | ||
29 | <span v-if="item.isrequired==1" class="required">必选</span> | ||
30 | {{ item.sjmc }} | ||
31 | <span class="cl_number">({{item.children.length}})</span> | ||
32 | </div> | ||
33 | </div> | ||
34 | </div> | ||
35 | </div> | ||
36 | <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview" | ||
37 | @prevPriview="prevPriview" /> | ||
38 | </div> | ||
39 | </div> | ||
40 | <clxxAddDialog v-model="isDialog" /> | ||
41 | </div> | ||
42 | </template> | ||
43 | <script> | ||
44 | import { mapGetters } from "vuex"; | ||
45 | import clxxAddDialog from "./dialog/clxxAddDialog.vue"; | ||
46 | import imagePreview from '@/views/components/imagePreview.vue' | ||
47 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; | ||
48 | export default { | ||
49 | components: { clxxAddDialog, imagePreview }, | ||
50 | data () { | ||
51 | return { | ||
52 | isDialog: false, | ||
53 | menuList: [ | ||
54 | { | ||
55 | id: "1", | ||
56 | label: "材料目录明细", | ||
57 | }, | ||
58 | { | ||
59 | id: "2", | ||
60 | label: "材料预览", | ||
61 | }, | ||
62 | ], | ||
63 | iclass: "", | ||
64 | // 材料目录选中 | ||
65 | treeCheckIndex: 0, | ||
66 | treeCheckId: "", | ||
67 | checkedId: "1", | ||
68 | column: [ | ||
69 | { | ||
70 | width: "50", | ||
71 | renderHeader: (h, scope) => { | ||
72 | return ( | ||
73 | <div> | ||
74 | { | ||
75 | this.$route.query.viewtype == 1 ? '序号' : | ||
76 | <i | ||
77 | class="el-icon-plus pointer" | ||
78 | onClick={() => { | ||
79 | this.handleAdd() | ||
80 | }} | ||
81 | ></i> | ||
82 | } | ||
83 | </div> | ||
84 | ) | ||
85 | }, | ||
86 | render: (h, scope) => { | ||
87 | // 新建的材料,可删除 | ||
88 | // v-show='scope.row.sfxjcl == 1' | ||
89 | return ( | ||
90 | <div> | ||
91 | { | ||
92 | this.$route.query.viewtype == 1 ? <span>{scope.$index + 1}</span> : | ||
93 | <i | ||
94 | class="el-icon-minus pointer" | ||
95 | |||
96 | onClick={() => { | ||
97 | this.handleDelete(scope.$index, scope.row); | ||
98 | }} | ||
99 | ></i> | ||
100 | } | ||
101 | </div> | ||
102 | ) | ||
103 | } | ||
104 | }, | ||
105 | { | ||
106 | prop: "isrequired", | ||
107 | label: "是否必选", | ||
108 | width: "50", | ||
109 | render: (h, scope) => { | ||
110 | if (scope.row.sfxjcl === "1") { | ||
111 | return ( | ||
112 | <div> | ||
113 | <span>可选</span> | ||
114 | </div> | ||
115 | ); | ||
116 | } | ||
117 | else { | ||
118 | return ( | ||
119 | <div> | ||
120 | <span>必选</span> | ||
121 | </div> | ||
122 | ); | ||
123 | } | ||
124 | }, | ||
125 | }, | ||
126 | { | ||
127 | prop: "sjmc", | ||
128 | label: "材料名称", | ||
129 | }, | ||
130 | { | ||
131 | prop: "sjlx", | ||
132 | label: "材料类型", | ||
133 | width: "80", | ||
134 | render: (h, scope) => { | ||
135 | return ( | ||
136 | <div> | ||
137 | <span>{this.dicStatus(scope.row.sjlx, "A40")}</span> | ||
138 | </div> | ||
139 | ); | ||
140 | }, | ||
141 | }, | ||
142 | { | ||
143 | prop: "sjsl", | ||
144 | label: "份数", | ||
145 | width: "50" | ||
146 | }, | ||
147 | { | ||
148 | prop: "smzt", | ||
149 | label: "扫描状态", | ||
150 | width: "80", | ||
151 | render: (h, scope) => { | ||
152 | if (scope.row.children.length > 0) { | ||
153 | return ( | ||
154 | <div> | ||
155 | <span>已扫描</span> | ||
156 | </div> | ||
157 | ); | ||
158 | } else { | ||
159 | return ( | ||
160 | <div> | ||
161 | <span>未扫描</span> | ||
162 | </div> | ||
163 | ); | ||
164 | } | ||
165 | }, | ||
166 | }, | ||
167 | { | ||
168 | prop: "ys", | ||
169 | label: "扫描页数", | ||
170 | width: "50" | ||
171 | }, | ||
172 | { | ||
173 | label: "操作", | ||
174 | width: "80", | ||
175 | render: (h, scope) => { | ||
176 | return ( | ||
177 | <div> | ||
178 | <el-button | ||
179 | type="text" | ||
180 | disabled={scope.$index == 0} | ||
181 | onClick={() => { | ||
182 | this.moveUpward(scope.$index, scope.row); | ||
183 | }} | ||
184 | > | ||
185 | 上移 | ||
186 | </el-button> | ||
187 | <el-button | ||
188 | type="text" | ||
189 | disabled={scope.$index + 1 == this.tableData.length} | ||
190 | onClick={() => { | ||
191 | this.moveDown(scope.$index, scope.row); | ||
192 | }} | ||
193 | > | ||
194 | 下移 | ||
195 | </el-button> | ||
196 | </div> | ||
197 | ); | ||
198 | }, | ||
199 | }, | ||
200 | ], | ||
201 | key: 0, | ||
202 | tableData: [], | ||
203 | previewImg: { | ||
204 | // 收件标识码 | ||
205 | bsmSj: '', | ||
206 | bsmSlsq: this.$parent.bsmSlsq, | ||
207 | index: 0, | ||
208 | selectedIndex: 0, | ||
209 | imgList: [] | ||
210 | } | ||
211 | } | ||
212 | }, | ||
213 | computed: { | ||
214 | ...mapGetters(["dictData"]) | ||
215 | }, | ||
216 | created () { | ||
217 | this.clmlInitList() | ||
218 | }, | ||
219 | methods: { | ||
220 | // 自动预览 | ||
221 | nextPriview () { | ||
222 | if (this.treeCheckIndex < this.tableData.length) { | ||
223 | this.treeCheckIndex++ | ||
224 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
225 | this.previewImg.index = 0 | ||
226 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
227 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
228 | } | ||
229 | }, | ||
230 | prevPriview () { | ||
231 | if (this.treeCheckIndex >= 1) { | ||
232 | this.treeCheckIndex-- | ||
233 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
234 | this.previewImg.index = this.previewImg.imgList.length | ||
235 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
236 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
237 | } | ||
238 | }, | ||
239 | // 材料目录明细初始化 | ||
240 | clmlInitList () { | ||
241 | return new Promise(resolve => { | ||
242 | this.unitData = this.$parent.unitData; | ||
243 | var formdata = new FormData(); | ||
244 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
245 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
246 | InitClml(formdata).then((res) => { | ||
247 | if (res.result.code == 200) { | ||
248 | resolve(res.code) | ||
249 | if (res.result.result && res.result.result.length > 0) { | ||
250 | this.tableData = res.result.result; | ||
251 | this.treeCheckId = this.tableData[0].bsmSj; | ||
252 | this.title = this.tableData[0].sjmc; | ||
253 | this.titleYs = 1; | ||
254 | this.titleNum = this.tableData[0].children.length; | ||
255 | |||
256 | this.previewImg.imgList = this.tableData[0]?.children; | ||
257 | this.previewImg.bsmSj = this.tableData[0]?.bsmSj; | ||
258 | } | ||
259 | } else { | ||
260 | this.$message.error(res.result.message) | ||
261 | } | ||
262 | }) | ||
263 | }) | ||
264 | }, | ||
265 | updateList (val) { | ||
266 | let that = this | ||
267 | if (val != null) { //删除最后一张图片时 val=null | ||
268 | this.tableData.forEach(item => { | ||
269 | if (item.bsmSj === val.bsmSj) { | ||
270 | item.children = val.children | ||
271 | } | ||
272 | }) | ||
273 | this.previewImg.imgList = _.cloneDeep(val.children) | ||
274 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
275 | this.previewImg.index = this.previewImg.index - 1 | ||
276 | } | ||
277 | } else { | ||
278 | this.previewImg.imgList = [] | ||
279 | this.tableData.forEach((item, index) => { | ||
280 | if (this.treeCheckId == item.bsmSj) { | ||
281 | item.children = [] | ||
282 | that.treeCheckIndex = index | ||
283 | } | ||
284 | }) | ||
285 | } | ||
286 | |||
287 | }, | ||
288 | // 左侧菜单点击 | ||
289 | menuClick (item) { | ||
290 | this.checkedId = item.id | ||
291 | }, | ||
292 | // 添加材料目录 | ||
293 | handleAdd () { | ||
294 | this.isDialog = true; | ||
295 | }, | ||
296 | // 上移 | ||
297 | moveUpward (index, row) { | ||
298 | let obj = { | ||
299 | xh: row.xh, | ||
300 | bsmSlsq: row.bsmSlsq, | ||
301 | moveDirection: "UP", | ||
302 | }; | ||
303 | // 接口待调 | ||
304 | moveClml(obj).then(async (res) => { | ||
305 | if (res.code == 200) { | ||
306 | let res = await this.clmlInitList() | ||
307 | if (res == 200) this.$message({ | ||
308 | message: '上移成功', | ||
309 | type: 'success' | ||
310 | }) | ||
311 | } else { | ||
312 | this.$message.error(res.message); | ||
313 | } | ||
314 | }) | ||
315 | }, | ||
316 | // 下移 | ||
317 | moveDown (index, row) { | ||
318 | let obj = { | ||
319 | xh: row.xh, | ||
320 | bsmSlsq: row.bsmSlsq, | ||
321 | moveDirection: "DOWN", | ||
322 | } | ||
323 | // 接口待调 | ||
324 | moveClml(obj).then(async (res) => { | ||
325 | if (res.code == 200) { | ||
326 | let res = await this.clmlInitList() | ||
327 | if (res == 200) this.$message({ | ||
328 | message: '下移成功', | ||
329 | type: 'success' | ||
330 | }) | ||
331 | } else { | ||
332 | this.$message.error(res.message); | ||
333 | } | ||
334 | }) | ||
335 | }, | ||
336 | // 新增弹窗保存 | ||
337 | addSave (data) { | ||
338 | let obj = { | ||
339 | bsmSlsq: this.$parent.bsmSlsq, | ||
340 | isrequired: "1", | ||
341 | sjmc: data.clmc, | ||
342 | sjsl: 0, | ||
343 | smzt: '', | ||
344 | ys: 0, | ||
345 | sjlx: data.cllx, | ||
346 | sfxjcl: "1", // 是否必选 | ||
347 | }; | ||
348 | saveClml(obj).then(async (res) => { | ||
349 | if (res.code == 200) { | ||
350 | let res = await this.clmlInitList() | ||
351 | if (res == 200) this.$message({ | ||
352 | message: "新增成功", | ||
353 | type: "success", | ||
354 | }) | ||
355 | } | ||
356 | }); | ||
357 | }, | ||
358 | // 材料目录删除 | ||
359 | handleDelete (index, row) { | ||
360 | let that = this | ||
361 | this.$confirm('此操作将永久删除该 是否继续?', '提示', { | ||
362 | confirmButtonText: '确定', | ||
363 | cancelButtonText: '取消', | ||
364 | type: 'warning' | ||
365 | }).then(() => { | ||
366 | deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => { | ||
367 | if (res.code == 200) { | ||
368 | let res = await that.clmlInitList() | ||
369 | if (res == 200) that.$message({ | ||
370 | message: "删除成功", | ||
371 | type: "success", | ||
372 | }) | ||
373 | } | ||
374 | }) | ||
375 | }).catch(() => { | ||
376 | this.$message({ | ||
377 | type: 'info', | ||
378 | message: '已取消删除' | ||
379 | }) | ||
380 | }) | ||
381 | }, | ||
382 | // 材料目录点击选中 | ||
383 | treeClick (item, index) { | ||
384 | this.previewImg.index = 0 | ||
385 | this.treeCheckId = item?.bsmSj | ||
386 | this.treeCheckIndex = index | ||
387 | this.previewImg.imgList = item?.children | ||
388 | this.previewImg.bsmSj = item?.bsmSj | ||
389 | }, | ||
390 | // 小图片点击 | ||
391 | imgClick (item, index) { | ||
392 | this.showImg = item; | ||
393 | this.titleYs = index + 1; | ||
394 | }, | ||
395 | // 字典 | ||
396 | dicStatus (val, code) { | ||
397 | let data = this.$store.getters.dictData[code], | ||
398 | name = "暂无"; | ||
399 | if (data) { | ||
400 | data.map((item) => { | ||
401 | if (item.dcode == val) { | ||
402 | name = item.dname; | ||
403 | } | ||
404 | }); | ||
405 | return name; | ||
406 | } | ||
407 | }, | ||
408 | }, | ||
409 | }; | ||
410 | </script> | ||
411 | <style scoped lang='scss'> | ||
412 | @import "~@/styles/mixin.scss"; | ||
413 | |||
414 | .active { | ||
415 | background: $light-blue !important; | ||
416 | color: #fff; | ||
417 | } | ||
418 | |||
419 | .required { | ||
420 | font-size: 12px; | ||
421 | color: $pink; | ||
422 | float: left; | ||
423 | } | ||
424 | |||
425 | .cl_number { | ||
426 | float: right; | ||
427 | } | ||
428 | |||
429 | .clxx { | ||
430 | width: 100%; | ||
431 | display: flex; | ||
432 | padding-left: 5px; | ||
433 | height: calc(100vh - 125px); | ||
434 | |||
435 | .left { | ||
436 | display: flex; | ||
437 | flex-direction: column; | ||
438 | justify-content: space-between; | ||
439 | |||
440 | .item { | ||
441 | width: 28px; | ||
442 | height: 49%; | ||
443 | @include flex-center; | ||
444 | background-color: #e4e7ed; | ||
445 | border-bottom-right-radius: 10px; | ||
446 | padding: 5px; | ||
447 | cursor: pointer; | ||
448 | transition: all 0.3s; | ||
449 | |||
450 | &:hover { | ||
451 | @extend .active; | ||
452 | } | ||
453 | } | ||
454 | } | ||
455 | |||
456 | .right { | ||
457 | width: 100%; | ||
458 | height: 100%; | ||
459 | |||
460 | .clmlmx-box { | ||
461 | margin: 0 auto; | ||
462 | |||
463 | .title { | ||
464 | text-align: center; | ||
465 | height: 60px; | ||
466 | line-height: 60px; | ||
467 | border: 1px solid #dfe6ec; | ||
468 | font-size: 20px; | ||
469 | background: #81d3f81a; | ||
470 | margin-bottom: -1px; | ||
471 | } | ||
472 | } | ||
473 | |||
474 | .clyl-box { | ||
475 | width: 100%; | ||
476 | height: 100%; | ||
477 | display: flex; | ||
478 | |||
479 | .menu-tree { | ||
480 | width: 20%; | ||
481 | min-width: 160px; | ||
482 | height: 100%; | ||
483 | margin-right: 10px; | ||
484 | border-right: 1px dotted #d9d9d9; | ||
485 | padding: 0 15px; | ||
486 | |||
487 | .item { | ||
488 | line-height: 30px; | ||
489 | padding-top: 5px; | ||
490 | border-bottom: 1px solid #e8e8e8; | ||
491 | font-size: 16px; | ||
492 | text-align: center; | ||
493 | color: $light-blue; | ||
494 | |||
495 | .itemIcon { | ||
496 | float: right; | ||
497 | line-height: 60px; | ||
498 | cursor: pointer; | ||
499 | } | ||
500 | |||
501 | .child { | ||
502 | line-height: 32px; | ||
503 | border-bottom: 1px solid #e8e8e8; | ||
504 | padding-left: 10px; | ||
505 | color: #6b6b6b; | ||
506 | cursor: pointer; | ||
507 | box-sizing: border-box; | ||
508 | border-radius: 6px; | ||
509 | line-height: 20px; | ||
510 | transition: all 0.3s; | ||
511 | padding: 8px 0; | ||
512 | } | ||
513 | |||
514 | .child:hover { | ||
515 | color: $light-blue; | ||
516 | transform: scale(1.1); | ||
517 | } | ||
518 | |||
519 | .checked { | ||
520 | border: 1px solid $light-blue; | ||
521 | color: $light-blue; | ||
522 | } | ||
523 | } | ||
524 | } | ||
525 | |||
526 | .clyl-img { | ||
527 | width: 75%; | ||
528 | height: 100%; | ||
529 | background: #f3f4f7; | ||
530 | margin: 0 auto; | ||
531 | position: relative; | ||
532 | } | ||
533 | } | ||
534 | } | ||
535 | } | ||
536 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:40:38 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="clxx"> | ||
8 | <div class="right"> | ||
9 | <!-- 材料预览 --> | ||
10 | <div class="clyl-box"> | ||
11 | <div class="menu-tree"> | ||
12 | <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button> | ||
13 | <div class="item"> | ||
14 | 材料目录({{tableData.length}}) | ||
15 | <div style="margin-top:10px"> | ||
16 | <div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div> | ||
17 | <div v-for="(item,index) in tableData" :key="item.bsmSj" | ||
18 | :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)"> | ||
19 | <span v-if="item.isrequired==1" class="required">必选</span> | ||
20 | {{ item.sjmc }} | ||
21 | <span class="cl_number">({{item.children ? item.children.length : 0}})</span> | ||
22 | </div> | ||
23 | </div> | ||
24 | </div> | ||
25 | <el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()" v-if="!this.$route.query.viewtype">新增</el-button> | ||
26 | </div> | ||
27 | <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview" | ||
28 | @prevPriview="prevPriview" /> | ||
29 | </div> | ||
30 | </div> | ||
31 | <clxxAddDialog v-model="isDialog" /> | ||
32 | <!-- <clxxDetailDialog v-model="detailDialog" :data="tableData" /> --> | ||
33 | </div> | ||
34 | </template> | ||
35 | <script> | ||
36 | import { mapGetters } from "vuex"; | ||
37 | import clxxAddDialog from "./dialog/clxxAddDialog.vue"; | ||
38 | import clxxDetailDialog from "./dialog/clxxDetailDialog.vue"; | ||
39 | import imagePreview from '@/views/components/imagePreview.vue' | ||
40 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; | ||
41 | import { popupDialog } from "@/utils/popup.js"; | ||
42 | export default { | ||
43 | components: { clxxAddDialog, imagePreview, clxxDetailDialog }, | ||
44 | data () { | ||
45 | return { | ||
46 | isDialog: false, | ||
47 | iclass: "", | ||
48 | // 材料目录选中 | ||
49 | treeCheckIndex: 0, | ||
50 | treeCheckId: "", | ||
51 | key: 0, | ||
52 | tableData: [], | ||
53 | previewImg: { | ||
54 | // 收件标识码 | ||
55 | bsmSj: '', | ||
56 | bsmSlsq: this.$parent.bsmSlsq, | ||
57 | index: 0, | ||
58 | selectedIndex: 0, | ||
59 | imgList: [] | ||
60 | } | ||
61 | } | ||
62 | }, | ||
63 | computed: { | ||
64 | ...mapGetters(["dictData"]) | ||
65 | }, | ||
66 | created () { | ||
67 | this.clmlInitList(1) | ||
68 | }, | ||
69 | methods: { | ||
70 | // 自动预览 | ||
71 | nextPriview () { | ||
72 | if (this.treeCheckIndex < this.tableData.length) { | ||
73 | this.treeCheckIndex++ | ||
74 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
75 | this.previewImg.index = 0 | ||
76 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
77 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
78 | } | ||
79 | }, | ||
80 | prevPriview () { | ||
81 | if (this.treeCheckIndex >= 1) { | ||
82 | this.treeCheckIndex-- | ||
83 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
84 | this.previewImg.index = this.previewImg.imgList.length | ||
85 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
86 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
87 | } | ||
88 | }, | ||
89 | // 材料目录明细初始化 | ||
90 | clmlInitList (type) { | ||
91 | //type 1:列表初始化 2:新增材料 | ||
92 | return new Promise(resolve => { | ||
93 | this.unitData = this.$parent.unitData; | ||
94 | var formdata = new FormData(); | ||
95 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
96 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
97 | InitClml(formdata).then((res) => { | ||
98 | if (res.code == 200) { | ||
99 | resolve(res.code) | ||
100 | if (res.result && res.result.length > 0) { | ||
101 | this.tableData = res.result; | ||
102 | if (type == 1) { | ||
103 | this.treeClick(this.tableData[0], 0); | ||
104 | } else { | ||
105 | //新增材料后刷新列表焦点置于新增的对象上 | ||
106 | this.treeClick(this.tableData[this.tableData.length - 1], this.tableData.length - 1); | ||
107 | } | ||
108 | } | ||
109 | } else { | ||
110 | this.$message.error(res.message) | ||
111 | } | ||
112 | }) | ||
113 | }) | ||
114 | }, | ||
115 | setChecked (item) { | ||
116 | this.treeCheckId = item.bsmSj; | ||
117 | this.title = item.sjmc; | ||
118 | this.titleYs = 1; | ||
119 | this.titleNum = item.children.length; | ||
120 | this.previewImg.imgList = item.children; | ||
121 | this.previewImg.bsmSj = item.bsmSj; | ||
122 | }, | ||
123 | updateList (val) { | ||
124 | let that = this | ||
125 | if (val != null) { //删除最后一张图片时 val=null | ||
126 | this.tableData.forEach(item => { | ||
127 | if (item.bsmSj === val.bsmSj) { | ||
128 | item.children = val.children | ||
129 | } | ||
130 | }) | ||
131 | this.previewImg.imgList = _.cloneDeep(val.children) | ||
132 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
133 | this.previewImg.index = this.previewImg.index - 1 | ||
134 | } | ||
135 | } else { | ||
136 | this.previewImg.imgList = [] | ||
137 | this.tableData.forEach((item, index) => { | ||
138 | if (this.treeCheckId == item.bsmSj) { | ||
139 | item.children = [] | ||
140 | that.treeCheckIndex = index | ||
141 | } | ||
142 | }) | ||
143 | } | ||
144 | |||
145 | }, | ||
146 | // 添加材料目录 | ||
147 | handleAdd () { | ||
148 | this.isDialog = true; | ||
149 | }, | ||
150 | // 新增弹窗保存 | ||
151 | addSave (data) { | ||
152 | let obj = { | ||
153 | bsmSlsq: this.$parent.bsmSlsq, | ||
154 | isrequired: "1", | ||
155 | sjmc: data.clmc, | ||
156 | sjsl: 0, | ||
157 | smzt: '', | ||
158 | ys: 0, | ||
159 | sjlx: data.cllx, | ||
160 | sfxjcl: "1", // 是否必选 | ||
161 | }; | ||
162 | saveClml(obj).then(async (res) => { | ||
163 | if (res.code == 200) { | ||
164 | let res = await this.clmlInitList(2) | ||
165 | if (res == 200) this.$message({ | ||
166 | message: "新增成功", | ||
167 | type: "success", | ||
168 | }) | ||
169 | } | ||
170 | }); | ||
171 | }, | ||
172 | // 材料目录点击选中 | ||
173 | treeClick (item, index) { | ||
174 | this.previewImg.index = 0 | ||
175 | this.treeCheckId = item?.bsmSj | ||
176 | this.treeCheckIndex = index | ||
177 | this.previewImg.imgList = item?.children | ||
178 | this.previewImg.bsmSj = item?.bsmSj | ||
179 | }, | ||
180 | // 小图片点击 | ||
181 | imgClick (item, index) { | ||
182 | this.showImg = item; | ||
183 | this.titleYs = index + 1; | ||
184 | }, | ||
185 | // 字典 | ||
186 | dicStatus (val, code) { | ||
187 | let data = this.$store.getters.dictData[code], | ||
188 | name = "暂无"; | ||
189 | if (data) { | ||
190 | data.map((item) => { | ||
191 | if (item.dcode == val) { | ||
192 | name = item.dname | ||
193 | } | ||
194 | }); | ||
195 | return name | ||
196 | } | ||
197 | }, | ||
198 | //查看明细 | ||
199 | viewDetail () { | ||
200 | this.$popupDialog("查看明细", "workflow/components/dialog/clxxDetailDialog", { | ||
201 | data: this.tableData | ||
202 | }, "60%") | ||
203 | }, | ||
204 | //设置tableData | ||
205 | setTableData (tableData) { | ||
206 | this.$nextTick(res => { | ||
207 | this.tableData = tableData; | ||
208 | }) | ||
209 | }, | ||
210 | }, | ||
211 | }; | ||
212 | </script> | ||
213 | <style scoped lang='scss'> | ||
214 | @import "~@/styles/mixin.scss"; | ||
215 | |||
216 | .active { | ||
217 | background: $light-blue !important; | ||
218 | color: #fff; | ||
219 | } | ||
220 | |||
221 | .required { | ||
222 | font-size: 12px; | ||
223 | color: $pink; | ||
224 | float: left; | ||
225 | } | ||
226 | |||
227 | .cl_number { | ||
228 | float: right; | ||
229 | } | ||
230 | |||
231 | .clxx { | ||
232 | width: 100%; | ||
233 | display: flex; | ||
234 | padding-left: 5px; | ||
235 | height: calc(100vh - 125px); | ||
236 | |||
237 | .left { | ||
238 | display: flex; | ||
239 | flex-direction: column; | ||
240 | justify-content: space-between; | ||
241 | |||
242 | .item { | ||
243 | width: 28px; | ||
244 | height: 49%; | ||
245 | @include flex-center; | ||
246 | background-color: #e4e7ed; | ||
247 | border-bottom-right-radius: 10px; | ||
248 | padding: 5px; | ||
249 | cursor: pointer; | ||
250 | transition: all 0.3s; | ||
251 | |||
252 | &:hover { | ||
253 | @extend .active; | ||
254 | } | ||
255 | } | ||
256 | } | ||
257 | |||
258 | .right { | ||
259 | width: 100%; | ||
260 | height: 100%; | ||
261 | |||
262 | .clmlmx-box { | ||
263 | margin: 0 auto; | ||
264 | |||
265 | .title { | ||
266 | text-align: center; | ||
267 | height: 60px; | ||
268 | line-height: 60px; | ||
269 | border: 1px solid #dfe6ec; | ||
270 | font-size: 20px; | ||
271 | background: #81d3f81a; | ||
272 | margin-bottom: -1px; | ||
273 | } | ||
274 | } | ||
275 | |||
276 | .clyl-box { | ||
277 | width: 100%; | ||
278 | height: 100%; | ||
279 | display: flex; | ||
280 | |||
281 | .menu-tree { | ||
282 | width: 20%; | ||
283 | min-width: 160px; | ||
284 | height: 100%; | ||
285 | margin-right: 10px; | ||
286 | border-right: 1px dotted #d9d9d9; | ||
287 | padding: 0 15px; | ||
288 | |||
289 | .item { | ||
290 | line-height: 30px; | ||
291 | padding-top: 5px; | ||
292 | border-bottom: 1px solid #e8e8e8; | ||
293 | font-size: 16px; | ||
294 | text-align: center; | ||
295 | color: $light-blue; | ||
296 | |||
297 | .itemIcon { | ||
298 | float: right; | ||
299 | line-height: 60px; | ||
300 | cursor: pointer; | ||
301 | } | ||
302 | |||
303 | .child { | ||
304 | line-height: 32px; | ||
305 | border-bottom: 1px solid #e8e8e8; | ||
306 | padding-left: 10px; | ||
307 | color: #6b6b6b; | ||
308 | cursor: pointer; | ||
309 | box-sizing: border-box; | ||
310 | border-radius: 6px; | ||
311 | line-height: 20px; | ||
312 | transition: all 0.3s; | ||
313 | padding: 8px 0; | ||
314 | } | ||
315 | |||
316 | .child:hover { | ||
317 | color: $light-blue; | ||
318 | transform: scale(1.1); | ||
319 | } | ||
320 | |||
321 | .checked { | ||
322 | border: 1px solid $light-blue; | ||
323 | color: $light-blue; | ||
324 | } | ||
325 | } | ||
326 | } | ||
327 | |||
328 | .clyl-img { | ||
329 | width: 75%; | ||
330 | height: 100%; | ||
331 | background: #f3f4f7; | ||
332 | margin: 0 auto; | ||
333 | position: relative; | ||
334 | } | ||
335 | } | ||
336 | } | ||
337 | } | ||
338 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:39:47 | ||
5 | --> | ||
6 | <template> | ||
7 | <dialogBox title="申请人信息" width="60%" isMain v-model="myValue" :isFullscreen="false" @submitForm="submitForm" | ||
8 | @closeDialog="closeDialog" :isButton="showButton"> | ||
9 | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px"> | ||
10 | <el-row> | ||
11 | <el-col :span="8"> | ||
12 | <el-form-item label="权利人类型" prop="sqrlx"> | ||
13 | <el-select clearable v-model="ruleForm.sqrlx" class="width100" placeholder="请选择"> | ||
14 | <el-option v-for="item in dictData['A36']" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
15 | </el-option> | ||
16 | </el-select> | ||
17 | </el-form-item> | ||
18 | </el-col> | ||
19 | <el-col :span="8"> | ||
20 | <el-form-item label="姓名/名称" prop="sqrmc"> | ||
21 | <el-input v-model="ruleForm.sqrmc" maxlegth="15"></el-input> | ||
22 | </el-form-item> | ||
23 | </el-col> | ||
24 | <el-col :span="8"> | ||
25 | <el-form-item label="证件种类" prop="zjzl"> | ||
26 | <el-select clearable v-model="ruleForm.zjzl" class="width100" placeholder="请选择"> | ||
27 | <el-option v-for="item in dictData['A30']" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
28 | </el-option> | ||
29 | </el-select> | ||
30 | </el-form-item> | ||
31 | </el-col> | ||
32 | </el-row> | ||
33 | <el-row> | ||
34 | <el-col :span="8"> | ||
35 | <el-form-item label="证件号" prop="zjh"> | ||
36 | <el-input v-model="ruleForm.zjh" maxlength="15" oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input> | ||
37 | </el-form-item> | ||
38 | </el-col> | ||
39 | <el-col :span="8"> | ||
40 | <el-form-item label="联系电话" prop="dh"> | ||
41 | <el-input v-model="ruleForm.dh" maxlength="11" oninput="value=value.replace(/[^\d]/g,'')"></el-input> | ||
42 | </el-form-item> | ||
43 | </el-col> | ||
44 | <el-col :span="8"> | ||
45 | <el-form-item label="性别"> | ||
46 | <el-select clearable v-model="ruleForm.xb" class="width100" placeholder="请选择"> | ||
47 | <el-option v-for="item in dictData['A43']" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
48 | </el-option> | ||
49 | </el-select> | ||
50 | </el-form-item> | ||
51 | </el-col> | ||
52 | </el-row> | ||
53 | <el-row> | ||
54 | <el-col :span="8"> | ||
55 | <el-form-item label="法人名称"> | ||
56 | <el-input v-model="ruleForm.frmc"></el-input> | ||
57 | </el-form-item> | ||
58 | </el-col> | ||
59 | <el-col :span="8"> | ||
60 | <el-form-item label="国家/地区"> | ||
61 | <el-input v-model="ruleForm.gjdq"></el-input> | ||
62 | </el-form-item> | ||
63 | </el-col> | ||
64 | <el-col :span="8"> | ||
65 | <el-form-item label="户籍所在省市"> | ||
66 | <el-input v-model="ruleForm.szss"></el-input> | ||
67 | </el-form-item> | ||
68 | </el-col> | ||
69 | </el-row> | ||
70 | |||
71 | <el-row> | ||
72 | <el-col :span="16"> | ||
73 | <el-form-item label="地址"> | ||
74 | <el-input v-model="ruleForm.txdz"></el-input> | ||
75 | </el-form-item> | ||
76 | </el-col> | ||
77 | <el-col :span="8"> | ||
78 | <el-form-item label="邮编"> | ||
79 | <el-input v-model="ruleForm.yb"></el-input> | ||
80 | </el-form-item> | ||
81 | </el-col> | ||
82 | </el-row> | ||
83 | |||
84 | <el-row> | ||
85 | <el-col :span="8"> | ||
86 | <el-form-item label="发证机关"> | ||
87 | <el-input v-model="ruleForm.fzjg"></el-input> | ||
88 | </el-form-item> | ||
89 | </el-col> | ||
90 | <el-col :span="8"> | ||
91 | <el-form-item label="电子邮件"> | ||
92 | <el-input v-model="ruleForm.dzyj"></el-input> | ||
93 | </el-form-item> | ||
94 | </el-col> | ||
95 | <el-col :span="8"> | ||
96 | <el-form-item label="权利比例"> | ||
97 | <el-input v-model="ruleForm.qlbl"></el-input> | ||
98 | </el-form-item> | ||
99 | </el-col> | ||
100 | </el-row> | ||
101 | |||
102 | <el-row> | ||
103 | <el-col :span="8"> | ||
104 | <el-form-item label="工作单位"> | ||
105 | <el-input v-model="ruleForm.gzdw"></el-input> | ||
106 | </el-form-item> | ||
107 | </el-col> | ||
108 | <el-col :span="16"> | ||
109 | <el-form-item label="代理机构"> | ||
110 | <el-input v-model="ruleForm.dljg"></el-input> | ||
111 | </el-form-item> | ||
112 | </el-col> | ||
113 | </el-row> | ||
114 | |||
115 | <el-row> | ||
116 | <el-col :span="8"> | ||
117 | <el-form-item label="联系电话"> | ||
118 | <el-input v-model="ruleForm.lxdh" maxlength="11" oninput="value=value.replace(/[^\d]/g,'')"></el-input> | ||
119 | </el-form-item> | ||
120 | </el-col> | ||
121 | <el-col :span="8"> | ||
122 | <el-form-item label="代理人姓名"> | ||
123 | <el-input v-model="ruleForm.dlrxm"></el-input> | ||
124 | </el-form-item> | ||
125 | </el-col> | ||
126 | <el-col :span="8"> | ||
127 | <el-form-item label="代理人证件类型"> | ||
128 | <el-select clearable v-model="ruleForm.dlrzjlx" class="width100" placeholder="请选择"> | ||
129 | <el-option v-for="item in dictData['A30']" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
130 | </el-option> | ||
131 | </el-select> | ||
132 | </el-form-item> | ||
133 | </el-col> | ||
134 | </el-row> | ||
135 | <el-row> | ||
136 | <el-col :span="8"> | ||
137 | <el-form-item label="代理人证件号"> | ||
138 | <el-input v-model="ruleForm.dlrzjh" maxlength="20"></el-input> | ||
139 | </el-form-item> | ||
140 | </el-col> | ||
141 | </el-row> | ||
142 | </el-form> | ||
143 | </dialogBox> | ||
144 | </template> | ||
145 | <script> | ||
146 | import { mapGetters } from "vuex"; | ||
147 | export default { | ||
148 | props: { | ||
149 | value: { type: Boolean, default: false }, | ||
150 | details: { type: Object, default: {} }, | ||
151 | showButton: { type: Boolean, default: false } | ||
152 | }, | ||
153 | computed: { | ||
154 | ...mapGetters(["dictData"]), | ||
155 | }, | ||
156 | data () { | ||
157 | return { | ||
158 | myValue: this.value, | ||
159 | ruleForm: { | ||
160 | sqrlx: "", | ||
161 | sqrmc: "", | ||
162 | zjzl: "", | ||
163 | zjh: "", | ||
164 | dh: "", | ||
165 | xb: "", | ||
166 | frmc: "", | ||
167 | gjdq: "", | ||
168 | szss: "", | ||
169 | txdz: "", | ||
170 | yb: "", | ||
171 | fzjg: "", | ||
172 | dzyj: "", | ||
173 | qlbl: "", | ||
174 | gzdw: "", | ||
175 | dljg: "", | ||
176 | dlrxm: "", | ||
177 | dlrzjlx: "", | ||
178 | dlrzjh: "", | ||
179 | }, | ||
180 | rules: { | ||
181 | sqrlx: [{ required: true, message: "权利人类型", trigger: "change" }], | ||
182 | sqrmc: [{ required: true, message: "姓名/名称", trigger: "blur" }], | ||
183 | zjzl: [{ required: true, message: "证件种类", trigger: "change" }], | ||
184 | zjh: [{ required: true, message: "证件号", trigger: "blur" }], | ||
185 | }, | ||
186 | }; | ||
187 | }, | ||
188 | watch: { | ||
189 | value (val) { | ||
190 | this.myValue = _.cloneDeep(val); | ||
191 | }, | ||
192 | details: { | ||
193 | handler: function (val, oldVal) { | ||
194 | this.ruleForm = val; | ||
195 | }, | ||
196 | deep: true, | ||
197 | }, | ||
198 | }, | ||
199 | methods: { | ||
200 | closeDialog () { | ||
201 | this.$emit("input", false); | ||
202 | this.$refs["ruleForm"].resetFields(); | ||
203 | }, | ||
204 | submitForm () { | ||
205 | this.$refs.ruleForm.validate((valid) => { | ||
206 | if (valid) { | ||
207 | this.$emit("input", false); | ||
208 | this.$emit("updateDetail", _.cloneDeep(this.ruleForm)); | ||
209 | } else { | ||
210 | return false; | ||
211 | } | ||
212 | }); | ||
213 | }, | ||
214 | }, | ||
215 | }; | ||
216 | </script> | ||
217 | <style scoped lang="scss"> | ||
218 | @import "~@/styles/dialogBoxheader.scss"; | ||
219 | .submit-button { | ||
220 | text-align: center; | ||
221 | height: 52px; | ||
222 | padding-top: 10px; | ||
223 | background-color: #fff; | ||
224 | } | ||
225 | </style> |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-09 09:20:10 | ||
5 | --> | ||
6 | <template> | ||
7 | <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit" | ||
8 | :isFullscreen="false"> | ||
9 | <el-form :model="ruleForm" ref="ruleForm" label-width="70px"> | ||
10 | <el-row> | ||
11 | <el-col :span="24"> | ||
12 | <el-form-item label="材料类型"> | ||
13 | <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择"> | ||
14 | <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
15 | </el-option> | ||
16 | </el-select> | ||
17 | </el-form-item> | ||
18 | </el-col> | ||
19 | </el-row> | ||
20 | <el-row :gutter="20"> | ||
21 | <el-col :span="24"> | ||
22 | <el-form-item label="材料名称"> | ||
23 | <el-input v-model="ruleForm.clmc"></el-input> | ||
24 | </el-form-item> | ||
25 | </el-col> | ||
26 | </el-row> | ||
27 | </el-form> | ||
28 | </dialogBox> | ||
29 | </template> | ||
30 | |||
31 | <script> | ||
32 | import { mapGetters } from "vuex"; | ||
33 | export default { | ||
34 | props: { | ||
35 | value: { type: Boolean, default: false }, | ||
36 | }, | ||
37 | data () { | ||
38 | return { | ||
39 | myValue: this.value, | ||
40 | ruleForm: { | ||
41 | cllx: "", | ||
42 | clmc: "", | ||
43 | }, | ||
44 | }; | ||
45 | }, | ||
46 | computed: { | ||
47 | ...mapGetters(["dictData"]), | ||
48 | }, | ||
49 | watch: { | ||
50 | value (val) { | ||
51 | this.myValue = val; | ||
52 | }, | ||
53 | }, | ||
54 | methods: { | ||
55 | closeDialog () { | ||
56 | this.$emit("input", false); | ||
57 | this.ruleForm = { | ||
58 | cllx: "", | ||
59 | clmc: "", | ||
60 | } | ||
61 | }, | ||
62 | handleSubmit () { | ||
63 | this.$parent.addSave(this.ruleForm); | ||
64 | this.ruleForm = { | ||
65 | cllx: "", | ||
66 | clmc: "", | ||
67 | } | ||
68 | this.$emit("input", false); | ||
69 | }, | ||
70 | }, | ||
71 | }; | ||
72 | </script> | ||
73 | <style scoped lang="scss"> | ||
74 | .submit-button { | ||
75 | text-align: center; | ||
76 | height: 52px; | ||
77 | padding-top: 10px; | ||
78 | background-color: #fff; | ||
79 | } | ||
80 | </style> |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:39:57 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="clmlmx-box"> | ||
8 | <div class="title">申请材料目录</div> | ||
9 | <lb-table :column="column" :key="key" :heightNumSetting="true" :pagination="false" :data="formData.data"> | ||
10 | </lb-table> | ||
11 | <div class="text-center"> | ||
12 | <el-button @click="$popupCacel">取消</el-button> | ||
13 | </div> | ||
14 | </div> | ||
15 | </template> | ||
16 | <script> | ||
17 | import store from '@/store/index.js' | ||
18 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; | ||
19 | export default { | ||
20 | props: { | ||
21 | formData: { | ||
22 | type: Object, | ||
23 | default: () => { | ||
24 | return {} | ||
25 | } | ||
26 | } | ||
27 | }, | ||
28 | data () { | ||
29 | return { | ||
30 | column: [ | ||
31 | { | ||
32 | width: "50", | ||
33 | label: '序号', | ||
34 | type: 'index' | ||
35 | }, | ||
36 | { | ||
37 | prop: "isrequired", | ||
38 | label: "是否必选", | ||
39 | width: "80", | ||
40 | render: (h, scope) => { | ||
41 | if (scope.row.sfxjcl === "1") { | ||
42 | return ( | ||
43 | <div> | ||
44 | <span>可选</span> | ||
45 | </div> | ||
46 | ); | ||
47 | } | ||
48 | else { | ||
49 | return ( | ||
50 | <div> | ||
51 | <span>必选</span> | ||
52 | </div> | ||
53 | ); | ||
54 | } | ||
55 | }, | ||
56 | }, | ||
57 | { | ||
58 | prop: "sjmc", | ||
59 | label: "材料名称", | ||
60 | }, | ||
61 | { | ||
62 | prop: "sjlx", | ||
63 | label: "材料类型", | ||
64 | width: "80", | ||
65 | render: (h, scope) => { | ||
66 | return ( | ||
67 | <div> | ||
68 | <span>{this.dicStatus(scope.row.sjlx, "A40")}</span> | ||
69 | </div> | ||
70 | ); | ||
71 | }, | ||
72 | }, | ||
73 | { | ||
74 | prop: "sjsl", | ||
75 | label: "份数", | ||
76 | width: "50" | ||
77 | }, | ||
78 | { | ||
79 | prop: "smzt", | ||
80 | label: "扫描状态", | ||
81 | width: "80", | ||
82 | render: (h, scope) => { | ||
83 | if (scope.row.children && scope.row.children.length > 0) { | ||
84 | return ( | ||
85 | <div> | ||
86 | <span>已扫描</span> | ||
87 | </div> | ||
88 | ); | ||
89 | } else { | ||
90 | return ( | ||
91 | <div> | ||
92 | <span>未扫描</span> | ||
93 | </div> | ||
94 | ); | ||
95 | } | ||
96 | }, | ||
97 | }, | ||
98 | { | ||
99 | label: "扫描页数", | ||
100 | width: "80", | ||
101 | render: (h, scope) => { | ||
102 | if (scope.row.children && scope.row.children.length > 0) { | ||
103 | return ( | ||
104 | <div> | ||
105 | <span>{scope.row.children.length}</span> | ||
106 | </div> | ||
107 | ); | ||
108 | } else { | ||
109 | return ( | ||
110 | <div> | ||
111 | <span>0</span> | ||
112 | </div> | ||
113 | ); | ||
114 | } | ||
115 | }, | ||
116 | }, | ||
117 | { | ||
118 | label: "操作", | ||
119 | width: "80", | ||
120 | render: (h, scope) => { | ||
121 | return ( | ||
122 | <div> | ||
123 | <el-button | ||
124 | type="text" | ||
125 | disabled={scope.$index == 0} | ||
126 | onClick={() => { | ||
127 | this.moveUpward(scope.$index, scope.row); | ||
128 | }} | ||
129 | > | ||
130 | 上移 | ||
131 | </el-button> | ||
132 | <el-button | ||
133 | type="text" | ||
134 | disabled={scope.$index + 1 == this.tableData.length} | ||
135 | onClick={() => { | ||
136 | this.moveDown(scope.$index, scope.row); | ||
137 | }} | ||
138 | > | ||
139 | 下移 | ||
140 | </el-button> | ||
141 | </div> | ||
142 | ); | ||
143 | }, | ||
144 | }, | ||
145 | ], | ||
146 | key: 0, | ||
147 | tableData: [] | ||
148 | } | ||
149 | }, | ||
150 | created () { | ||
151 | console.log(this.formData.data, 'formData'); | ||
152 | }, | ||
153 | methods: { | ||
154 | // 材料目录明细初始化 | ||
155 | clmlInitList () { | ||
156 | return new Promise(resolve => { | ||
157 | this.unitData = this.$parent.unitData; | ||
158 | var formdata = new FormData(); | ||
159 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
160 | formdata.append("bsmSlsq", this.$route.query.bsmSlsq); | ||
161 | InitClml(formdata).then((res) => { | ||
162 | if (res.code == 200) { | ||
163 | resolve(res.code) | ||
164 | if (res.result && res.result.length > 0) { | ||
165 | this.data = res.result; | ||
166 | } else { | ||
167 | this.data = [] | ||
168 | } | ||
169 | } else { | ||
170 | this.$message.error(res.message) | ||
171 | } | ||
172 | }) | ||
173 | }) | ||
174 | }, | ||
175 | // 上移 | ||
176 | moveUpward (index, row) { | ||
177 | let obj = { | ||
178 | xh: row.xh, | ||
179 | bsmSlsq: row.bsmSlsq, | ||
180 | moveDirection: "UP", | ||
181 | }; | ||
182 | // 接口待调 | ||
183 | moveClml(obj).then(async (res) => { | ||
184 | if (res.code == 200) { | ||
185 | let res = await this.clmlInitList() | ||
186 | if (res == 200) { | ||
187 | this.$message({ | ||
188 | message: '上移成功', | ||
189 | type: 'success' | ||
190 | }) | ||
191 | this.$parent.setTableData(this.data) | ||
192 | } | ||
193 | } else { | ||
194 | this.$message.error(res.message); | ||
195 | } | ||
196 | }) | ||
197 | }, | ||
198 | // 下移 | ||
199 | moveDown (index, row) { | ||
200 | let obj = { | ||
201 | xh: row.xh, | ||
202 | bsmSlsq: row.bsmSlsq, | ||
203 | moveDirection: "DOWN", | ||
204 | } | ||
205 | // 接口待调 | ||
206 | moveClml(obj).then(async (res) => { | ||
207 | if (res.code == 200) { | ||
208 | let res = await this.clmlInitList() | ||
209 | if (res == 200) { | ||
210 | this.$message({ | ||
211 | message: '下移成功', | ||
212 | type: 'success' | ||
213 | }) | ||
214 | } | ||
215 | } else { | ||
216 | this.$message.error(res.message); | ||
217 | } | ||
218 | }) | ||
219 | }, | ||
220 | // 材料目录删除 | ||
221 | handleDelete (index, row) { | ||
222 | let that = this | ||
223 | this.$confirm('此操作将永久删除该 是否继续?', '提示', { | ||
224 | confirmButtonText: '确定', | ||
225 | cancelButtonText: '取消', | ||
226 | type: 'warning' | ||
227 | }).then(() => { | ||
228 | deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => { | ||
229 | if (res.code == 200) { | ||
230 | let res = await that.clmlInitList() | ||
231 | if (res == 200) { | ||
232 | that.$message({ | ||
233 | message: "删除成功", | ||
234 | type: "success", | ||
235 | }) | ||
236 | // this.$parent.setTableData(this.data) | ||
237 | } | ||
238 | } | ||
239 | }) | ||
240 | }).catch(() => { | ||
241 | this.$message({ | ||
242 | type: 'info', | ||
243 | message: '已取消删除' | ||
244 | }) | ||
245 | }) | ||
246 | }, | ||
247 | // 字典 | ||
248 | dicStatus (val, code) { | ||
249 | let data = store.getters.dictData[code], | ||
250 | name = "暂无"; | ||
251 | if (data) { | ||
252 | data.map((item) => { | ||
253 | if (item.dcode == val) { | ||
254 | name = item.dname; | ||
255 | } | ||
256 | }); | ||
257 | return name; | ||
258 | } | ||
259 | } | ||
260 | } | ||
261 | } | ||
262 | </script> | ||
263 | <style scoped lang='scss'> | ||
264 | @import "~@/styles/mixin.scss"; | ||
265 | .clmlmx-box { | ||
266 | margin: 0 auto; | ||
267 | |||
268 | .title { | ||
269 | text-align: center; | ||
270 | height: 60px; | ||
271 | line-height: 60px; | ||
272 | border: 1px solid #dfe6ec; | ||
273 | font-size: 20px; | ||
274 | background: #81d3f81a; | ||
275 | margin-bottom: -1px; | ||
276 | } | ||
277 | } | ||
278 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:40:02 | ||
5 | --> | ||
6 | <template> | ||
7 | <div> | ||
8 | <el-button type="primary" native-type="submit" @click="openDialog">新增常用</el-button> | ||
9 | <el-form ref="form" :model="form" :rules="rules" label-width="80px" v-show="addDialog"> | ||
10 | <el-form-item prop="commonOpinion"> | ||
11 | <div class="invalid-reson">常用意见:</div> | ||
12 | <el-input v-model="form.commonOpinion" placeholder="请输入常用意见" type="textarea" :rows="4"></el-input> | ||
13 | </el-form-item> | ||
14 | <el-form-item class="text-center"> | ||
15 | <el-button @click="closeaddDiglog">取 消</el-button> | ||
16 | <el-button type="primary" @click="addOpinion">确 定</el-button> | ||
17 | </el-form-item> | ||
18 | </el-form> | ||
19 | <lb-table :heightNumSetting="true" | ||
20 | @row-dblclick="handleRowClick" | ||
21 | :pagination="false" :column="columns" :minHeight="300" :data="tableData.data"> | ||
22 | </lb-table> | ||
23 | <div style="height:15px"></div> | ||
24 | <div class="text-center"> | ||
25 | <el-button @click="$popupCacel">取消</el-button> | ||
26 | </div> | ||
27 | </div> | ||
28 | </template> | ||
29 | <script> | ||
30 | import store from '@/store/index.js' | ||
31 | import { getUserCommonOpinion, addUserCommonOpinion, delUserCommonOpinion } from "@/api/fqsq.js" | ||
32 | export default { | ||
33 | components: {}, | ||
34 | props: { | ||
35 | formData: { | ||
36 | type: Object, | ||
37 | default: {} | ||
38 | } | ||
39 | }, | ||
40 | data () { | ||
41 | return { | ||
42 | addDialog: false, | ||
43 | columns: [ | ||
44 | { | ||
45 | label: '序号', | ||
46 | type: 'index', | ||
47 | width: '50', | ||
48 | }, | ||
49 | { | ||
50 | prop: "opinion", | ||
51 | label: "意见描述", | ||
52 | }, | ||
53 | { | ||
54 | label: '操作', | ||
55 | width: '100', | ||
56 | render: (h, scope) => { | ||
57 | return ( | ||
58 | <div> | ||
59 | <el-button type="text" onClick={() => { this.useCommonOpinion(scope.row) }}>使用</el-button> | ||
60 | <el-button type="text" onClick={() => { this.deleteOpinion(scope.row) }}>删除</el-button> | ||
61 | </div> | ||
62 | ) | ||
63 | } | ||
64 | } | ||
65 | ], | ||
66 | tableData: { | ||
67 | total: 0, | ||
68 | data: [], | ||
69 | }, | ||
70 | form: { | ||
71 | commonOpinion: '', | ||
72 | }, | ||
73 | rules: { | ||
74 | commonOpinion: [ | ||
75 | { required: true, message: '请输入常用意见', trigger: 'blur' } | ||
76 | ] | ||
77 | } | ||
78 | } | ||
79 | }, | ||
80 | mounted () { | ||
81 | this.getList() | ||
82 | }, | ||
83 | methods: { | ||
84 | getList () { | ||
85 | getUserCommonOpinion().then(res => { | ||
86 | this.tableData.data = res.result | ||
87 | }) | ||
88 | }, | ||
89 | //新增常用意见 | ||
90 | addOpinion () { | ||
91 | this.$refs.form.validate(valid => { | ||
92 | if (valid) { | ||
93 | addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => { | ||
94 | if (res.code == 200) { | ||
95 | this.$message.success("新增成功") | ||
96 | this.closeaddDiglog(); | ||
97 | this.getList() | ||
98 | } else { | ||
99 | this.$message.error(res.message) | ||
100 | } | ||
101 | }) | ||
102 | } else { | ||
103 | return false; | ||
104 | } | ||
105 | }); | ||
106 | }, | ||
107 | //打开新增弹窗 | ||
108 | openDialog () { | ||
109 | this.addDialog = true | ||
110 | }, | ||
111 | //关闭新增弹窗 | ||
112 | closeaddDiglog () { | ||
113 | this.addDialog = false | ||
114 | this.$refs['form'].resetFields(); | ||
115 | }, | ||
116 | handleRowClick (item) { | ||
117 | this.useCommonOpinion(item) | ||
118 | }, | ||
119 | //使用常用意见 | ||
120 | useCommonOpinion (item) { | ||
121 | store.dispatch('workflow/setOptions', item.opinion); | ||
122 | this.$popupCacel() | ||
123 | }, | ||
124 | //删除常用意见 | ||
125 | deleteOpinion (item) { | ||
126 | this.$confirm("确定要删除吗, 是否继续?", "提示", { | ||
127 | confirmButtonText: "确定", | ||
128 | cancelButtonText: "取消", | ||
129 | type: "warning", | ||
130 | }).then(() => { | ||
131 | delUserCommonOpinion({ bsmOpinion: item.bsmOpinion }).then(res => { | ||
132 | if (res.code == 200) { | ||
133 | this.$message.success("删除成功") | ||
134 | this.getList() | ||
135 | } else { | ||
136 | this.$message.error(res.message) | ||
137 | } | ||
138 | }) | ||
139 | }) | ||
140 | .catch(() => { | ||
141 | this.$message({ | ||
142 | type: "info", | ||
143 | message: "已取消删除", | ||
144 | }); | ||
145 | }); | ||
146 | }, | ||
147 | //关闭列表弹窗 | ||
148 | closeDialog () { | ||
149 | this.form.commonOpinion = ""; | ||
150 | } | ||
151 | } | ||
152 | } | ||
153 | </script> | ||
154 | <style scoped lang='scss'> | ||
155 | @import "~@/styles/mixin.scss"; | ||
156 | @import "~@/styles/dialogBox.scss"; | ||
157 | |||
158 | .invalid-reson { | ||
159 | margin-bottom: 10px; | ||
160 | } | ||
161 | |||
162 | .dialog-footer { | ||
163 | margin-top: 10px; | ||
164 | display: flex; | ||
165 | justify-content: flex-end; | ||
166 | } | ||
167 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-04 14:13:28 | ||
5 | --> | ||
6 | <template> | ||
7 | <lb-table :column="tableData.columns" heightNumSetting :pagination="false" :key="key" :data="tableData.data"> | ||
8 | </lb-table> | ||
9 | </template> | ||
10 | <script> | ||
11 | import { mapGetters } from 'vuex' | ||
12 | import { getSzRecordList } from "@/api/bdcqz.js"; | ||
13 | import table from "@/utils/mixin/table"; | ||
14 | import { datas } from "../../javascript/szxxdata"; | ||
15 | export default { | ||
16 | components: { | ||
17 | |||
18 | }, | ||
19 | mixins: [table], | ||
20 | computed: { | ||
21 | ...mapGetters(["dictData"]), | ||
22 | }, | ||
23 | props: { | ||
24 | formData: { | ||
25 | type: Object, | ||
26 | default: {} | ||
27 | } | ||
28 | }, | ||
29 | data () { | ||
30 | return { | ||
31 | key: 0, | ||
32 | dataIndex: 0, | ||
33 | dialog: false, | ||
34 | details: {}, | ||
35 | tableData: { | ||
36 | total: 0, | ||
37 | columns: datas.columns(), | ||
38 | data: [], | ||
39 | }, | ||
40 | } | ||
41 | }, | ||
42 | mounted () { | ||
43 | this.query() | ||
44 | }, | ||
45 | methods: { | ||
46 | query () { | ||
47 | getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then(res => { | ||
48 | if (res.code == 200) { | ||
49 | this.tableData.data = res.result; | ||
50 | this.key++ | ||
51 | } | ||
52 | }) | ||
53 | } | ||
54 | } | ||
55 | } | ||
56 | </script> | ||
57 | <style scoped lang='scss'> | ||
58 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:40:09 | ||
5 | --> | ||
6 | <template> | ||
7 | <div> | ||
8 | <div class="zsdy-content loadingtext"> | ||
9 | <el-form | ||
10 | :model="ruleForm" | ||
11 | :rules="rules" | ||
12 | ref="ruleForm" | ||
13 | label-width="120px"> | ||
14 | <el-form-item label="印刷序列号:" prop="ysxlh"> | ||
15 | <el-select v-model="ruleForm.ysxlh" placeholder="请选择"> | ||
16 | <el-option | ||
17 | v-for="item in ysxlh" | ||
18 | :key="item.ysxlh" | ||
19 | :label="item.ysxlh" | ||
20 | :value="item.ysxlh"> | ||
21 | </el-option> | ||
22 | </el-select> | ||
23 | </el-form-item> | ||
24 | </el-form> | ||
25 | <img :src="previewImage" style="width: 100%"> | ||
26 | </div> | ||
27 | <div class="text-center pt-10"> | ||
28 | <el-button @click="$popupCacel">取消</el-button> | ||
29 | <el-button type="primary" @click="handleSubmit">确定</el-button> | ||
30 | </div> | ||
31 | </div> | ||
32 | </template> | ||
33 | |||
34 | <script> | ||
35 | import store from '@/store/index.js' | ||
36 | import { datas } from "../../javascript/zsyl.js"; | ||
37 | import { readYsxlh, certificate, bdcqzPreview } from "@/api/bdcqz.js"; | ||
38 | export default { | ||
39 | props: { | ||
40 | formData: { | ||
41 | type: Object, | ||
42 | default: () => { | ||
43 | return {} | ||
44 | } | ||
45 | } | ||
46 | }, | ||
47 | data () { | ||
48 | return { | ||
49 | //印刷序列号集合 | ||
50 | ysxlh: [], | ||
51 | //证书预览图片 | ||
52 | previewImage: '', | ||
53 | //列名称对象 | ||
54 | columns: [], | ||
55 | ruleForm: { | ||
56 | bsmBdcqz: "", | ||
57 | szmc: "不动产权证书", | ||
58 | bdcqzlx: "", | ||
59 | szzh: "", | ||
60 | ysxlh: "" | ||
61 | }, | ||
62 | rules: { | ||
63 | ysxlh: [ | ||
64 | { required: true, message: "请选择印刷序列号", trigger: "change" } | ||
65 | ] | ||
66 | } | ||
67 | } | ||
68 | }, | ||
69 | created () { | ||
70 | store.dispatch('user/refreshPage', false) | ||
71 | this.columns = datas.columns() | ||
72 | this.ysxlhList() | ||
73 | this.getBdcqzPreview() | ||
74 | }, | ||
75 | methods: { | ||
76 | //获取印刷序列号列表 | ||
77 | ysxlhList () { | ||
78 | readYsxlh({ zslx: this.formData.bdcqz.bdcqzlx }).then((res) => { | ||
79 | if (res.code === 200) { | ||
80 | this.ysxlh = res.result; | ||
81 | } | ||
82 | }) | ||
83 | }, | ||
84 | handleSubmit () { | ||
85 | this.savePrintRecord() | ||
86 | }, | ||
87 | //获取证书内容 | ||
88 | getRowValue (code) { | ||
89 | var value = this.bdcqz[code]; | ||
90 | return value; | ||
91 | }, | ||
92 | getBdcqzPreview () { | ||
93 | this.$startLoading() | ||
94 | bdcqzPreview(this.formData.bdcqz).then(res => { | ||
95 | this.$endLoading() | ||
96 | let blob = new Blob([res]); | ||
97 | let url = window.URL.createObjectURL(blob); | ||
98 | this.previewImage = url; | ||
99 | }) | ||
100 | }, | ||
101 | //保存打印记录 | ||
102 | savePrintRecord () { | ||
103 | this.ruleForm.bsmBdcqz = this.formData.bdcqz.bsmBdcqz; | ||
104 | this.ruleForm.bdcqzlx = this.formData.bdcqz.bdcqzlx; | ||
105 | this.ruleForm.szzh = this.formData.bdcqz.bdcqzh; | ||
106 | certificate(this.ruleForm).then((res) => { | ||
107 | if (res.code === 200) { | ||
108 | this.$popupCacel() | ||
109 | this.$message.success("提交成功") | ||
110 | //刷新列表 | ||
111 | store.dispatch('user/refreshPage', true); | ||
112 | } else { | ||
113 | this.$message.error(res.message) | ||
114 | } | ||
115 | }); | ||
116 | }, | ||
117 | }, | ||
118 | }; | ||
119 | </script> | ||
120 | <style scoped lang="scss"> | ||
121 | @import "~@/styles/mixin.scss"; | ||
122 | .zsdy-content { | ||
123 | height: 80vh; | ||
124 | overflow-y: scroll; | ||
125 | } | ||
126 | .aaaa { | ||
127 | width: 1024px; | ||
128 | height: 739px; | ||
129 | font-family: KaiTi; | ||
130 | font-weight: 700; | ||
131 | } | ||
132 | .bdcdjzm { | ||
133 | width: 1123px; | ||
134 | height: 794px; | ||
135 | font-family: KaiTi; | ||
136 | font-weight: 700; | ||
137 | } | ||
138 | .zmyl-box { | ||
139 | //position: relative; | ||
140 | position: absolute; | ||
141 | height: 600px; | ||
142 | width: 280px; | ||
143 | margin-left: 775px; | ||
144 | font-size: 16px; | ||
145 | justify-content: space-between; | ||
146 | } | ||
147 | .bdcqzh { | ||
148 | height: 70px; | ||
149 | left: 0; | ||
150 | bottom: 0; | ||
151 | font-size: 18px; | ||
152 | } | ||
153 | .zsyl-box { | ||
154 | display: flex; | ||
155 | justify-content: space-between; | ||
156 | // padding: 20px; | ||
157 | font-size: 16px; | ||
158 | height: 100%; | ||
159 | $left: 131px; | ||
160 | |||
161 | .zsyl-left { | ||
162 | width: 460px; | ||
163 | position: relative; | ||
164 | .qlr { | ||
165 | position: absolute; | ||
166 | top: 40px; | ||
167 | left: $left; | ||
168 | } | ||
169 | .gyqk { | ||
170 | position: absolute; | ||
171 | top: 80px; | ||
172 | left: $left; | ||
173 | } | ||
174 | .zl { | ||
175 | position: absolute; | ||
176 | top: 120px; | ||
177 | left: $left; | ||
178 | } | ||
179 | .bdcdyh { | ||
180 | position: absolute; | ||
181 | top: 160px; | ||
182 | left: $left; | ||
183 | } | ||
184 | .qllx { | ||
185 | position: absolute; | ||
186 | top: 205px; | ||
187 | left: $left; | ||
188 | } | ||
189 | .qlxz { | ||
190 | position: absolute; | ||
191 | top: 250px; | ||
192 | left: $left; | ||
193 | } | ||
194 | .yt { | ||
195 | position: absolute; | ||
196 | top: 290px; | ||
197 | left: $left; | ||
198 | } | ||
199 | .mj { | ||
200 | position: absolute; | ||
201 | top: 330px; | ||
202 | left: $left; | ||
203 | } | ||
204 | .syqx { | ||
205 | position: absolute; | ||
206 | top: 370px; | ||
207 | left: $left; | ||
208 | } | ||
209 | .qt { | ||
210 | position: absolute; | ||
211 | top: 420px; | ||
212 | left: $left; | ||
213 | } | ||
214 | } | ||
215 | .zsyl-right { | ||
216 | flex: 1; | ||
217 | text-align: left; | ||
218 | position: relative; | ||
219 | .fj { | ||
220 | position: absolute; | ||
221 | left: 115px; | ||
222 | top: 5px; | ||
223 | } | ||
224 | } | ||
225 | .zsyl-title { | ||
226 | margin-bottom: 12px; | ||
227 | } | ||
228 | /deep/.el-table__row { | ||
229 | background: #fafbe5 !important; | ||
230 | } | ||
231 | } | ||
232 | .middle_padding { | ||
233 | padding-bottom: 10px; | ||
234 | } | ||
235 | .zsyl-button { | ||
236 | text-align: center; | ||
237 | margin-top: 20px; | ||
238 | .operation_button { | ||
239 | width: 100px; | ||
240 | border: 1px solid rgb(0, 121, 254); | ||
241 | } | ||
242 | .dy-button { | ||
243 | color: white; | ||
244 | background-color: rgb(0, 121, 254); | ||
245 | } | ||
246 | } | ||
247 | </style> |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-18 10:53:49 | ||
5 | --> | ||
6 | <template> | ||
7 | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"> | ||
8 | <el-row> | ||
9 | <el-col :span="8"> | ||
10 | <el-form-item label="发证人姓名"> | ||
11 | <el-input v-model="ruleForm.fzrmc" disabled></el-input> | ||
12 | </el-form-item> | ||
13 | </el-col> | ||
14 | <el-col :span="8"> | ||
15 | <el-form-item label="发证时间"> | ||
16 | <el-input v-model="ruleForm.fzsj" disabled></el-input> | ||
17 | </el-form-item> | ||
18 | </el-col> | ||
19 | <el-col :span="8"> | ||
20 | <el-form-item label="发证数量"> | ||
21 | <el-input v-model="ruleForm.fzsl" disabled></el-input> | ||
22 | </el-form-item> | ||
23 | </el-col> | ||
24 | </el-row> | ||
25 | |||
26 | <lb-table :column="tableData.columns" @row-dblclick="handleRowClick" ref="table" @selection-change="handleSelectionChange" :data="tableData.data" | ||
27 | :pagination="false" | ||
28 | :calcHeight="300"> | ||
29 | </lb-table> | ||
30 | <el-row> | ||
31 | <el-col :span="6"> | ||
32 | <el-form-item label="领证人" prop="lzrxm"> | ||
33 | <el-input v-model="ruleForm.lzrxm"></el-input> | ||
34 | </el-form-item> | ||
35 | </el-col> | ||
36 | <el-col :span="6"> | ||
37 | <el-form-item label="证件类型" prop="lzrzjlb"> | ||
38 | <el-select v-model="ruleForm.lzrzjlb" filterable clearable placeholder="请选择"> | ||
39 | <el-option v-for="item in zjzlData" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
40 | </el-option> | ||
41 | </el-select> | ||
42 | </el-form-item> | ||
43 | </el-col> | ||
44 | <el-col :span="6"> | ||
45 | <el-form-item label="证件号" prop="lzrzjh"> | ||
46 | <el-input v-model="ruleForm.lzrzjh"></el-input> | ||
47 | </el-form-item> | ||
48 | </el-col> | ||
49 | <el-col :span="6"> | ||
50 | <el-form-item label="领证人电话" prop="lzrdh"> | ||
51 | <el-input v-model="ruleForm.lzrdh"></el-input> | ||
52 | </el-form-item> | ||
53 | </el-col> | ||
54 | </el-row> | ||
55 | <el-form-item class="text-center"> | ||
56 | <el-button @click="$popupCacel">取消</el-button> | ||
57 | <el-button type="primary" @click="handleSubmit">确定</el-button> | ||
58 | </el-form-item> | ||
59 | </el-form> | ||
60 | </template> | ||
61 | <script> | ||
62 | import Vue from 'vue' | ||
63 | import store from '@/store/index.js' | ||
64 | import table from "@/utils/mixin/table"; | ||
65 | import { getUnclaimedBdcqz, issueCertificate } from "@/api/bdcqz.js"; | ||
66 | import { datas } from "../../javascript/fzxxdata"; | ||
67 | export default { | ||
68 | props: { | ||
69 | formData: { | ||
70 | type: Object, | ||
71 | default: () => { | ||
72 | return {} | ||
73 | } | ||
74 | } | ||
75 | }, | ||
76 | mixins: [table], | ||
77 | data () { | ||
78 | return { | ||
79 | zjzlData: store.getters.dictData['A30'], | ||
80 | ruleForm: { | ||
81 | fzrmc: '', | ||
82 | fzsj: '', | ||
83 | fzsl: '', | ||
84 | bdcqzList: [], | ||
85 | lzrxm: '', | ||
86 | lzrzjlb: '', | ||
87 | lzrzjh: '', | ||
88 | lzrdh: '' | ||
89 | }, | ||
90 | rules: { | ||
91 | lzrxm: [ | ||
92 | { required: true, message: '请输入领证人', trigger: 'blur' } | ||
93 | ], | ||
94 | lzrzjlb: [ | ||
95 | { required: true, message: '请选择证件类型', trigger: 'change' } | ||
96 | ], | ||
97 | lzrzjh: [ | ||
98 | { required: true, message: '请输入证件号', trigger: 'blur' } | ||
99 | ], | ||
100 | lzrdh: [ | ||
101 | { required: true, message: '请输入电话号码', trigger: 'blur' } | ||
102 | ] | ||
103 | }, | ||
104 | tableData: { | ||
105 | total: 0, | ||
106 | columns: datas.columns().lzgrid, | ||
107 | data: [] | ||
108 | } | ||
109 | } | ||
110 | }, | ||
111 | mounted () { | ||
112 | this.$nextTick(() => { | ||
113 | this.loadGrid() | ||
114 | }) | ||
115 | }, | ||
116 | methods: { | ||
117 | //列表初始化 | ||
118 | loadGrid () { | ||
119 | getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => { | ||
120 | if (res.code === 200) { | ||
121 | this.tableData.data = res.result.list; | ||
122 | this.ruleForm.fzrmc = res.result.fzrmc | ||
123 | this.ruleForm.fzsj = res.result.fzsj | ||
124 | this.ruleForm.fzsl = res.result.fzsl | ||
125 | this.ruleForm.bdcqzList = res.result.list; | ||
126 | } | ||
127 | }) | ||
128 | }, | ||
129 | handleSelectionChange (val) { | ||
130 | this.ruleForm.bdcqzList = val | ||
131 | }, | ||
132 | handleRowClick (row) { | ||
133 | this.$refs.table.toggleRowSelection(row) | ||
134 | }, | ||
135 | handleSubmit () { | ||
136 | |||
137 | this.$refs.ruleForm.validate(valid => { | ||
138 | if (valid) { | ||
139 | issueCertificate(this.ruleForm).then(res => { | ||
140 | if (res.code == 200) { | ||
141 | this.$message.success('保存成功'); | ||
142 | this.$popupCacel() | ||
143 | } else { | ||
144 | this.$message.error(res.message) | ||
145 | } | ||
146 | }) | ||
147 | } else { | ||
148 | this.$message.error("请填写领取人信息!") | ||
149 | return false; | ||
150 | } | ||
151 | }) | ||
152 | } | ||
153 | } | ||
154 | } | ||
155 | </script> | ||
156 | <style scoped lang="scss"> | ||
157 | @import "~@/styles/mixin.scss"; | ||
158 | </style> | ||
159 | |||
160 |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-29 14:22:48 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中..." style="height:720px"> | ||
8 | <!-- 表单部分 --> | ||
9 | <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length > 1"> | ||
10 | <el-tab-pane :label="item.qlr + '(' + item.bdcqzh + ')'" :name="item.bsmBdcqz" | ||
11 | v-for="(item, index) in headTabBdcqz" :key="index"></el-tab-pane> | ||
12 | </el-tabs> | ||
13 | <div class="no-data" v-if="headTabBdcqz.length == 0">暂无数据</div> | ||
14 | <!-- <img :src="previewImage" class="imgClass"> --> | ||
15 | <canvas ref="canvas" :width="canvasWidth" :height="canvasHeight"></canvas> | ||
16 | </div> | ||
17 | </template> | ||
18 | |||
19 | <script> | ||
20 | import { datas } from "../../javascript/zsyl.js"; | ||
21 | import { getSlsqBdcqzList, bdcqzPreview } from "@/api/bdcqz.js" | ||
22 | export default { | ||
23 | name: "zsyl", | ||
24 | props: { | ||
25 | formData: { | ||
26 | type: Object, | ||
27 | default: {} | ||
28 | } | ||
29 | }, | ||
30 | data () { | ||
31 | return { | ||
32 | imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'), | ||
33 | canvasWidth: 1018, | ||
34 | canvasHeight: 720, | ||
35 | |||
36 | loading: false, | ||
37 | //印刷序列号集合 | ||
38 | ysxlh: [], | ||
39 | //列名称对象 | ||
40 | columns: [], | ||
41 | //选择的不动产权证文件 | ||
42 | bdcqz: '', | ||
43 | //证书打开类型 是否需要展示打印按钮 | ||
44 | isToPrint: false, | ||
45 | //tab切换栏数组 | ||
46 | headTabBdcqz: [], | ||
47 | //tab选择绑定值 | ||
48 | activeName: '', | ||
49 | //证书图片预览 | ||
50 | previewImage: '', | ||
51 | ruleForm: { | ||
52 | bsmBdcqz: '', | ||
53 | szmc: '不动产权证书', | ||
54 | bdcqzlx: '', | ||
55 | szzh: '', | ||
56 | ysxlh: '', | ||
57 | }, | ||
58 | } | ||
59 | }, | ||
60 | mounted () { | ||
61 | this.columns = datas.columns(); | ||
62 | if (this.formData.bdcqz) { | ||
63 | //从缮证进入 | ||
64 | this.bdcqz = this.formData.bdcqz | ||
65 | } else { | ||
66 | //从按钮进入 | ||
67 | this.getHeadTabBdcqz(); | ||
68 | } | ||
69 | }, | ||
70 | methods: { | ||
71 | //获取证书内容 | ||
72 | getRowValue (code) { | ||
73 | var value = this.bdcqz[code]; | ||
74 | return value; | ||
75 | }, | ||
76 | //获取受理申请下全部不动产权证 | ||
77 | getHeadTabBdcqz () { | ||
78 | this.loading = true | ||
79 | getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => { | ||
80 | if (res.code == 200) { | ||
81 | if (res.result && res.result.length > 0) { | ||
82 | this.activeName = res.result[0].bsmBdcqz | ||
83 | this.bdcqz = res.result[0] | ||
84 | this.headTabBdcqz = res.result | ||
85 | this.drawTextOnImage(); | ||
86 | } | ||
87 | } | ||
88 | this.loading = false | ||
89 | }) | ||
90 | }, | ||
91 | //tab表头切换方法 | ||
92 | handleClick (e) { | ||
93 | this.bdcqz = this.headTabBdcqz[e.index - 0] | ||
94 | this.activeName = this.headTabBdcqz.bsmBdcqz | ||
95 | // this.getBdcqzPreview(); | ||
96 | this.drawTextOnImage() | ||
97 | }, | ||
98 | // getBdcqzPreview () { | ||
99 | // bdcqzPreview(this.bdcqz).then(res => { | ||
100 | // this.loading = false | ||
101 | // let blob = new Blob([res]); | ||
102 | // let url = window.URL.createObjectURL(blob); | ||
103 | // this.previewImage = url; | ||
104 | // this.drawTextOnImage() | ||
105 | // }) | ||
106 | // }, | ||
107 | drawTextOnImage () { | ||
108 | const canvas = this.$refs.canvas; | ||
109 | const context = canvas.getContext('2d'); | ||
110 | const image = new Image(); | ||
111 | image.onload = () => { | ||
112 | context.drawImage(image, 0, 0); | ||
113 | context.font = '15px 楷体'; | ||
114 | context.fillStyle = '#000000'; | ||
115 | context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56); | ||
116 | context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56); | ||
117 | context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56); | ||
118 | context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56); | ||
119 | context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 138, 97); | ||
120 | context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 138, 138); | ||
121 | context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 138, 180); | ||
122 | context.fillText(this.bdcqz.bdcdyh ? this.bdcqz.bdcdyh : '', 138, 223); | ||
123 | context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 138, 263); | ||
124 | context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 138, 303); | ||
125 | context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 138, 346); | ||
126 | context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 138, 386); | ||
127 | context.fillText(this.bdcqz.syqx ? this.bdcqz.syqx : '', 138, 429); | ||
128 | context.fillText(this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk : '', 138, 469); | ||
129 | context.fillText(this.bdcqz.fj ? this.bdcqz.fj : '', 580, 100); | ||
130 | } | ||
131 | image.src = this.imgSrc; | ||
132 | } | ||
133 | } | ||
134 | } | ||
135 | </script> | ||
136 | <style scoped lang="scss"> | ||
137 | @import "~@/styles/mixin.scss"; | ||
138 | |||
139 | .imgClass { | ||
140 | display: inline-block; | ||
141 | height: auto; | ||
142 | max-width: 100%; | ||
143 | } | ||
144 | |||
145 | .middle_padding { | ||
146 | padding-bottom: 10px; | ||
147 | } | ||
148 | |||
149 | .zsyl-button { | ||
150 | text-align: center; | ||
151 | margin-top: 20px; | ||
152 | |||
153 | .operation_button { | ||
154 | width: 100px; | ||
155 | border: 1px solid rgb(0, 121, 254); | ||
156 | } | ||
157 | |||
158 | .dy-button { | ||
159 | color: white; | ||
160 | background-color: rgb(0, 121, 254); | ||
161 | } | ||
162 | } | ||
163 | |||
164 | .table-column { | ||
165 | border-spacing: 1px; | ||
166 | width: 100%; | ||
167 | |||
168 | tr td { | ||
169 | border: 1px solid #ccc; | ||
170 | text-align: center; | ||
171 | height: 40px; | ||
172 | padding: 4px; | ||
173 | font-size: 13px; | ||
174 | background: rgb(251, 249, 229); | ||
175 | } | ||
176 | } | ||
177 | |||
178 | .zsyl-title { | ||
179 | background: #fafbe5; | ||
180 | text-align: center; | ||
181 | padding: 5px 0px; | ||
182 | font-size: 20px; | ||
183 | } | ||
184 | |||
185 | .no-data { | ||
186 | font-size: 18px; | ||
187 | display: flex; | ||
188 | text-align: center; | ||
189 | justify-content: center; | ||
190 | } | ||
191 | </style> |
1 | <!-- | ||
2 | * @Description: 功能:流程图 | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:40:57 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class='flowChart'> | ||
8 | <img :src="formData" alt=""> | ||
9 | </div> | ||
10 | </template> | ||
11 | <script> | ||
12 | |||
13 | export default { | ||
14 | props: { | ||
15 | formData: { | ||
16 | type: String, | ||
17 | default: '' | ||
18 | } | ||
19 | } | ||
20 | } | ||
21 | </script> | ||
22 | <style scoped lang="scss"> | ||
23 | @import "~@/styles/mixin.scss"; | ||
24 | |||
25 | .flowChart { | ||
26 | margin: 20px 0; | ||
27 | } | ||
28 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/djbworkflow/components/fzxx.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-16 15:55:45 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="from-clues"> | ||
8 | <!-- 发证信息 --> | ||
9 | <div class="from-clues-header"> | ||
10 | <el-form :model="ruleForm"> | ||
11 | <el-row :gutter="20"> | ||
12 | <el-col :span="6"> | ||
13 | <el-form-item label="印刷序列号"> | ||
14 | <el-input v-model="ruleForm.ysxlh" clearable placeholder="请输入印刷序列号"></el-input> | ||
15 | </el-form-item> | ||
16 | </el-col> | ||
17 | <el-col :span="6"> | ||
18 | <el-form-item label="证书号"> | ||
19 | <el-input v-model="ruleForm.zsh" clearable placeholder="请输入证书号"></el-input> | ||
20 | </el-form-item> | ||
21 | </el-col> | ||
22 | <el-col :span="6"> | ||
23 | <el-form-item label="权利人"> | ||
24 | <el-input v-model="ruleForm.qlr" clearable placeholder="请输入权利人"></el-input> | ||
25 | </el-form-item> | ||
26 | </el-col> | ||
27 | <el-col :span="6" class="btnColRight"> | ||
28 | <el-form-item> | ||
29 | <el-button type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button> | ||
30 | <el-button type="primary" icon="el-icon-search" @click="zslqClick">证书领取</el-button> | ||
31 | </el-form-item> | ||
32 | </el-col> | ||
33 | </el-row> | ||
34 | </el-form> | ||
35 | </div> | ||
36 | <div class="from-clues-content"> | ||
37 | <lb-table border :column="tableData.columns" :heightNum="210" :data="tableData.data" :pagination="false"> | ||
38 | </lb-table> | ||
39 | </div> | ||
40 | </div> | ||
41 | </template> | ||
42 | <script> | ||
43 | import table from "@/utils/mixin/table"; | ||
44 | import { getCertificateList } from "@/api/bdcqz.js"; | ||
45 | import { datas } from "../javascript/fzxxdata"; | ||
46 | export default { | ||
47 | mixins: [table], | ||
48 | data () { | ||
49 | return { | ||
50 | ruleForm: { | ||
51 | ysxlh: '', | ||
52 | zsh: '', | ||
53 | qlr: '', | ||
54 | bsmSldy: '' | ||
55 | }, | ||
56 | tableData: { | ||
57 | total: 0, | ||
58 | columns: datas.columns().fzgrid, | ||
59 | data: [] | ||
60 | }, | ||
61 | dialogVisible: false | ||
62 | } | ||
63 | }, | ||
64 | methods: { | ||
65 | queryClick () { | ||
66 | this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq; | ||
67 | getCertificateList(this.ruleForm).then(res => { | ||
68 | if (res.code === 200) { | ||
69 | this.tableData.data = res.result ? res.result : [] | ||
70 | } | ||
71 | }) | ||
72 | }, | ||
73 | zslqClick () { | ||
74 | this.$popupDialog("不动产权证领取", "workflow/components/dialog/zslq", {}, '80%', true) | ||
75 | } | ||
76 | } | ||
77 | } | ||
78 | </script> | ||
79 | <style scoped lang='scss'> | ||
80 | @import "~@/styles/public.scss"; | ||
81 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | |||
2 | |||
3 | var qlxxPage = [ | ||
4 | { qllx: "A01", id: "jsydsyq", form: "jsydsyq.vue", label: "集体土地所有权" }, | ||
5 | { qllx: "A02", id: "jsydsyq", form: "jsydsyq.vue", label: "国家土地所有权" }, | ||
6 | { qllx: "A03", id: "jsydsyq", form: "jsydsyq.vue", label: "国有建设用地使用权" }, | ||
7 | { qllx: "A04", id: "", form: "", label: "国有建设用地使用权/房屋所有权" }, | ||
8 | { qllx: "A05", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权" }, | ||
9 | { qllx: "A06", id: "", form: "", label: "宅基地使用权/房屋所有权" }, | ||
10 | { qllx: "A07", id: "jsydsyq", form: "jsydsyq.vue", label: "集体建设用地使用权" }, | ||
11 | { qllx: "A08", id: "", form: "", label: "集体建设用地使用权/房屋所有权" }, | ||
12 | { qllx: "A09", id: "jsydsyq", form: "jsydsyq.vue", label: "土地承包经营权" }, | ||
13 | { qllx: "A11", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权" }, | ||
14 | { qllx: "A12", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权/森林、林木使用权" }, | ||
15 | { qllx: "A13", id: "jsydsyq", form: "jsydsyq.vue", label: "草原使用权" }, | ||
16 | { qllx: "A14", id: "jsydsyq", form: "jsydsyq.vue", label: "水域滩涂养殖权" }, | ||
17 | { qllx: "A15", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权" }, | ||
18 | { qllx: "A16", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权/建(构)筑物所有权" }, | ||
19 | { qllx: "A17", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权(无居民海岛)" }, | ||
20 | { qllx: "A18", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权(无居民海岛)/建筑物(设施)使用权" }, | ||
21 | { qllx: "A19", id: "diyiq", form: "diyiq.vue", label: "地役权" }, | ||
22 | { qllx: "A23", id: "jsydsyq", form: "jsydsyq.vue", label: "国有农用地的使用权" }, | ||
23 | { qllx: "A24", id: "jsydsyq", form: "jsydsyq.vue", label: "国有建设用地使用权/构筑物所有权" }, | ||
24 | { qllx: "A25", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权/构筑物所有权" }, | ||
25 | { qllx: "A26", id: "jsydsyq", form: "jsydsyq.vue", label: "集体建设用地使用权/构筑物所有权" }, | ||
26 | { qllx: "A29", id: "jsydsyq", form: "jsydsyq.vue", label: "国有未利用地的使用权" }, | ||
27 | { qllx: "A30", id: "jsydsyq", form: "jsydsyq.vue", label: "集体农用地使用权" }, | ||
28 | { qllx: "A31", id: "jsydsyq", form: "jsydsyq.vue", label: "土地承包经营权/森林、林木使用权" }, | ||
29 | { qllx: "A33", id: "jsydsyq", form: "jsydsyq.vue", label: "林地经营权/林木所有权" }, | ||
30 | { qllx: "A34", id: "jsydsyq", form: "jsydsyq.vue", label: "林地经营权/林木使用权" }, | ||
31 | { qllx: "A35", id: "jsydsyq", form: "jsydsyq.vue", label: "林地承包经营权/林木所有权" }, | ||
32 | { qllx: "A36", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权/林木所有权" }, | ||
33 | { qllx: "A37", id: "diyaq", form: "diyaq.vue", label: "抵押权" }, | ||
34 | { qllx: "B37", id: "diyaq", form: "diyaq.vue", label: "抵押权" }, | ||
35 | { qllx: "B38", id: "yydj", form: "yydj.vue", label: "异议登记" }, | ||
36 | { qllx: "B39", id: "cfdj", form: "cfdj.vue", label: "查封登记" }, | ||
37 | { qllx: "B40", id: "ygdj", form: "ygdj.vue", label: "预告登记" }, | ||
38 | { qllx: "B41", id: "ygdj", form: "ygdj.vue", label: "预告登记" }, | ||
39 | ]; | ||
40 | |||
41 | //组装登记簿树形结构 | ||
42 | export function loadTreeData(qlxxData, bdcdyh) { | ||
43 | let treedata = []; | ||
44 | //加载封面 | ||
45 | treedata.push({ id: "djbfm", form: "djbfm.vue", label: "登记簿封面" }); | ||
46 | treedata.push({ id: "zdjbxx", form: "zdjbxx.vue", label: "宗地基本信息\n(" + bdcdyh.substring(0, 19) + ")", children: [] }); | ||
47 | treedata[1].children.push({ id: "bdcqldjml", form: "bdcqldjml.vue", label: "不动产权利登记目录", children: [] }); | ||
48 | treedata[1].children[0].children.push({ | ||
49 | id: "bdcqljqtsx", form: "bdcqljqtsx.vue", label: "不动产权利及其他事项\n (" + bdcdyh.slice(19) + ")", children: [], | ||
50 | }); | ||
51 | //主体权利 | ||
52 | treedata[1].children[0].children[0].children.push(getNode(qlxxData.ztqllx, qlxxData.ztql, qlxxData.bdcdylx)); | ||
53 | //抵押权 | ||
54 | treedata[1].children[0].children[0].children.push(getNode("A37", qlxxData.diyaq, '')); | ||
55 | //地役权 | ||
56 | treedata[1].children[0].children[0].children.push(getNode("A19", qlxxData.diyiq, '')); | ||
57 | //预告登记 | ||
58 | treedata[1].children[0].children[0].children.push(getNode("B40", qlxxData.ygdj, '')); | ||
59 | //异议登记 | ||
60 | treedata[1].children[0].children[0].children.push(getNode("B38", qlxxData.yydj, '')); | ||
61 | //查封登记 | ||
62 | treedata[1].children[0].children[0].children.push(getNode("B39", qlxxData.cfdj, '')); | ||
63 | |||
64 | return treedata; | ||
65 | } | ||
66 | |||
67 | //获取权利类型、不动产单元类型对应的树形节点信息 | ||
68 | export function getNode(qllx, qlxx, bdcdylx) { | ||
69 | let node; | ||
70 | for (var i = 0; i < qlxxPage.length; i++) { | ||
71 | if (qlxxPage[i].qllx == qllx) { | ||
72 | if (qllx == "A04" || qllx == "A06" || qllx == "A08") { | ||
73 | if (bdcdylx == "4") { | ||
74 | node = { id: "fdcq1", form: "fdcq1.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"}; | ||
75 | } else { | ||
76 | node = { id: "fdcq2", form: "fdcq2.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"}; | ||
77 | } | ||
78 | } else { | ||
79 | node = { id: qlxxPage[i].id, form: qlxxPage[i].form, label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"}; | ||
80 | } | ||
81 | break; | ||
82 | } | ||
83 | }; | ||
84 | return node; | ||
85 | } | ||
86 |
1 | <!-- | ||
2 | * @Description: workFrame左侧菜单列表-普通 | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-25 10:42:50 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }"> | ||
8 | <div v-if="this.isShowdrawer"> | ||
9 | <div class="title"> | ||
10 | 登记簿列表 | ||
11 | </div> | ||
12 | <el-tree ref="tree" :data="treedata" :props="defaultProps" @node-click="handleNodeClick" | ||
13 | :default-expand-all="true" :expand-on-click-node="false" node-key="id" :default-checked-keys="[showTab]"> | ||
14 | </el-tree> | ||
15 | </div> | ||
16 | <div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click=" | ||
17 | () => { | ||
18 | this.isShowdrawer = !this.isShowdrawer; | ||
19 | } | ||
20 | "></div> | ||
21 | <div class="map-drawer-expand map-drawer" v-else @click=" | ||
22 | () => { | ||
23 | this.isShowdrawer = !this.isShowdrawer; | ||
24 | } | ||
25 | "></div> | ||
26 | </div> | ||
27 | </template> | ||
28 | <script> | ||
29 | import { mapGetters } from 'vuex' | ||
30 | import { leftMenu } from "@/api/fqsq.js" | ||
31 | import { deleteSlbdcdy } from "@/api/ywbl.js"; | ||
32 | import { getBdcqljqtsx } from "@/api/registerBook.js"; | ||
33 | import { loadTreeData, getNode } from "./djbFrameData.js"; | ||
34 | export default { | ||
35 | data () { | ||
36 | return { | ||
37 | //受理申请标识码 | ||
38 | bsmSlsq: this.$route.query.bsmSlsq, | ||
39 | //当前流程所在环节 | ||
40 | bestepid: this.$route.query.bestepid, | ||
41 | //受理申请标识码 | ||
42 | bdcdyid: this.$route.query.bdcdyid, | ||
43 | //当前流程所在环节 | ||
44 | bdcdyh: this.$route.query.bdcdyh, | ||
45 | qllx:this.$route.query.qllx, | ||
46 | // 默认选中 | ||
47 | activeIndex: '0', | ||
48 | // 折叠 | ||
49 | isShowdrawer: true, | ||
50 | // 批量操作 | ||
51 | showBatch: false, | ||
52 | //批量操作按钮名称 | ||
53 | batchButtonName: '', | ||
54 | //左侧菜单数据集合 | ||
55 | unitData: [], | ||
56 | // 设置表单传递数据 | ||
57 | currentSelectProps: {}, | ||
58 | //左侧树形结构数据 | ||
59 | treedata: [], | ||
60 | defaultNode: "", | ||
61 | defaultProps: { | ||
62 | value: "id", | ||
63 | children: "children", | ||
64 | label: "label", | ||
65 | }, | ||
66 | showTab: "bdcqldjml", // 选中状态,根据表格中权利类型判断 | ||
67 | } | ||
68 | }, | ||
69 | mounted () { | ||
70 | this.loadBdcdylist(); | ||
71 | }, | ||
72 | computed: { | ||
73 | ...mapGetters(['isRefresh']) | ||
74 | }, | ||
75 | watch: { | ||
76 | isRefresh: { | ||
77 | handler (newVal, oldVal) { | ||
78 | if (newVal) this.loadBdcdylist() | ||
79 | }, | ||
80 | immediate: true | ||
81 | } | ||
82 | }, | ||
83 | methods: { | ||
84 | //读取申请单元信息 | ||
85 | loadBdcdylist () { | ||
86 | this.loadData () | ||
87 | }, | ||
88 | // 获取登记簿菜单 | ||
89 | loadData () { | ||
90 | getBdcqljqtsx({ | ||
91 | bdcdyid: this.bdcdyid, | ||
92 | bdcdyh: this.bdcdyh, | ||
93 | }).then((res) => { | ||
94 | if (res.code === 200) { | ||
95 | console.log("res.result","res.result",res.result); | ||
96 | this.treedata = loadTreeData(res.result, this.bdcdyh); | ||
97 | console.log("this.treedata","this.treedata",this.treedata); | ||
98 | this.$nextTick(function () { | ||
99 | this.defaultNode = getNode(this.qllx, { linShi: 0, xianShi: 0, liShi: 0 }, ""); | ||
100 | this.$refs.tree.setCurrentKey(this.defaultNode.id); //data[0].id为默认选中的节点 | ||
101 | this.$parent.loadComponent(this.currentSelectProps,this.defaultNode); | ||
102 | }); | ||
103 | } | ||
104 | }); | ||
105 | this.currentSelectProps = { | ||
106 | bdcdyid: this.bdcdyid, | ||
107 | bdcdyh: this.bdcdyh, | ||
108 | qllx: this.qllx, | ||
109 | bsmQlxx: this.bsmQlxx, | ||
110 | }; | ||
111 | // this.$parent.stepForm(); | ||
112 | }, | ||
113 | handleNodeClick (data, node, elem) { | ||
114 | this.$parent.loadComponent(this.currentSelectProps,data); | ||
115 | }, | ||
116 | |||
117 | } | ||
118 | } | ||
119 | </script> | ||
120 | <style scoped lang='scss'> | ||
121 | @import "~@/styles/mixin.scss"; | ||
122 | @import "../../workFrame.scss"; | ||
123 | .leftmenu ul { | ||
124 | height: calc(100vh - 120px); | ||
125 | } | ||
126 | /deep/.rollTable { | ||
127 | height: calc(100vh - 240px) !important; | ||
128 | } | ||
129 | |||
130 | .content { | ||
131 | width: 100%; | ||
132 | height: 100%; | ||
133 | display: flex; | ||
134 | |||
135 | .left { | ||
136 | width: 256px; | ||
137 | height: 704px; | ||
138 | background-color: #f5f5f5; | ||
139 | color: #333; | ||
140 | border: 1px solid rgb(228, 228, 228); | ||
141 | } | ||
142 | |||
143 | .right { | ||
144 | width: calc(100% - 256px); | ||
145 | height: 704px; | ||
146 | // overflow-y: scroll; | ||
147 | overflow: auto; | ||
148 | background-color: #f5f5f5; | ||
149 | border: 1px solid rgb(228, 228, 228); | ||
150 | } | ||
151 | } | ||
152 | |||
153 | /deep/ .expanded.el-tree-node__expand-icon, | ||
154 | /deep/ .el-tree-node__expand-icon { | ||
155 | visibility: hidden; | ||
156 | } | ||
157 | |||
158 | /deep/ .el-tree-node__content { | ||
159 | border: 1px solid rgb(228, 228, 228); | ||
160 | height: 45px; | ||
161 | } | ||
162 | |||
163 | /deep/ .el-tree-node:focus>.el-tree-node__content { | ||
164 | background-color: #f5f5f5; | ||
165 | color: #0079fe; | ||
166 | border-right: 4px solid #0079fe; | ||
167 | } | ||
168 | |||
169 | /deep/.el-tree-node { | ||
170 | white-space: pre-wrap; | ||
171 | } | ||
172 | |||
173 | /deep/ .is-current>.el-tree-node__content { | ||
174 | background-color: #f5f5f5; | ||
175 | color: #0079fe; | ||
176 | border-right: 4px solid #0079fe; | ||
177 | } | ||
178 | .title-batch{ | ||
179 | background-color: salmon; | ||
180 | |||
181 | } | ||
182 | </style> |
1 | import filter from '@/utils/filter.js' | ||
2 | |||
3 | class data extends filter { | ||
4 | constructor() { | ||
5 | super() | ||
6 | } | ||
7 | columns() { | ||
8 | return { | ||
9 | //空列值个数 | ||
10 | emptycolNum: 3, | ||
11 | checkList: ["0", "1", "2"], | ||
12 | //权属状态集合 | ||
13 | qsztList: [ | ||
14 | { | ||
15 | value: "0", | ||
16 | label: "临时", | ||
17 | }, | ||
18 | { | ||
19 | value: "1", | ||
20 | label: "现势", | ||
21 | }, | ||
22 | { | ||
23 | value: "2", | ||
24 | label: "历史", | ||
25 | }, | ||
26 | ], | ||
27 | JSYDSYQ: [ | ||
28 | { | ||
29 | prop: "qszt", | ||
30 | label: "权属状态", | ||
31 | }, | ||
32 | { | ||
33 | prop: "qllxmc", | ||
34 | label: "权利类型", | ||
35 | }, | ||
36 | { | ||
37 | prop: "djlxmc", | ||
38 | label: "登记类型", | ||
39 | }, | ||
40 | { | ||
41 | prop: "ssywh", | ||
42 | label: "上手业务号", | ||
43 | }, | ||
44 | { | ||
45 | prop: "dah", | ||
46 | label: "档案号", | ||
47 | }, | ||
48 | { | ||
49 | prop: "ywh", | ||
50 | label: "业务号", | ||
51 | }, | ||
52 | { | ||
53 | prop: "bdcdyh", | ||
54 | label: "不动产单元号", | ||
55 | }, | ||
56 | { | ||
57 | prop: "zl", | ||
58 | label: "坐落", | ||
59 | }, | ||
60 | { | ||
61 | prop: "gyqk", | ||
62 | label: "共有情况", | ||
63 | }, | ||
64 | { | ||
65 | prop: "qlrlx", | ||
66 | label: "权利人类型", | ||
67 | }, | ||
68 | { | ||
69 | prop: "qlrmc", | ||
70 | label: "权利人", | ||
71 | }, | ||
72 | { | ||
73 | prop: "qlrzjzl", | ||
74 | label: "证件种类", | ||
75 | }, | ||
76 | { | ||
77 | prop: "qlrzjhm", | ||
78 | label: "证件号", | ||
79 | }, | ||
80 | { | ||
81 | prop: "mj", | ||
82 | label: "使用权面积(m²)", | ||
83 | }, | ||
84 | { | ||
85 | prop: "qlxzmc", | ||
86 | label: "权利性质", | ||
87 | }, | ||
88 | { | ||
89 | prop: "ytmc", | ||
90 | label: "土地用途", | ||
91 | }, | ||
92 | { | ||
93 | prop: "syqqzsj", | ||
94 | label: "使用权起止时间", | ||
95 | }, | ||
96 | // { | ||
97 | // prop: "syqjssj", | ||
98 | // label: "使用权结束时间", | ||
99 | // }, | ||
100 | // { | ||
101 | // prop: "tdsyqx", | ||
102 | // label: "土地使用期限", | ||
103 | // }, | ||
104 | { | ||
105 | prop: "tdsyqx", | ||
106 | label: "土地使用期限", | ||
107 | }, | ||
108 | { | ||
109 | prop: "qdjg", | ||
110 | label: "取得价格(万元)", | ||
111 | }, | ||
112 | { | ||
113 | prop: "djyy", | ||
114 | label: "登记原因", | ||
115 | }, | ||
116 | { | ||
117 | prop: "bdcqzh", | ||
118 | label: "不动产权证号", | ||
119 | }, | ||
120 | { | ||
121 | prop: "djsj", | ||
122 | label: "登记时间", | ||
123 | }, | ||
124 | { | ||
125 | prop: "dbr", | ||
126 | label: "登簿人", | ||
127 | }, | ||
128 | { | ||
129 | prop: "fj", | ||
130 | label: "附记", | ||
131 | }, | ||
132 | ], | ||
133 | FDCQ2: [ | ||
134 | { | ||
135 | prop: "qszt", | ||
136 | label: "权属状态", | ||
137 | }, | ||
138 | { | ||
139 | prop: "qllxmc", | ||
140 | label: "权利类型", | ||
141 | }, | ||
142 | { | ||
143 | prop: "djlxmc", | ||
144 | label: "登记类型", | ||
145 | }, | ||
146 | { | ||
147 | prop: "ssywh", | ||
148 | label: "上手业务号", | ||
149 | }, | ||
150 | { | ||
151 | prop: "dah", | ||
152 | label: "档案号", | ||
153 | }, | ||
154 | { | ||
155 | prop: "ywh", | ||
156 | label: "业务号", | ||
157 | }, | ||
158 | { | ||
159 | prop: "bdcdyh", | ||
160 | label: "不动产单元号", | ||
161 | }, | ||
162 | { | ||
163 | prop: "zl", | ||
164 | label: "坐落", | ||
165 | }, | ||
166 | { | ||
167 | prop: "gyfs", | ||
168 | label: "共有情况", | ||
169 | }, | ||
170 | { | ||
171 | prop: "qlrlx", | ||
172 | label: "权利人类型", | ||
173 | }, | ||
174 | { | ||
175 | prop: "qlrmc", | ||
176 | label: "权利人", | ||
177 | }, | ||
178 | { | ||
179 | prop: "qlrzjzl", | ||
180 | label: "证件种类", | ||
181 | }, | ||
182 | { | ||
183 | prop: "qlrzjhm", | ||
184 | label: "证件号", | ||
185 | }, | ||
186 | { | ||
187 | prop: "tdsyqr", | ||
188 | label: "土地使用权人", | ||
189 | }, | ||
190 | { | ||
191 | prop: "dytdmj", | ||
192 | label: "独用土地面积(m²)", | ||
193 | }, | ||
194 | { | ||
195 | prop: "fttdmj", | ||
196 | label: "分摊土地面积(m²)", | ||
197 | }, | ||
198 | { | ||
199 | prop: "tdsyqzsj", | ||
200 | label: "土地使用期限", | ||
201 | }, | ||
202 | { | ||
203 | prop: "syqqzsj", | ||
204 | label: "使用权起止时间", | ||
205 | }, | ||
206 | { | ||
207 | prop: "fdcjyjg", | ||
208 | label: "房地产交易价格(万元)", | ||
209 | }, | ||
210 | { | ||
211 | prop: "ytmc", | ||
212 | label: "规划用途", | ||
213 | }, | ||
214 | { | ||
215 | prop: "fwxzmc", | ||
216 | label: "房屋性质", | ||
217 | }, | ||
218 | { | ||
219 | prop: "fwjgmc", | ||
220 | label: "房屋结构", | ||
221 | }, | ||
222 | { | ||
223 | prop: "szc", | ||
224 | label: "所在层", | ||
225 | }, | ||
226 | { | ||
227 | prop: "zcs", | ||
228 | label: "总层数", | ||
229 | }, | ||
230 | { | ||
231 | prop: "mj", | ||
232 | label: "建筑面积(m2)", | ||
233 | }, | ||
234 | { | ||
235 | prop: "zyjzmj", | ||
236 | label: "专有建筑面积(m2)", | ||
237 | }, | ||
238 | |||
239 | { | ||
240 | prop: "ftjzmj", | ||
241 | label: "分摊建筑面积(m2)", | ||
242 | }, | ||
243 | { | ||
244 | prop: "jgsj", | ||
245 | label: "竣工时间", | ||
246 | }, | ||
247 | { | ||
248 | prop: "djyy", | ||
249 | label: "登记原因", | ||
250 | }, | ||
251 | { | ||
252 | prop: "bdcqzh", | ||
253 | label: "不动产权证号", | ||
254 | }, | ||
255 | { | ||
256 | prop: "djsj", | ||
257 | label: "登记时间", | ||
258 | }, | ||
259 | { | ||
260 | prop: "dbr", | ||
261 | label: "登簿人", | ||
262 | }, | ||
263 | { | ||
264 | prop: "fj", | ||
265 | label: "附记", | ||
266 | }, | ||
267 | ], | ||
268 | NYDSYQ: [ | ||
269 | { | ||
270 | prop: "qszt", | ||
271 | label: "权属状态", | ||
272 | }, | ||
273 | { | ||
274 | prop: "qllxmc", | ||
275 | label: "权利类型", | ||
276 | }, | ||
277 | { | ||
278 | prop: "djlxmc", | ||
279 | label: "登记类型", | ||
280 | }, | ||
281 | { | ||
282 | prop: "ssywh", | ||
283 | label: "上手业务号", | ||
284 | }, | ||
285 | { | ||
286 | prop: "dah", | ||
287 | label: "档案号", | ||
288 | }, | ||
289 | { | ||
290 | prop: "ywh", | ||
291 | label: "业务号", | ||
292 | }, | ||
293 | { | ||
294 | prop: "bdcdyh", | ||
295 | label: "不动产单元号", | ||
296 | }, | ||
297 | { | ||
298 | prop: "zl", | ||
299 | label: "坐落", | ||
300 | }, | ||
301 | { | ||
302 | prop: "gyqk", | ||
303 | label: "共有情况", | ||
304 | }, | ||
305 | { | ||
306 | prop: "qlrlx", | ||
307 | label: "权利人类型", | ||
308 | }, | ||
309 | { | ||
310 | prop: "qlrmc", | ||
311 | label: "权利人", | ||
312 | }, | ||
313 | { | ||
314 | prop: "qlrzjzl", | ||
315 | label: "证件种类", | ||
316 | }, | ||
317 | { | ||
318 | prop: "qlrzjhm", | ||
319 | label: "证件号", | ||
320 | }, | ||
321 | { | ||
322 | prop: "mj", | ||
323 | label: "使用权面积(m²)", | ||
324 | }, | ||
325 | { | ||
326 | prop: "qlxzmc", | ||
327 | label: "权利性质", | ||
328 | }, | ||
329 | { | ||
330 | prop: "ytmc", | ||
331 | label: "土地用途", | ||
332 | }, | ||
333 | { | ||
334 | prop: "fbfdm", | ||
335 | label: "发包方代码", | ||
336 | }, | ||
337 | { | ||
338 | prop: "fbfmc", | ||
339 | label: "发包方名称", | ||
340 | }, | ||
341 | { | ||
342 | prop: "cbqzsj", | ||
343 | label: "承包起止时间", | ||
344 | }, | ||
345 | { | ||
346 | prop: "cbqx", | ||
347 | label: "承包期限", | ||
348 | }, | ||
349 | { | ||
350 | prop: "tdsyqxzmc", | ||
351 | label: "土地所有权性质", | ||
352 | }, | ||
353 | { | ||
354 | prop: "syttlxmc", | ||
355 | label: "水域滩涂类型", | ||
356 | }, | ||
357 | { | ||
358 | prop: "yzyfsmc", | ||
359 | label: "养殖业方式", | ||
360 | }, | ||
361 | { | ||
362 | prop: "cyzl", | ||
363 | label: "草原质量", | ||
364 | }, | ||
365 | { | ||
366 | prop: "syzcl", | ||
367 | label: "适宜载畜量", | ||
368 | }, | ||
369 | { | ||
370 | prop: "ydyhflmc", | ||
371 | label: "用地用海分类", | ||
372 | }, | ||
373 | { | ||
374 | prop: "djyy", | ||
375 | label: "登记原因", | ||
376 | }, | ||
377 | { | ||
378 | prop: "bdcqzh", | ||
379 | label: "不动产权证号", | ||
380 | }, | ||
381 | { | ||
382 | prop: "djsj", | ||
383 | label: "登记时间", | ||
384 | }, | ||
385 | { | ||
386 | prop: "dbr", | ||
387 | label: "登簿人", | ||
388 | }, | ||
389 | { | ||
390 | prop: "fj", | ||
391 | label: "附记", | ||
392 | }, | ||
393 | ], | ||
394 | DYAQ: [ | ||
395 | { | ||
396 | prop: "qszt", | ||
397 | label: "权属状态", | ||
398 | }, | ||
399 | { | ||
400 | prop: "dybdclx", | ||
401 | label: "抵押不动产类型", | ||
402 | }, | ||
403 | { | ||
404 | prop: "djlxmc", | ||
405 | label: "登记类型", | ||
406 | }, | ||
407 | { | ||
408 | prop: "ssywh", | ||
409 | label: "上手业务号", | ||
410 | }, | ||
411 | { | ||
412 | prop: "dah", | ||
413 | label: "档案号", | ||
414 | }, | ||
415 | { | ||
416 | prop: "ywh", | ||
417 | label: "业务号", | ||
418 | }, | ||
419 | { | ||
420 | prop: "bdcdyh", | ||
421 | label: "不动产单元号", | ||
422 | }, | ||
423 | { | ||
424 | prop: "zl", | ||
425 | label: "在建建筑物坐落", | ||
426 | }, | ||
427 | { | ||
428 | prop: "qlrmc", | ||
429 | label: "抵押权人", | ||
430 | }, | ||
431 | { | ||
432 | prop: "qlrzjzl", | ||
433 | label: "抵押权人证件种类", | ||
434 | }, | ||
435 | { | ||
436 | prop: "qlrzjhm", | ||
437 | label: "抵押权人证件号", | ||
438 | }, | ||
439 | { | ||
440 | prop: "ywrmc", | ||
441 | label: "抵押人", | ||
442 | }, | ||
443 | { | ||
444 | prop: "ywrzjzl", | ||
445 | label: "抵押人证件种类", | ||
446 | }, | ||
447 | { | ||
448 | prop: "ywrzjhm", | ||
449 | label: "抵押人证件号", | ||
450 | }, | ||
451 | { | ||
452 | prop: "dyfs", | ||
453 | label: "抵押方式", | ||
454 | render: (h, scope) => { | ||
455 | return ( | ||
456 | <div> | ||
457 | <span v-show={scope.row.dyfs == '1'}>一般抵押权</span> | ||
458 | <span v-show={scope.row.dyfs == '2'}>最高额抵押权</span> | ||
459 | </div> | ||
460 | ) | ||
461 | } | ||
462 | }, | ||
463 | { | ||
464 | prop: "sfygdj", | ||
465 | label: "是否预告登记", | ||
466 | }, | ||
467 | { | ||
468 | prop: "zjjzwdyfw", | ||
469 | label: "在建建筑物抵押范围", | ||
470 | }, | ||
471 | { | ||
472 | prop: "dymj", | ||
473 | label: "抵押面积", | ||
474 | }, | ||
475 | { | ||
476 | prop: "bdbzzqse", | ||
477 | label: "被担保主债权数额(万元)", | ||
478 | }, | ||
479 | { | ||
480 | prop: "dbfw", | ||
481 | label: "担保范围", | ||
482 | }, | ||
483 | { | ||
484 | prop: "zwlxqssj", | ||
485 | label: "债务履行起始时间", | ||
486 | }, | ||
487 | { | ||
488 | prop: "zwlxjssj", | ||
489 | label: "债务履行结束时间", | ||
490 | }, | ||
491 | { | ||
492 | prop: "zwlxqx", | ||
493 | label: "债务履行期限(债务确定期间)", | ||
494 | }, | ||
495 | { | ||
496 | prop: "zgzqqdsshse", | ||
497 | label: "最高债权确定事实和数额", | ||
498 | }, | ||
499 | { | ||
500 | prop: "sfczyd", | ||
501 | label: "是否存在禁止或限制转让抵押不动产的约定", | ||
502 | }, | ||
503 | { | ||
504 | prop: "djyy", | ||
505 | label: "登记原因", | ||
506 | }, | ||
507 | { | ||
508 | prop: "bdcqzh", | ||
509 | label: "不动产登记证明号", | ||
510 | }, | ||
511 | { | ||
512 | prop: "fj", | ||
513 | label: "附记", | ||
514 | }, | ||
515 | { | ||
516 | prop: "qlqtzk", | ||
517 | label: "权利其他状况", | ||
518 | }, | ||
519 | { | ||
520 | prop: "djsj", | ||
521 | label: "登记时间", | ||
522 | }, | ||
523 | { | ||
524 | prop: "dbr", | ||
525 | label: "登簿人", | ||
526 | }, | ||
527 | { | ||
528 | prop: "djjg", | ||
529 | label: "登记机构", | ||
530 | }, | ||
531 | { | ||
532 | prop: "zxywh", | ||
533 | label: "注销抵押业务号", | ||
534 | }, | ||
535 | { | ||
536 | prop: "zxdyyy", | ||
537 | label: "注销抵押原因", | ||
538 | }, | ||
539 | { | ||
540 | prop: "zxsj", | ||
541 | label: "注销登记时间", | ||
542 | }, | ||
543 | { | ||
544 | prop: "zxdbr", | ||
545 | label: "登簿人", | ||
546 | }, | ||
547 | |||
548 | ], | ||
549 | DYIQ: [ | ||
550 | { | ||
551 | prop: "qszt", | ||
552 | label: "权属状态", | ||
553 | }, | ||
554 | { | ||
555 | prop: "djlxmc", | ||
556 | label: "登记类型", | ||
557 | }, | ||
558 | { | ||
559 | prop: "ssywh", | ||
560 | label: "上手业务号", | ||
561 | }, | ||
562 | { | ||
563 | prop: "dah", | ||
564 | label: "档案号", | ||
565 | }, | ||
566 | { | ||
567 | prop: "ywh", | ||
568 | label: "业务号", | ||
569 | }, | ||
570 | { | ||
571 | prop: "gydbdcdyh", | ||
572 | label: "供役地不动产单元号", | ||
573 | }, | ||
574 | { | ||
575 | prop: "gydqlr", | ||
576 | label: "供役地权利人", | ||
577 | }, | ||
578 | { | ||
579 | prop: "gydqlrzjzl", | ||
580 | label: "供役地权利人证件种类", | ||
581 | }, | ||
582 | { | ||
583 | prop: "xydbdcdyh", | ||
584 | label: "需役地不动产单元号", | ||
585 | }, | ||
586 | { | ||
587 | prop: "xydzl", | ||
588 | label: "需役地坐落", | ||
589 | }, | ||
590 | { | ||
591 | prop: "xydqlr", | ||
592 | label: "需役地权利人", | ||
593 | }, | ||
594 | { | ||
595 | prop: "xydqlrzjzl", | ||
596 | label: "需役地权利人证件种类", | ||
597 | }, | ||
598 | { | ||
599 | prop: "xydzjh", | ||
600 | label: "需役地证件号", | ||
601 | }, | ||
602 | { | ||
603 | prop: "djyy", | ||
604 | label: "登记原因", | ||
605 | }, | ||
606 | { | ||
607 | prop: "dyqnr", | ||
608 | label: "地役权内容", | ||
609 | }, | ||
610 | { | ||
611 | prop: "qlqssj", | ||
612 | label: "权利起始时间", | ||
613 | }, | ||
614 | { | ||
615 | prop: "qljssj", | ||
616 | label: "权利结束时间", | ||
617 | }, | ||
618 | { | ||
619 | prop: "bdcdjzmh", | ||
620 | label: "不动产登记证明号", | ||
621 | }, | ||
622 | { | ||
623 | prop: "qxdm", | ||
624 | label: "区县代码", | ||
625 | }, | ||
626 | { | ||
627 | prop: "djjg", | ||
628 | label: "登记机构", | ||
629 | }, | ||
630 | { | ||
631 | prop: "dbr", | ||
632 | label: "登簿人", | ||
633 | }, | ||
634 | { | ||
635 | prop: "djsj", | ||
636 | label: "登记时间", | ||
637 | }, | ||
638 | ], | ||
639 | YGDJ: [ | ||
640 | { | ||
641 | prop: "qszt", | ||
642 | label: "权属状态", | ||
643 | }, | ||
644 | { | ||
645 | prop: "ygdjzl", | ||
646 | label: "预告登记种类", | ||
647 | }, | ||
648 | { | ||
649 | prop: "djlxmc", | ||
650 | label: "登记类型", | ||
651 | }, | ||
652 | { | ||
653 | prop: "ssywh", | ||
654 | label: "上手业务号", | ||
655 | }, | ||
656 | { | ||
657 | prop: "dah", | ||
658 | label: "档案号", | ||
659 | }, | ||
660 | { | ||
661 | prop: "ywh", | ||
662 | label: "业务号", | ||
663 | }, | ||
664 | { | ||
665 | prop: "bdcdyh", | ||
666 | label: "不动产单元号", | ||
667 | }, | ||
668 | { | ||
669 | prop: "zl", | ||
670 | label: "坐落", | ||
671 | }, | ||
672 | { | ||
673 | prop: "qlrmc", | ||
674 | label: "权利人", | ||
675 | }, | ||
676 | { | ||
677 | prop: "qlrzjzl", | ||
678 | label: "证件种类", | ||
679 | }, | ||
680 | { | ||
681 | prop: "qlrzjhm", | ||
682 | label: "证件号", | ||
683 | }, | ||
684 | { | ||
685 | prop: "ywrmc", | ||
686 | label: "义务人", | ||
687 | }, | ||
688 | { | ||
689 | prop: "ywrzjzl", | ||
690 | label: "证件种类", | ||
691 | }, | ||
692 | { | ||
693 | prop: "ywrzjhm", | ||
694 | label: "证件号", | ||
695 | }, | ||
696 | { | ||
697 | prop: "fwxz", | ||
698 | label: "房屋性质", | ||
699 | }, | ||
700 | { | ||
701 | prop: "ghyt", | ||
702 | label: "规划用途", | ||
703 | }, | ||
704 | { | ||
705 | prop: "fwzcs", | ||
706 | label: "房屋总层数", | ||
707 | }, | ||
708 | { | ||
709 | prop: "fwszc", | ||
710 | label: "房屋所在层", | ||
711 | }, | ||
712 | { | ||
713 | prop: "jzmj", | ||
714 | label: "建筑面积", | ||
715 | }, | ||
716 | { | ||
717 | prop: "djyy", | ||
718 | label: "登记原因", | ||
719 | }, | ||
720 | { | ||
721 | prop: "qdjg", | ||
722 | label: "取得价格/被担保主债权数额", | ||
723 | }, | ||
724 | { | ||
725 | prop: "jedw", | ||
726 | label: "金额单位", | ||
727 | }, | ||
728 | { | ||
729 | prop: "dbfw", | ||
730 | label: "担保范围", | ||
731 | }, | ||
732 | { | ||
733 | prop: "sfczyd", | ||
734 | label: "是否存在禁止或限制转让抵押不动产的约定", | ||
735 | }, | ||
736 | { | ||
737 | prop: "djsj", | ||
738 | label: "登记时间", | ||
739 | }, | ||
740 | { | ||
741 | prop: "bdcqzh", | ||
742 | label: "不动产登记证明号", | ||
743 | }, | ||
744 | { | ||
745 | prop: "dbr", | ||
746 | label: "登簿人", | ||
747 | }, | ||
748 | { | ||
749 | prop: "zxywh", | ||
750 | label: "注销预告业务号", | ||
751 | }, | ||
752 | { | ||
753 | prop: "zxyy", | ||
754 | label: "注销预告原因", | ||
755 | }, | ||
756 | { | ||
757 | prop: "zxsj", | ||
758 | label: "注销时间", | ||
759 | } | ||
760 | ], | ||
761 | CFDJ: [ | ||
762 | { | ||
763 | prop: "qszt", | ||
764 | label: "权属状态", | ||
765 | }, | ||
766 | { | ||
767 | prop: "cflxmc", | ||
768 | label: "查封类型", | ||
769 | }, | ||
770 | { | ||
771 | prop: "ssywh", | ||
772 | label: "上手业务号", | ||
773 | }, | ||
774 | { | ||
775 | prop: "dah", | ||
776 | label: "档案号", | ||
777 | }, | ||
778 | { | ||
779 | prop: "ywh", | ||
780 | label: "业务号", | ||
781 | }, | ||
782 | { | ||
783 | prop: "bdcdyh", | ||
784 | label: "不动产单元号", | ||
785 | }, | ||
786 | { | ||
787 | prop: "zl", | ||
788 | label: "坐落", | ||
789 | }, | ||
790 | { | ||
791 | prop: "cfjg", | ||
792 | label: "查封机关", | ||
793 | }, | ||
794 | { | ||
795 | prop: "qlrmc", | ||
796 | label: "不动产权利人", | ||
797 | }, | ||
798 | { | ||
799 | prop: "qlrzjzl", | ||
800 | label: "证件种类", | ||
801 | }, | ||
802 | { | ||
803 | prop: "qlrzjhm", | ||
804 | label: "证件号", | ||
805 | }, | ||
806 | |||
807 | { | ||
808 | prop: "cfwh", | ||
809 | label: "查封文号", | ||
810 | }, | ||
811 | { | ||
812 | prop: "cfwj", | ||
813 | label: "查封文件", | ||
814 | }, | ||
815 | { | ||
816 | prop: "cfqssj", | ||
817 | label: "查封起始时间", | ||
818 | }, | ||
819 | { | ||
820 | prop: "cfjssj", | ||
821 | label: "查封结束时间", | ||
822 | }, | ||
823 | { | ||
824 | prop: "cfqx", | ||
825 | label: "查封期限", | ||
826 | }, | ||
827 | { | ||
828 | prop: "cffw", | ||
829 | label: "查封范围", | ||
830 | }, | ||
831 | { | ||
832 | prop: "djjg", | ||
833 | label: "登记机构", | ||
834 | }, | ||
835 | { | ||
836 | prop: "dbr", | ||
837 | label: "登簿人", | ||
838 | }, | ||
839 | { | ||
840 | prop: "djsj", | ||
841 | label: "登记时间", | ||
842 | }, | ||
843 | { | ||
844 | prop: "zxywh", | ||
845 | label: "解封业务号", | ||
846 | }, | ||
847 | { | ||
848 | prop: "jfjg", | ||
849 | label: "解封机关", | ||
850 | }, | ||
851 | { | ||
852 | prop: "jfwh", | ||
853 | label: "解封文号", | ||
854 | }, | ||
855 | { | ||
856 | prop: "jfwj", | ||
857 | label: "解封文件", | ||
858 | }, | ||
859 | { | ||
860 | prop: "zxsj", | ||
861 | label: "解封登记时间", | ||
862 | }, | ||
863 | { | ||
864 | prop: "zxdbr", | ||
865 | label: "解封登簿人", | ||
866 | }, | ||
867 | ], | ||
868 | YYDJ: [ | ||
869 | { | ||
870 | prop: "qszt", | ||
871 | label: "权属状态", | ||
872 | }, | ||
873 | { | ||
874 | prop: "qllxmc", | ||
875 | label: "权利类型", | ||
876 | }, | ||
877 | { | ||
878 | prop: "djlxmc", | ||
879 | label: "登记类型", | ||
880 | }, | ||
881 | { | ||
882 | prop: "ssywh", | ||
883 | label: "上手业务号", | ||
884 | }, | ||
885 | { | ||
886 | prop: "dah", | ||
887 | label: "档案号", | ||
888 | }, | ||
889 | { | ||
890 | prop: "ywh", | ||
891 | label: "业务号", | ||
892 | }, | ||
893 | { | ||
894 | prop: "bdcdyh", | ||
895 | label: "不动产单元号", | ||
896 | }, | ||
897 | { | ||
898 | prop: "zl", | ||
899 | label: "坐落", | ||
900 | }, | ||
901 | { | ||
902 | prop: "yyr", | ||
903 | label: "异议人", | ||
904 | }, | ||
905 | { | ||
906 | prop: "zjzl", | ||
907 | label: "证件种类", | ||
908 | }, | ||
909 | { | ||
910 | prop: "zjh", | ||
911 | label: "证件号", | ||
912 | }, | ||
913 | { | ||
914 | prop: "yysx", | ||
915 | label: "异议事项", | ||
916 | }, | ||
917 | { | ||
918 | prop: "bdcdjzmh", | ||
919 | label: "不动产登记证明号", | ||
920 | }, | ||
921 | { | ||
922 | prop: "djjg", | ||
923 | label: "登记机构", | ||
924 | }, | ||
925 | { | ||
926 | prop: "dbr", | ||
927 | label: "登簿人", | ||
928 | }, | ||
929 | { | ||
930 | prop: "djsj", | ||
931 | label: "登记时间", | ||
932 | }, | ||
933 | { | ||
934 | prop: "zxyyywh", | ||
935 | label: "注销异议业务号", | ||
936 | }, | ||
937 | { | ||
938 | prop: "zxyyyy", | ||
939 | label: "注销异议原因", | ||
940 | }, | ||
941 | { | ||
942 | prop: "zxyydbr", | ||
943 | label: "注销异议登簿人", | ||
944 | }, | ||
945 | { | ||
946 | prop: "zxyydjsj", | ||
947 | label: "注销异议登记时间", | ||
948 | }, | ||
949 | ], | ||
950 | } | ||
951 | } | ||
952 | |||
953 | |||
954 | } | ||
955 | |||
956 | let datas = new data() | ||
957 | |||
958 | export { | ||
959 | datas | ||
960 | } |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:15 | ||
5 | --> | ||
6 | <template> | ||
7 | <div> | ||
8 | <div class="process-viewer"> | ||
9 | <div v-show="!isLoading" ref="processCanvas" class="process-canvas" style="height: 280px;" /> | ||
10 | <!-- 自定义箭头样式,用于成功状态下流程连线箭头 --> | ||
11 | <defs ref="customSuccessDefs"> | ||
12 | <marker id="sequenceflow-end-white-success" view-box="0 0 20 20" ref-x="11" ref-y="10" marker-width="10" | ||
13 | marker-height="10" orient="auto"> | ||
14 | <path class="success-arrow" d="M 1 5 L 11 10 L 1 15 Z" | ||
15 | style="stroke-width: 1px; stroke-linecap: round; stroke-dasharray: 10000, 1;" /> | ||
16 | </marker> | ||
17 | <marker id="conditional-flow-marker-white-success" view-box="0 0 20 20" ref-x="-1" ref-y="10" marker-width="10" | ||
18 | marker-height="10" orient="auto"> | ||
19 | <path class="success-conditional" d="M 0 10 L 8 6 L 16 10 L 8 14 Z" | ||
20 | style="stroke-width: 1px; stroke-linecap: round; stroke-dasharray: 10000, 1;" /> | ||
21 | </marker> | ||
22 | </defs> | ||
23 | <!-- 自定义箭头样式,用于失败状态下流程连线箭头 --> | ||
24 | <defs ref="customFailDefs"> | ||
25 | <marker id="sequenceflow-end-white-fail" view-box="0 0 20 20" ref-x="11" ref-y="10" marker-width="10" | ||
26 | marker-height="10" orient="auto"> | ||
27 | <path class="fail-arrow" d="M 1 5 L 11 10 L 1 15 Z" | ||
28 | style="stroke-width: 1px; stroke-linecap: round; stroke-dasharray: 10000, 1;" /> | ||
29 | </marker> | ||
30 | <marker id="conditional-flow-marker-white-fail" view-box="0 0 20 20" ref-x="-1" ref-y="10" marker-width="10" | ||
31 | marker-height="10" orient="auto"> | ||
32 | <path class="fail-conditional" d="M 0 10 L 8 6 L 16 10 L 8 14 Z" | ||
33 | style="stroke-width: 1px; stroke-linecap: round; stroke-dasharray: 10000, 1;" /> | ||
34 | </marker> | ||
35 | </defs> | ||
36 | |||
37 | <div style="position: absolute; top: 0px; left: 0px; width: 100%;"> | ||
38 | <el-row type="flex" justify="end"> | ||
39 | <el-button-group key="scale-control" size="medium"> | ||
40 | <el-button size="medium" type="default" :plain="true" :disabled="defaultZoom <= 0.3" icon="el-icon-zoom-out" | ||
41 | @click="processZoomOut()" /> | ||
42 | <el-button size="medium" type="default" style="width: 90px;">{{ Math.floor(this.defaultZoom * 10 * 10) + "%" | ||
43 | }}</el-button> | ||
44 | <el-button size="medium" type="default" :plain="true" :disabled="defaultZoom >= 3.9" icon="el-icon-zoom-in" | ||
45 | @click="processZoomIn()" /> | ||
46 | <el-button size="medium" type="default" icon="el-icon-c-scale-to-original" @click="processReZoom()" /> | ||
47 | <slot /> | ||
48 | </el-button-group> | ||
49 | </el-row> | ||
50 | </div> | ||
51 | </div> | ||
52 | <!-- 已完成节点悬浮弹窗 --> | ||
53 | <div class="information-list"> | ||
54 | <el-select v-model="selectValue" @change="handleSelect"> | ||
55 | <el-option v-for="item in selectOptions" :key="item.value" :label="item.label" :value="item.value"> | ||
56 | </el-option> | ||
57 | </el-select> | ||
58 | <el-table height="190" :data="taskCommentList" size="mini" border header-cell-class-name="table-header-gray"> | ||
59 | <el-table-column label="序号" header-align="center" align="center" type="index" width="55px" /> | ||
60 | <el-table-column label="流程状态" header-align="center" align="center"> | ||
61 | <template slot-scope="scope"> | ||
62 | <div v-if="scope.row.finishTime == null">正在办理</div> | ||
63 | <div v-else>已完结</div> | ||
64 | </template> | ||
65 | </el-table-column> | ||
66 | <el-table-column label="环节名称" prop="taskName" minWidth="100" align="center" /> | ||
67 | <el-table-column label="办理人" prop="agent" minWidth="120" align="center" /> | ||
68 | <el-table-column label="处理时间" prop="createTime" width="160" align="center" /> | ||
69 | <el-table-column label="办结时间" prop="finishTime" width="160" align="center" /> | ||
70 | <el-table-column label="操作方式" align="center"> | ||
71 | </el-table-column> | ||
72 | </el-table> | ||
73 | </div> | ||
74 | </div> | ||
75 | </template> | ||
76 | <script> | ||
77 | import '@/styles/package/theme/index.scss' | ||
78 | import BpmnViewer from 'bpmn-js/lib/Viewer' | ||
79 | import { getusername } from "@/api/getusername.js"; | ||
80 | import MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas' | ||
81 | export default { | ||
82 | props: { | ||
83 | formData: { | ||
84 | type: Object, | ||
85 | default: {} | ||
86 | } | ||
87 | }, | ||
88 | data () { | ||
89 | return { | ||
90 | dlgTitle: undefined, | ||
91 | defaultZoom: 1, | ||
92 | // 是否正在加载流程图 | ||
93 | isLoading: true, | ||
94 | bpmnViewer: undefined, | ||
95 | // 已完成流程元素 | ||
96 | processNodeInfo: undefined, | ||
97 | // 当前任务id | ||
98 | selectTaskId: undefined, | ||
99 | // 任务节点审批记录 | ||
100 | taskList:[], | ||
101 | taskCommentList: [], | ||
102 | // 已完成任务悬浮延迟Timer | ||
103 | hoverTimer: null, | ||
104 | // 下拉 | ||
105 | selectValue: '', | ||
106 | selectOptions: [] | ||
107 | } | ||
108 | }, | ||
109 | created () { | ||
110 | |||
111 | this.$nextTick(() => { | ||
112 | // 获取流程记录 | ||
113 | this.getCommentList() | ||
114 | this.setProcessStatus(this.formData.finishedInfo); | ||
115 | this.importXML(this.formData.xml) | ||
116 | |||
117 | }) | ||
118 | }, | ||
119 | destroyed () { | ||
120 | this.clearViewer() | ||
121 | }, | ||
122 | methods: { | ||
123 | processReZoom () { | ||
124 | this.defaultZoom = 1 | ||
125 | this.bpmnViewer.get('canvas').zoom('fit-viewport', 'auto') | ||
126 | }, | ||
127 | processZoomIn (zoomStep = 0.1) { | ||
128 | const newZoom = Math.floor(this.defaultZoom * 100 + zoomStep * 100) / 100 | ||
129 | if (newZoom > 4) { | ||
130 | throw new Error('[Process Designer Warn ]: The zoom ratio cannot be greater than 4') | ||
131 | } | ||
132 | this.defaultZoom = newZoom | ||
133 | this.bpmnViewer.get('canvas').zoom(this.defaultZoom) | ||
134 | }, | ||
135 | processZoomOut (zoomStep = 0.1) { | ||
136 | const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100 | ||
137 | if (newZoom < 0.2) { | ||
138 | throw new Error('[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2') | ||
139 | } | ||
140 | this.defaultZoom = newZoom | ||
141 | this.bpmnViewer.get('canvas').zoom(this.defaultZoom) | ||
142 | }, | ||
143 | getOperationTagType (type) { | ||
144 | return 'success' | ||
145 | }, | ||
146 | // 流程图预览清空 | ||
147 | clearViewer (a) { | ||
148 | if (this.$refs.processCanvas) { | ||
149 | this.$refs.processCanvas.innerHTML = '' | ||
150 | } | ||
151 | if (this.bpmnViewer) { | ||
152 | this.bpmnViewer.destroy() | ||
153 | } | ||
154 | this.bpmnViewer = null | ||
155 | }, | ||
156 | // 添加自定义箭头 | ||
157 | addCustomDefs () { | ||
158 | const canvas = this.bpmnViewer.get('canvas') | ||
159 | const svg = canvas._svg | ||
160 | const customSuccessDefs = this.$refs.customSuccessDefs | ||
161 | const customFailDefs = this.$refs.customFailDefs | ||
162 | svg.appendChild(customSuccessDefs) | ||
163 | svg.appendChild(customFailDefs) | ||
164 | }, | ||
165 | // 任务悬浮弹窗 | ||
166 | onSelectElement (element) { | ||
167 | this.selectTaskId = undefined | ||
168 | this.dlgTitle = undefined | ||
169 | let allfinishedTaskSet = [...this.processNodeInfo.finishedTaskSet, ...this.processNodeInfo.unfinishedTaskSet] | ||
170 | if (this.processNodeInfo == null || allfinishedTaskSet == null) | ||
171 | return | ||
172 | if (element == null || allfinishedTaskSet.indexOf(element.id) === -1) { | ||
173 | return | ||
174 | } | ||
175 | this.selectTaskId = element.id | ||
176 | this.selectValue = element.id | ||
177 | this.dlgTitle = element.businessObject ? element.businessObject.name : undefined | ||
178 | // 计算当前悬浮任务审批记录,如果记录为空不显示弹窗 | ||
179 | this.taskCommentList = (this.taskList || []).filter(item => { | ||
180 | return item.taskDefKey === this.selectTaskId | ||
181 | }) | ||
182 | if (this.selectTaskId.length > 3) { | ||
183 | this.taskCommentList = this.taskList; | ||
184 | } | ||
185 | }, | ||
186 | // 下拉列表切换 | ||
187 | handleSelect (val) { | ||
188 | this.taskCommentList = (this.taskList || []).filter(item => { | ||
189 | return item.taskDefKey === val | ||
190 | }) | ||
191 | if (val.length > 3) { | ||
192 | this.taskCommentList = this.taskList; | ||
193 | } | ||
194 | }, | ||
195 | // 显示流程图 | ||
196 | async importXML (xml) { | ||
197 | let xmlData = this.$x2js.xml2js(xml).definitions.process; | ||
198 | this.selectOptions = xmlData.userTask.map(item => { | ||
199 | return { value: item._id, label: item._name } | ||
200 | }) | ||
201 | this.selectOptions = [{ value: xmlData.startEvent._id, label: '浏览记录' }, ...this.selectOptions] | ||
202 | this.selectOptions = this.selectOptions.map(item => { | ||
203 | if (this.formData.finishedInfo.finishedTaskSet.includes(item.value)) { | ||
204 | return item | ||
205 | } | ||
206 | if (this.formData.finishedInfo.unfinishedTaskSet.includes(item.value)) { | ||
207 | return item | ||
208 | } | ||
209 | }).filter(Boolean); | ||
210 | this.selectValue = xmlData.startEvent._id | ||
211 | this.clearViewer('a') | ||
212 | if (xml != null && xml !== '') { | ||
213 | try { | ||
214 | this.bpmnViewer = new BpmnViewer({ | ||
215 | additionalModules: [ | ||
216 | // 移动整个画布 | ||
217 | MoveCanvasModule | ||
218 | ], | ||
219 | container: this.$refs.processCanvas | ||
220 | }) | ||
221 | // 任务节点悬浮事件 | ||
222 | this.bpmnViewer.on('element.click', ({ element }) => { | ||
223 | this.onSelectElement(element) | ||
224 | }) | ||
225 | await this.bpmnViewer.importXML(xml) | ||
226 | this.isLoading = true | ||
227 | this.addCustomDefs() | ||
228 | } catch (e) { | ||
229 | this.clearViewer('b') | ||
230 | } finally { | ||
231 | this.isLoading = false | ||
232 | this.setProcessStatus(this.processNodeInfo) | ||
233 | this.$nextTick(() => { | ||
234 | this.processReZoom() | ||
235 | }) | ||
236 | } | ||
237 | } | ||
238 | }, | ||
239 | // 获取流程记录 | ||
240 | getCommentList() { | ||
241 | this.formData.allCommentList.forEach(async (item,index) => { | ||
242 | var arr=item.assigneeName.split(","); | ||
243 | // 获取用户名 | ||
244 | let res = await getusername(arr) | ||
245 | if(res){ | ||
246 | let str="" | ||
247 | res.data.content.forEach((el,i) => { | ||
248 | if(str==""){ | ||
249 | str=el.name; | ||
250 | }else{ | ||
251 | str += ","+el.name; | ||
252 | |||
253 | } | ||
254 | this.formData.allCommentList[index].agent=str | ||
255 | }) | ||
256 | } | ||
257 | |||
258 | }) | ||
259 | setTimeout(() => { | ||
260 | this.taskList =this.formData.allCommentList; | ||
261 | // 处理数据之后赋值 | ||
262 | this.taskCommentList=this.taskList | ||
263 | }, 100) | ||
264 | // this.$nextTick(() => { | ||
265 | // this.taskList =this.formData.allCommentList; | ||
266 | // this.taskCommentList=this.taskList | ||
267 | // }) | ||
268 | }, | ||
269 | |||
270 | // 设置流程图元素状态 | ||
271 | setProcessStatus (processNodeInfo) { | ||
272 | this.processNodeInfo = processNodeInfo | ||
273 | if (this.isLoading || this.processNodeInfo == null || this.bpmnViewer == null) return | ||
274 | const { finishedTaskSet, rejectedTaskSet, unfinishedTaskSet, finishedSequenceFlowSet } = this.processNodeInfo | ||
275 | const canvas = this.bpmnViewer.get('canvas') | ||
276 | const elementRegistry = this.bpmnViewer.get('elementRegistry') | ||
277 | if (Array.isArray(finishedSequenceFlowSet)) { | ||
278 | finishedSequenceFlowSet.forEach(item => { | ||
279 | if (item != null) { | ||
280 | canvas.addMarker(item, 'success') | ||
281 | const element = elementRegistry.get(item) | ||
282 | const conditionExpression = element.businessObject.conditionExpression | ||
283 | if (conditionExpression) { | ||
284 | canvas.addMarker(item, 'condition-expression') | ||
285 | } | ||
286 | } | ||
287 | }) | ||
288 | } | ||
289 | if (Array.isArray(finishedTaskSet)) { | ||
290 | finishedTaskSet.forEach(item => canvas.addMarker(item, 'success')) | ||
291 | } | ||
292 | if (Array.isArray(unfinishedTaskSet)) { | ||
293 | unfinishedTaskSet.forEach(item => canvas.addMarker(item, 'primary')) | ||
294 | } | ||
295 | if (Array.isArray(rejectedTaskSet)) { | ||
296 | rejectedTaskSet.forEach(item => { | ||
297 | if (item != null) { | ||
298 | const element = elementRegistry.get(item) | ||
299 | if (element.type.includes('Task')) { | ||
300 | canvas.addMarker(item, 'danger') | ||
301 | } else { | ||
302 | canvas.addMarker(item, 'warning') | ||
303 | } | ||
304 | } | ||
305 | }) | ||
306 | } | ||
307 | |||
308 | } | ||
309 | } | ||
310 | } | ||
311 | </script> | ||
312 | <style scoped lang="scss"> | ||
313 | .information-list { | ||
314 | height: 220px; | ||
315 | margin-top: 10px; | ||
316 | |||
317 | p { | ||
318 | font-size: 16px; | ||
319 | line-height: 24px; | ||
320 | } | ||
321 | } | ||
322 | /deep/.bjs-powered-by { | ||
323 | display: none; | ||
324 | } | ||
325 | // /deep/.information-list { | ||
326 | // height: 170px; | ||
327 | // overflow: visible; | ||
328 | // } | ||
329 | </style> |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:20 | ||
5 | --> | ||
6 | <template> | ||
7 | <div> | ||
8 | <lb-table :column="column" :pagination="false" :key="key" :heightNumSetting="true" :minHeight="150" | ||
9 | :data="tableDataList"> | ||
10 | </lb-table> | ||
11 | <addQlr v-model="dialog" :details="details" :showButton="showButton" @updateDetail="handleupdateDetail" /> | ||
12 | </div> | ||
13 | </template> | ||
14 | <script> | ||
15 | import addQlr from './dialog/addQlr.vue' | ||
16 | import { mapGetters } from 'vuex' | ||
17 | export default { | ||
18 | components: { | ||
19 | addQlr | ||
20 | }, | ||
21 | computed: { | ||
22 | ...mapGetters(["dictData"]), | ||
23 | }, | ||
24 | props: { | ||
25 | tableData: { | ||
26 | type: Array, | ||
27 | default: function () { | ||
28 | return [] | ||
29 | } | ||
30 | }, | ||
31 | gyfs: { | ||
32 | type: String, | ||
33 | default: '1' | ||
34 | } | ||
35 | }, | ||
36 | data () { | ||
37 | return { | ||
38 | key: 0, | ||
39 | dataIndex: 0, | ||
40 | dialog: false, | ||
41 | isaddupdate: false, | ||
42 | showButton: this.$route.query.viewtype ? false : true, | ||
43 | details: {}, | ||
44 | tableDataList: [], | ||
45 | InformationTable: [ | ||
46 | { | ||
47 | width: '50', | ||
48 | renderHeader: (h, scope) => { | ||
49 | return <div> { | ||
50 | this.$route.query.viewtype == 1 ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.addClick() }}></i> | ||
51 | } | ||
52 | </div> | ||
53 | }, | ||
54 | render: (h, scope) => { | ||
55 | return ( | ||
56 | <div> | ||
57 | { | ||
58 | this.$route.query.viewtype == 1 ? <span>{scope.$index + 1}</span> : | ||
59 | <i class="el-icon-minus pointer" onClick={() => { this.deleClick(scope.$index, scope.row) }}></i> | ||
60 | } | ||
61 | </div> | ||
62 | ) | ||
63 | } | ||
64 | }, | ||
65 | { | ||
66 | label: '身份证读卡器', | ||
67 | align: 'center', | ||
68 | render: (h, scope) => { | ||
69 | return <el-button type="text" icon="el-icon-tickets" onClick={() => { this.readClick(scope) }}>读取</el-button> | ||
70 | } | ||
71 | }, | ||
72 | { | ||
73 | prop: "sqrmc", | ||
74 | label: "姓名/名称" | ||
75 | }, | ||
76 | { | ||
77 | prop: "zjzl", | ||
78 | label: "证件种类", | ||
79 | render: (h, scope) => { | ||
80 | return this.dictData['A30'] && this.dictData['A30'].map(option => { | ||
81 | if (option.dcode == scope.row.zjzl) { | ||
82 | return <span>{option.dname}</span> | ||
83 | } | ||
84 | }) | ||
85 | } | ||
86 | }, | ||
87 | { | ||
88 | prop: "zjh", | ||
89 | label: "证件号" | ||
90 | }, | ||
91 | { | ||
92 | prop: "dh", | ||
93 | label: "联系电话" | ||
94 | }, | ||
95 | { | ||
96 | label: '操作', | ||
97 | render: (h, scope) => { | ||
98 | return ( | ||
99 | <div> | ||
100 | { | ||
101 | this.$route.query.viewtype ? <el-button | ||
102 | icon="el-icon-view" | ||
103 | type="text" | ||
104 | onClick={() => { this.queryViewClick(scope.$index, scope.row) }}>查看</el-button> : <el-button | ||
105 | icon="el-icon-edit-outline" | ||
106 | type="text" | ||
107 | onClick={() => { this.editClick(scope.$index, scope.row) }}>编辑</el-button> | ||
108 | } | ||
109 | </div> | ||
110 | ) | ||
111 | } | ||
112 | } | ||
113 | ], | ||
114 | column: [] | ||
115 | } | ||
116 | }, | ||
117 | watch: { | ||
118 | tableData: { | ||
119 | handler: function (val, oldVal) { | ||
120 | let that = this | ||
121 | this.$nextTick(() => { | ||
122 | if (val.length == 0 || !val) { | ||
123 | that.tableDataList = _.cloneDeep([{ | ||
124 | sqrmc: '', | ||
125 | dlrzjlx: '', | ||
126 | dlrzjh: '', | ||
127 | fr: '' | ||
128 | }]) | ||
129 | } else { | ||
130 | that.tableDataList = _.cloneDeep(val) | ||
131 | } | ||
132 | }) | ||
133 | }, | ||
134 | immediate: true, | ||
135 | deep: true | ||
136 | }, | ||
137 | gyfs: { | ||
138 | handler (newVal, oldValue) { | ||
139 | let dataList = _.cloneDeep(this.InformationTable) | ||
140 | if (newVal == 0) { | ||
141 | // this.column = _.cloneDeep(dataList).slice(1, dataList.length) | ||
142 | this.column = _.cloneDeep(dataList) | ||
143 | |||
144 | } else if ((newVal == '1' || newVal == '3')) { | ||
145 | this.column = dataList | ||
146 | } else { | ||
147 | this.column = _.cloneDeep(dataList) | ||
148 | this.column.splice( | ||
149 | 2, 0, { | ||
150 | prop: "fs", | ||
151 | label: "份数" | ||
152 | }) | ||
153 | } | ||
154 | }, | ||
155 | immediate: true | ||
156 | } | ||
157 | }, | ||
158 | methods: { | ||
159 | handleupdateDetail (value) { | ||
160 | if (this.isaddupdate) { | ||
161 | if (!_.isEqual(value, this.tableData)) { | ||
162 | this.tableDataList[this.tableDataList.length] = _.cloneDeep(value); | ||
163 | this.$emit('upDateQlrxxList', this.tableDataList) | ||
164 | } | ||
165 | } else { | ||
166 | if (!_.isEqual(value, this.tableData)) { | ||
167 | this.tableDataList[this.dataIndex] = _.cloneDeep(value); | ||
168 | this.$emit('upDateQlrxxList', this.tableDataList) | ||
169 | } | ||
170 | } | ||
171 | this.key++ | ||
172 | }, | ||
173 | // 新增 | ||
174 | addClick () { | ||
175 | if (this.gyfs == '0' && this.tableDataList.length > 0) { | ||
176 | this.$message.warning("当前共有方式为单独所有,无法添加多个权利人") | ||
177 | } else { | ||
178 | this.dialog = true | ||
179 | this.isaddupdate = true | ||
180 | } | ||
181 | }, | ||
182 | |||
183 | // 删除 | ||
184 | deleClick (index, row) { | ||
185 | this.$confirm('确定要删除吗, 是否继续?', '提示', { | ||
186 | confirmButtonText: '确定', | ||
187 | cancelButtonText: '取消', | ||
188 | type: 'warning' | ||
189 | }).then(() => { | ||
190 | this.tableData.splice(index, 1) | ||
191 | }).catch(() => { | ||
192 | }); | ||
193 | }, | ||
194 | |||
195 | // 身份证读取 | ||
196 | readClick () { }, | ||
197 | |||
198 | // 修改 | ||
199 | editClick (index, row) { | ||
200 | // popupDialog("申请人信息", "workflow/components/addQlr", { | ||
201 | // showButton: this.$route.query.viewtype ? false : true, | ||
202 | // dataIndex :index, | ||
203 | // details :row, | ||
204 | // isaddupdate :false | ||
205 | // }); | ||
206 | this.dataIndex = index | ||
207 | this.dialog = true | ||
208 | this.details = row | ||
209 | this.isaddupdate = false | ||
210 | }, | ||
211 | queryViewClick (index, row) { | ||
212 | // popupDialog("申请人信息", "workflow/components/addQlr", { | ||
213 | // showButton: this.$route.query.viewtype ? false : true, | ||
214 | // details: row, | ||
215 | // }); | ||
216 | this.dialog = true | ||
217 | this.details = row | ||
218 | } | ||
219 | } | ||
220 | } | ||
221 | </script> |
src/views/djbworkflow/components/spyj.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: 功能:审批意见 | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:24 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class='spyj loadingtext'> | ||
8 | <div class="box"> | ||
9 | <b class="spyj_title">审批表</b> | ||
10 | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px"> | ||
11 | <div class="spyj_form" v-for="(item, index) in tableData" :key="index"> | ||
12 | <div class="item_left"> | ||
13 | {{ item.jdmc }}意见 | ||
14 | </div> | ||
15 | <div class="item_right"> | ||
16 | <el-row> | ||
17 | <el-col :span="24"> | ||
18 | <el-form-item label-width="0" class="opinion_item" prop="shyj"> | ||
19 | <el-input type="textarea" :rows="4" class="opinion" placeholder="请输入审批意见" | ||
20 | v-if="item.stepShjy == '1' && ableOperation" v-model="ruleForm.shyj"></el-input> | ||
21 | <el-input type="textarea" :rows="4" class="opinion" v-model="item.shyj" v-else :disabled="true"> | ||
22 | </el-input> | ||
23 | <el-button class="opinion_btn" @click="commonOpinion" | ||
24 | v-if="item.stepShjy == '1' && ableOperation">常用意见</el-button> | ||
25 | </el-form-item> | ||
26 | </el-col> | ||
27 | </el-row> | ||
28 | <el-row> | ||
29 | <el-col :span="16"> | ||
30 | <el-form-item label="审查人" prop="shryxm"> | ||
31 | {{ item.shryxm }} | ||
32 | </el-form-item> | ||
33 | </el-col> | ||
34 | <el-col :span="8"> | ||
35 | <el-form-item label="审核时间" prop="shjssj" :key="refresh"> | ||
36 | {{ item.shjssj }} | ||
37 | </el-form-item> | ||
38 | </el-col> | ||
39 | </el-row> | ||
40 | </div> | ||
41 | </div> | ||
42 | <div class="submit_button" v-if="ableOperation"> | ||
43 | <el-button type="primary" @click="onSubmit">保存</el-button> | ||
44 | </div> | ||
45 | </el-form> | ||
46 | </div> | ||
47 | <el-empty v-if="isNoData" description="暂无数据"></el-empty> | ||
48 | </div> | ||
49 | </template> | ||
50 | <script> | ||
51 | import { getSpyjList, saveSpyj, saveSpyjBySlsq } from "@/api/fqsq.js"; | ||
52 | import { mapGetters } from 'vuex' | ||
53 | export default { | ||
54 | computed: { | ||
55 | ...mapGetters(['userData', 'yjsqOptions']) | ||
56 | }, | ||
57 | data () { | ||
58 | return { | ||
59 | isNoData: false, | ||
60 | bsmSlsq: '', | ||
61 | //刷新值 | ||
62 | refresh: 10, | ||
63 | ableOperation: true, | ||
64 | bsmSlsq: this.$route.query.bsmSlsq, | ||
65 | bestepid: this.$route.query.bestepid, | ||
66 | ruleForm: {}, | ||
67 | rules: { | ||
68 | shyj: [ | ||
69 | { required: true, message: '请输入审批意见', trigger: 'blur' } | ||
70 | ], | ||
71 | }, | ||
72 | tableData: [], | ||
73 | propsParam: {} | ||
74 | } | ||
75 | }, | ||
76 | watch: { | ||
77 | yjsqOptions: { | ||
78 | handler (val) { | ||
79 | this.ruleForm.shyj = val | ||
80 | }, | ||
81 | deep: true, | ||
82 | immediate: true | ||
83 | }, | ||
84 | }, | ||
85 | mounted () { | ||
86 | this.propsParam = this.$attrs; | ||
87 | if (this.$route.query.viewtype) { | ||
88 | this.ableOperation = false | ||
89 | } | ||
90 | this.list(); | ||
91 | }, | ||
92 | methods: { | ||
93 | //审批意见数据初始化 | ||
94 | list () { | ||
95 | let that = this | ||
96 | this.$startLoading() | ||
97 | var formdata = new FormData(); | ||
98 | formdata.append("bsmBusiness", this.propsParam.bsmBusiness); | ||
99 | formdata.append("bestepid", this.$route.query.bestepid); | ||
100 | formdata.append("ableOperation", this.ableOperation) | ||
101 | getSpyjList(formdata).then((res) => { | ||
102 | this.$endLoading() | ||
103 | if (res.code === 200 && res.result) { | ||
104 | this.tableData = res.result ? res.result : [] | ||
105 | if (res.result.length == 0) { | ||
106 | that.isNoData = true | ||
107 | } | ||
108 | this.ruleForm = res.result[res.result.length - 1] | ||
109 | } | ||
110 | }) | ||
111 | }, | ||
112 | onSubmit () { | ||
113 | this.ruleForm.bsmSlsq = this.bsmSlsq | ||
114 | this.ruleForm.bestepid = this.bestepid | ||
115 | saveSpyjBySlsq(this.ruleForm).then(res => { | ||
116 | if (res.code === 200) { | ||
117 | this.$message.success("保存成功") | ||
118 | this.refresh += 1 | ||
119 | } else { | ||
120 | this.$message.error(res.message) | ||
121 | } | ||
122 | }) | ||
123 | }, | ||
124 | //打开常用意见列表弹窗 | ||
125 | commonOpinion () { | ||
126 | this.$popupDialog("常用意见", "workflow/components/dialog/commonOpinion", {}, "70%", true) | ||
127 | }, | ||
128 | //使用常用意见 | ||
129 | useOpinion (opinion) { | ||
130 | this.ruleForm.shyj = opinion | ||
131 | } | ||
132 | } | ||
133 | } | ||
134 | </script> | ||
135 | <style scoped lang='scss'> | ||
136 | @import "~@/styles/mixin.scss"; | ||
137 | |||
138 | .spyj { | ||
139 | width: 100%; | ||
140 | height: 100%; | ||
141 | background-color: #f5f5f5; | ||
142 | padding: 5px; | ||
143 | .box { | ||
144 | overflow-x: auto; | ||
145 | width: 100%; | ||
146 | height: 95%; | ||
147 | background: #fff; | ||
148 | text-align: center; | ||
149 | padding: 4px; | ||
150 | overflow-y: scroll; | ||
151 | padding-top: 20px; | ||
152 | padding: 20px 40px; | ||
153 | } | ||
154 | .spyj_title { | ||
155 | line-height: 68px; | ||
156 | border: 1px solid $borderColor; | ||
157 | text-align: center; | ||
158 | font-size: 22px; | ||
159 | font-weight: 400; | ||
160 | background-color: #eceef2; | ||
161 | display: block; | ||
162 | border-bottom: none; | ||
163 | } | ||
164 | |||
165 | /deep/.el-form-item { | ||
166 | margin-bottom: 0; | ||
167 | } | ||
168 | |||
169 | .bottom10 { | ||
170 | margin-bottom: 15px; | ||
171 | } | ||
172 | |||
173 | .spyj_form { | ||
174 | display: flex; | ||
175 | border: 1px solid $borderColor; | ||
176 | |||
177 | .item_left { | ||
178 | width: 150px; | ||
179 | background-color: #f8f8fa; | ||
180 | color: #606266; | ||
181 | display: flex; | ||
182 | font-size: 14px; | ||
183 | text-indent: 80px; | ||
184 | align-items: center; | ||
185 | border-right: 1px solid $borderColor; | ||
186 | } | ||
187 | |||
188 | .item_right { | ||
189 | flex: 1; | ||
190 | width: 100%; | ||
191 | |||
192 | /deep/.el-form-item__label { | ||
193 | background-color: #f8f8fa; | ||
194 | } | ||
195 | /deep/.el-form-item__content { | ||
196 | display: block; | ||
197 | text-align: left; | ||
198 | text-indent: 10px; | ||
199 | } | ||
200 | .opinion_item { | ||
201 | /deep/.el-form-item__error { | ||
202 | margin-top: -16px !important; | ||
203 | left: 3px; | ||
204 | } | ||
205 | |||
206 | border-bottom: 1px solid $borderColor; | ||
207 | } | ||
208 | |||
209 | .opinion { | ||
210 | position: relative; | ||
211 | font-size: 14px; | ||
212 | |||
213 | /deep/.el-textarea__inner { | ||
214 | border: none; | ||
215 | } | ||
216 | } | ||
217 | |||
218 | .opinion_btn { | ||
219 | position: absolute; | ||
220 | right: 15px; | ||
221 | bottom: 10px; | ||
222 | } | ||
223 | } | ||
224 | } | ||
225 | |||
226 | .submit_button { | ||
227 | text-align: center; | ||
228 | margin: 15px 0; | ||
229 | } | ||
230 | } | ||
231 | </style> |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:35 | ||
5 | --> | ||
6 | <template> | ||
7 | <lb-table :column="column" :maxHeight="300" heightNumSetting :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 | width: '50', | ||
42 | renderHeader: (h, scope) => { | ||
43 | return <div> { | ||
44 | this.$route.query.viewtype == 1 ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }}></i> | ||
45 | } | ||
46 | </div> | ||
47 | }, | ||
48 | render: (h, scope) => { | ||
49 | return ( | ||
50 | <div> | ||
51 | { | ||
52 | this.$route.query.viewtype == 1 ? <span>{scope.$index + 1}</span> : | ||
53 | <i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i> | ||
54 | } | ||
55 | </div> | ||
56 | ) | ||
57 | } | ||
58 | }, | ||
59 | { | ||
60 | prop: "sqrmc", | ||
61 | label: "姓名/名称" | ||
62 | }, | ||
63 | { | ||
64 | prop: "zjzl", | ||
65 | label: "证件种类" | ||
66 | }, | ||
67 | { | ||
68 | prop: "zjh", | ||
69 | label: "证件号" | ||
70 | }, | ||
71 | { | ||
72 | prop: "dh", | ||
73 | label: "联系电话" | ||
74 | }, | ||
75 | { | ||
76 | prop: "frmc", | ||
77 | label: "法人" | ||
78 | }, | ||
79 | { | ||
80 | label: '操作', | ||
81 | render: (h, scope) => { | ||
82 | return ( | ||
83 | <div> | ||
84 | { | ||
85 | <el-button icon="el-icon-view" type="text" onClick={() => { this.handleView(scope.$index, scope.row) }}>查看</el-button> | ||
86 | } | ||
87 | </div> | ||
88 | ) | ||
89 | } | ||
90 | } | ||
91 | ], | ||
92 | column: this.qlrCommonTable | ||
93 | } | ||
94 | }, | ||
95 | watch: { | ||
96 | tableData: { | ||
97 | handler: function (val, oldVal) { | ||
98 | let that = this | ||
99 | if (val.length == 0 || !val) { | ||
100 | that.tableDataList = _.cloneDeep([{ | ||
101 | sqrmc: '', | ||
102 | dlrzjlx: '', | ||
103 | dlrzjh: '', | ||
104 | fr: '' | ||
105 | }]) | ||
106 | } else { | ||
107 | that.tableDataList = _.cloneDeep(val) | ||
108 | } | ||
109 | }, | ||
110 | immediate: true, | ||
111 | deep: true | ||
112 | }, | ||
113 | gyfs: { | ||
114 | handler (newVal, oldValue) { | ||
115 | let dataList = _.cloneDeep(this.qlrCommonTable) | ||
116 | if (newVal == '1') { | ||
117 | this.column = _.cloneDeep(dataList).slice(1, dataList.length) | ||
118 | } else if ((newVal == '2')) { | ||
119 | this.column = dataList | ||
120 | } else { | ||
121 | this.column = _.cloneDeep(dataList) | ||
122 | this.column.splice( | ||
123 | 2, 0, { | ||
124 | prop: "fs", | ||
125 | label: "份数" | ||
126 | }) | ||
127 | } | ||
128 | }, | ||
129 | immediate: true | ||
130 | } | ||
131 | }, | ||
132 | methods: { | ||
133 | updateDetail (value) { | ||
134 | this.tableDataList[this.dataIndex] = value | ||
135 | this.key++ | ||
136 | this.$emit('upDateQlrxxList', this.tableDataList) | ||
137 | }, | ||
138 | // 添加 | ||
139 | handleAdd () { | ||
140 | this.dialog = true | ||
141 | }, | ||
142 | // 减 | ||
143 | handleMinus (index, row) { | ||
144 | this.tableData.splice(index, 1) | ||
145 | }, | ||
146 | // 身份证读取 | ||
147 | readClick () { }, | ||
148 | // 修改 | ||
149 | handleEdit (index, row) { | ||
150 | console.log(row, 'rowrowrowrowrow'); | ||
151 | this.dataIndex = index | ||
152 | this.dialog = true | ||
153 | this.details = row | ||
154 | }, | ||
155 | handleView () { | ||
156 | this.dialog = true | ||
157 | } | ||
158 | } | ||
159 | } | ||
160 | </script> | ||
161 | <style scoped lang='scss'> | ||
162 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/djbworkflow/components/stop.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:45 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="from-clues"> | ||
8 | <div class="invalid-title"> | ||
9 | <i class="el-icon-question invalid-icon"></i> | ||
10 | <div class="invalid-body">您是否确定终止该业务办理?</div> | ||
11 | </div> | ||
12 | <div class="invalid-reson">终止原因:</div> | ||
13 | <el-input | ||
14 | v-model="stopMessage" | ||
15 | placeholder="请输入终止原因" | ||
16 | type="textarea" | ||
17 | :rows="4"></el-input> | ||
18 | <el-button style="float: right">取消</el-button> | ||
19 | <el-button type="primary" @click="onSubmit" style="float: right">退件</el-button> | ||
20 | </div> | ||
21 | </template> | ||
22 | |||
23 | <script> | ||
24 | import { stopTask } from "@/api/fqsq.js"; | ||
25 | export default { | ||
26 | props: { | ||
27 | formData: { | ||
28 | type: Object, | ||
29 | default: {}, | ||
30 | }, | ||
31 | }, | ||
32 | data () { | ||
33 | return { | ||
34 | stopMessage: "", | ||
35 | }; | ||
36 | }, | ||
37 | methods: { | ||
38 | onSubmit () { | ||
39 | stopTask({ | ||
40 | bsmSlsq: this.formData.bsmSlsq, | ||
41 | bestepid: this.formData.bestepid, | ||
42 | stopMessage: this.stopMessage, | ||
43 | }).then((res) => { | ||
44 | this.$message.success("终止成功"); | ||
45 | setTimeout(() => { | ||
46 | // window.opener.location.reload(); //刷新父窗口 | ||
47 | if (window.opener && window.opener.getBpageList) { | ||
48 | window.opener.getBpageList(); | ||
49 | } else { | ||
50 | window.opener.frames[0].getBpageList(); | ||
51 | } | ||
52 | window.close(); | ||
53 | this.$emit("input", false); | ||
54 | }, 1000); | ||
55 | }); | ||
56 | }, | ||
57 | }, | ||
58 | }; | ||
59 | </script> | ||
60 | <style scoped lang="scss"> | ||
61 | @import "~@/styles/mixin.scss"; | ||
62 | .invalid-title { | ||
63 | display: flex; | ||
64 | align-content: center; | ||
65 | |||
66 | .invalid-icon { | ||
67 | color: rgb(254, 148, 0); | ||
68 | font-size: 34px; | ||
69 | margin-right: 10px; | ||
70 | } | ||
71 | |||
72 | .invalid-body { | ||
73 | line-height: 40px; | ||
74 | margin-bottom: 10px; | ||
75 | } | ||
76 | } | ||
77 | |||
78 | .invalid-reson { | ||
79 | margin-bottom: 10px; | ||
80 | } | ||
81 | |||
82 | .dialog-footer { | ||
83 | margin-top: 10px; | ||
84 | display: flex; | ||
85 | justify-content: flex-end; | ||
86 | } | ||
87 | </style> |
src/views/djbworkflow/components/szxx.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:49 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="szxx"> | ||
8 | <el-card class="box-card" v-for="(item, index) in tableData" :key="index"> | ||
9 | <div slot="header" class="szxx_header"> | ||
10 | <span class="header_type">{{ | ||
11 | item.bdcqzlx == 1 ? "不动产权证书" : "不动产登记证明" | ||
12 | }}</span> | ||
13 | <div class="header_text">{{ item.bdcqzh }}</div> | ||
14 | </div> | ||
15 | <div class="szxx_body card_padding"> | ||
16 | <div class="text color_iray"> | ||
17 | <span>{{ item.qllx }}</span> | ||
18 | </div> | ||
19 | <div class="text color_red"> | ||
20 | <span>{{ item.qlr }}</span> | ||
21 | </div> | ||
22 | <div class="text color_iray"> | ||
23 | <span>{{ item.gyqk }}</span> | ||
24 | </div> | ||
25 | <div class="text color_red"> | ||
26 | <span>{{ item.bdcdyh }}</span> | ||
27 | </div> | ||
28 | <div class="text color_iray"> | ||
29 | <span>{{ item.zl }}</span> | ||
30 | </div> | ||
31 | <div class="text color_red"> | ||
32 | <span>{{ item.yt }}</span> | ||
33 | </div> | ||
34 | <div class="text color_iray"> | ||
35 | <span>{{ item.mj }}</span> | ||
36 | </div> | ||
37 | <div class="text color_red"> | ||
38 | <span>{{ item.syqx }}</span> | ||
39 | </div> | ||
40 | <div class="text color_iray"> | ||
41 | <span>印刷序列号:{{ item.ysxlh }}</span> | ||
42 | </div> | ||
43 | </div> | ||
44 | <div class="card_padding"> | ||
45 | <div class="top_line middle_margin"></div> | ||
46 | <div class="text" v-if="item.ysxlh"> | ||
47 | <el-button class="operation_button" type="text" @click="openInvalidDiglog(item)">再次打印({{ item.szcs | ||
48 | }})</el-button> | ||
49 | <el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button> | ||
50 | </div> | ||
51 | <div class="text" v-else> | ||
52 | <el-button class="operation_button" type="text" @click="openZsylDialog(item, 2)">证书打印1({{ item.szcs | ||
53 | }})</el-button> | ||
54 | <el-button class="operation_button" type="text" @click="openRecordPop(item)">缮证记录</el-button> | ||
55 | </div> | ||
56 | </div> | ||
57 | </el-card> | ||
58 | <el-dialog title="证书作废" :visible.sync="invalidDiglog" width="30%" :modal-append-to-body="false" top="30vh"> | ||
59 | <div class="invalid-diglog"> | ||
60 | <div class="invalid-title"> | ||
61 | <i class="el-icon-question invalid-icon"></i> | ||
62 | <div class="invalid-body">您确定作废证书并再次打印?</div> | ||
63 | </div> | ||
64 | <div class="invalid-reson">作废原因:</div> | ||
65 | <el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input> | ||
66 | <div class="text-center pt-10"> | ||
67 | <el-button @click="closeInvalidDiglog">取 消</el-button> | ||
68 | <el-button type="primary" @click="confirmInvalid">确 定</el-button> | ||
69 | </div> | ||
70 | </div> | ||
71 | </el-dialog> | ||
72 | <el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty> | ||
73 | </div> | ||
74 | </template> | ||
75 | <script> | ||
76 | import { mapGetters } from 'vuex' | ||
77 | import { getSlsqBdcqzList, invalidCertificate } from "@/api/bdcqz.js"; | ||
78 | export default { | ||
79 | props: {}, | ||
80 | data () { | ||
81 | return { | ||
82 | dialog: false, | ||
83 | tableData: [], | ||
84 | bdcqzlx: 1, | ||
85 | bdcqz: {}, | ||
86 | zfyy: "", | ||
87 | invalidDiglog: false, | ||
88 | bsmSz: "", | ||
89 | bsmBdcqz: "" | ||
90 | }; | ||
91 | }, | ||
92 | computed: { | ||
93 | ...mapGetters(['isRefresh']) | ||
94 | }, | ||
95 | watch: { | ||
96 | isRefresh: { | ||
97 | handler (newVal, oldVal) { | ||
98 | if (newVal) this.list() | ||
99 | } | ||
100 | } | ||
101 | }, | ||
102 | created () { | ||
103 | this.list(); | ||
104 | }, | ||
105 | methods: { | ||
106 | //初始化列表 | ||
107 | list () { | ||
108 | var bsmSlsq = this.$route.query.bsmSlsq; | ||
109 | getSlsqBdcqzList({ bsmSlsq: bsmSlsq }).then((res) => { | ||
110 | if (res.code === 200) { | ||
111 | this.tableData = res.result; | ||
112 | if (res.result) { | ||
113 | this.bdcqz = res.result[0]; | ||
114 | } | ||
115 | } | ||
116 | }); | ||
117 | }, | ||
118 | //打开证书预览弹窗 | ||
119 | openZsylDialog (item, type) { | ||
120 | if (type == 1) { | ||
121 | //证书预览 | ||
122 | this.$popupDialog("证书预览", "workflow/components/dialog/zsyl", { bdcqz: item }, "70%", true); | ||
123 | } else { | ||
124 | this.$popupDialog("不动产权证书", "workflow/components/dialog/zsdy", { bdcqz: item }, "70%", true); | ||
125 | } | ||
126 | }, | ||
127 | //再次打印 | ||
128 | openInvalidDiglog (item) { | ||
129 | this.bsmSz = item.bsmSz; | ||
130 | this.invalidDiglog = true; | ||
131 | this.bsmBdcqz = item.bsmBdcqz | ||
132 | }, | ||
133 | closeInvalidDiglog () { | ||
134 | this.invalidDiglog = false; | ||
135 | this.bsmSz = ""; | ||
136 | this.zfyy = ""; | ||
137 | }, | ||
138 | //作废缮证信息 | ||
139 | confirmInvalid () { | ||
140 | invalidCertificate({ bsmBdcqz: this.bsmBdcqz, zfyy: this.zfyy }).then((res) => { | ||
141 | if (res.code === 200) { | ||
142 | this.list(); | ||
143 | this.$message.success("作废成功"); | ||
144 | this.invalidDiglog = false; | ||
145 | this.zfyy = '' | ||
146 | this.openZsylDialog(this.bdcqz); | ||
147 | } else { | ||
148 | this.$message.error(res.message); | ||
149 | } | ||
150 | }); | ||
151 | }, | ||
152 | openRecordPop (item) { | ||
153 | this.$popupDialog("缮证记录", "workflow/components/dialog/szRecord", { bsmBdcqz: item.bsmBdcqz }, '60%', true) | ||
154 | } | ||
155 | }, | ||
156 | }; | ||
157 | </script> | ||
158 | <style scoped lang='scss'> | ||
159 | @import "~@/styles/public.scss"; | ||
160 | .szxx { | ||
161 | box-sizing: border-box; | ||
162 | padding-right: 15px; | ||
163 | width: 100%; | ||
164 | height: 600px; | ||
165 | overflow-y: scroll; | ||
166 | |||
167 | .box-card { | ||
168 | float: left; | ||
169 | width: 300px; | ||
170 | margin-top: 10px; | ||
171 | margin-right: 10px; | ||
172 | |||
173 | .szxx_body { | ||
174 | height: 240px; | ||
175 | } | ||
176 | } | ||
177 | } | ||
178 | |||
179 | .szxx_header { | ||
180 | color: #ffffff; | ||
181 | font-weight: bolder; | ||
182 | font-size: 16px; | ||
183 | |||
184 | .header_type { | ||
185 | display: flex; | ||
186 | justify-content: center; | ||
187 | align-content: center; | ||
188 | } | ||
189 | |||
190 | .header_text { | ||
191 | text-align: center; | ||
192 | margin-top: 10px; | ||
193 | line-height: 30px; | ||
194 | } | ||
195 | } | ||
196 | |||
197 | .top_line { | ||
198 | border-top: 2px solid rgb(222, 222, 222); | ||
199 | } | ||
200 | |||
201 | .text { | ||
202 | margin-bottom: 10px; | ||
203 | text-align: center; | ||
204 | } | ||
205 | |||
206 | .color_iray { | ||
207 | color: rgb(153, 153, 153); | ||
208 | } | ||
209 | |||
210 | .color_red { | ||
211 | color: rgb(255, 89, 24); | ||
212 | } | ||
213 | |||
214 | .middle_margin { | ||
215 | margin-bottom: 10px; | ||
216 | } | ||
217 | |||
218 | .operation_button { | ||
219 | border: 1px solid rgb(0, 121, 254); | ||
220 | padding: 5px; | ||
221 | text-align: center; | ||
222 | } | ||
223 | |||
224 | .card_padding { | ||
225 | padding-top: 8px; | ||
226 | } | ||
227 | |||
228 | .invalid-diglog { | ||
229 | padding-bottom: 20px; | ||
230 | font-size: 16px; | ||
231 | font-weight: bold; | ||
232 | color: rgb(99, 99, 99); | ||
233 | |||
234 | .invalid-title { | ||
235 | display: flex; | ||
236 | align-content: center; | ||
237 | |||
238 | .invalid-icon { | ||
239 | color: rgb(254, 148, 0); | ||
240 | font-size: 34px; | ||
241 | margin-right: 10px; | ||
242 | } | ||
243 | |||
244 | .invalid-body { | ||
245 | line-height: 40px; | ||
246 | margin-bottom: 10px; | ||
247 | } | ||
248 | } | ||
249 | |||
250 | .invalid-reson { | ||
251 | margin-bottom: 10px; | ||
252 | } | ||
253 | |||
254 | .dialog-footer { | ||
255 | margin-top: 10px; | ||
256 | display: flex; | ||
257 | justify-content: flex-end; | ||
258 | } | ||
259 | } | ||
260 | |||
261 | /deep/.el-card__header { | ||
262 | background-color: rgb(198, 67, 83); | ||
263 | } | ||
264 | |||
265 | /deep/.el-card__body { | ||
266 | padding: 0px; | ||
267 | } | ||
268 | </style> |
src/views/djbworkflow/components/th.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:41:57 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="from-clues"> | ||
8 | <!-- 表单部分 --> | ||
9 | <div class="from-clues-header"> | ||
10 | <div class="title">请选择要退回到的环节:</div> | ||
11 | <el-form ref="queryForm" label-width="90px"> | ||
12 | <ul style="margin-bottom: 15px"> | ||
13 | <li | ||
14 | v-for="(item, index) in dataList" | ||
15 | class="listDetail" | ||
16 | :key="index" | ||
17 | @click="changeSelectItem(item)"> | ||
18 | <p class="icon"> | ||
19 | <el-radio | ||
20 | v-model="selectActivity" | ||
21 | :label="item.activityId" | ||
22 | @change="changeSelectItem(item)"></el-radio> | ||
23 | </p> | ||
24 | <p>{{ item.activityName }}</p> | ||
25 | <p v-for="(child, childIndex) in item.userInfos" :key="childIndex"> | ||
26 | {{ child.name }} | ||
27 | </p> | ||
28 | </li> | ||
29 | </ul> | ||
30 | <div class="title">退回意见:</div> | ||
31 | <el-form-item> | ||
32 | <el-input | ||
33 | class="textArea" | ||
34 | type="textarea" | ||
35 | v-model="outstepopinion" | ||
36 | placeholder="请输入退回意见"></el-input> | ||
37 | </el-form-item> | ||
38 | <el-form-item> | ||
39 | <el-button style="float:right" @click="cancelBack">取消</el-button> | ||
40 | <el-button type="primary" @click="onSubmit" style="float:right">退回</el-button> | ||
41 | </el-form-item> | ||
42 | </el-form> | ||
43 | </div> | ||
44 | </div> | ||
45 | </template> | ||
46 | |||
47 | <script> | ||
48 | |||
49 | import { getTaskBackNode, sendBackTask } from "@/api/fqsq.js" | ||
50 | import { popupCacel } from "@/utils/popup.js"; | ||
51 | |||
52 | export default { | ||
53 | props: { | ||
54 | formData: { | ||
55 | type: Object, | ||
56 | default: {}, | ||
57 | }, | ||
58 | }, | ||
59 | data () { | ||
60 | return { | ||
61 | selectActivity: "", | ||
62 | dataList: [], | ||
63 | outstepopinion: "", | ||
64 | selectItem: {}, | ||
65 | }; | ||
66 | }, | ||
67 | created () { | ||
68 | this.getBackNode(); | ||
69 | }, | ||
70 | methods: { | ||
71 | onSubmit () { | ||
72 | this.selectItem.outstepopinion = this.outstepopinion; | ||
73 | sendBackTask({ | ||
74 | bsmSlsq: this.formData.bsmSlsq, | ||
75 | backNodeList: [this.selectItem], | ||
76 | }).then((res) => { | ||
77 | this.$message.success("退回成功"); | ||
78 | setTimeout(() => { | ||
79 | // window.opener.location.reload(); //刷新父窗口 | ||
80 | if (window.opener && window.opener.getBpageList) { | ||
81 | window.opener.getBpageList(); | ||
82 | } else { | ||
83 | window.opener.frames[0].getBpageList(); | ||
84 | } | ||
85 | window.close(); | ||
86 | this.$emit("input", false); | ||
87 | }, 1000); | ||
88 | }); | ||
89 | }, | ||
90 | changeSelectItem (item) { | ||
91 | this.selectItem = item; | ||
92 | this.selectActivity = item.activityId; | ||
93 | }, | ||
94 | //获取可回退环节信息 | ||
95 | getBackNode () { | ||
96 | getTaskBackNode(this.formData).then((res) => { | ||
97 | if (res.code == 200) { | ||
98 | this.dataList = res.result; | ||
99 | if (res.result) { | ||
100 | this.selectActivity = res.result[0].activityId; | ||
101 | this.selectItem = res.result[0]; | ||
102 | } | ||
103 | } | ||
104 | }); | ||
105 | }, | ||
106 | |||
107 | cancelBack () { | ||
108 | popupCacel(); | ||
109 | } | ||
110 | } | ||
111 | } | ||
112 | </script> | ||
113 | <style scoped lang="scss"> | ||
114 | @import "~@/styles/mixin.scss"; | ||
115 | |||
116 | .listDetail { | ||
117 | display: flex; | ||
118 | align-items: center; | ||
119 | width: 100%; | ||
120 | |||
121 | p { | ||
122 | line-height: 30px; | ||
123 | height: 30px; | ||
124 | @include flex-center; | ||
125 | flex: 1; | ||
126 | width: 100%; | ||
127 | border: 1px solid rgb(233, 235, 237); | ||
128 | margin-top: -1px; | ||
129 | margin-left: -1px; | ||
130 | } | ||
131 | |||
132 | .icon { | ||
133 | flex: 0 0 60px; | ||
134 | } | ||
135 | } | ||
136 | |||
137 | .title { | ||
138 | margin-bottom: 10px; | ||
139 | } | ||
140 | |||
141 | .textArea { | ||
142 | /deep/.el-textarea__inner { | ||
143 | min-height: 90px !important; | ||
144 | } | ||
145 | } | ||
146 | /deep/.el-radio .el-radio__label { | ||
147 | display: none; | ||
148 | } | ||
149 | </style> |
src/views/djbworkflow/components/zc.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:42:01 | ||
5 | --> | ||
6 | <template> | ||
7 | <dialogBox title="转出" @submitForm="submitForm" saveButton="确认转出" width="45%" height='30%' @closeDialog="closeDialog" | ||
8 | v-model="value"> | ||
9 | <div class="from-clues"> | ||
10 | <!-- 表单部分 --> | ||
11 | <div class="from-clues-header"> | ||
12 | <el-form :model="queryForm" ref="queryForm" label-width="120px"> | ||
13 | <el-form-item label="下一环节名称:"> | ||
14 | {{this.tableData.taskName}} | ||
15 | </el-form-item> | ||
16 | <el-form-item label="下一环节办理人:"> | ||
17 | {{this.usernames}} | ||
18 | </el-form-item> | ||
19 | |||
20 | </el-form> | ||
21 | </div> | ||
22 | </div> | ||
23 | </dialogBox> | ||
24 | </template> | ||
25 | |||
26 | <script> | ||
27 | import { completeTask, getNextLinkInfo } from "@/api/fqsq.js" | ||
28 | export default { | ||
29 | components: { | ||
30 | }, | ||
31 | props: { | ||
32 | value: { type: Boolean, default: false }, | ||
33 | queryForm: { type: Object, default: false } | ||
34 | }, | ||
35 | data () { | ||
36 | return { | ||
37 | tableData: {}, | ||
38 | usernames: '', | ||
39 | } | ||
40 | }, | ||
41 | methods: { | ||
42 | tablelistFn () { | ||
43 | getNextLinkInfo(this.queryForm).then(res => { | ||
44 | if (res.code === 200) { | ||
45 | this.tableData = res.result | ||
46 | if (res.result.usernames) { | ||
47 | this.usernames = String(res.result.usernames) | ||
48 | } | ||
49 | } | ||
50 | }) | ||
51 | }, | ||
52 | submitForm () { | ||
53 | completeTask(this.queryForm).then(res => { | ||
54 | if (res.code === 200) { | ||
55 | this.$message.success('转件成功') | ||
56 | setTimeout(() => { | ||
57 | window.opener = null; | ||
58 | window.open("about:blank", "_self"); | ||
59 | window.close(); | ||
60 | this.$emit('input', false) | ||
61 | }, 1000); | ||
62 | } | ||
63 | }) | ||
64 | }, | ||
65 | closeDialog () { | ||
66 | this.$emit("input", false); | ||
67 | }, | ||
68 | } | ||
69 | } | ||
70 | </script> | ||
71 | <style scoped lang="scss"> | ||
72 | @import "~@/styles/mixin.scss"; | ||
73 | </style> |
src/views/djbworkflow/components/zdt.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-06-01 09:48:15 | ||
5 | --> | ||
6 | <template> | ||
7 | <canvas id="mxcad"> | ||
8 | </canvas> | ||
9 | </template> | ||
10 | <script> | ||
11 | import Mx from "mxdraw" | ||
12 | export default { | ||
13 | mounted () { | ||
14 | // 动态加载 js库核心代码 | ||
15 | Mx.loadCoreCode().then(() => { | ||
16 | // Mx.MxFun.setMxServer("ws://localhost:5090") // 开启socket通信 可编辑图纸 | ||
17 | // 创建控件对象 | ||
18 | Mx.MxFun.createMxObject({ | ||
19 | canvasId: "mxcad", // canvas元素的id | ||
20 | cadFile: "/buf/hhhh.dwg", // http方式(预览): 加载public/demo文件夹下转换后的图纸 | ||
21 | // cadFile: "test2.dwg", // socket通信方式请直接提供图纸名称 如:text.dwg | ||
22 | callback: (mxDraw, { | ||
23 | canvas, | ||
24 | canvasParent | ||
25 | }) => { | ||
26 | // 可以拿到canvas元素和它的父级元素 | ||
27 | console.log(canvas, canvasParent) | ||
28 | console.log(mxDraw) | ||
29 | // 拿到图层数据 | ||
30 | mxDraw.addEvent('uiSetLayerData', (listLayer) => { | ||
31 | console.log(listLayer) | ||
32 | }) | ||
33 | }, | ||
34 | isNewFile: true // 是否新建文件 | ||
35 | }) | ||
36 | }) | ||
37 | } | ||
38 | } | ||
39 | </script> | ||
40 | <style scoped lang='scss'> | ||
41 | #cad-container { | ||
42 | width: 100%; | ||
43 | height: 100%; | ||
44 | } | ||
45 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/djbworkflow/flowform.js
0 → 100644
1 | /* | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-29 14:39:11 | ||
5 | */ | ||
6 | //流程环节操作按钮 | ||
7 | export function getForm (tabName, djywbm) { | ||
8 | let form; | ||
9 | switch (tabName) { | ||
10 | case "jsydsyqslxx100": | ||
11 | form = require("@/views/ywbl/slsqxx/jsydsyq/slxx.vue"); | ||
12 | break; | ||
13 | case "jsydsyqslxx300": | ||
14 | form = require("@/views/ywbl/slsqxx/jsydsyq/slxx300.vue"); | ||
15 | break; | ||
16 | case "fwsyqslxx100": | ||
17 | form = require("@/views/ywbl/slsqxx/fdcq2/slxx.vue"); | ||
18 | break; | ||
19 | case "fwsyqslxx300": | ||
20 | form = require("@/views/ywbl/slsqxx/fdcq2/slxx300.vue"); | ||
21 | break; | ||
22 | case "nydsyqslxx100": | ||
23 | form = require("@/views/ywbl/slsqxx/nydsyq/slxx.vue"); | ||
24 | break; | ||
25 | case "nydsyqslxx200": | ||
26 | form = require("@/views/ywbl/slsqxx/nydsyq/slxx200.vue"); | ||
27 | break; | ||
28 | case "tdslxxCfdj": | ||
29 | form = require("@/views/ywbl/slsqxx/cfdj/tdslxx.vue"); | ||
30 | break; | ||
31 | case "plslxxCfdj": | ||
32 | form = require("@/views/ywbl/slsqxx/cfdj/plcfslxx.vue"); | ||
33 | break; | ||
34 | case "diyaqSlxx": | ||
35 | form = require("@/views/ywbl/slsqxx/diyaq/slxx.vue"); | ||
36 | break; | ||
37 | case "diyaqSlxx200": | ||
38 | form = require("@/views/ywbl/slsqxx/diyaq/slxx200.vue"); | ||
39 | break; | ||
40 | case "diyaqSlxx300": | ||
41 | form = require("@/views/ywbl/slsqxx/diyaq/slxx200.vue"); | ||
42 | break; | ||
43 | case "clxx": | ||
44 | form = require("@/views/djbworkflow/components/clxxUnify.vue"); | ||
45 | break; | ||
46 | case "spyj": | ||
47 | form = require("@/views/djbworkflow/components/spyj.vue"); | ||
48 | break; | ||
49 | case "zdjbxx": | ||
50 | form = require("@/views/djbBook/zdjbxx.vue"); | ||
51 | break; | ||
52 | case "ygmm100": | ||
53 | form = require("@/views/ywbl/slsqxx/ygdj/slxx.vue"); | ||
54 | break; | ||
55 | case "ygmm300": | ||
56 | form = require("@/views/ywbl/slsqxx/ygdj/slxx300.vue"); | ||
57 | break; | ||
58 | case "ygdy100": | ||
59 | case "ygdy300": | ||
60 | form = require("@/views/ywbl/slsqxx/ygdy/slxx.vue"); | ||
61 | break; | ||
62 | case "zjgcdyqSlxx": | ||
63 | form = require("@/views/ywbl/slsqxx/zjgcdy/slxx.vue"); | ||
64 | break; | ||
65 | case "cfdjxx": | ||
66 | form = require("@/views/djbBook/cfdj.vue"); | ||
67 | break; | ||
68 | case "jsydsyqQlxx": | ||
69 | form = require("@/views/djbBook/jsydsyq.vue"); | ||
70 | break; | ||
71 | case "nydsyqQlxx": | ||
72 | form = require("@/views/djbBook/nydsyq.vue"); | ||
73 | break; | ||
74 | case "fdcq2Qlxx": | ||
75 | form = require("@/views/djbBook/fdcq2.vue"); | ||
76 | break; | ||
77 | case "diyaqQlxx": | ||
78 | form = require("@/views/djbBook/diyaq.vue"); | ||
79 | break; | ||
80 | case "ygdjQlxx": | ||
81 | form = require("@/views/djbBook/ygdj.vue"); | ||
82 | break; | ||
83 | case "szxx": | ||
84 | form = require("@/views/djbworkflow/components/szxx.vue"); | ||
85 | break; | ||
86 | case "fzxx": | ||
87 | form = require("@/views/djbworkflow/components/fzxx.vue"); | ||
88 | break; | ||
89 | case "zdt": | ||
90 | form = require("@/views/djbworkflow/components/zdt.vue"); | ||
91 | break; | ||
92 | default: | ||
93 | form = require("@/views/error-page/404.vue"); | ||
94 | break; | ||
95 | } | ||
96 | return (r) => require.ensure([], () => r(form)); | ||
97 | } |
src/views/djbworkflow/javascript/fzxxdata.js
0 → 100644
1 | /* | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:38:57 | ||
5 | */ | ||
6 | import filter from '@/utils/filter.js' | ||
7 | let vm = null | ||
8 | |||
9 | const sendThis = (_this) => { | ||
10 | vm = _this | ||
11 | } | ||
12 | class data extends filter { | ||
13 | constructor() { | ||
14 | super() | ||
15 | } | ||
16 | columns () { | ||
17 | return { | ||
18 | //发证列表 | ||
19 | fzgrid: [ | ||
20 | { | ||
21 | label: '序号', | ||
22 | type: 'index', | ||
23 | width: '50' | ||
24 | }, | ||
25 | { | ||
26 | prop: "bdcqzlx", | ||
27 | label: "不动产权证类型", | ||
28 | render: (h, scope) => { | ||
29 | return ( | ||
30 | <div> | ||
31 | <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span> | ||
32 | <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span> | ||
33 | </div> | ||
34 | ) | ||
35 | } | ||
36 | }, | ||
37 | { | ||
38 | prop: "qllx", | ||
39 | label: "权利类型" | ||
40 | }, | ||
41 | { | ||
42 | prop: "ysxlh", | ||
43 | label: "印刷序列号", | ||
44 | width: '100', | ||
45 | }, | ||
46 | { | ||
47 | prop: "bdcqzh", | ||
48 | label: "不动产权证号", | ||
49 | width: '200', | ||
50 | }, | ||
51 | { | ||
52 | prop: "qlr", | ||
53 | label: "权利人" | ||
54 | }, | ||
55 | { | ||
56 | prop: "ywr", | ||
57 | label: "义务人" | ||
58 | }, | ||
59 | { | ||
60 | prop: "mj", | ||
61 | label: "面积(㎡)" | ||
62 | }, | ||
63 | { | ||
64 | prop: "zl", | ||
65 | label: "坐落" | ||
66 | }, | ||
67 | { | ||
68 | prop: "fzsj", | ||
69 | label: "发证时间", | ||
70 | width: '140', | ||
71 | }, | ||
72 | { | ||
73 | prop: "lzrxm", | ||
74 | label: "领证人姓名" | ||
75 | }, | ||
76 | ], | ||
77 | //领证证列表 | ||
78 | lzgrid: [ | ||
79 | { | ||
80 | type: 'selection' | ||
81 | }, | ||
82 | { | ||
83 | label: '序号', | ||
84 | type: 'index', | ||
85 | width: '50' | ||
86 | }, | ||
87 | { | ||
88 | prop: "bdcqzlx", | ||
89 | label: "不动产权证类型", | ||
90 | width: '120', | ||
91 | render: (h, scope) => { | ||
92 | return ( | ||
93 | <div> | ||
94 | <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span> | ||
95 | <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span> | ||
96 | </div> | ||
97 | ) | ||
98 | } | ||
99 | }, | ||
100 | { | ||
101 | prop: "qllx", | ||
102 | label: "权利类型" | ||
103 | }, | ||
104 | { | ||
105 | prop: "ysxlh", | ||
106 | label: "印刷序列号", | ||
107 | width: '100', | ||
108 | }, | ||
109 | { | ||
110 | prop: "bdcqzh", | ||
111 | label: "不动产权证号" | ||
112 | }, | ||
113 | { | ||
114 | prop: "qlr", | ||
115 | label: "权利人" | ||
116 | }, | ||
117 | { | ||
118 | prop: "ywr", | ||
119 | label: "义务人" | ||
120 | }, | ||
121 | { | ||
122 | prop: "mj", | ||
123 | label: "面积(㎡)", | ||
124 | width: '100', | ||
125 | }, | ||
126 | { | ||
127 | prop: "zl", | ||
128 | label: "坐落" | ||
129 | } | ||
130 | ] | ||
131 | } | ||
132 | } | ||
133 | } | ||
134 | let datas = new data() | ||
135 | export { | ||
136 | datas, | ||
137 | sendThis | ||
138 | } |
src/views/djbworkflow/javascript/szxxdata.js
0 → 100644
1 | /* | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:39:03 | ||
5 | */ | ||
6 | import filter from '@/utils/filter.js' | ||
7 | let vm = null | ||
8 | |||
9 | const sendThis = (_this) => { | ||
10 | vm = _this | ||
11 | } | ||
12 | class data extends filter { | ||
13 | constructor() { | ||
14 | super() | ||
15 | } | ||
16 | columns () { | ||
17 | return [ | ||
18 | { | ||
19 | label: '序号', | ||
20 | type: 'index', | ||
21 | render: (h, scope) => { | ||
22 | return ( | ||
23 | <div> | ||
24 | {scope.$index + 1} | ||
25 | </div> | ||
26 | ) | ||
27 | } | ||
28 | }, | ||
29 | { | ||
30 | prop: "szzh", | ||
31 | label: "缮证证号", | ||
32 | }, | ||
33 | { | ||
34 | prop: "ysxlh", | ||
35 | label: "印刷序列号", | ||
36 | }, | ||
37 | { | ||
38 | prop: "szry", | ||
39 | label: "缮证人员", | ||
40 | }, | ||
41 | { | ||
42 | prop: "szsj", | ||
43 | label: "缮证时间", | ||
44 | }, | ||
45 | { | ||
46 | label: "是否作废", | ||
47 | render: (h, scope) => { | ||
48 | if (scope.row.sfzf == '0') { | ||
49 | return <div>否</div> | ||
50 | } else { | ||
51 | return <div>已作废</div> | ||
52 | } | ||
53 | } | ||
54 | }, | ||
55 | { | ||
56 | prop: "bz", | ||
57 | label: "备注信息", | ||
58 | }, | ||
59 | ] | ||
60 | } | ||
61 | } | ||
62 | let datas = new data() | ||
63 | export { | ||
64 | datas, | ||
65 | sendThis | ||
66 | } |
src/views/djbworkflow/javascript/zsyl.js
0 → 100644
1 | /* | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-17 10:39:07 | ||
5 | */ | ||
6 | import filter from '@/utils/filter.js' | ||
7 | class data extends filter { | ||
8 | constructor() { | ||
9 | super() | ||
10 | } | ||
11 | columns () { | ||
12 | return [ | ||
13 | { | ||
14 | prop: "qlr", | ||
15 | label: "权利人", | ||
16 | }, | ||
17 | { | ||
18 | prop: "gyqk", | ||
19 | label: "共有情况", | ||
20 | }, | ||
21 | { | ||
22 | prop: "zl", | ||
23 | label: "坐落", | ||
24 | }, | ||
25 | { | ||
26 | prop: "bdcdyh", | ||
27 | label: "不动产单元号", | ||
28 | }, | ||
29 | { | ||
30 | prop: "qllx", | ||
31 | label: "权利类型", | ||
32 | }, | ||
33 | { | ||
34 | prop: "qlxz", | ||
35 | label: "权利性质", | ||
36 | }, | ||
37 | { | ||
38 | prop: "yt", | ||
39 | label: "用途", | ||
40 | }, | ||
41 | { | ||
42 | prop: "mj", | ||
43 | label: "面积", | ||
44 | }, | ||
45 | { | ||
46 | prop: "syqx", | ||
47 | label: "使用期限", | ||
48 | }, | ||
49 | { | ||
50 | prop: "qlqtzk", | ||
51 | label: "权利其他状况", | ||
52 | }, | ||
53 | ] | ||
54 | } | ||
55 | } | ||
56 | |||
57 | let datas = new data() | ||
58 | |||
59 | export { | ||
60 | datas | ||
61 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/djbworkflow/mixin/index.js
0 → 100644
1 | /* | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-18 15:01:31 | ||
5 | */ | ||
6 | import { getWorkFlowImage } from "@/api/workflow/jsydsyqFlow.js"; | ||
7 | import { getPrintTemplateByCode } from "@/api/system"; | ||
8 | import { getPrintApplicationInfo } from "@/api/fqsq"; | ||
9 | import { uploadUndo } from "@/api/clxx"; | ||
10 | import { deleteFlow } from "@/api/ywbl"; | ||
11 | import { getLodop } from "@/utils/LodopFuncs" | ||
12 | import { | ||
13 | stepExpandInfo, | ||
14 | record, | ||
15 | completeTask, | ||
16 | getNextLinkInfo, | ||
17 | } from "@/api/fqsq.js"; | ||
18 | import { mapGetters } from 'vuex' | ||
19 | export default { | ||
20 | data () { | ||
21 | return { | ||
22 | //是否开启材料分屏 | ||
23 | splitScreen: false, | ||
24 | //设置表单组件是否刷选值 | ||
25 | fresh: 10, | ||
26 | //左侧菜单数据集合 | ||
27 | unitData: [], | ||
28 | //顶部左侧按钮集合 | ||
29 | leftButtonList: [], | ||
30 | //顶部右侧按钮集合 | ||
31 | rightButtonList: [], | ||
32 | //批量按钮名称 | ||
33 | batchButtonName: '', | ||
34 | // 受理申请信息 | ||
35 | slsq: {} | ||
36 | } | ||
37 | }, | ||
38 | mounted () { | ||
39 | this.flowInitParam(); | ||
40 | }, | ||
41 | methods: { | ||
42 | //加载流程初始参数 | ||
43 | flowInitParam () { | ||
44 | |||
45 | // var formdata = new FormData(); | ||
46 | // formdata.append("bsmSlsq", this.bsmSlsq); | ||
47 | // formdata.append("bestepid", this.bestepid); | ||
48 | // console.log("加载流程初始参数",formdata) | ||
49 | // stepExpandInfo(formdata).then((res) => { | ||
50 | // if (res.code === 200) { | ||
51 | // this.leftButtonList = res.result.button; | ||
52 | // this.rightButtonList = res.result.operation; | ||
53 | // this.slsq = res.result.slsq | ||
54 | // } | ||
55 | // }) | ||
56 | this.leftButtonList = ["1111","222222"] | ||
57 | this.rightButtonList = ["333333","444444"] | ||
58 | // this.slsq = res.result.slsq | ||
59 | }, | ||
60 | //流程环节操作按钮 | ||
61 | operation (item) { | ||
62 | //按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿 | ||
63 | //操作按钮 登簿:record 转件:transfer 退回:back 退出:signout | ||
64 | let that = this; | ||
65 | switch (item.value) { | ||
66 | case "B0": | ||
67 | this.openDialog() | ||
68 | break; | ||
69 | case "B1": | ||
70 | getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(res => { | ||
71 | let { result } = res | ||
72 | this.$popupDialog("流程图", "workflow/components/processViewer", { | ||
73 | xml: result.xml, | ||
74 | finishedInfo: { | ||
75 | finishedTaskSet: result.finishedTaskSet, | ||
76 | unfinishedTaskSet: result.unfinishedTaskSet, | ||
77 | rejectedTaskSet: result.rejectedTaskSet, | ||
78 | finishedSequenceFlowSet: result.finishedSequenceFlowSet | ||
79 | }, | ||
80 | allCommentList: result.historyTaskList | ||
81 | }, '80%', true) | ||
82 | }) | ||
83 | break; | ||
84 | case "B2": //材料分屏按钮 | ||
85 | this.splitScreen = this.splitScreen ? false : true; | ||
86 | this.$store.dispatch("app/settScreen", this.splitScreen); | ||
87 | if (this.splitScreen) { | ||
88 | //如果当前选项卡为材料信息内容,递减到上一个选项卡内容 | ||
89 | if (this.tabName == this.clxxTab.value) { | ||
90 | this.tabName = this.tabList[this.clxxIndex - 1].value; | ||
91 | this.getFromRouter(this.tabList[this.clxxIndex - 1].value); | ||
92 | } | ||
93 | //删除材料信息选项卡数据 | ||
94 | this.tabList.splice(this.clxxIndex, 1); | ||
95 | } else { | ||
96 | //新增材料信息选项卡数据 | ||
97 | this.tabList.splice(this.clxxIndex, 0, this.clxxTab); | ||
98 | } | ||
99 | break; | ||
100 | case "B3": //材料导入 | ||
101 | document.getElementById("cldr").click(); | ||
102 | break; | ||
103 | case "B4": | ||
104 | this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true) | ||
105 | break; | ||
106 | case "B5": | ||
107 | this.$popupDialog("证书预览", "workflow/components/dialog/zsyl", { | ||
108 | bsmSlsq: this.bsmSlsq, | ||
109 | entryType: '1' | ||
110 | }, '65%', true) | ||
111 | break; | ||
112 | case "B6": | ||
113 | //根据编号获取对应信息 | ||
114 | getPrintTemplateByCode({ tmpno: 'dysqs' }).then(res => { | ||
115 | if (res.code == 200) { | ||
116 | getPrintApplicationInfo(this.currentSelectProps).then(infoRes => { | ||
117 | if (infoRes.code == 200) { | ||
118 | //打开模板设计 | ||
119 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); | ||
120 | LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent); //装载模板 | ||
121 | //todo 调取后端接口获取数据 循环set | ||
122 | for (let key in infoRes.result) { | ||
123 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]); | ||
124 | } | ||
125 | LODOP.PREVIEW(); | ||
126 | } else { | ||
127 | this.$message.error(infoRes.message) | ||
128 | } | ||
129 | }) | ||
130 | } else { | ||
131 | this.$message.error(res.message) | ||
132 | } | ||
133 | }) | ||
134 | break; | ||
135 | case "B7": | ||
136 | this.$popupDialog("证书领取", "workflow/components/dialog/zslq", | ||
137 | { bsmSlsq: this.$route.query.bsmSlsq }, '70%', true | ||
138 | ) | ||
139 | break; | ||
140 | case "B8": | ||
141 | this.$popupDialog('楼盘表', 'lpb/index', { | ||
142 | bsm: '' | ||
143 | }, '90%', true) | ||
144 | break; | ||
145 | case "back": //退回按钮 | ||
146 | this.$popupDialog("退回", "workflow/components/th", { | ||
147 | bsmSlsq: this.bsmSlsq, | ||
148 | bestepid: this.bestepid | ||
149 | }, '800px', true) | ||
150 | break; | ||
151 | case "transfer": //转件按钮 | ||
152 | getNextLinkInfo({ | ||
153 | bsmSlsq: this.bsmSlsq, | ||
154 | bestepid: this.bestepid, | ||
155 | }).then((res) => { | ||
156 | if (res.code === 200) { | ||
157 | if (res.result) { | ||
158 | this.sendToNext(res.result); | ||
159 | } else { | ||
160 | this.sendToEnd(); | ||
161 | } | ||
162 | } | ||
163 | }); | ||
164 | break; | ||
165 | case "stop": //终止按钮 | ||
166 | this.$popupDialog("终止", "workflow/components/stop", { | ||
167 | bsmSlsq: this.bsmSlsq, | ||
168 | bestepid: this.bestepid, | ||
169 | }, '600px', true) | ||
170 | break; | ||
171 | case "signout": | ||
172 | window.close(); | ||
173 | //取消认领 | ||
174 | unClaimTask(this.bsmSlsq, this.bestepid) | ||
175 | break; | ||
176 | case "B9": | ||
177 | var formdata = new FormData(); | ||
178 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
179 | formdata.append("bestepid", this.bestepid); | ||
180 | this.$confirm("请确认是否登簿", "提示", { | ||
181 | iconClass: "el-icon-question", //自定义图标样式 | ||
182 | confirmButtonText: "确认", //确认按钮文字更换 | ||
183 | cancelButtonText: "取消", //取消按钮文字更换 | ||
184 | showClose: true, //是否显示右上角关闭按钮 | ||
185 | type: "warning", //提示类型 success/info/warning/error | ||
186 | }).then(function () { | ||
187 | record(formdata).then((res) => { | ||
188 | if (res.code === 200) { | ||
189 | if (res.result.length === 1) { | ||
190 | res.result[0].state ? that.$alert("登簿成功!") : that.$alert(res.result[0].msg);; | ||
191 | } | ||
192 | else { | ||
193 | that.$alert('<div>' + res.result[0].ywh + ',' + res.result[0].msg + '</div>', '登簿明细', { | ||
194 | dangerouslyUseHTMLString: true | ||
195 | }); | ||
196 | } | ||
197 | } else { | ||
198 | that.$alert(res.message); | ||
199 | } | ||
200 | }); | ||
201 | }); | ||
202 | break; | ||
203 | case "rm": | ||
204 | this.del() | ||
205 | break; | ||
206 | } | ||
207 | }, | ||
208 | del () { | ||
209 | let formdata = new FormData(); | ||
210 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
211 | this.$confirm("确定要删除吗, 是否继续?", "提示", { | ||
212 | confirmButtonText: "确定", | ||
213 | cancelButtonText: "取消", | ||
214 | type: "warning", | ||
215 | }) | ||
216 | .then(() => { | ||
217 | deleteFlow(formdata).then((res) => { | ||
218 | if (res.code === 200) { | ||
219 | this.$message({ | ||
220 | type: "success", | ||
221 | message: "删除成功!", | ||
222 | }); | ||
223 | window.close(); | ||
224 | window.opener.getBpageList(); | ||
225 | } else { | ||
226 | this.$message.error(res.message); | ||
227 | } | ||
228 | }); | ||
229 | }) | ||
230 | .catch(() => { | ||
231 | this.$message({ | ||
232 | type: "info", | ||
233 | message: "已取消删除", | ||
234 | }); | ||
235 | }); | ||
236 | }, | ||
237 | //发送下一个环节 | ||
238 | sendToNext (obj) { | ||
239 | const h = this.$createElement; | ||
240 | this.$msgbox({ | ||
241 | title: "您确定转出吗?", | ||
242 | message: h("div", { style: "margin: auto" }, [ | ||
243 | h("span", null, "下个环节名称:"), | ||
244 | h("i", { style: "color: teal" }, obj.taskName), | ||
245 | h("div", null, ""), | ||
246 | h("span", null, "下个环节经办人: "), | ||
247 | h("i", { style: "color: teal" }, obj.usernames.join(",")), | ||
248 | ]), | ||
249 | showCancelButton: true, | ||
250 | beforeClose: (action, instance, done) => { | ||
251 | if (action === "confirm") { | ||
252 | instance.confirmButtonLoading = true; | ||
253 | instance.confirmButtonText = "执行中..."; | ||
254 | completeTask({ | ||
255 | bsmSlsq: this.bsmSlsq, | ||
256 | shyj: "this.bestepid", | ||
257 | stepform: JSON.stringify(this.tabList), | ||
258 | }).then((res) => { | ||
259 | if (res.code === 200) { | ||
260 | instance.confirmButtonLoading = false; | ||
261 | this.$message.success("转件成功"); | ||
262 | // window.opener.location.reload(); //刷新父窗口 | ||
263 | if (window.opener && window.opener.getBpageList) { | ||
264 | window.opener.getBpageList(); | ||
265 | } else { | ||
266 | window.opener.frames[0].getBpageList(); | ||
267 | } | ||
268 | window.close(); | ||
269 | this.$emit("input", false); | ||
270 | } else { | ||
271 | instance.confirmButtonLoading = false; | ||
272 | instance.confirmButtonText = "确定"; | ||
273 | this.$message.error(res.message); | ||
274 | } | ||
275 | }); | ||
276 | } else { | ||
277 | done(); | ||
278 | } | ||
279 | }, | ||
280 | }).then((action) => { | ||
281 | this.$message({ | ||
282 | type: "info", | ||
283 | message: "action: " + action, | ||
284 | }); | ||
285 | }); | ||
286 | }, | ||
287 | sendToEnd () { | ||
288 | let that = this | ||
289 | const h = this.$createElement; | ||
290 | this.$msgbox({ | ||
291 | title: "您确定转出吗?", | ||
292 | message: "此环节为流程最后环节,转出后流程将结束", | ||
293 | showCancelButton: true, | ||
294 | beforeClose: (action, instance, done) => { | ||
295 | if (action === "confirm") { | ||
296 | instance.confirmButtonLoading = true; | ||
297 | instance.confirmButtonText = "执行中..."; | ||
298 | completeTask({ | ||
299 | bsmSlsq: this.bsmSlsq, | ||
300 | shyj: "this.bestepid", | ||
301 | stepform: JSON.stringify(this.tabList), | ||
302 | }).then((res) => { | ||
303 | if (res.code === 200) { | ||
304 | instance.confirmButtonLoading = false; | ||
305 | that.$message.success("转件成功"); | ||
306 | localStorage.setItem('transfer', true) | ||
307 | // window.opener.location.reload(); //刷新父窗口 | ||
308 | if (window.opener && window.opener.getBpageList) { | ||
309 | window.opener.getBpageList(); | ||
310 | } else { | ||
311 | window.opener.frames[0].getBpageList(); | ||
312 | } | ||
313 | window.close(); | ||
314 | that.$emit("input", false); | ||
315 | } else { | ||
316 | instance.confirmButtonLoading = false; | ||
317 | instance.confirmButtonText = "确定"; | ||
318 | this.$message.error(res.message); | ||
319 | } | ||
320 | }) | ||
321 | } else { | ||
322 | done(); | ||
323 | } | ||
324 | }, | ||
325 | }).then((action) => { | ||
326 | this.$message({ | ||
327 | type: "info", | ||
328 | message: "action: " + action | ||
329 | }) | ||
330 | }) | ||
331 | }, | ||
332 | //批量操作 | ||
333 | handleBatchDel () { | ||
334 | this.$popupDialog("批量删除", "workflow/components/batchDel", { | ||
335 | width: "50%", | ||
336 | btnShow: false, | ||
337 | bsmSlsq: this.bsmSlsq, | ||
338 | dataList: this.unitData, | ||
339 | |||
340 | }) | ||
341 | }, | ||
342 | handleChange (file) { | ||
343 | var formdata = new FormData(); | ||
344 | formdata.append("file", file.raw); | ||
345 | formdata.append("bsmSldy", this.currentSelectProps.bsmSldy); | ||
346 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
347 | uploadUndo(formdata).then(res => { | ||
348 | if (res.code == 200) { | ||
349 | this.$message.success("导入成功"); | ||
350 | } else { | ||
351 | this.$message.error(res.message) | ||
352 | } | ||
353 | }) | ||
354 | }, | ||
355 | // 上传 | ||
356 | beforeUpload (file) { | ||
357 | return true; | ||
358 | } | ||
359 | } | ||
360 | } |
src/views/djbworkflow/mixin/public.js
0 → 100644
1 | /* | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-24 14:42:24 | ||
5 | */ | ||
6 | import { getForm } from "../flowform"; | ||
7 | import { getHomeNoticeList } from "@/api/user.js" | ||
8 | export default { | ||
9 | data () { | ||
10 | return { | ||
11 | noticeList: [] | ||
12 | } | ||
13 | }, | ||
14 | created () { | ||
15 | this.getHomeNotice() | ||
16 | }, | ||
17 | mounted () { | ||
18 | let _this = this | ||
19 | window.addEventListener('message', function (messageEvent) { | ||
20 | _this.getHomeNotice() | ||
21 | }, false) | ||
22 | }, | ||
23 | methods: { | ||
24 | getHomeNotice () { | ||
25 | getHomeNoticeList().then(res => { | ||
26 | if (res.result) { | ||
27 | this.noticeList = res.result.noticeList | ||
28 | } | ||
29 | }) | ||
30 | }, | ||
31 | //右侧表单选项卡事件 | ||
32 | beforeLeave (activeName, oldActiveName) { | ||
33 | if (activeName && activeName != 0) this.getFromRouter(activeName) | ||
34 | }, | ||
35 | //切换选项卡内容组件 | ||
36 | getFromRouter (tabname) { | ||
37 | //根据tabname获取选中的表单 此操作为了获取后端返回的表单对象,使用里面的是否可操作的属性 | ||
38 | for (let item of this.tabList) { | ||
39 | if (item.value === tabname) { | ||
40 | this.currentSelectTab = item | ||
41 | break; | ||
42 | } | ||
43 | } | ||
44 | this.componentTag = getForm(tabname, this.$route.query.sqywbm); | ||
45 | console.log(tabname); | ||
46 | } | ||
47 | } | ||
48 | } |
src/views/djbworkflow/workFrame.scss
0 → 100644
1 | .containerFrame { | ||
2 | height: 100%; | ||
3 | width: 100%; | ||
4 | position: sticky; | ||
5 | top: 80px; | ||
6 | border: 1px solid #ebeef5; | ||
7 | z-index: 100; | ||
8 | @include flex; | ||
9 | |||
10 | /deep/.el-tabs__header { | ||
11 | margin-bottom: 0 !important; | ||
12 | } | ||
13 | |||
14 | /deep/.el-menu-item { | ||
15 | display: flex; | ||
16 | align-items: center; | ||
17 | } | ||
18 | } | ||
19 | |||
20 | .leftmenu { | ||
21 | width: 0; | ||
22 | transition: all 0.3s; | ||
23 | border-right: 1px solid #ebeef5; | ||
24 | position: relative; | ||
25 | box-sizing: border-box; | ||
26 | padding-right: 5px; | ||
27 | |||
28 | .title { | ||
29 | line-height: 36px; | ||
30 | text-align: center; | ||
31 | font-size: 14px; | ||
32 | } | ||
33 | |||
34 | .dot { | ||
35 | display: inline-block; | ||
36 | background-color: #67C23A; | ||
37 | width: 6.5px; | ||
38 | height: 6px; | ||
39 | border-radius: 50%; | ||
40 | } | ||
41 | |||
42 | .menu-con { | ||
43 | width: 87%; | ||
44 | } | ||
45 | |||
46 | .batchDel { | ||
47 | float: right; | ||
48 | position: relative; | ||
49 | top: 3px; | ||
50 | } | ||
51 | |||
52 | .el-icon-delete { | ||
53 | margin-top: 10px; | ||
54 | } | ||
55 | |||
56 | .title-detail { | ||
57 | display: flex; | ||
58 | flex-wrap: wrap; | ||
59 | width: 100%; | ||
60 | } | ||
61 | |||
62 | .title-batch { | ||
63 | height: 70px; | ||
64 | |||
65 | .menus { | ||
66 | justify-content: center | ||
67 | } | ||
68 | } | ||
69 | |||
70 | ul { | ||
71 | position: relative; | ||
72 | // height: calc(100vh - 120px); | ||
73 | overflow-y: auto; | ||
74 | |||
75 | .xian { | ||
76 | background: #f2f2f2; | ||
77 | padding: 2px; | ||
78 | } | ||
79 | |||
80 | .title { | ||
81 | padding: 5px; | ||
82 | text-align: center; | ||
83 | } | ||
84 | |||
85 | li { | ||
86 | padding: 5px; | ||
87 | font-size: 14px; | ||
88 | line-height: 20px; | ||
89 | cursor: pointer; | ||
90 | |||
91 | div { | ||
92 | display: flex; | ||
93 | flex-direction: column; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | li:hover { | ||
98 | color: #0f93f6; | ||
99 | cursor: pointer; | ||
100 | } | ||
101 | } | ||
102 | } | ||
103 | |||
104 | .animation-map-drawer { | ||
105 | width: 260px; | ||
106 | height: calc(100% - 80px); | ||
107 | } | ||
108 | |||
109 | .el-menu-item { | ||
110 | padding-left: 5px !important; | ||
111 | display: flex; | ||
112 | } | ||
113 | |||
114 | /deep/.el-menu { | ||
115 | border-right: none; | ||
116 | } | ||
117 | |||
118 | |||
119 | /deep/.el-menu-item.is-active { | ||
120 | background-color: #e7f4fe; | ||
121 | } | ||
122 | |||
123 | .leftCon { | ||
124 | flex: 1; | ||
125 | width: calc(100% - 260px); | ||
126 | display: flex; | ||
127 | } | ||
128 | |||
129 | .splitScreen-con { | ||
130 | flex: 1; | ||
131 | width: 0; | ||
132 | } | ||
133 | |||
134 | .rightContainer { | ||
135 | flex: 1; | ||
136 | width: 0; | ||
137 | height: calc(100vh - 80px); | ||
138 | } | ||
139 | |||
140 | /deep/.el-tabs { | ||
141 | box-sizing: border-box; | ||
142 | padding: 0 5px; | ||
143 | width: 100%; | ||
144 | } | ||
145 | |||
146 | .svg-icon { | ||
147 | width: 2.5em; | ||
148 | height: 2.5em; | ||
149 | transition: all 0.3s; | ||
150 | } | ||
151 | |||
152 | .iconName { | ||
153 | line-height: 24px; | ||
154 | font-size: 12px; | ||
155 | white-space: nowrap; | ||
156 | } | ||
157 | |||
158 | .container { | ||
159 | width: 100%; | ||
160 | height: 100%; | ||
161 | padding: 0; | ||
162 | box-sizing: border-box; | ||
163 | background-color: #ffffff; | ||
164 | overflow: hidden; | ||
165 | } | ||
166 | |||
167 | .map-drawer { | ||
168 | width: 16px; | ||
169 | height: 70px; | ||
170 | position: absolute; | ||
171 | top: 30%; | ||
172 | z-index: 99; | ||
173 | cursor: pointer; | ||
174 | } | ||
175 | |||
176 | .map-drawer-expand { | ||
177 | background: url("~@/image/right.png"); | ||
178 | background-size: cover; | ||
179 | right: 0%; | ||
180 | } | ||
181 | |||
182 | .map-drawer-click { | ||
183 | background: url("~@/image/left.png"); | ||
184 | background-size: cover; | ||
185 | left: 0%; | ||
186 | } | ||
187 | |||
188 | |||
189 | .topButton { | ||
190 | @include flex; | ||
191 | width: 100%; | ||
192 | height: 85px; | ||
193 | background-color: #3498db; | ||
194 | color: #ffffff; | ||
195 | justify-content: space-between; | ||
196 | position: sticky; | ||
197 | top: 0; | ||
198 | z-index: 100; | ||
199 | |||
200 | ul { | ||
201 | @include flex; | ||
202 | padding-left: 0; | ||
203 | |||
204 | li { | ||
205 | @include flex-center; | ||
206 | cursor: pointer; | ||
207 | flex-direction: column; | ||
208 | margin-right: 15px; | ||
209 | box-sizing: border-box; | ||
210 | width: 70px; | ||
211 | margin: 0 5px; | ||
212 | } | ||
213 | |||
214 | li:hover { | ||
215 | border: 1px solid #ffffff; | ||
216 | border-radius: 5px; | ||
217 | |||
218 | .icon { | ||
219 | transform: scale(1.3); | ||
220 | } | ||
221 | } | ||
222 | } | ||
223 | } | ||
224 | |||
225 | .NoticeBar { | ||
226 | position: absolute; | ||
227 | left: 0; | ||
228 | bottom: 0; | ||
229 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/djbworkflow/workFrame.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-24 15:31:00 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="container"> | ||
8 | <!-- 顶部内容框 --> | ||
9 | <div class="topButton"> | ||
10 | <!-- 左侧业务功能按钮 --> | ||
11 | <!-- <ul> | ||
12 | <li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index"> | ||
13 | <svg-icon class="icon" :icon-class="item.icon" /> | ||
14 | <span class="iconName">{{ item.name }}</span> | ||
15 | </li> | ||
16 | </ul> | ||
17 | <ul> | ||
18 | <li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index"> | ||
19 | <svg-icon class="icon" :icon-class="item.icon" /> | ||
20 | <span class="iconName">{{ item.name }}</span> | ||
21 | </li> | ||
22 | </ul> | ||
23 | <NoticeBar class="NoticeBar" :noticeList="noticeList" v-if="noticeList.length > 0" /> --> | ||
24 | </div> | ||
25 | <!-- 内容框架 --> | ||
26 | <div class="containerFrame"> | ||
27 | <!-- 左侧菜单栏 区分业务--> | ||
28 | <ordinaryMenu @getCurrentSelectProps="getCurrentSelectProps" /> | ||
29 | <div class="leftCon"> | ||
30 | <!-- 分屏左侧预览 --> | ||
31 | <div v-if="splitScreen" class="splitScreen-con"> | ||
32 | <component :is="clxxForm" v-bind="currentSelectProps" :key="fresh" /> | ||
33 | </div> | ||
34 | <!-- 表单内容区域 --> | ||
35 | <div class="rightContainer"> | ||
36 | <el-tabs v-model="tabName" :before-leave="beforeLeave"> | ||
37 | <el-tab-pane :label="item.name" :name="item.value" v-for="item in tabList" :key="item.value"> | ||
38 | </el-tab-pane> | ||
39 | </el-tabs> | ||
40 | <component :key="fresh" :is="componentTag" v-bind="currentSelectProps" /> | ||
41 | </div> | ||
42 | </div> | ||
43 | </div> | ||
44 | <!-- 打印模板需要此模块 --> | ||
45 | <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" v-show="false"> | ||
46 | <embed id="LODOP_EM" type="application/x-print-lodop" width="820" height="450" pluginspage="install_lodop32.exe" /> | ||
47 | </object> | ||
48 | <el-upload class="fileUpdate" action="" :show-file-list="false" multiple :auto-upload="false" | ||
49 | :on-change="handleChange" :before-upload="beforeUpload"> | ||
50 | <el-button id="cldr" icon="el-icon-upload" type="primary" v-show="false">上传</el-button> | ||
51 | </el-upload> | ||
52 | </div> | ||
53 | </template> | ||
54 | <style scoped lang="scss"> | ||
55 | @import "~@/styles/mixin.scss"; | ||
56 | @import "./workFrame.scss"; | ||
57 | </style> | ||
58 | <script> | ||
59 | import WorkFlow from "./mixin/index" | ||
60 | import publicFlow from "./mixin/public.js" | ||
61 | // import { getStepFormInfo } from "@/api/fqsq.js" | ||
62 | // import { getForm } from "./flowform" | ||
63 | import NoticeBar from "@/components/NoticeBar/index" | ||
64 | import { unClaimTask } from "@/api/ywbl.js" | ||
65 | import ProcessViewer from "./components/processViewer.vue" | ||
66 | // 引入左侧菜单 | ||
67 | import ordinaryMenu from "./components/leftmenu/ordinaryMenu.vue" | ||
68 | import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue" | ||
69 | import { loadTreeData, getNode } from "./components/leftmenu/djbFrameData"; | ||
70 | // 登记簿数据信息 | ||
71 | |||
72 | import { getBdcqljqtsx } from "@/api/registerBook.js"; | ||
73 | export default { | ||
74 | components: { | ||
75 | selectBdc, | ||
76 | NoticeBar, | ||
77 | ProcessViewer, | ||
78 | ordinaryMenu, | ||
79 | }, | ||
80 | mixins: [WorkFlow, publicFlow], | ||
81 | data () { | ||
82 | return { | ||
83 | isDialog: false, | ||
84 | bsmSlsq: this.$route.query.bsmSlsq, | ||
85 | //当前流程所在环节 | ||
86 | bestepid: this.$route.query.bestepid, | ||
87 | //受理申请标识码 | ||
88 | bdcdyid: this.$route.query.bdcdyid, | ||
89 | //当前流程所在环节 | ||
90 | bdcdyh: this.$route.query.bdcdyh, | ||
91 | qllx:this.$route.query.qllx, | ||
92 | //设置那个表单选中 | ||
93 | tabName: "", | ||
94 | //设置那个表单选择 | ||
95 | currentSelectTab: {}, | ||
96 | //表单集合 | ||
97 | tabList: [], | ||
98 | //选择加载哪一个组件 | ||
99 | componentTag: "", | ||
100 | //设置表单传递数据 | ||
101 | currentSelectProps: {}, | ||
102 | //材料分屏表单 | ||
103 | clxxForm: "", | ||
104 | //材料信息选择卡索引 | ||
105 | clxxIndex: "", | ||
106 | //材料信息选项卡对象 | ||
107 | clxxTab: {}, | ||
108 | //页面监听时间 | ||
109 | _beforeUnload_time: "" | ||
110 | } | ||
111 | }, | ||
112 | mounted () { | ||
113 | this.$store.dispatch('user/refreshPage', false); | ||
114 | //添加页面监听事件 | ||
115 | window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e)); | ||
116 | window.addEventListener("unload", (e) => this.unloadHandler(e)); | ||
117 | }, | ||
118 | destroyed () { | ||
119 | window.removeEventListener("beforeunload", (e) => | ||
120 | this.beforeunloadHandler(e) | ||
121 | ); | ||
122 | window.removeEventListener("unload", (e) => this.unloadHandler(e)); | ||
123 | }, | ||
124 | methods: { | ||
125 | getCurrentSelectProps (val) { | ||
126 | this.loadData() | ||
127 | }, | ||
128 | |||
129 | beforeunloadHandler () { | ||
130 | this._beforeUnload_time = new Date().getTime(); | ||
131 | }, | ||
132 | unloadHandler (e) { | ||
133 | this._gap_time = new Date().getTime() - this._beforeUnload_time; | ||
134 | //判断是窗口关闭还是刷新 | ||
135 | if (this._gap_time <= 10) { | ||
136 | //取消认领 | ||
137 | unClaimTask(this.bsmSlsq, this.bestepid); | ||
138 | } | ||
139 | }, | ||
140 | // 获取登记簿菜单 | ||
141 | loadData () { | ||
142 | getBdcqljqtsx({ | ||
143 | bdcdyid: this.bdcdyid, | ||
144 | bdcdyh: this.bdcdyh, | ||
145 | }).then((res) => { | ||
146 | if (res.code === 200) { | ||
147 | console.log("res.result","res.result",res.result); | ||
148 | this.treedata = loadTreeData(res.result, this.bdcdyh); | ||
149 | console.log("this.treedata","this.treedata",this.treedata); | ||
150 | this.$nextTick(function () { | ||
151 | this.defaultNode = getNode(this.qllx, { linShi: 0, xianShi: 0, liShi: 0 }, ""); | ||
152 | this.$refs.tree.setCurrentKey(this.defaultNode.id); //data[0].id为默认选中的节点 | ||
153 | // this.$parent.loadComponent(this.currentSelectProps,this.defaultNode); | ||
154 | }); | ||
155 | } | ||
156 | }); | ||
157 | this.currentSelectProps = { | ||
158 | bdcdyid: this.bdcdyid, | ||
159 | bdcdyh: this.bdcdyh, | ||
160 | qllx: this.qllx, | ||
161 | bsmQlxx: this.bsmQlxx, | ||
162 | }; | ||
163 | // this.$parent.stepForm(); | ||
164 | }, | ||
165 | |||
166 | loadComponent (currentSelectProps,data) { | ||
167 | this.currentSelectProps=currentSelectProps | ||
168 | this.componentTag = (r) => | ||
169 | require.ensure([], () => r(require("@/views/djbBook/" + data.form))); | ||
170 | }, | ||
171 | openDialog () { | ||
172 | this.$store.dispatch('user/refreshPage', false) | ||
173 | let data = JSON.parse(localStorage.getItem('ywbl')) | ||
174 | let title | ||
175 | if (data?.sqywmc) { | ||
176 | title = "申请业务:" + data?.sqywmc | ||
177 | } else { | ||
178 | title = "申请业务:" + data?.djywmc | ||
179 | } | ||
180 | |||
181 | this.$popupDialog(title, "ywbl/ywsq/selectBdc", { 'djywbm': this.$route.query.sqywbm, 'isJump': true, 'sqywInfo': data }, "80%", true) | ||
182 | } | ||
183 | } | ||
184 | } | ||
185 | </script> | ||
186 |
No preview for this file type
... | @@ -39,10 +39,10 @@ | ... | @@ -39,10 +39,10 @@ |
39 | </div> | 39 | </div> |
40 | </template> | 40 | </template> |
41 | <script> | 41 | <script> |
42 | import { mapGetters } from 'vuex' | 42 | import { mapGetters } from 'vuex' |
43 | import { leftMenu } from "@/api/fqsq.js" | 43 | import { leftMenu } from "@/api/fqsq.js" |
44 | import { deleteSlbdcdy } from "@/api/ywbl.js"; | 44 | import { deleteSlbdcdy } from "@/api/ywbl.js"; |
45 | export default { | 45 | export default { |
46 | data () { | 46 | data () { |
47 | return { | 47 | return { |
48 | //受理申请标识码 | 48 | //受理申请标识码 |
... | @@ -105,6 +105,10 @@ | ... | @@ -105,6 +105,10 @@ |
105 | if (this.unitData.length > 1) { | 105 | if (this.unitData.length > 1) { |
106 | let qllx = this.$route.query?.sqywbm?.substring(0, 3); | 106 | let qllx = this.$route.query?.sqywbm?.substring(0, 3); |
107 | switch (qllx) { | 107 | switch (qllx) { |
108 | case 'A04': | ||
109 | this.showBatch = true; | ||
110 | this.batchButtonName = '批量单元信息'; | ||
111 | break; | ||
108 | case 'B39': | 112 | case 'B39': |
109 | this.showBatch = true; | 113 | this.showBatch = true; |
110 | this.batchButtonName = '批量查封清单信息'; | 114 | this.batchButtonName = '批量查封清单信息'; |
... | @@ -159,6 +163,7 @@ | ... | @@ -159,6 +163,7 @@ |
159 | this.currentSelectProps.batchOperation = true; | 163 | this.currentSelectProps.batchOperation = true; |
160 | this.activeIndex = "-1"; | 164 | this.activeIndex = "-1"; |
161 | this.$parent.stepForm(); | 165 | this.$parent.stepForm(); |
166 | |||
162 | }, | 167 | }, |
163 | //批量操作 | 168 | //批量操作 |
164 | handleBatchDel () { | 169 | handleBatchDel () { |
... | @@ -178,12 +183,12 @@ | ... | @@ -178,12 +183,12 @@ |
178 | this.$store.dispatch('user/refreshPage', false); | 183 | this.$store.dispatch('user/refreshPage', false); |
179 | } | 184 | } |
180 | } | 185 | } |
181 | } | 186 | } |
182 | </script> | 187 | </script> |
183 | <style scoped lang='scss'> | 188 | <style scoped lang='scss'> |
184 | @import "~@/styles/mixin.scss"; | 189 | @import "~@/styles/mixin.scss"; |
185 | @import "../../workFrame.scss"; | 190 | @import "../../workFrame.scss"; |
186 | .leftmenu ul { | 191 | .leftmenu ul { |
187 | height: calc(100vh - 120px); | 192 | height: calc(100vh - 120px); |
188 | } | 193 | } |
189 | </style> | 194 | </style> | ... | ... |
... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
4 | * @LastEditTime: 2023-05-29 14:39:11 | 4 | * @LastEditTime: 2023-05-29 14:39:11 |
5 | */ | 5 | */ |
6 | //流程环节操作按钮 | 6 | //流程环节操作按钮 |
7 | export function getForm (tabName, djywbm) { | 7 | export function getForm(tabName, djywbm) { |
8 | let form; | 8 | let form; |
9 | switch (tabName) { | 9 | switch (tabName) { |
10 | case "jsydsyqslxx100": | 10 | case "jsydsyqslxx100": |
... | @@ -22,6 +22,9 @@ export function getForm (tabName, djywbm) { | ... | @@ -22,6 +22,9 @@ export function getForm (tabName, djywbm) { |
22 | case "nydsyqslxx100": | 22 | case "nydsyqslxx100": |
23 | form = require("@/views/ywbl/slsqxx/nydsyq/slxx.vue"); | 23 | form = require("@/views/ywbl/slsqxx/nydsyq/slxx.vue"); |
24 | break; | 24 | break; |
25 | case "plfdcq2": | ||
26 | form = require("@/views/ywbl/slsqxx/fdcq2/slxxOverview.vue"); | ||
27 | break; | ||
25 | case "nydsyqslxx200": | 28 | case "nydsyqslxx200": |
26 | form = require("@/views/ywbl/slsqxx/nydsyq/slxx200.vue"); | 29 | form = require("@/views/ywbl/slsqxx/nydsyq/slxx200.vue"); |
27 | break; | 30 | break; | ... | ... |
src/views/ywbl/slsqxx/fdcq2/slxxOverview.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: 受理信息 | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-05-25 08:41:40 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="slxx"> | ||
8 | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flag ? 'top' : ''" :inline="flag" | ||
9 | label-width="120px"> | ||
10 | <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''"> | ||
11 | <div class="slxx_title title-block"> | ||
12 | 受理信息 | ||
13 | <div class="triangle"></div> | ||
14 | </div> | ||
15 | <el-row :gutter="10" v-if="ruleForm.slsq"> | ||
16 | <el-col :span="8"> | ||
17 | <el-form-item label="业务号:"> | ||
18 | <el-input disabled v-model="ruleForm.slsq.ywh"></el-input> | ||
19 | </el-form-item> | ||
20 | </el-col> | ||
21 | <el-col :span="8"> | ||
22 | <el-form-item label="受理人员:"> | ||
23 | <el-input disabled v-model="ruleForm.slsq.slry"></el-input> | ||
24 | </el-form-item> | ||
25 | </el-col> | ||
26 | <el-col :span="8"> | ||
27 | <el-form-item label="受理时间:"> | ||
28 | <el-input disabled v-model="ruleForm.slsq.slsj"></el-input> | ||
29 | </el-form-item> | ||
30 | </el-col> | ||
31 | </el-row> | ||
32 | <el-row :gutter="10" v-if="ruleForm.slsq"> | ||
33 | <el-col :span="8"> | ||
34 | <el-form-item label="权利类型:"> | ||
35 | <el-input disabled v-model="ruleForm.slsq.qllxmc"></el-input> | ||
36 | </el-form-item> | ||
37 | </el-col> | ||
38 | <el-col :span="8"> | ||
39 | <el-form-item label="登记类型:"> | ||
40 | <el-input disabled v-model="ruleForm.slsq.djlxmc"></el-input> | ||
41 | </el-form-item> | ||
42 | </el-col> | ||
43 | <el-col :span="8"> | ||
44 | <el-form-item label="登记情形:"> | ||
45 | <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input> | ||
46 | </el-form-item> | ||
47 | </el-col> | ||
48 | </el-row> | ||
49 | <div class="slxx_title title-block"> | ||
50 | 房屋概况 | ||
51 | <div class="triangle"></div> | ||
52 | </div> | ||
53 | <el-row :gutter="10" v-if="ruleForm.zdjbxx"> | ||
54 | <el-col :span="8"> | ||
55 | <el-form-item label="规划用途名称:"> | ||
56 | <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input> | ||
57 | </el-form-item> | ||
58 | </el-col> | ||
59 | <el-col :span="8"> | ||
60 | <el-form-item label="权利设定方式名称:"> | ||
61 | <el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input> | ||
62 | </el-form-item> | ||
63 | </el-col> | ||
64 | <el-col :span="8"> | ||
65 | <el-form-item label="房屋性质:"> | ||
66 | <el-input disabled v-model="splicingFdcq2.fwxz"></el-input> | ||
67 | </el-form-item> | ||
68 | </el-col> | ||
69 | </el-row> | ||
70 | <el-row :gutter="10" v-if="ruleForm.zdjbxx"> | ||
71 | <el-col :span="8"> | ||
72 | <el-form-item label="房屋结构:"> | ||
73 | <el-input disabled v-model="splicingFdcq2.fwjg"></el-input> | ||
74 | </el-form-item> | ||
75 | </el-col> | ||
76 | <el-col :span="8"> | ||
77 | <el-form-item label="建筑总面积:"> | ||
78 | <el-input disabled v-model="splicingFdcq2.jzmj"></el-input> | ||
79 | </el-form-item> | ||
80 | </el-col> | ||
81 | <el-col :span="8"> | ||
82 | <el-form-item label="房屋总套数:"> | ||
83 | <el-input disabled v-model="splicingFdcq2.zts"></el-input> | ||
84 | </el-form-item> | ||
85 | </el-col> | ||
86 | </el-row> | ||
87 | <div class="slxx_title title-block"> | ||
88 | 权利人信息 | ||
89 | <div class="triangle"></div> | ||
90 | </div> | ||
91 | <el-row :gutter="10"> | ||
92 | <el-col :span="14" v-if="ruleForm.qlxx"> | ||
93 | <el-form-item label="共有方式:"> | ||
94 | <el-radio-group :disabled="$route.query.viewtype == 1" @change="showCZInfo" | ||
95 | v-model="ruleForm.slsq.gyfs"> | ||
96 | <el-radio label="0">单独所有</el-radio> | ||
97 | <el-radio label="1">共同共有</el-radio> | ||
98 | <el-radio label="2">按份所有</el-radio> | ||
99 | <el-radio label="3">其它共有</el-radio> | ||
100 | </el-radio-group> | ||
101 | </el-form-item> | ||
102 | </el-col> | ||
103 | <el-col :span="5"> | ||
104 | <el-form-item label="发证方式:"> | ||
105 | <el-radio-group v-model="ruleForm.slsq.fzfs"> | ||
106 | <el-radio label="1">小证</el-radio> | ||
107 | <el-radio label="2">大证</el-radio> | ||
108 | </el-radio-group> | ||
109 | </el-form-item> | ||
110 | </el-col> | ||
111 | |||
112 | <el-col :span="5" v-show="ruleForm.qlxx && ruleForm.qlxx.gyfs == '2'"> | ||
113 | <el-form-item label="是否分别持证:"> | ||
114 | <el-radio-group v-model="ruleForm.slsq.sqfbcz"> | ||
115 | <el-radio label="1">是</el-radio> | ||
116 | <el-radio label="0">否</el-radio> | ||
117 | </el-radio-group> | ||
118 | </el-form-item> | ||
119 | </el-col> | ||
120 | <el-col :span="5" v-show="ruleForm.qlxx && ruleForm.qlxx.gyfs == '2'"> | ||
121 | <el-form-item label="持证人:"> | ||
122 | <el-select v-model="ruleForm.slsq.czr" placeholder="持证人"> | ||
123 | <el-option v-for="item in czrOptions" :key="item.value" :label="item.label" :value="item.value"> | ||
124 | </el-option> | ||
125 | </el-select> | ||
126 | </el-form-item> | ||
127 | </el-col> | ||
128 | </el-row> | ||
129 | <qlrCommonTable v-if="ruleForm.qlxx" @upDateQlrxxList="upDateQlrxxList" :tableData="ruleForm.qlrList" | ||
130 | :gyfs="ruleForm.qlxx.gyfs" /> | ||
131 | |||
132 | <!-- <div v-if="ruleForm.ywrList"> | ||
133 | <div class="slxx_title title-block"> | ||
134 | 义务人信息 | ||
135 | <div class="triangle"></div> | ||
136 | </div> | ||
137 | <qlrCommonTable v-if="ruleForm.qlxxList" @upDateQlrxxList="upDateYwrxxList" :tableData="ruleForm.ywrList" | ||
138 | :gyfs="ruleForm.qlxx.gyfs" /> | ||
139 | </div>--> | ||
140 | <div class="slxx_title title-block"> | ||
141 | 登记原因 | ||
142 | <div class="triangle"></div> | ||
143 | </div> | ||
144 | <el-row :gutter="10"> | ||
145 | <el-col> | ||
146 | <el-form-item v-if="ruleForm.fdcq2" label="登记原因:" prop="djyy"> | ||
147 | <el-input class="textArea" type="textarea" :disabled="$route.query.viewtype == 1" | ||
148 | v-model="ruleForm.fdcq2.djyy"> | ||
149 | </el-input> | ||
150 | </el-form-item> | ||
151 | </el-col> | ||
152 | </el-row> | ||
153 | </div> | ||
154 | <el-row class="btn" v-if="!$route.query.viewtype && ableOperation"> | ||
155 | <el-form-item> | ||
156 | <el-button type="primary" @click="onSubmit">保存</el-button> | ||
157 | </el-form-item> | ||
158 | </el-row> | ||
159 | </el-form> | ||
160 | </div> | ||
161 | </template> | ||
162 | <script> | ||
163 | import qlrCommonTable from "@/views/workflow/components/qlrCommonTable"; | ||
164 | import {BatchInit, Init, saveBatchData, saveData} from "@/api/workflow/fwsyqFlow.js"; | ||
165 | import { mapGetters } from "vuex"; | ||
166 | export default { | ||
167 | created(callbackfn, thisArg) { | ||
168 | this.ableOperation = this.$parent.currentSelectTab.ableOperation | ||
169 | this.propsParam = this.$attrs; | ||
170 | var formdata = new FormData(); | ||
171 | formdata.append("bsmSldy", this.propsParam.bsmSldy); | ||
172 | formdata.append("djlx", this.propsParam.djlx); | ||
173 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
174 | BatchInit(formdata).then((res) => { | ||
175 | if (res.code === 200 && res.result) { | ||
176 | this.ruleForm = res.result; | ||
177 | this.ruleForm.qlxx = this.ruleForm.qlxxList[0] | ||
178 | this.splicingFdcq2Info(); | ||
179 | } | ||
180 | }); | ||
181 | |||
182 | }, | ||
183 | components: { qlrCommonTable }, | ||
184 | computed: { | ||
185 | ...mapGetters(["dictData", "flag"]), | ||
186 | }, | ||
187 | data () { | ||
188 | return { | ||
189 | disabled: true, | ||
190 | tdytOption: [], | ||
191 | czrOptions: [], | ||
192 | ruleForm: { | ||
193 | slsq: {}, | ||
194 | zdjbxx: {}, | ||
195 | sldyList: [], | ||
196 | qlxxList: [], | ||
197 | fdcq2List:[] | ||
198 | }, | ||
199 | //传递参数 | ||
200 | propsParam: this.$attrs, | ||
201 | //表单是否可操作 | ||
202 | ableOperation: true, | ||
203 | rules: {}, | ||
204 | bsmSlsq: this.$route.query.bsmSlsq,//受理申请标识码 | ||
205 | splicingFdcq2:{//前端根据后台数组组装展示内容 | ||
206 | fwxz:{}//房屋性质 | ||
207 | ,fwjg:{}//房屋结构 | ||
208 | ,jzmj:{} //建筑面积 | ||
209 | ,zts:{}//房屋总套数 | ||
210 | } | ||
211 | } | ||
212 | }, | ||
213 | methods: { | ||
214 | //组装房地产权通用信息 | ||
215 | splicingFdcq2Info(){ | ||
216 | let fdcq2List = this.ruleForm.fdcq2List; | ||
217 | let fwxzArr = []; | ||
218 | let fwjgArr = []; | ||
219 | let jzmj = 0; | ||
220 | fdcq2List.forEach(fdcq2 => { | ||
221 | fwxzArr.push(fdcq2.fwxzmc); | ||
222 | fwjgArr.push(fdcq2.fwjgmc); | ||
223 | jzmj += parseFloat(fdcq2.jzmj); | ||
224 | }) | ||
225 | //将数据转为字符串 | ||
226 | //房屋性质 | ||
227 | let fwxz = Array.from(new Set(fwxzArr)).join(","); | ||
228 | //房屋结构 | ||
229 | let fwjg = Array.from(new Set(fwjgArr)).join(","); | ||
230 | this.splicingFdcq2.fwxz = fwxz; | ||
231 | this.splicingFdcq2.fwjg = fwjg; | ||
232 | this.splicingFdcq2.jzmj = jzmj; | ||
233 | this.splicingFdcq2.zts = fdcq2List.length; | ||
234 | }, | ||
235 | |||
236 | // 更新权利人信息 | ||
237 | upDateQlrxxList (val) { | ||
238 | this.ruleForm.qlrList = _.cloneDeep(val); | ||
239 | }, | ||
240 | showCZInfo () { | ||
241 | console.log(this.ruleForm.slsq.gyfs); | ||
242 | }, | ||
243 | // 更新义务人信息 | ||
244 | upDateYwrxxList (val) { | ||
245 | this.ruleForm.ywrList = _.cloneDeep(val); | ||
246 | }, | ||
247 | onSubmit () { | ||
248 | saveBatchData(this.ruleForm).then((res) => { | ||
249 | if (res.code === 200) { | ||
250 | this.$message({ | ||
251 | showClose: true, | ||
252 | message: "保存成功!", | ||
253 | type: "success", | ||
254 | }); | ||
255 | this.$store.dispatch('user/refreshPage', true); | ||
256 | } else { | ||
257 | this.$message({ | ||
258 | showClose: true, | ||
259 | message: res.message, | ||
260 | type: "error" | ||
261 | }) | ||
262 | } | ||
263 | }) | ||
264 | } | ||
265 | } | ||
266 | } | ||
267 | </script> | ||
268 | <style scoped lang='scss'> | ||
269 | @import "~@/styles/public.scss"; | ||
270 | |||
271 | /deep/.el-form { | ||
272 | display: flex; | ||
273 | flex-direction: column; | ||
274 | height: calc(100vh - 130px); | ||
275 | } | ||
276 | |||
277 | /deep/.el-form-item__label { | ||
278 | padding: 0; | ||
279 | } | ||
280 | |||
281 | /deep/.el-radio { | ||
282 | margin-right: 10px; | ||
283 | } | ||
284 | |||
285 | /deep/.el-select { | ||
286 | width: 100%; | ||
287 | } | ||
288 | |||
289 | /deep/.el-form-item { | ||
290 | margin-bottom: 8px; | ||
291 | } | ||
292 | |||
293 | .marginBot0 { | ||
294 | margin-bottom: 0 !important; | ||
295 | } | ||
296 | |||
297 | .slxx { | ||
298 | box-sizing: border-box; | ||
299 | } | ||
300 | |||
301 | .slxx_con { | ||
302 | flex: 1; | ||
303 | height: 100%; | ||
304 | background-color: #ffffff; | ||
305 | overflow-y: auto; | ||
306 | padding-right: 3px; | ||
307 | overflow-x: hidden; | ||
308 | } | ||
309 | |||
310 | .submit_btn { | ||
311 | height: 50px; | ||
312 | } | ||
313 | |||
314 | .slxx_title { | ||
315 | border-bottom: 1px solid $borderColor; | ||
316 | padding-left: 10px; | ||
317 | padding-bottom: 5px; | ||
318 | margin-bottom: 10px; | ||
319 | margin-top: 5px; | ||
320 | font-size: 16px; | ||
321 | font-weight: 500; | ||
322 | color: #4a4a4a; | ||
323 | } | ||
324 | |||
325 | .btn { | ||
326 | text-align: center; | ||
327 | padding-top: 10px; | ||
328 | height: 36px; | ||
329 | background-color: #ffffff; | ||
330 | padding: 5px 0; | ||
331 | } | ||
332 | |||
333 | .textArea { | ||
334 | /deep/.el-textarea__inner { | ||
335 | min-height: 90px !important; | ||
336 | } | ||
337 | } | ||
338 | |||
339 | /deep/.el-form-item__label { | ||
340 | padding-bottom: 0px; | ||
341 | } | ||
342 | </style> |
1 | <template> | ||
2 | <div class="ywsq" id="ywsq"> | ||
3 | <div class="ywsq-left"> | ||
4 | <p v-for="(item, index) in sqywlxList" @click="sqywlxClick(item)" :key="index" | ||
5 | :class="{ 'active': selectType == item.type }">{{ item.name }}</p> | ||
6 | <el-collapse disabled v-model="activeNames"> | ||
7 | <el-collapse-item title="业务申请" name="1"> | ||
8 | <ul class="item-list"> | ||
9 | <li v-for="(item, index) in sqywQllxList" :key="index" @click="qllxClick(index)" | ||
10 | :class="item.check ? 'active' : ''"> | ||
11 | {{ item.nodename }}</li> | ||
12 | </ul> | ||
13 | </el-collapse-item> | ||
14 | </el-collapse> | ||
15 | </div> | ||
16 | <div class="ywsq-right"> | ||
17 | <!-- 常办业务 --> | ||
18 | <div v-show="selectType == 'collect'" class="right-situation el-card"> | ||
19 | <div class="right-title">常办业务列表</div> | ||
20 | <ul> | ||
21 | <li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in collectList" :key="index" | ||
22 | @dblclick="dblclick(collectList, index, item)" @click="selectSqywClick(collectList, index)"> | ||
23 | <p v-if="item.nodetype == 'djqx'">{{ item.djywmc }}<br>{{ item.nodename }}</p> | ||
24 | <dt v-else>{{ item.djywmc }}</dt> | ||
25 | <p class="active" @click.stop="handleCollection(item)"> | ||
26 | <i class="el-icon-star-off"></i> | ||
27 | </p> | ||
28 | </li> | ||
29 | </ul> | ||
30 | </div> | ||
31 | <!-- 一并申请 --> | ||
32 | <div v-if="selectType == 'together'" class="right-title">一并申请</div> | ||
33 | <!-- 登记簿补录 --> | ||
34 | <div v-if="selectType == 'amend'" class="right-title">登记簿补录</div> | ||
35 | <!-- 业务申请 --> | ||
36 | <template v-if="selectType == 'apply'"> | ||
37 | <div class="right-type el-card box-card is-always-shadow"> | ||
38 | <div class="right-title">登记类型</div> | ||
39 | <ul class="type-content"> | ||
40 | <li :class="item.selected ? 'cactive' : ''" @dblclick="item.sffqlc == 1 && dblclick(djlxList, index, item)" | ||
41 | @click="selectSqywClick(djlxList, index)" v-for="(item, index) in djlxList" :key="index"> | ||
42 | <p> | ||
43 | {{ item.nodename }} | ||
44 | </p> | ||
45 | <p v-if="item.sffqlc == 1" :class="item.userCollect == 1 ? 'active' : ''" | ||
46 | @click.stop="handleCollection(item)"> | ||
47 | <i class="el-icon-star-off"></i> | ||
48 | </p> | ||
49 | </li> | ||
50 | </ul> | ||
51 | </div> | ||
52 | <div class="right-situation el-card box-card is-always-shadow"> | ||
53 | <div class="right-title">登记情形</div> | ||
54 | <ul> | ||
55 | <li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in djqxList" :key="index" | ||
56 | @dblclick="dblclick(djqxList, index, item)" @click="selectSqywClick(djqxList, index)"> | ||
57 | <dt>{{ item.nodename }}</dt> | ||
58 | <p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)"> | ||
59 | <i class="el-icon-star-off"></i> | ||
60 | </p> | ||
61 | </li> | ||
62 | </ul> | ||
63 | </div> | ||
64 | </template> | ||
65 | <div class="submit-button"> | ||
66 | <el-button type="primary" :disabled="btnDisabled" @click="dialogClick">选择不动产</el-button> | ||
67 | </div> | ||
68 | </div> | ||
69 | </div> | ||
70 | </template> | ||
71 | <script> | ||
72 | import { getCollectBiz, getleftMenu, getNextNode, addCollectBiz, deleteCollectBiz } from "@/api/ywbl" | ||
73 | export default { | ||
74 | data () { | ||
75 | return { | ||
76 | //申请业务类型集合 | ||
77 | sqywlxList: [ | ||
78 | { name: "常办业务", type: "collect" }, | ||
79 | { name: "一并申请", type: "together" }, | ||
80 | { name: "登记簿补录", type: "amend" } | ||
81 | ], | ||
82 | //类型默认选择常办业务 | ||
83 | selectType: "collect", | ||
84 | //堆叠框选中第一个 | ||
85 | activeNames: ['1'], | ||
86 | //收藏业务集合 | ||
87 | collectList: [], | ||
88 | //申请权利类型集合 | ||
89 | sqywQllxList: [], | ||
90 | //登记类型集合 | ||
91 | djlxList: [], | ||
92 | //申请权利类型集合 | ||
93 | djqxList: [], | ||
94 | //选中业务的参数 | ||
95 | selectParam: {}, | ||
96 | //选择按钮显示或隐藏 | ||
97 | btnDisabled: true, | ||
98 | } | ||
99 | }, | ||
100 | created () { | ||
101 | this.getDataList(); | ||
102 | }, | ||
103 | methods: { | ||
104 | getDataList () { | ||
105 | //获取收藏信息集合 | ||
106 | getCollectBiz().then(res => { | ||
107 | this.collectList = res.result; | ||
108 | this.collectList.forEach(item => { | ||
109 | this.$set(item, 'selected', false); | ||
110 | }); | ||
111 | }); | ||
112 | //获取申请权利信息集合 | ||
113 | getleftMenu().then(res => { | ||
114 | this.sqywQllxList = res.result; | ||
115 | }) | ||
116 | }, | ||
117 | //申请业务类型菜单事件 | ||
118 | sqywlxClick (item) { | ||
119 | this.btnDisabled = true; | ||
120 | this.selectType = item.type; | ||
121 | this.sqywQllxList.forEach(item => { | ||
122 | if (item.check) item.check = false; | ||
123 | }) | ||
124 | }, | ||
125 | //权利类型菜单事件 | ||
126 | qllxClick (index) { | ||
127 | this.btnDisabled = true; | ||
128 | this.sqywQllxList.forEach(item => { | ||
129 | if (item.check) item.check = false; | ||
130 | }) | ||
131 | this.sqywQllxList[index].check = true; | ||
132 | this.selectType = "apply"; | ||
133 | this.djlxList = []; | ||
134 | this.djqxList = []; | ||
135 | this.getNextNode(this.sqywQllxList[index].bsmSqyw); | ||
136 | }, | ||
137 | //选择申请业务事件 | ||
138 | selectSqywClick (data, index) { | ||
139 | data.forEach(item => { | ||
140 | item.selected = false; | ||
141 | }); | ||
142 | data[index].selected = true; | ||
143 | if (data[index].sffqlc == "1") { | ||
144 | this.selectParam = data[index]; | ||
145 | this.btnDisabled = false; | ||
146 | } else { | ||
147 | this.btnDisabled = true; | ||
148 | this.getNextNode(data[index].bsmSqyw); | ||
149 | } | ||
150 | }, | ||
151 | //获取下个节点类型数据 | ||
152 | getNextNode (bsmSqyw) { | ||
153 | getNextNode(bsmSqyw).then(res => { | ||
154 | if (res.result.djqx) { | ||
155 | this.djqxList = res.result.djqx; | ||
156 | this.djqxList.forEach(item => { | ||
157 | this.$set(item, 'selected', false); | ||
158 | }); | ||
159 | } | ||
160 | if (res.result.djlx) { | ||
161 | this.djlxList = res.result.djlx; | ||
162 | this.djlxList.forEach(item => { | ||
163 | this.$set(item, 'selected', false); | ||
164 | }); | ||
165 | } | ||
166 | }) | ||
167 | }, | ||
168 | //双击事件 | ||
169 | dblclick (data, index, item) { | ||
170 | localStorage.setItem('ywbl', JSON.stringify(item)); | ||
171 | this.selectSqywClick(data, index); | ||
172 | this.dialogClick(); | ||
173 | }, | ||
174 | //打开弹框内容 | ||
175 | dialogClick () { | ||
176 | this.openDialog(); | ||
177 | }, | ||
178 | //收藏操作 | ||
179 | handleCollection (item) { | ||
180 | let that = this | ||
181 | if (item.userCollect == '2') { | ||
182 | addCollectBiz(item.bsmSqyw).then(res => { | ||
183 | if (res.code == 200) { | ||
184 | item.userCollect = '1' | ||
185 | that.$message({ | ||
186 | message: '收藏成功!', | ||
187 | type: 'success' | ||
188 | }) | ||
189 | that.getDataList() | ||
190 | } | ||
191 | }) | ||
192 | } else { | ||
193 | this.$confirm('此操作将取消收藏, 是否继续?', '提示', { | ||
194 | confirmButtonText: '确定', | ||
195 | cancelButtonText: '取消', | ||
196 | type: 'warning' | ||
197 | }).then(() => { | ||
198 | deleteCollectBiz(item.bsmSqyw).then(res => { | ||
199 | if (res.code == 200) { | ||
200 | item.userCollect = '2' | ||
201 | that.$message({ | ||
202 | message: '取消收藏成功!', | ||
203 | type: 'success' | ||
204 | }) | ||
205 | that.getDataList() | ||
206 | } | ||
207 | }) | ||
208 | }) | ||
209 | } | ||
210 | }, | ||
211 | handleSelect (item) { | ||
212 | this.busList.forEach(item => { | ||
213 | item.cselect = false | ||
214 | }) | ||
215 | item.cselect = !item.cselect | ||
216 | }, | ||
217 | // 登记类型 | ||
218 | handleDjlxSelect (item) { | ||
219 | this.djlxList.forEach(item => { | ||
220 | item.cselect = false | ||
221 | }) | ||
222 | this.btnDisabled = true | ||
223 | item.cselect = true; | ||
224 | this.djqxObj = item; | ||
225 | if (item.sffqlc == '1') { | ||
226 | this.btnDisabled = false | ||
227 | this.bsmSqyw = item.bsmSqyw | ||
228 | this.djywbm = item.djywbm; | ||
229 | } else { | ||
230 | this.getNextNode(item.bsmSqyw, false) | ||
231 | } | ||
232 | this.djqxList = [] | ||
233 | }, | ||
234 | handleDjqxItem (item) { | ||
235 | this.djlxList.forEach(item => { | ||
236 | item.cselect = false | ||
237 | }) | ||
238 | if (item.sffqlc == 1) { | ||
239 | this.djywbm = item.djywbm | ||
240 | this.bsmSqyw = item.bsmSqyw | ||
241 | item.cselect = true | ||
242 | this.openDialog() | ||
243 | this.btnDisabled = true | ||
244 | } | ||
245 | }, | ||
246 | handleSelectItem (item, list) { | ||
247 | this.handleSelectYw(item, list) | ||
248 | this.openDialog() | ||
249 | }, | ||
250 | // 选择不动产信息 | ||
251 | bthSelectClick () { | ||
252 | this.openDialog() | ||
253 | }, | ||
254 | openDialog () { | ||
255 | let title = "申请业务:" + this.selectParam?.djywmc ? this.selectParam?.djywmc : ''; | ||
256 | this.$popupDialog(title, "ywbl/ywsq/selectBdc", { 'sqywInfo': this.selectParam }, "80%") | ||
257 | }, | ||
258 | loadView (view) { | ||
259 | return r => require.ensure([], () => r(require(`./components/${view}/${view}.vue`))) | ||
260 | } | ||
261 | } | ||
262 | } | ||
263 | </script> | ||
264 | <style scoped lang='scss'> | ||
265 | @import "~@/styles/mixin.scss"; | ||
266 | @import "./ywsq.scss"; | ||
267 | |||
268 | /deep/.el-collapse-item__content { | ||
269 | padding-bottom: 0; | ||
270 | } | ||
271 | |||
272 | /deep/.el-collapse-item__wrap { | ||
273 | border-bottom: none; | ||
274 | } | ||
275 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -112,7 +112,22 @@ export default { | ... | @@ -112,7 +112,22 @@ export default { |
112 | this.$popupDialog('楼盘表', 'lpb/index', { | 112 | this.$popupDialog('楼盘表', 'lpb/index', { |
113 | bsm: '' | 113 | bsm: '' |
114 | }, '85%') | 114 | }, '85%') |
115 | } | 115 | }, |
116 | ywhClick (item) { | ||
117 | const { href } = this.$router.resolve( | ||
118 | "/djbworkFrame?bdcdyid=" + | ||
119 | item.bdcdyid+ | ||
120 | "&bdcdyh=" + | ||
121 | item.bdcdyh+ | ||
122 | "&qllx="+ | ||
123 | item.qllx+ | ||
124 | "&bsmQlxx="+ | ||
125 | item.bsmQlxx | ||
126 | ); | ||
127 | localStorage.setItem('ywbl', JSON.stringify(item)); | ||
128 | window.open(href, `urlname${item.bdcdyid}`); | ||
129 | |||
130 | }, | ||
116 | } | 131 | } |
117 | } | 132 | } |
118 | </script> | 133 | </script> | ... | ... |
... | @@ -54,6 +54,9 @@ class data extends filter { | ... | @@ -54,6 +54,9 @@ class data extends filter { |
54 | prop: "ywh", | 54 | prop: "ywh", |
55 | label: "业务号", | 55 | label: "业务号", |
56 | width: '110', | 56 | width: '110', |
57 | render: (h, scope) => { | ||
58 | return <el-button type="text" onClick={() => { vm.ywhClick(scope.row) }}>{scope.row.ywh}</el-button> | ||
59 | } | ||
57 | }, | 60 | }, |
58 | { | 61 | { |
59 | prop: "qllxmc", | 62 | prop: "qllxmc", | ... | ... |
-
Please register or sign in to post a comment