7505abaf by tianhaohao@pashanhoo.com

Merge branch 'dev' of http://yun.pashanhoo.com:9090/bdc/bdcdj-web into dev

2 parents 250114a9 85ab10c9
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({
......
1 <template>
2 <dialogBox title="配置常办项目" @submitForm="submitForm" saveButton="保存" :isFullscreen="false" width="50%"
3 @closeDialog="closeDialog" v-model="myValue">
4 <Tree :data="projectList" show-checkbox node-key="id" :default-checked-keys="defaultCheckeds" ref="tree"
5 default-expand-all :props="defaultProps" @check-change="handleClick" />
6 </dialogBox>
7 </template>
8 <script>
9 import { getMenuInfo } from "@/api/user.js";
10 import Tree from "@/components/Tree/src/tree.vue"
11 import { saveFrequentProjectsList, getHomeFrequentProjects } from "@/api/user.js";
12 export default {
13 components: {
14 Tree
15 },
16 props: {
17 value: { type: Boolean, default: false },
18 bindItem: { type: Array, default: [] }
19 },
20 data () {
21 return {
22 myValue: false,
23 defaultCheckeds: [],
24 projectList: [],
25 checkedItem: [],
26 defaultProps: {
27 children: "children",
28 label: "name",
29 disabled: function (data, node) {
30 if (data.children && data.children.length > 0) {
31 return true
32 } else {
33 return false
34 }
35 }
36 },
37 uniqueValue: ''//最后拿到的唯一选择的moduldCode值,相当于id
38 }
39 },
40 watch: {
41 value (val) {
42 this.myValue = val
43 if (val) {
44 this.queryClick()
45 }
46 }
47 },
48 mounted () {
49 this.dealCheckedItem();
50 },
51 methods: {
52 submitForm () {
53 var checkedNodes = this.$refs.tree.getCheckedNodes();
54 if (checkedNodes.length > 6) {
55 this.$message.error("最多选择6个项目!");
56 return
57 }
58 saveFrequentProjectsList(checkedNodes).then(res => {
59 if (res.code == 200) {
60 this.$parent.queryProjectList();
61 this.$message.success("保存成功");
62 this.$emit("input", false);
63 } else {
64 this.$message.error(res.message);
65 }
66 })
67 },
68 queryClick () {
69 let that = this
70 getMenuInfo().then(res => {
71 this.projectList = res.result.slice(0, -2)
72 })
73 function lookForAllId (arr = []) {
74 for (let item of that.bindItem) {
75 arr.push(item.id)
76 if (item.children && item.children.length) lookForAllId(item.children, arr)
77 }
78 return arr
79 }
80 this.defaultCheckeds = lookForAllId()
81 },
82 dealCheckedItem () {
83 },
84 //关闭窗口
85 closeDialog () {
86 this.$emit("input", false);
87 },
88 //节点选择状态发生改变时
89 handleClick (data, checked, node) {
90 var checkedNodes = this.$refs.tree.getCheckedNodes();
91 if (checkedNodes.length > 6) {
92 this.$message({
93 message: '最后选择6条数据',
94 type: 'warning',
95 customClass: 'messageIndex'
96 })
97 this.$refs.tree.setChecked(data, false) // 取消当前节点的选中状态
98 }
99 }
100 }
101 }
102 </script>
103 <style scoped lang='scss'>
104 /deep/.el-tree-node.is-expanded>.el-tree-node__children {
105 display: flex;
106 flex-wrap: wrap;
107 }
108 </style>
1 <template>
2 <div class="bdcqldjml">
3 <table class="mlTable">
4 <tr>
5 <th colspan="5" class="title">不动产权利登记目录</th>
6 </tr>
7 <tr>
8 <td>序号</td>
9 <td>不动产单元号</td>
10 <td>不动产类型</td>
11 <td>所在本数</td>
12 <td>备注</td>
13 </tr>
14 <tr v-for="(item, index) in bdcqlml" :key="index">
15 <td>{{ index + 1 }}</td>
16 <td>{{ item.bdcdyh }}</td>
17 <td>{{ item.bdclx }}</td>
18 <td>{{ item.szbs }}</td>
19 <td>{{ item.bz }}</td>
20 </tr>
21 </table>
22 </div>
23 </template>
24
25 <script>
26 import { getBdcqldjmlByBdcdyid } from "@/api/registerBook.js";
27 export default {
28 data() {
29 return {
30 bdcqlml: [],
31 propsParam: this.$attrs,
32 };
33 },
34 mounted() {
35 getBdcqldjmlByBdcdyid({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
36 if (res.code === 200) {
37 this.bdcqlml = res.result;
38 }
39 });
40 },
41 };
42 </script>
43
44 <style lang="scss" scoped>
45 .bdcqldjml {
46 width: 100%;
47 height: 100%;
48 background: #fff;
49 overflow-y: scroll;
50 .mlTable {
51 width: 90%;
52 margin: 0 auto;
53 color: #333;
54 border-spacing: 1px;
55 background-color: #333;
56
57 .title {
58 font-size: 20px;
59 line-height: 60px;
60 font-family: serif;
61 position: relative;
62 }
63
64 td,
65 th {
66 background-color: white;
67 line-height: 30px;
68 padding: 0 4px;
69 text-align: center;
70 }
71 }
72 }
73 </style>
1 <template>
2 <div class="bdcqljqtsx">
3 <div class="content">
4 <div class="title">不动产权利及其他事项<br />登记信息</div>
5 <div>
6 不动产单元号:
7 <div class="underline">{{ propsParam.bdcdyh }}</div>
8 </div>
9 <br /><br /><br />
10 <div>
11 <div class="underline">{{ qlxxList.ztqlmc }}</div>
12 登记 共
13 <div class="underline">{{ qlxxList.ztql.total }}</div>
14
15 </div>
16 <br /><br />
17 <div>
18 抵押权登记 共
19 <div class="underline">{{ qlxxList.diyaq.total }}</div>
20
21 </div>
22 <br />
23 <div>
24 地役权登记 共
25 <div class="underline">{{ qlxxList.diyiq.total }}</div>
26
27 </div>
28 <br />
29 <div>
30 预告登记 共
31 <div class="underline">{{ qlxxList.ygdj.total }}</div>
32
33 </div>
34 <br />
35 <div>
36 异议登记 共
37 <div class="underline">{{ qlxxList.yydj.total }}</div>
38
39 </div>
40 <br />
41 <div>
42 查封登记 共
43 <div class="underline">{{ qlxxList.cfdj.total }}</div>
44
45 </div>
46 <br />
47 </div>
48 </div>
49 </template>
50
51 <script>
52 import { getBdcqljqtsx } from "@/api/registerBook.js";
53 export default {
54 name: "bdcqljqtsx",
55 data() {
56 return {
57 //传递参数
58 propsParam: this.$attrs,
59 qlxxList: "",
60 };
61 },
62 mounted() {
63 getBdcqljqtsx({
64 bdcdyid: this.propsParam.bdcdyid,
65 bdcdyh: this.propsParam.bdcdyh,
66 }).then((res) => {
67 if (res.code === 200) {
68 this.qlxxList = res.result;
69 }
70 });
71 },
72 };
73 </script>
74
75 <style lang="scss" scoped>
76 .bdcqljqtsx {
77 width: 100%;
78 height: 100%;
79 background: #fff;
80
81 .content {
82 width: 50%;
83 height: 100%;
84 margin: 0 auto;
85 text-align: right;
86 color: #333;
87 font-family: "Arial Negreta", "Arial Normal", "Arial", sans-serif;
88 font-weight: 700;
89 font-size: 18px;
90 line-height: 16px;
91
92 .title {
93 font-size: 32px;
94 text-align: center;
95 padding: 40px 0;
96 line-height: 34px;
97 }
98
99 .underline {
100 font-size: 14px;
101 font-weight: normal;
102 text-decoration: underline;
103 display: inline-block;
104 }
105 }
106 }
107 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { getCfdjList } from "@/api/registerBook.js";
42 import { datas } from "./qlxxFormData.js";
43 export default {
44 data () {
45 return {
46 title: "查封登记信息",
47 qsztList: datas.columns().qsztList,
48 checkList: datas.columns().checkList,
49 //传递参数
50 propsParam: this.$attrs,
51 //列表数据
52 tableData: [],
53 //空列值个数
54 emptycolNum: datas.columns().emptycolNum,
55 //列名称对象
56 columns: datas.columns().CFDJ,
57 };
58 },
59 created () {
60 this.loadData();
61 },
62 methods: {
63 loadData () {
64 getCfdjList({
65 bdcdyid: this.propsParam.bdcdyid,
66 qllx: this.propsParam.qllx,
67 qszt: this.checkList,
68 }).then((res) => {
69 if (res.code === 200) {
70 this.tableData = res.result;
71 this.tableData.forEach((item, index) => {
72 if (item.sfbxf == '1') {
73 item.zxywh = '';
74 item.zxdbr = '';
75 item.zxsj = '';
76 }
77 })
78 if (this.tableData.length < datas.columns().emptycolNum) {
79 this.emptycolNum =
80 datas.columns().emptycolNum - this.tableData.length;
81 } else {
82 this.emptycolNum = 0;
83 }
84 }
85 });
86 },
87 checkChange () {
88 if (this.checkList.length === 0) {
89 this.tableData = [];
90 this.emptycolNum = datas.columns().emptycolNum;
91 } else {
92 this.loadData();
93 }
94 },
95 getQsztName (code) {
96 let name = "";
97 for (let item of this.qsztList) {
98 if (item.value == code) {
99 name = item.label;
100 break;
101 }
102 }
103 return name;
104 },
105 },
106 };
107 </script>
108
109 <style lang="scss" scoped>
110 @import "./qlxxCommon.scss";
111 </style>
1 <template>
2 <div class="jtfccx-edit">
3 <div class="jtfccx-edit-con">
4 <el-form ref="form" :model="form" label-width="160px">
5 <el-row>
6 <el-col :span="8">
7 <el-form-item label="权属状态" label-width="140px">
8 <el-select v-model="form.qszt">
9 <el-option v-for="item in qsztList" :key="item.value" :label="item.label" :value="item.value">
10 </el-option>
11 </el-select>
12 </el-form-item>
13 </el-col>
14 <el-col :span="8">
15 <el-form-item label="权利类型" label-width="140px">
16 <el-input v-model="form.qllxmc" ></el-input>
17 </el-form-item>
18 </el-col>
19 <el-col :span="8">
20 <el-form-item label="登记类型" label-width="140px">
21 <el-input v-model="form.djlxmc" ></el-input>
22 </el-form-item>
23 </el-col>
24 <el-col :span="8">
25 <el-form-item label="上手业务号" label-width="140px">
26 <el-input v-model="form.ssywh" ></el-input>
27 </el-form-item>
28 </el-col>
29 <el-col :span="8">
30 <el-form-item label="档案号" label-width="140px">
31 <el-input v-model="form.dah" ></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item label="业务号" label-width="140px">
36 <el-input v-model="form.ywh" ></el-input>
37 </el-form-item>
38 </el-col>
39 <el-col :span="8">
40 <el-form-item label="不动产单元号" label-width="140px">
41 <el-input v-model="form.bdcdyh" ></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="坐落" label-width="140px">
46 <el-input v-model="form.zl" ></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="共有情况" label-width="140px">
51 <el-input v-model="form.gyqk" ></el-input>
52 </el-form-item>
53 </el-col>
54 <el-col :span="8">
55 <el-form-item label="权利人类型" label-width="140px">
56 <el-input v-model="form.qlrlx" ></el-input>
57 </el-form-item>
58 </el-col>
59 <el-col :span="8">
60 <el-form-item label="权利人" label-width="140px">
61 <el-input v-model="form.qlrmc" ></el-input>
62 </el-form-item>
63 </el-col>
64 <el-col :span="8">
65 <el-form-item label="证件种类" label-width="140px">
66 <el-input v-model="form.qlrzjzl" ></el-input>
67 </el-form-item>
68 </el-col>
69 <el-col :span="8">
70 <el-form-item label="证件号" label-width="140px">
71 <el-input v-model="form.qlrzjhm" ></el-input>
72 </el-form-item>
73 </el-col>
74 <el-col :span="8">
75 <el-form-item label="使用权面积" label-width="140px">
76 <el-input v-model="form.mj" ></el-input>
77 </el-form-item>
78 </el-col>
79 <el-col :span="8">
80 <el-form-item label="权利性质" label-width="140px">
81 <el-input v-model="form.qlxzmc" ></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="土地用途" label-width="140px">
86 <el-input v-model="form.ytmc" ></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="使用权起止时间" label-width="140px">
91 <el-input v-model="form.syqqzsj" ></el-input>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item label="土地使用期限" label-width="140px">
96 <el-input v-model="form.tdsyqx" ></el-input>
97 </el-form-item>
98 </el-col>
99 <el-col :span="8">
100 <el-form-item label="取得价格(万元)" label-width="140px">
101 <el-input v-model="form.qdjg" ></el-input>
102 </el-form-item>
103 </el-col>
104 <el-col :span="8">
105 <el-form-item label="登记原因" label-width="140px">
106 <el-input v-model="form.djyy" ></el-input>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="不动产权证号" label-width="140px">
111 <el-input v-model="form.bdcqzh" ></el-input>
112 </el-form-item>
113 </el-col>
114 <el-col :span="8">
115 <el-form-item label="登记时间" label-width="140px">
116 <el-input v-model="form.djsj" ></el-input>
117 </el-form-item>
118 </el-col>
119 <el-col :span="8">
120 <el-form-item label="登簿人" label-width="140px">
121 <el-input v-model="form.dbr" ></el-input>
122 </el-form-item>
123 </el-col>
124 <el-col :span="8">
125 <el-form-item label="附记" label-width="140px">
126 <el-input v-model="form.fj" ></el-input>
127 </el-form-item>
128 </el-col>
129 </el-row>
130 <el-form-item class="btn">
131 <el-button type="primary" @click="submitForm">保存</el-button>
132 <el-button @click="closeDialog">取消</el-button>
133 </el-form-item>
134 </el-form>
135
136 </div>
137
138 </div>
139 </template>
140 <script>
141 export default {
142 props: {
143 formData: {
144 type: Object,
145 default: () => { },
146 },
147 },
148 data () {
149 return {
150 form:{},
151 qsztList: [
152 {
153 value: "0",
154 label: "临时",
155 },
156 {
157 value: "1",
158 label: "现势",
159 },
160 {
161 value: "2",
162 label: "历史",
163 },
164
165 ],
166 label:"",
167 };
168 },
169 mounted () {
170 console.log("this.formData.data",this.formData.data);
171 if (this.formData.data) {
172 this.$nextTick(() => {
173 this.form = Object.assign({}, this.formData.data)
174 this.form.qszt=this.form.qszt=='0'?"临时":this.form.qszt=='1'?"现势":"历史"
175 })
176 console.log("this.form",this.form);
177 }
178 },
179
180 methods: {
181 //新增常用意见
182 submitForm () {
183
184 this.$refs.form.validate(valid => {
185 if (valid) {
186 console.log("from",this.form);
187 // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => {
188 // if (res.code == 200) {
189 // this.$message.success("新增成功")
190 // this.closeaddDiglog();
191 // this.getList()
192 // } else {
193 // this.$message.error(res.message)
194 // }
195 // })
196 } else {
197 return false;
198 }
199 });
200 },
201 closeDialog () {
202 console.log("this.$refs['form']",this.$refs['form']);
203 this.$popupCacel()
204 this.$refs['form'].resetFields();
205 // this.resetTableFields();
206 }
207 },
208 };
209 </script>
210 <style scoped lang="scss">
211 @import "~@/styles/mixin.scss";
212 @import "~@/styles/public.scss";
213
214
215 .jtfccx-edit {
216 @include flex;
217 flex-direction: column;
218 overflow-y: hidden;
219 max-height: 85vh;
220 padding: 0 2px;
221
222
223 .btn{
224 text-align: center;
225
226 }
227 }
228 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { getDiyaqList } from "@/api/registerBook.js";
42 import { datas } from "./qlxxFormData.js";
43 export default {
44 data () {
45 return {
46 title: "抵押权登记信息",
47 qsztList: datas.columns().qsztList,
48 checkList: datas.columns().checkList,
49 //传递参数
50 propsParam: this.$attrs,
51 //列表数据
52 tableData: [],
53 //空列值个数
54 emptycolNum: datas.columns().emptycolNum,
55 //列名称对象
56 columns: datas.columns().DYAQ,
57 };
58 },
59 created () {
60 this.loadData();
61 },
62 methods: {
63 loadData () {
64 getDiyaqList({
65 bdcdyid: this.propsParam.bdcdyid,
66 qllx: this.propsParam.qllx,
67 qszt: this.checkList,
68 }).then((res) => {
69 if (res.code === 200) {
70 this.tableData = res.result;
71 if (this.tableData.length < datas.columns().emptycolNum) {
72 this.emptycolNum =
73 datas.columns().emptycolNum - this.tableData.length;
74 } else {
75 this.emptycolNum = 0;
76 }
77 }
78 });
79 },
80 checkChange () {
81 if (this.checkList.length === 0) {
82 this.tableData = [];
83 this.emptycolNum = datas.columns().emptycolNum;
84 } else {
85 this.loadData();
86 }
87 },
88 getQsztName (code) {
89 let name = "";
90 for (let item of this.qsztList) {
91 if (item.value == code) {
92 name = item.label;
93 break;
94 }
95 }
96 return name;
97 },
98 },
99 };
100 </script>
101
102 <style lang="scss" scoped>
103 @import "./qlxxCommon.scss";
104 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { getDiyiqList } from "@/api/registerBook.js";
42 import { datas } from "./qlxxFormData.js";
43 export default {
44 data () {
45 return {
46 title: "地役权登记信息",
47 qsztList: datas.columns().qsztList,
48 checkList: datas.columns().checkList,
49 //传递参数
50 propsParam: this.$attrs,
51 //列表数据
52 tableData: [],
53 //空列值个数
54 emptycolNum: datas.columns().emptycolNum,
55 //列名称对象
56 columns: datas.columns().DYIQ,
57 };
58 },
59 created () {
60 this.loadData();
61 },
62 methods: {
63 loadData () {
64 getDiyiqList({
65 bdcdyid: this.propsParam.bdcdyid,
66 qllx: this.propsParam.qllx,
67 qszt: this.checkList,
68 }).then((res) => {
69 if (res.code === 200) {
70 this.tableData = res.result;
71 if (this.tableData.length < datas.columns().emptycolNum) {
72 this.emptycolNum =
73 datas.columns().emptycolNum - this.tableData.length;
74 } else {
75 this.emptycolNum = 0;
76 }
77 }
78 });
79 },
80 checkChange () {
81 if (this.checkList.length === 0) {
82 this.tableData = [];
83 this.emptycolNum = datas.columns().emptycolNum;
84 } else {
85 this.loadData();
86 }
87 },
88 getQsztName (code) {
89 let name = "";
90 for (let item of this.qsztList) {
91 if (item.value == code) {
92 name = item.label;
93 break;
94 }
95 }
96 return name;
97 },
98 },
99 };
100 </script>
101
102 <style lang="scss" scoped>
103 @import "./qlxxCommon.scss";
104 </style>
1
2
3 var qlxxPage = [
4 { qllx: "A01", id: "jsydsyq", form: "jsydsyq.vue", label: "集体土地所有权" },
5 { qllx: "A02", id: "jsydsyq", form: "jsydsyq.vue", label: "国家土地所有权" },
6 { qllx: "A03", id: "jsydsyq", form: "jsydsyq.vue", label: "国有建设用地使用权" },
7 { qllx: "A04", id: "", form: "", label: "国有建设用地使用权/房屋所有权" },
8 { qllx: "A05", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权" },
9 { qllx: "A06", id: "", form: "", label: "宅基地使用权/房屋所有权" },
10 { qllx: "A07", id: "jsydsyq", form: "jsydsyq.vue", label: "集体建设用地使用权" },
11 { qllx: "A08", id: "", form: "", label: "集体建设用地使用权/房屋所有权" },
12 { qllx: "A09", id: "jsydsyq", form: "jsydsyq.vue", label: "土地承包经营权" },
13 { qllx: "A11", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权" },
14 { qllx: "A12", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权/森林、林木使用权" },
15 { qllx: "A13", id: "jsydsyq", form: "jsydsyq.vue", label: "草原使用权" },
16 { qllx: "A14", id: "jsydsyq", form: "jsydsyq.vue", label: "水域滩涂养殖权" },
17 { qllx: "A15", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权" },
18 { qllx: "A16", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权/建(构)筑物所有权" },
19 { qllx: "A17", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权(无居民海岛)" },
20 { qllx: "A18", id: "jsydsyq", form: "jsydsyq.vue", label: "海域使用权(无居民海岛)/建筑物(设施)使用权" },
21 { qllx: "A19", id: "diyiq", form: "diyiq.vue", label: "地役权" },
22 { qllx: "A23", id: "jsydsyq", form: "jsydsyq.vue", label: "国有农用地的使用权" },
23 { qllx: "A24", id: "jsydsyq", form: "jsydsyq.vue", label: "国有建设用地使用权/构筑物所有权" },
24 { qllx: "A25", id: "jsydsyq", form: "jsydsyq.vue", label: "宅基地使用权/构筑物所有权" },
25 { qllx: "A26", id: "jsydsyq", form: "jsydsyq.vue", label: "集体建设用地使用权/构筑物所有权" },
26 { qllx: "A29", id: "jsydsyq", form: "jsydsyq.vue", label: "国有未利用地的使用权" },
27 { qllx: "A30", id: "jsydsyq", form: "jsydsyq.vue", label: "集体农用地使用权" },
28 { qllx: "A31", id: "jsydsyq", form: "jsydsyq.vue", label: "土地承包经营权/森林、林木使用权" },
29 { qllx: "A33", id: "jsydsyq", form: "jsydsyq.vue", label: "林地经营权/林木所有权" },
30 { qllx: "A34", id: "jsydsyq", form: "jsydsyq.vue", label: "林地经营权/林木使用权" },
31 { qllx: "A35", id: "jsydsyq", form: "jsydsyq.vue", label: "林地承包经营权/林木所有权" },
32 { qllx: "A36", id: "jsydsyq", form: "jsydsyq.vue", label: "林地使用权/林木所有权" },
33 { qllx: "A37", id: "diyaq", form: "diyaq.vue", label: "抵押权" },
34 { qllx: "B37", id: "diyaq", form: "diyaq.vue", label: "抵押权" },
35 { qllx: "B38", id: "yydj", form: "yydj.vue", label: "异议登记" },
36 { qllx: "B39", id: "cfdj", form: "cfdj.vue", label: "查封登记" },
37 { qllx: "B40", id: "ygdj", form: "ygdj.vue", label: "预告登记" },
38 { qllx: "B41", id: "ygdj", form: "ygdj.vue", label: "预告登记" },
39 ];
40
41 //组装登记簿树形结构
42 export function loadTreeData(qlxxData, bdcdyh) {
43 let treedata = [];
44 //加载封面
45 treedata.push({ id: "djbfm", form: "djbfm.vue", label: "登记簿封面" });
46 treedata.push({ id: "zdjbxx", form: "zdjbxx.vue", label: "宗地基本信息\n(" + bdcdyh.substring(0, 19) + ")", children: [] });
47 treedata[1].children.push({ id: "bdcqldjml", form: "bdcqldjml.vue", label: "不动产权利登记目录", children: [] });
48 treedata[1].children[0].children.push({
49 id: "bdcqljqtsx", form: "bdcqljqtsx.vue", label: "不动产权利及其他事项\n (" + bdcdyh.slice(19) + ")", children: [],
50 });
51 //主体权利
52 treedata[1].children[0].children[0].children.push(getNode(qlxxData.ztqllx, qlxxData.ztql, qlxxData.bdcdylx));
53 //抵押权
54 treedata[1].children[0].children[0].children.push(getNode("A37", qlxxData.diyaq, ''));
55 //地役权
56 treedata[1].children[0].children[0].children.push(getNode("A19", qlxxData.diyiq, ''));
57 //预告登记
58 treedata[1].children[0].children[0].children.push(getNode("B40", qlxxData.ygdj, ''));
59 //异议登记
60 treedata[1].children[0].children[0].children.push(getNode("B38", qlxxData.yydj, ''));
61 //查封登记
62 treedata[1].children[0].children[0].children.push(getNode("B39", qlxxData.cfdj, ''));
63
64 return treedata;
65 }
66
67 //获取权利类型、不动产单元类型对应的树形节点信息
68 export function getNode(qllx, qlxx, bdcdylx) {
69 let node;
70 for (var i = 0; i < qlxxPage.length; i++) {
71 if (qlxxPage[i].qllx == qllx) {
72 if (qllx == "A04" || qllx == "A06" || qllx == "A08") {
73 if (bdcdylx == "4") {
74 node = { id: "fdcq1", form: "fdcq1.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
75 } else {
76 node = { id: "fdcq2", form: "fdcq2.vue", label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
77 }
78 } else {
79 node = { id: qlxxPage[i].id, form: qlxxPage[i].form, label: qlxxPage[i].label + "(临:" + qlxx.linShi + ",现:" + qlxx.xianShi + ",历:" + qlxx.liShi +")"};
80 }
81 break;
82 }
83 };
84 return node;
85 }
86
1 <template>
2 <div class="djbfm">
3 <br /><br />
4 <p>
5 <font>{{ info.sheng }}</font>
6 省 (区、市)
7 <font>{{ info.shi }}</font>
8 市 (区)
9 <font>{{ info.xian }}</font>
10 区 (县、市)
11 </p>
12 <p>
13 <font>{{ info.jdh }}</font>
14 街道 (乡、镇)
15 <font>{{ info.jfh }}</font>
16 街坊 (村)
17 <font>{{ info.zh }}</font>
18
19 </p>
20 <div class="title">不动产登记簿</div>
21 <br />
22 <p>
23 宗地/宗海号:
24 <font>{{ info.zddm }}</font>
25 </p>
26 <div class="bottom">
27 <p>
28 登记机构:
29 <font>{{ info.djjg }}</font>
30 </p>
31 </div>
32 </div>
33 </template>
34
35 <script>
36 import { getDjbfm } from "@/api/registerBook.js";
37
38 export default {
39 data () {
40 return {
41 //传递参数
42 propsParam: this.$attrs,
43 info: {},
44 };
45 },
46 mounted () {
47 this.loadData();
48 },
49 methods: {
50 loadData () {
51 getDjbfm({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
52 if (res.code === 200) {
53 this.info = res.result;
54 }
55 });
56 },
57 },
58 };
59 </script>
60
61 <style lang="scss" scoped>
62 .djbfm {
63 width: 100%;
64 height: 100%;
65 background: #fff;
66 border-right: 1px solid #ccc;
67 line-height: 45px;
68 text-align: center;
69 font-size: 18px;
70 font-family: serif;
71 position: relative;
72
73 font {
74 border-bottom: 1px solid #000;
75 display: inline-block;
76 padding: 0 15px;
77 line-height: 16px;
78 }
79
80 .title {
81 height: 40%;
82 display: flex;
83 font-size: 38px;
84 color: #000;
85 justify-content: center;
86 align-items: center;
87 }
88
89 .bottom {
90 position: absolute;
91 bottom: 0px;
92 text-align: center;
93 width: 100%;
94 left: 0;
95 height: 100px;
96 line-height: 100px;
97
98 p {
99 font-size: 28px;
100 }
101
102 font {
103 font-size: 24px;
104 line-height: 24px;
105 }
106 }
107 }
108 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <!-- 固定前三个 -->
14 <table class="xxTable">
15 <tr v-for="(item, colindex) in columns" :key="colindex">
16 <td>
17 {{ item.label }}
18 </td>
19 <td v-for="(row, index) in tableData" :key="index" :class="[
20 row.qszt == '2' ? 'lishi' : '',
21 row.qszt == '0' ? 'linshi' : '',
22 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
23 item.prop == 'qszt' && row.qszt == '1' ? 'xianshiIcon' : '',
24 ]">
25 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
26 正在办理
27 </div>
28 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '1'">
29 有效
30 </div>
31 <span v-if="item.prop == 'qszt'">
32 {{ getQsztName(row[item.prop]) }}
33 </span>
34
35 <span v-else> {{ row[item.prop] }}</span>
36 </td>
37 <td v-for="count in emptycolNum" :key="~count"></td>
38 </tr>
39 </table>
40 </div>
41 </div>
42 </div>
43 </template>
44
45 <script>
46 import { getJsydsyqList } from "@/api/registerBook.js";
47 import { datas } from "./qlxxFormData.js";
48 export default {
49 data () {
50 return {
51 title: "建设用地使用权、宅基地使用权登记信息",
52 qsztList: datas.columns().qsztList,
53 checkList: datas.columns().checkList,
54 //传递参数
55 propsParam: this.$attrs,
56 //列表数据
57 tableData: [],
58 //空列值个数
59 emptycolNum: datas.columns().emptycolNum,
60 //列名称对象
61 columns: datas.columns().JSYDSYQ,
62 };
63 },
64 created () {
65 this.loadData();
66 },
67 methods: {
68 loadData () {
69 getJsydsyqList({
70 bdcdyid: this.propsParam.bdcdyid,
71 qllx: this.propsParam.qllx,
72 qszt: this.checkList,
73 }).then((res) => {
74 if (res.code === 200) {
75 this.tableData = res.result;
76 if (this.tableData.length < datas.columns().emptycolNum) {
77 this.emptycolNum =
78 datas.columns().emptycolNum - this.tableData.length;
79 } else {
80 this.emptycolNum = 0;
81 }
82 }
83 });
84 },
85 checkChange () {
86 if (this.checkList.length === 0) {
87 this.tableData = [];
88 this.emptycolNum = datas.columns().emptycolNum;
89 } else {
90 this.loadData();
91 }
92 },
93 getQsztName (code) {
94 let name = "";
95 for (let item of this.qsztList) {
96 if (item.value == code) {
97 name = item.label;
98 break;
99 }
100 }
101 return name;
102 },
103 },
104 };
105 </script>
106
107 <style lang="scss" scoped>
108 @import "./qlxxCommon.scss";
109 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { getFdcq2List } from "@/api/registerBook.js";
42 import { datas } from "./qlxxFormData.js";
43 export default {
44 data () {
45 return {
46 title: "房地产权登记信息(独幢、层、套、间房屋)",
47 qsztList: datas.columns().qsztList,
48 checkList: datas.columns().checkList,
49 //传递参数
50 propsParam: this.$attrs,
51 //列表数据
52 tableData: [],
53 //空列值个数
54 emptycolNum: datas.columns().emptycolNum,
55 //列名称对象
56 columns: datas.columns().FDCQ2,
57 };
58 },
59 created () {
60 this.loadData();
61 },
62 methods: {
63 loadData () {
64 getFdcq2List({
65 bdcdyid: this.propsParam.bdcdyid,
66 qllx: this.propsParam.qllx,
67 qszt: this.checkList,
68 }).then((res) => {
69 if (res.code === 200) {
70 this.tableData = res.result;
71 if (this.tableData.length < datas.columns().emptycolNum) {
72 this.emptycolNum =
73 datas.columns().emptycolNum - this.tableData.length;
74 } else {
75 this.emptycolNum = 0;
76 }
77 }
78 });
79 },
80 checkChange () {
81 if (this.checkList.length === 0) {
82 this.tableData = [];
83 this.emptycolNum = datas.columns().emptycolNum;
84 } else {
85 this.loadData();
86 }
87 },
88 getQsztName (code) {
89 let name = "";
90 for (let item of this.qsztList) {
91 if (item.value == code) {
92 name = item.label;
93 break;
94 }
95 }
96 return name;
97 },
98 },
99 };
100 </script>
101
102 <style lang="scss" scoped>
103 @import "./qlxxCommon.scss";
104 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <!-- 固定前三个 -->
14 <table class="xxTable">
15 <tr v-for="(item, colindex) in columns" :key="colindex">
16 <td>
17 {{ item.label }}
18 </td>
19 <td v-for="(row, index) in tableData" :key="index" :class="[
20 row.qszt == '2' ? 'lishi' : '',
21 row.qszt == '0' ? 'linshi' : '',
22 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
23 item.prop == 'qszt' && row.qszt == '1' ? 'xianshiIcon' : '',
24 ]"
25 >
26 <div class="setbut" v-if="item.prop == 'cz'">
27 <el-button type="text" icon="el-icon-edit-outline" @click="editDialog(row)">编辑</el-button>
28 <el-button type="text" icon="el-icon-edit-outline" @click="AddDialog(row)">新增</el-button>
29 <el-button type="text" icon="el-icon-edit-outline" @click="deleteDialog(row)">删除</el-button>
30 </div>
31 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
32 正在办理
33 </div>
34 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '1'">
35 有效
36 </div>
37 <span v-if="item.prop == 'qszt'">
38 {{ getQsztName(row[item.prop]) }}
39 </span>
40
41 <span v-else> {{ row[item.prop] }}</span>
42 </td>
43 <td v-for="count in emptycolNum" :key="~count"></td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </div>
49 </template>
50
51 <script>
52 import { getJsydsyqList } from "@/api/registerBook.js";
53 import { datas } from "./qlxxFormData.js";
54
55 export default {
56 data () {
57 return {
58 title: "建设用地使用权、宅基地使用权登记信息",
59 qsztList: datas.columns().qsztList,
60 checkList: datas.columns().checkList,
61 //传递参数
62 propsParam: this.$attrs,
63 //列表数据
64 tableData: [],
65 //空列值个数
66 emptycolNum: datas.columns().emptycolNum,
67 //列名称对象
68 columns: datas.columns().JSYDSYQ,
69 };
70 },
71 created () {
72 this.loadData();
73 },
74 methods: {
75 loadData () {
76 getJsydsyqList({
77 bdcdyid: this.propsParam.bdcdyid,
78 qllx: this.propsParam.qllx,
79 qszt: this.checkList,
80 }).then((res) => {
81 if (res.code === 200) {
82 this.tableData = res.result;
83 console.log("this.tableData",this.tableData);
84 if (this.tableData.length < datas.columns().emptycolNum) {
85 this.emptycolNum =
86 datas.columns().emptycolNum - this.tableData.length;
87 } else {
88 this.emptycolNum = 0;
89 }
90 }
91 });
92 },
93 checkChange () {
94 if (this.checkList.length === 0) {
95 this.tableData = [];
96 this.emptycolNum = datas.columns().emptycolNum;
97 } else {
98 this.loadData();
99 }
100 },
101 getQsztName (code) {
102 let name = "";
103 for (let item of this.qsztList) {
104 if (item.value == code) {
105 name = item.label;
106 break;
107 }
108 }
109 return name;
110 },
111 AddDialog(row){
112 this.$popupDialog("新增", "djbBook/components/djbeditDialog", {
113 data: ''
114 })
115 },
116 editDialog(row){
117 this.$popupDialog("编辑", "djbBook/components/djbeditDialog", {
118 data: row
119 })
120 },
121 // 删除
122 deleteDialog(row){
123 console.log("row",row);
124 let that = this
125 this.$confirm('此操作将永久删除, 是否继续?', '提示', {
126 confirmButtonText: '确定',
127 cancelButtonText: '取消',
128 type: 'warning'
129 }).then(async () => {
130
131 // let bsmClmx = this.previewImg.imgList[this.previewImg.index].bsmClmx
132 // deleteClmx(bsmClmx).then(res => {
133 // if (res.code == 200) {
134 // that.$emit('updateList', res.result)
135 // that.$message({
136 // message: '删除成功!',
137 // type: 'success'
138 // })
139 // }
140 // })
141 that.$message({
142 message: '删除成功!',
143 type: 'success'
144 })
145 }).catch(() => {
146 this.$message({
147 type: 'info',
148 message: '已取消删除'
149 })
150 })
151
152 }
153 },
154 };
155 </script>
156
157 <style lang="scss" scoped>
158 @import "./qlxxCommon.scss";
159 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox">
13 <!-- 固定前三个 -->
14 <table class="xxTable">
15 <tr v-for="(item, colindex) in columns.slice(0, 3)" :key="colindex">
16 <td>
17 {{ item.label }}
18 </td>
19 <td v-for="(row, index) in tableData" :key="index" :class="[
20 row.qszt == '2' ? 'lishi' : '',
21 row.qszt == '0' ? 'linshi' : '',
22 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
23 item.prop == 'qszt' && row.qszt == '1' ? 'xianshiIcon' : '',
24 ]">
25 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
26 正在办理
27 </div>
28 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '1'">
29 有效
30 </div>
31 <span v-if="item.prop == 'qszt'">
32 {{ getQsztName(row[item.prop]) }}
33 </span>
34
35 <span v-else> {{ row[item.prop] }}</span>
36 </td>
37 <td v-for="count in emptycolNum" :key="~count"></td>
38 </tr>
39 </table>
40
41 <table class="xxTable rollTable">
42 <tr v-for="(item, colindex) in columns.slice(3)" :key="colindex">
43 <td>
44 {{ item.label }}
45 </td>
46 <td v-for="(row, index) in tableData" :key="index" :class="[
47 row.qszt == '2' ? 'lishi' : '',
48 row.qszt == '0' ? 'linshi' : '',
49 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
50 ]">
51 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
52 正在办理
53 </div>
54 <span v-if="item.prop == 'qszt'">
55 {{ getQsztName(row[item.prop]) }}
56 </span>
57
58 <span v-else> {{ row[item.prop] }}</span>
59 </td>
60 <td v-for="count in emptycolNum" :key="~count"></td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </div>
66 </template>
67
68 <script>
69 import { getNydsyqList } from "@/api/registerBook.js";
70 import { datas } from "./qlxxFormData.js";
71 export default {
72 data () {
73 return {
74 title: "农用地使用权登记信息",
75 qsztList: datas.columns().qsztList,
76 checkList: datas.columns().checkList,
77 //传递参数
78 propsParam: this.$attrs,
79 //列表数据
80 tableData: [],
81 //空列值个数
82 emptycolNum: datas.columns().emptycolNum,
83 //列名称对象
84 columns: datas.columns().NYDSYQ,
85 };
86 },
87 created () {
88 var qllx = this.$route.query.sqywbm.substr(0, 3)
89 if (qllx == 'A09') {
90 this.title = '土地经营权登记信息'
91 } else {
92 this.title = '农用地使用权登记信息'
93 }
94 this.loadData();
95 },
96 methods: {
97 loadData () {
98 getNydsyqList({
99 bdcdyid: this.propsParam.bdcdyid,
100 qllx: this.propsParam.qllx,
101 qszt: this.checkList,
102 }).then((res) => {
103 if (res.code === 200) {
104 this.tableData = res.result;
105 if (this.tableData.length < datas.columns().emptycolNum) {
106 this.emptycolNum =
107 datas.columns().emptycolNum - this.tableData.length;
108 } else {
109 this.emptycolNum = 0;
110 }
111 }
112 });
113 },
114 checkChange () {
115 if (this.checkList.length === 0) {
116 this.tableData = [];
117 this.emptycolNum = datas.columns().emptycolNum;
118 } else {
119 this.loadData();
120 }
121 },
122 getQsztName (code) {
123 let name = "";
124 for (let item of this.qsztList) {
125 if (item.value == code) {
126 name = item.label;
127 break;
128 }
129 }
130 return name;
131 },
132 },
133 };
134 </script>
135
136 <style lang="scss" scoped>
137 @import "./qlxxCommon.scss";
138 </style>
1 .djxxTable {
2 width: 100%;
3 height: 100%;
4 background: #fff;
5 color: #333;
6
7 .tableBox {
8 margin: 0 auto;
9 display: flex;
10 flex-wrap: wrap;
11
12 .title {
13 width: 100%;
14 font-weight: 700;
15 font-size: 16px;
16 text-align: center;
17 background: #e9e9e9;
18 height: 62px;
19 line-height: 62px;
20 position: relative;
21 margin: 0 3px;
22
23 .checkbox {
24 position: absolute;
25 right: 20px;
26 bottom: -16px;
27 height: 62px;
28 }
29 }
30
31 .xxTableBox {
32 overflow: scroll;
33 width: 100%;
34 }
35
36 .xxTable>tr:first-child th {
37 width: 140px;
38 }
39
40 .xxTable {
41 //border-spacing: 1px;
42 width: 100%;
43 // table-layout: fixed;
44
45 tr {
46 box-sizing: border-box;
47 }
48
49 tr>th {
50 border: 1px solid #ccc;
51 background: #F2F2F2;
52 color: #333333;
53 font-size: 16px;
54 height: 40px;
55 }
56
57 tr:nth-child(1) {
58 position: sticky;
59 top: 0px;
60 z-index: 3;
61 margin-top: -2px;
62 }
63
64 tr:nth-child(2) {
65 position: sticky;
66 top: 40px;
67 z-index: 3;
68 }
69
70 tr:nth-child(3) {
71 position: sticky;
72 top: 80px;
73 z-index: 3;
74 box-shadow: 0px 15px 10px -15px #409EFF;
75 }
76
77 tr td:first-child {
78 position: sticky;
79 left: 0;
80 z-index: 2;
81 margin-left: -2px;
82 }
83
84 th.linshi,
85 th.xianshi {
86 background: #464c5b;
87 }
88
89 th.lishi {
90 background: rgba(70, 76, 91, 0.8);
91 }
92
93 .one th {
94 height: 25px;
95 font-size: 14px;
96 }
97
98 th.linshi {
99 color: #fe9400;
100 }
101
102 .two th {
103 height: 45px;
104
105 p:nth-child(2) {
106 font-size: 14px;
107 }
108 }
109
110 .linshiIcon {
111 position: relative;
112
113 .icon {
114 position: absolute;
115 top: 12px;
116 right: -5px;
117 transform: rotate(45deg);
118 color: #fff;
119 font-size: 12px;
120 z-index: 10;
121 }
122 }
123
124 .linshiIcon::after {
125 content: "";
126 display: block;
127 width: 0;
128 height: 0;
129 border-width: 0px 0px 55px 55px;
130 border-style: none solid solid;
131 border-color: transparent transparent #fe9400;
132 position: absolute;
133 top: 0;
134 right: 0;
135 transform: rotate(-90deg);
136 }
137
138 .xianshiIcon {
139 position: relative;
140
141 .icon {
142 position: absolute;
143 top: 9px;
144 right: 5px;
145 transform: rotate(45deg);
146 color: #fff;
147 font-size: 12px;
148 z-index: 10;
149 }
150 }
151
152 .xianshiIcon::after {
153 content: "";
154 display: block;
155 width: 0;
156 height: 0;
157 border-width: 0px 0px 55px 55px;
158 border-style: none solid solid;
159 border-color: transparent transparent #67C23A;
160 position: absolute;
161 top: 0;
162 right: 0;
163 transform: rotate(-90deg);
164 }
165
166
167
168 tr {
169 display: flex;
170 }
171
172 tr td {
173 border: 1px solid rgb(227, 226, 226);
174 text-align: center;
175 height: 40px;
176 font-size: 13px;
177 width: 140px;
178 flex: 1;
179 width: 100%;
180 display: flex;
181 align-items: center;
182 justify-content: center;
183 min-width: 280px;
184 z-index: 1;
185 }
186
187 >tr:nth-child(odd) td {
188 background: #f2f2f2;
189 }
190
191 >tr:nth-child(even) td {
192 background: #f9f9f9;
193 }
194
195 td.linshi {
196 color: #fe9400;
197 }
198
199 tr>td.lishi {
200 color: #7f7f7f;
201 }
202 }
203
204 .rollTable {
205 margin-top: -2px;
206 display: block;
207 height: calc(100vh - 185px);
208 overflow-y: scroll;
209 margin-left: 2px;
210 }
211 }
212 }
...\ No newline at end of file ...\ No newline at end of file
1 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 }
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { getYgdjList } from "@/api/registerBook.js";
42 import { datas } from "./qlxxFormData.js";
43 export default {
44 data () {
45 return {
46 title: "预告登记信息",
47 qsztList: datas.columns().qsztList,
48 checkList: datas.columns().checkList,
49 //传递参数
50 propsParam: this.$attrs,
51 //列表数据
52 tableData: [],
53 //空列值个数
54 emptycolNum: datas.columns().emptycolNum,
55 //列名称对象
56 columns: datas.columns().YGDJ,
57 };
58 },
59 created () {
60 this.loadData();
61 },
62 methods: {
63 loadData () {
64 getYgdjList({
65 bdcdyid: this.propsParam.bdcdyid,
66 qllx: this.propsParam.qllx,
67 qszt: this.checkList,
68 }).then((res) => {
69 if (res.code === 200) {
70 this.tableData = res.result;
71 if (this.tableData.length < datas.columns().emptycolNum) {
72 this.emptycolNum =
73 datas.columns().emptycolNum - this.tableData.length;
74 } else {
75 this.emptycolNum = 0;
76 }
77 }
78 });
79 },
80 checkChange () {
81 if (this.checkList.length === 0) {
82 this.tableData = [];
83 this.emptycolNum = datas.columns().emptycolNum;
84 } else {
85 this.loadData();
86 }
87 },
88 getQsztName (code) {
89 let name = "";
90 for (let item of this.qsztList) {
91 if (item.value == code) {
92 name = item.label;
93 break;
94 }
95 }
96 return name;
97 },
98 },
99 };
100 </script>
101
102 <style lang="scss" scoped>
103 @import "./qlxxCommon.scss";
104 </style>
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox rollTable">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { getYydjList } from "@/api/registerBook.js";
42 import { datas } from "./qlxxFormData.js";
43 export default {
44 data () {
45 return {
46 title: "异议登记信息",
47 qsztList: datas.columns().qsztList,
48 checkList: datas.columns().checkList,
49 //传递参数
50 propsParam: this.$attrs,
51 //列表数据
52 tableData: [],
53 //空列值个数
54 emptycolNum: datas.columns().emptycolNum,
55 //列名称对象
56 columns: datas.columns().YYDJ,
57 };
58 },
59 created () {
60 this.loadData();
61 },
62 methods: {
63 loadData () {
64 getYydjList({
65 bdcdyid: this.propsParam.bdcdyid,
66 qllx: this.propsParam.qllx,
67 qszt: this.checkList,
68 }).then((res) => {
69 if (res.code === 200) {
70 this.tableData = res.result;
71 if (this.tableData.length < datas.columns().emptycolNum) {
72 this.emptycolNum =
73 datas.columns().emptycolNum - this.tableData.length;
74 } else {
75 this.emptycolNum = 0;
76 }
77 }
78 });
79 },
80 checkChange () {
81 if (this.checkList.length === 0) {
82 this.tableData = [];
83 this.emptycolNum = datas.columns().emptycolNum;
84 } else {
85 this.loadData();
86 }
87 },
88 getQsztName (code) {
89 let name = "";
90 for (let item of this.qsztList) {
91 if (item.value == code) {
92 name = item.label;
93 break;
94 }
95 }
96 return name;
97 },
98 },
99 };
100 </script>
101
102 <style lang="scss" scoped>
103 @import "./qlxxCommon.scss";
104 </style>
1 <!--
2 * @Description :宗地基本信息
3 * @Autor : miaofang
4 * @LastEditTime : 2023-05-31 13:59:27
5 -->
6 <template>
7 <div class="tableDivCss">
8 <table cellpadding="0" cellspacing="0" class="tableCss">
9 <tr>
10 <th colspan="5" class="title">宗地基本信息</th>
11 </tr>
12 <tr>
13 <td>单位</td>
14 <td colspan="4">{{ zdjbxx.mjdw | dictionary('A7') }}</td>
15 </tr>
16 <tr>
17 <td>不动产类型</td>
18 <td colspan="4">{{ bdclxList[zdjbxx.bdclx] }}</td>
19 </tr>
20 <tr>
21 <td>坐落</td>
22 <td colspan="4">{{ zdjbxx.zl }}</td>
23 </tr>
24 <tr>
25 <td rowspan="8">土地状况</td>
26 </tr>
27 <tr>
28 <td style="width:15%">宗地面积</td>
29 <td style="width:30%">{{ zdjbxx.zdmj }}</td>
30 <td style="width:15%">用途</td>
31 <td style="width:30%">{{ zdjbxx.ghytmc }}</td>
32 </tr>
33 <tr>
34 <td>等级</td>
35 <td>{{ zdjbxx.djmc }}</td>
36 <td>价格</td>
37 <td>{{ zdjbxx.jg }}</td>
38 </tr>
39 <tr>
40 <td>权利类型</td>
41 <td>{{ zdjbxx.qllxmc }}</td>
42 <td>权利性质</td>
43 <td>{{ zdjbxx.qlxzmc }}</td>
44 </tr>
45 <tr>
46 <td>权利设定方式</td>
47 <td>{{zdjbxx.qlsdfs | dictionary('A10')}}</td>
48 <td>容积率</td>
49 <td>{{ zdjbxx.rjl }}</td>
50 </tr>
51 <tr>
52 <td>建筑密度</td>
53 <td>{{ zdjbxx.jzmd }}</td>
54 <td>建筑限高</td>
55 <td>{{ zdjbxx.jzxg }}</td>
56 </tr>
57 <tr>
58 <td>图幅号</td>
59 <td>{{ zdjbxx.tfh }}</td>
60 <td>地籍号</td>
61 <td>{{ zdjbxx.djh }}</td>
62 </tr>
63 <tr>
64 <td>档案号</td>
65 <td>{{ zdjbxx.dah }}</td>
66 <td>地块代码</td>
67 <td>{{ zdjbxx.dkdm }}</td>
68 </tr>
69 <tr>
70 <td rowspan="5">宗地四至</td>
71 </tr>
72
73 <tr>
74 <td></td>
75 <td colspan="3">{{ zdjbxx.zdszd }}</td>
76 </tr>
77 <tr>
78 <td></td>
79 <td colspan="3">{{ zdjbxx.zdszn }}</td>
80 </tr>
81 <tr>
82 <td>西</td>
83 <td colspan="3">{{ zdjbxx.zdszx }}</td>
84 </tr>
85 <tr>
86 <td></td>
87 <td colspan="3">{{ zdjbxx.zdszb }}</td>
88 </tr>
89 <tr>
90 <td>登记时间</td>
91 <td colspan="2">{{ zdjbxx.bz }}</td>
92 <td>登簿人</td>
93 <td>{{ zdjbxx.bz }}</td>
94 </tr>
95
96 <tr>
97 <td>附记</td>
98 <td colspan="4">{{ zdjbxx.fj }}</td>
99 </tr>
100 <!-- <tr>
101 <td>状态</td>
102 <td colspan="2">{{ zdjbxx.zt }}</td>
103 <td>区县代码</td>
104 <td>{{ zdjbxx.qxdm }}</td>
105 </tr> -->
106 <tr v-if="showGroup">
107 <td rowspan="4">变化情况</td>
108
109 <!-- <table cellspacing="0" cellpadding="0" :width="bhqkTableWidth">
110 <tr v-for="(item, index) in bhqkColumns" :key="index">
111 <td class="bhqkTh">{{ item.label }}</td>
112 </tr>
113 </table> -->
114
115 </tr>
116
117 <tr v-if="showGroup">
118 <td>变化原因</td>
119 <td>变化内容</td>
120 <td>登记时间</td>
121 <td>登簿人</td>
122 </tr>
123 <!-- <tr >
124 <td>{{ zdbhqks[0].bhyy }}</td>
125 <td>{{ zdbhqks[0].bhnr }}</td>
126 <td>{{ zdbhqks[0].djsj }}</td>
127 <td>{{ zdbhqks[0].dbr }}</td>
128 </tr> -->
129
130 </table>
131 </div>
132 </template>
133
134 <script>
135 import store from '@/store/index.js'
136 import { getZdjjxxBybdcdyid } from "@/api/registerBook.js";
137
138 export default {
139 data () {
140 return {
141 bhqkColumns: [
142 {
143 prop: "ssywh",
144 label: "上手业务号",
145 },
146 {
147 prop: "zddm",
148 label: "宗地代码",
149 },
150 {
151 prop: "bhqzddm",
152 label: "变化前宗地代码",
153 },
154 {
155 prop: "bhnr",
156 label: "变化内容",
157 },
158 {
159 prop: "bhyy",
160 label: "变化原因",
161 },
162 {
163 prop: "djsj",
164 label: "登记时间",
165 },
166 {
167 prop: "dbr",
168 label: "登簿人",
169 },
170 {
171 prop: "fj",
172 label: "附记",
173 },
174 ],
175 bhqkTableWidth: 745,
176 zdjbxx: {},
177 zdbhqks: [],
178 propsParam: this.$attrs,
179 showGroup: false,
180 bdclxList: ["", "宗地", "宗海", "自然幢", "多幢", "构筑物", "林权", "户"]
181 }
182 },
183 filters: {
184 dictionary: function (value, param) {
185 const foundItem = store.getters.dictData[param].find(item => item.dcode === String(value))
186 if (foundItem) {
187 return foundItem.dname
188 }
189 }
190 },
191 created () {
192 this.loadData()
193 },
194 methods: {
195 loadData () {
196 console.log("this.$attrs",this.$attrs);
197 console.log("this.propsParam",this.propsParam);
198 if(this.propsParam.bsmSldy){
199 console.log("宗地基本信息");
200 }else{
201 console.log("登记簿里宗地基本信息");
202 getZdjjxxBybdcdyid({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
203 if (res.code === 200) {
204 this.zdjbxx = res.result.zdjbxx;
205 this.zdbhqks = res.result.zdbhqkList;
206 if (this.zdbhqks != null && this.zdbhqks.length > 0) {
207 this.showGroup = true;
208 }
209 }
210 })
211 }
212
213 }
214 }
215 }
216 </script>
217 <style lang="scss" scoped>
218 @import "~@/styles/tablecss.scss";
219 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:41:09
5 -->
6 <template>
7 <div>
8 <lb-table :column="column" border :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableDataList">
9 </lb-table>
10 <addJtcy v-model="dialog" :details="details" @updateDetail="updateDetail" />
11 </div>
12 </template>
13 <script>
14 import addJtcy from './addJtcy.vue'
15 import { mapGetters } from 'vuex'
16 export default {
17 components: {
18 addJtcy
19 },
20 computed: {
21 ...mapGetters(["dictData"]),
22 },
23 props: {
24 tableData: {
25 type: Array,
26 default: function () {
27 return []
28 }
29 },
30 gyfs: {
31 type: String,
32 default: '1'
33 }
34 },
35 data () {
36 return {
37 key: 0,
38 dataIndex: 0,
39 dialog: false,
40 details: {},
41 tableDataList: [],
42 qlrCommonTable: [
43 {
44 width: '50',
45 renderHeader: (h, scope) => {
46 return <div> {
47 this.$route.query.viewtype == 1 ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.addClick() }}></i>
48 }
49 </div>
50 },
51 render: (h, scope) => {
52 return (
53 <div>
54 {
55 this.$route.query.viewtype == 1 ? <span>{scope.$index + 1}</span> :
56 <i class="el-icon-minus pointer" onClick={() => { this.deleClick(scope.$index, scope.row) }}></i>
57 }
58 </div>
59 )
60 }
61 },
62 {
63 label: '身份证读卡器',
64 align: 'center',
65 render: (h, scope) => {
66 return <el-button type="text" icon="el-icon-tickets" onClick={() => { this.readClick(scope) }}>读取</el-button>
67 }
68 },
69 {
70 prop: "cyxm",
71 label: "成员姓名"
72 },
73 {
74 prop: "sfzhm",
75 label: "身份证号码"
76 },
77 {
78 prop: "dh",
79 label: "联系电话"
80 },
81 {
82 label: '修改',
83 render: (h, scope) => {
84 return (
85 <div>
86 {
87 this.$route.query.viewtype == 1 ? <el-button
88 icon="el-icon-view"
89 type="text"
90 onClick={() => { this.queryViewClick(scope.$index, scope.row) }}>查看</el-button> : <el-button
91 icon="el-icon-edit-outline"
92 type="text"
93 onClick={() => { this.editClick(scope.$index, scope.row) }}>编辑</el-button>
94 }
95 </div>
96 )
97 }
98 }
99 ],
100 column: this.qlrCommonTable
101 }
102 },
103 watch: {
104 tableData: {
105 handler: function (val, oldVal) {
106 let that = this
107 if (val.length == 0 || !val) {
108 that.tableDataList = _.cloneDeep([{
109 sqrmc: '',
110 dlrzjlx: '',
111 dlrzjh: '',
112 fr: ''
113 }])
114 } else {
115 that.tableDataList = _.cloneDeep(val)
116 }
117 },
118 immediate: true,
119 deep: true
120 },
121 gyfs: {
122 handler (newVal, oldValue) {
123 let dataList = _.cloneDeep(this.qlrCommonTable)
124 if (newVal == '1') {
125 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
126 } else {
127 this.column = dataList
128 }
129 },
130 immediate: true
131 }
132 },
133 methods: {
134 updateDetail (value) {
135 this.tableDataList[this.dataIndex] = value
136 this.key++
137 this.$emit('upDateJtcyList', this.tableDataList)
138 },
139
140 // 新增
141 addClick () {
142 this.dialog = true
143 },
144
145 // 删除
146 deleClick (index, row) {
147 this.tableData.splice(index, 1)
148 },
149
150 // 身份证读取
151 readClick () { },
152
153 // 修改
154 editClick (index, row) {
155 console.log(row, 'rowrowrowrowrow');
156 this.dataIndex = index
157 this.dialog = true
158 this.details = row
159 },
160
161 queryViewClick () {
162 this.dialog = true
163 }
164 }
165 }
166 </script>
167 <style scoped lang='scss'>
168 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:40:28
5 -->
6 <template>
7 <dialogBox title="家庭成员信息" width="60%" isMain v-model="myValue" :isFullscreen="false" @submitForm="submitForm"
8 @closeDialog="closeDialog">
9 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
10 <el-row>
11 <el-col :span="8">
12 <el-form-item label="姓名/名称" prop="cyxm">
13 <el-input v-model="ruleForm.cyxm" maxlegth="15"></el-input>
14 </el-form-item>
15 </el-col>
16 <el-col :span="8">
17 <el-form-item label="家庭关系" prop="jtgxdm">
18 <el-select clearable v-model="ruleForm.jtgxdm" class="width100" placeholder="请选择">
19 <el-option v-for="item in jtgx" :key="item.value" :label="item.label" :value="item.value">
20 </el-option>
21 </el-select>
22 </el-form-item>
23 </el-col>
24 <el-col :span="8">
25 <el-form-item label="承包方代码" prop="cbfdm">
26 <el-input v-model="ruleForm.cbfdm" maxlegth="15"></el-input>
27 </el-form-item>
28 </el-col>
29 </el-row>
30 <el-row>
31 <el-col :span="8">
32 <el-form-item label="身份证号码" prop="zjh">
33 <el-input v-model="ruleForm.sfzhm" maxlength="15" oninput="this.value=this.value.replace(/[^\X0-9]/g,'')"></el-input>
34 </el-form-item>
35 </el-col>
36 <el-col :span="8">
37 <el-form-item label="联系电话" prop="dh">
38 <el-input v-model="ruleForm.dh" maxlength="11" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item label="性别">
43 <el-select clearable v-model="ruleForm.xb" class="width100" placeholder="请选择">
44 <el-option v-for="item in dictData['A43']" :key="item.dcode" :label="item.dname" :value="item.dcode">
45 </el-option>
46 </el-select>
47 </el-form-item>
48 </el-col>
49 </el-row>
50 <el-row>
51 <el-col :span="8">
52 <el-form-item label="发证机关">
53 <el-input v-model="ruleForm.fzjg"></el-input>
54 </el-form-item>
55 </el-col>
56 <el-col :span="8">
57 <el-form-item label="所属行业">
58 <el-input v-model="ruleForm.sshy"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="国家/地区">
63 <el-input v-model="ruleForm.gj"></el-input>
64 </el-form-item>
65 </el-col>
66 </el-row>
67
68 <el-row>
69 <el-col :span="8">
70 <el-form-item label="户籍所在省市">
71 <el-input v-model="ruleForm.hjszss"></el-input>
72 </el-form-item>
73 </el-col>
74 <el-col :span="16">
75 <el-form-item label="地址">
76 <el-input v-model="ruleForm.dz"></el-input>
77 </el-form-item>
78 </el-col>
79 </el-row>
80
81 <el-row>
82 <el-col :span="8">
83 <el-form-item label="邮编">
84 <el-input v-model="ruleForm.yb"></el-input>
85 </el-form-item>
86 </el-col>
87 <el-col :span="16">
88 <el-form-item label="工作单位">
89 <el-input v-model="ruleForm.gzdw"></el-input>
90 </el-form-item>
91 </el-col>
92 </el-row>
93 <el-row>
94 <el-col :span="8">
95 <el-form-item label="电子邮件">
96 <el-input v-model="ruleForm.dzyj"></el-input>
97 </el-form-item>
98 </el-col>
99 <el-col :span="8">
100 <el-form-item label="是否共有人">
101 <el-input v-model="ruleForm.gzdw"></el-input>
102 </el-form-item>
103 </el-col>
104 </el-row>
105 </el-form>
106 </dialogBox>
107 </template>
108 <script>
109 import { mapGetters } from 'vuex'
110 export default {
111 props: {
112 value: { type: Boolean, default: false },
113 details: { type: Object, default: {} }
114 },
115 computed: {
116 ...mapGetters(["dictData"]),
117 },
118 data () {
119 return {
120 myValue: this.value,
121 jtgx: [
122 { value: '0', label: '本人或户主' },
123 { value: '1', label: '配偶' },
124 { value: '2', label: '子' },
125 { value: '3', label: '女' },
126 { value: '4', label: '子孙、孙女、外孙子、外孙女' },
127 { value: '5', label: '父母' },
128 { value: '6', label: '祖父母、外祖父母' },
129 { value: '7', label: '兄、弟、姐、妹' },
130 { value: '8', label: '其他' },
131 ],
132 ruleForm: {
133 qlrlx: '',
134 sqrmc: '',
135 zjzl: '',
136 zjh: '',
137 dh: '',
138 xb: '',
139 frmc: '',
140 gjdq: '',
141 szss: '',
142 dz: '',
143 yb: '',
144 fzjg: '',
145 dzyj: '',
146 qlbl: '',
147 gzdw: '',
148 dljg: '',
149 dlrxm: '',
150 dlrzjlx: '',
151 dlrzjh: ''
152 },
153 rules: {
154 qlrlx: [
155 { required: true, message: '权利人类型', trigger: 'change' }
156 ],
157 sqrmc: [
158 { required: true, message: '姓名/名称', trigger: 'blur' }
159 ],
160 zjzl: [
161 { required: true, message: '证件种类', trigger: 'change' }
162 ],
163 zjh: [
164 { required: true, message: '证件号', trigger: 'blur' }
165 ]
166 }
167 }
168 },
169 watch: {
170 value (val) {
171 this.myValue = _.cloneDeep(val)
172 },
173 details: {
174 handler: function (val, oldVal) {
175 this.ruleForm = val
176 },
177 deep: true
178 }
179 },
180 methods: {
181 closeDialog () {
182 this.$emit("input", false);
183 this.$refs['ruleForm'].resetFields();
184 },
185 submitForm () {
186 this.$emit("input", false);
187 this.$emit("updateDetail", _.cloneDeep(this.ruleForm));
188 // this.$refs['ruleForm'].validate((valid) => {
189 // if (valid) {
190 // this.$message({
191 // message: '修改成功!',
192 // type: 'success'
193 // })
194
195 // } else {
196 // this.$message.error('请完善必填项');
197 // }
198 // })
199 }
200 }
201 }
202 </script>
203 <style scoped lang="scss">
204 .submit-button {
205 text-align: center;
206 height: 52px;
207 padding-top: 10px;
208 background-color: #fff;
209 }
210 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-04-26 16:05:28
5 -->
6 <template>
7 <div class='batchDel'>
8 <lb-table :column="columns" :data="formData.dataList" :maxHeight="460" :heightNumSetting="true" :pagination="false"
9 @selection-change="handleSelectionChange">
10 </lb-table>
11 <div class="text-center">
12 <el-button @click="$popupCacel">取消</el-button>
13 <el-button type="primary" @click="submitdelclick" plain>确定</el-button>
14 </div>
15 </div>
16 </template>
17 <script>
18 import { deleteFlow } from "@/api/ywbl.js"
19 import store from '@/store/index.js'
20 export default {
21 components: {},
22 props: {
23 formData: {
24 type: Object,
25 default: {}
26 }
27 },
28 data () {
29 return {
30 columns: [
31 {
32 type: 'selection',
33 label: '全选'
34 },
35 {
36 label: '序号',
37 type: 'index',
38 width: '50',
39 },
40 {
41 prop: "bdcdyh",
42 label: "不动产单元号",
43 },
44 {
45 prop: "zl",
46 label: "坐落",
47 },
48 ],
49 dataList: [],
50 selectBdcdy: [],
51 }
52 },
53 methods: {
54 // 批量删除确定按钮
55 submitdelclick () {
56 var formdata = new FormData();
57 formdata.append("bsmSldyList", this.selectBdcdy);
58 formdata.append("bsmSlsq", this.formData.bsmSlsq);
59 deleteFlow(formdata).then(res => {
60 if (res.code == 200) {
61 this.$popupCacel();
62 store.dispatch('user/refreshPage', true);
63 this.$message.success("删除成功");
64 } else {
65 this.$message.error(res.message)
66 }
67 })
68 },
69 // 批量删除勾选事件
70 handleSelectionChange (e) {
71 this.selectBdcdy = [];
72 e.forEach((item, index) => {
73 this.selectBdcdy.push(item.bsmSldy)
74 })
75 }
76 }
77 }
78 </script>
79 <style scoped lang='scss'>
80 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:40:48
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import addQlr from './dialog/addQlr.vue'
12 import { mapGetters } from 'vuex'
13 export default {
14 components: {
15 addQlr
16 },
17 computed: {
18 ...mapGetters(["dictData"]),
19 },
20 props: {
21 tableData: {
22 type: Array,
23 default: function () {
24 return []
25 }
26 },
27 gyfs: {
28 type: String,
29 default: '1'
30 }
31 },
32 data () {
33 return {
34 key: 0,
35 dataIndex: 0,
36 dialog: false,
37 details: {},
38 tableDataList: [],
39 qlrCommonTable: [
40 {
41 label: '序号',
42 type: 'index',
43 width: '50',
44 render: (h, scope) => {
45 return (
46 <div>
47 {scope.$index + 1}
48 </div>
49 )
50 }
51 },
52 {
53 prop: "qllxmc",
54 label: "权利类型"
55 },
56 {
57 prop: "bdcqzh",
58 label: "不动产权证号"
59 },
60 {
61 prop: "qlrmc",
62 label: "权利人"
63 },
64 {
65 prop: "ytmc",
66 label: "用途"
67 },
68 {
69 prop: "mj",
70 label: "面积"
71 },
72 {
73 prop: "zl",
74 label: "坐落"
75 },
76 ],
77 column: this.qlrCommonTable
78 }
79 },
80 watch: {
81 tableData: {
82 handler: function (val, oldVal) {
83 let that = this
84 if (val.length == 0 || !val) {
85 that.tableDataList = _.cloneDeep([{
86 sqrmc: '',
87 dlrzjlx: '',
88 dlrzjh: '',
89 fr: ''
90 }])
91 } else {
92 that.tableDataList = _.cloneDeep(val)
93 }
94 },
95 immediate: true,
96 deep: true
97 },
98 gyfs: {
99 handler (newVal, oldValue) {
100 let dataList = _.cloneDeep(this.qlrCommonTable)
101 if (newVal == '1') {
102 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
103 } else if ((newVal == '2')) {
104 this.column = dataList
105 } else {
106 this.column = _.cloneDeep(dataList)
107 this.column.splice(
108 2, 0, {
109 prop: "fs",
110 label: "份数"
111 })
112 }
113 },
114 immediate: true
115 }
116 },
117 methods: {
118 }
119 }
120 </script>
121 <style scoped lang='scss'>
122 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:40: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
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>
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
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>
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>
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>
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>
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
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 }
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 }
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 }
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
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 }
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 }
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
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>
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-06-01 09:58:47 4 * @LastEditTime: 2023-06-01 09:48:15
5 --> 5 -->
6 <template> 6 <template>
7 <canvas id="mxcad"> 7 <canvas id="mxcad">
......
...@@ -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;
......
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",
......
1 'use strict' 1 'use strict'
2 const path = require('path') 2 const path = require('path')
3 const defaultSettings = require('./src/settings.js')
4
5 function resolve (dir) { 3 function resolve (dir) {
6 return path.join(__dirname, dir) 4 return path.join(__dirname, dir)
7 } 5 }
......