1b95b632 by 任超

feat:打包分支代码提交

2 parents 856df1c5 eb85698e
Showing 144 changed files with 9327 additions and 4842 deletions
...@@ -21,6 +21,4 @@ yarn-error.log* ...@@ -21,6 +21,4 @@ yarn-error.log*
21 *.njsproj 21 *.njsproj
22 *.sln 22 *.sln
23 *.sw? 23 *.sw?
24 /src/api/config.js
25
26 package-lock.json 24 package-lock.json
......
...@@ -11,10 +11,11 @@ ...@@ -11,10 +11,11 @@
11 "@jiaminghi/data-view": "^2.10.0", 11 "@jiaminghi/data-view": "^2.10.0",
12 "axios": "^0.21.1", 12 "axios": "^0.21.1",
13 "clipboard": "^2.0.11", 13 "clipboard": "^2.0.11",
14 "jsoneditor": "^9.9.2",
15 "core-js": "^3.6.5", 14 "core-js": "^3.6.5",
16 "echarts": "^4.6.0", 15 "echarts": "^4.6.0",
16 "file-saver": "^2.0.5",
17 "js-cookie": "2.2.0", 17 "js-cookie": "2.2.0",
18 "jsoneditor": "^9.9.2",
18 "lodash": "^4.17.21", 19 "lodash": "^4.17.21",
19 "node-sass": "^4.14.1", 20 "node-sass": "^4.14.1",
20 "normalize.css": "7.0.0", 21 "normalize.css": "7.0.0",
...@@ -24,7 +25,9 @@ ...@@ -24,7 +25,9 @@
24 "vue-json-editor": "^1.4.3", 25 "vue-json-editor": "^1.4.3",
25 "vue-router": "3.0.2", 26 "vue-router": "3.0.2",
26 "vuex": "3.1.0", 27 "vuex": "3.1.0",
27 "xe-utils": "^3.5.7" 28 "xe-utils": "^3.5.7",
29 "xlsx": "^0.17.0",
30 "xlsx-style": "^0.8.13"
28 }, 31 },
29 "devDependencies": { 32 "devDependencies": {
30 "@vue/cli-plugin-babel": "4.4.4", 33 "@vue/cli-plugin-babel": "4.4.4",
......
1 import request from "@/utils/request"; 1
2 import SERVER from "./config";
3 import { getParams } from './util' 2 import { getParams } from './util'
4 import { 3 import {
5 api, 4 api,
6 getAction, 5 getAction,
7 postAction,
8 deleteAction, 6 deleteAction,
9 putAction 7 putAction
10 } from './manageApi' 8 } from './manageApi'
11
12 /** 角色管理开始 */ 9 /** 角色管理开始 */
13 // 获取角色列表 categoryId 10 // 获取角色列表 by categoryId
14 export const getRolesById = categoryId => { 11 export const getRolesById = categoryId => {
15 const conditionGroup = { 12 const conditionGroup = {
16 conditions: [ 13 conditions: [
17 { 14 {
18 property: 'category', 15 property: 'category',
19 value:categoryId, 16 value: categoryId,
20 operator: 'EQ' 17 operator: 'EQ'
21 } 18 }
22 ], 19 ],
23 queryRelation: 'AND' 20 queryRelation: 'AND'
24 } 21 }
25 const params = getParams(conditionGroup); 22 const params = getParams(conditionGroup)
26 return getAction(api.roles, params) 23 return getAction(api.roles, params)
27 } 24 }
28 // 人员列表 25 /** 角色管理结束 */
29 export const getUserRoles = (id) => { 26 /** 授权管理开始 */
30 return getAction(`${api.userRoles}/${id}/users`) 27 // 获取权限列表
31 } 28 export const getAuthorityListAction = (productId, subsystemCode) => {
32 // 更新人员 29 const conditionGroup = {
33 export const updateUser = (id, data) => { 30 conditions: [
34 return putAction(`${api.userRoles}/${id}/users`, data) 31 {
35 } 32 property: 'productId',
36 // 根据条件获取用户 33 value: productId,
37 export const getUserList = (params) => { 34 operator: 'EQ'
38 return getAction(api.users, params) 35 },
39 } 36 {
40 // 导出用户列表 37 property: 'code',
41 export const exportUserList = (params) => { 38 value: subsystemCode + '_MENU',
42 return getAction(api.users + '/export', params) 39 operator: 'EQ'
40 }
41 ],
42 queryRelation: 'AND'
43 }
44 const params = getParams(conditionGroup)
45 return getAction(api.resourceCategory, params)
43 } 46 }
44 // 更新用户状态 47
45 export const updateStatus = (id, status) => { 48 /**
46 return putAction(`${api.users}/${id}/${status}/status`) 49 * 获取角色的权限 id operationCodes resourceCategoryCode
50 * id 授权id
51 * operationCodes 操作符集合
52 * resourceCategoryCode 菜单默认MENU
53 */
54 export const getRoleAuthorityList = (
55 id,
56 operationCodes,
57 resourceCategoryCode
58 ) => {
59 return getAction(`${api.rolePermissions}/${id}`, {
60 operationCodes: operationCodes,
61 resourceCategoryCode: resourceCategoryCode
62 })
47 } 63 }
48 // 更新用户解锁状态 64 // 角色授权
49 export const updateLock = (id) => { 65 export const roleAuthority = (id, permissionDtos) => {
50 return putAction(`${api.users}/${id}/lock`) 66 return putAction(`${api.rolePermissions}/${id}`, permissionDtos)
51 } 67 }
52 // 重置用户密码
53 // export const resetPassword = id => {
54 // return putAction(`${api.users}/${id}/reset-password`)
55 // }
56 68
57 // 重置用户密码
58 export const resetPassword = (ids) => {
59 return putAction(`${api.users}/reset-passwords?ids=${ids}`)
60 }
61 69
62 // 删除人员 70
63 export const delUser = (id, data) => {
64 return deleteAction(`${api.userRoles}/${id}/users`, data)
65 }
66 // 获取父级菜单 71 // 获取父级菜单
67 export const getParentMenuListAction = (id) => { 72 export const getParentMenuListAction = (id) => {
68 let conditionGroup = {} 73 let conditionGroup = {}
...@@ -81,3 +86,4 @@ export const getParentMenuListAction = (id) => { ...@@ -81,3 +86,4 @@ export const getParentMenuListAction = (id) => {
81 const params = getParams(conditionGroup) 86 const params = getParams(conditionGroup)
82 return getAction(api.menus, params) 87 return getAction(api.menus, params)
83 } 88 }
89
......
1 /*
2 * @Description: 统计率
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-01 15:37:49
5 */
6 /* 引入请求文件 */
1 import request from '@/utils/request' 7 import request from '@/utils/request'
8 /* 引入配置文件 */
2 import SERVER from './config' 9 import SERVER from './config'
3
4 class business { 10 class business {
5 /* 11 /**
6 成功率统计 12 * @description: 成功率统计
7 startDate:开始日期 13 * @param {*} startDate
8 endDate:结束日期 14 * @param {*} endDate
9 */ 15 * @param {*} qxdm
10 async getSuucessRate(startDate,endDate,qxdm) { 16 * @author: renchao
17 */
18 async getSuucessRate (startDate, endDate, qxdm) {
11 return request({ 19 return request({
12 url: SERVER.SERVERAPI + '/rest/statistics/Business/sf', 20 url: SERVER.SERVERAPI + '/rest/statistics/Business/sf',
13 method: 'get', 21 method: 'get',
14 params: { 22 params: {
15 startDate:startDate, 23 startDate: startDate,
16 endDate:endDate, 24 endDate: endDate,
17 qxdm:qxdm 25 qxdm: qxdm
18 } 26 }
19 }) 27 })
20 } 28 }
......
1 /*
2 * @Description: 这个是所有api的前缀配置文件
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-01 15:35:44
5 */
6 export default {
7 // SERVERAPI: '/service-bdcsjsb-th', //浩浩
8 // SERVERAPI: '/service-bdcsjsb-zz',
9 SERVERAPI: '/bdcsjsb', //赵千
10 MANAGEMENTAPI: 'http://192.168.2.236/management'
11 // SERVERAPI: '/bdcsjsb-service'
12 // SERVERAPI: '/bdcsjsb-jiao0'
13 }
14 // 汉中
15 // export default {
16 // // SERVERAPI: '/service-bdcsjsb-th', //线上
17 // SERVERAPI: '/bdcsjsb', //赵千
18 // MANAGEMENTAPI: 'http://172.16.56.32:8877/management'
19 // }
1 /*
2 * @Description: 数据上报模块api文件
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-03 14:38:57
5 */
6 /* 引入axios请求文件 */
1 import request from '@/utils/request' 7 import request from '@/utils/request'
8 /* 引入配置 */
2 import SERVER from './config' 9 import SERVER from './config'
10 const urlHeader = SERVER.SERVERAPI + '/rest/sjsb/DataReport/'
3 11
4 // 区县上报分页 12 /**
13 * @description: 区县上报根据业务id获取xml
14 * @param {*} bizMsgid
15 * @author: renchao
16 */
5 export function getXml (bizMsgid) { 17 export function getXml (bizMsgid) {
6 return request({ 18 return request({
7 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getXml', 19 url: urlHeader + 'getXml',
8 method: 'get', 20 method: 'get',
9 params: { 21 params: {
10 businessId: bizMsgid 22 businessId: bizMsgid
...@@ -12,58 +24,102 @@ export function getXml (bizMsgid) { ...@@ -12,58 +24,102 @@ export function getXml (bizMsgid) {
12 }) 24 })
13 } 25 }
14 26
15 // 区县上报分页 27 /**
28 * @description: 区县上报分页
29 * @param {*} data
30 * @author: renchao
31 */
16 export function getAreaReportPage (data) { 32 export function getAreaReportPage (data) {
17 return request({ 33 return request({
18 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getAreaReportPage', 34 url: urlHeader + 'getAreaReportPage',
19 method: 'post', 35 method: 'post',
20 data 36 data
21 }) 37 })
22 } 38 }
23 39
24 40 /**
25 // 接入数据上报分页 41 * @description: 接入数据上报分页
42 * @author: renchao
43 */
26 export function getReceiveDataReportPage (data) { 44 export function getReceiveDataReportPage (data) {
27 return request({ 45 return request({
28 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getReceiveDataReportPage', 46 url: urlHeader + 'getReceiveDataReportPage',
29 method: 'post', 47 method: 'post',
30 data 48 data
31 }) 49 })
32 } 50 }
33 51
34 // 数据上报分页 52 /**
53 * @description: 数据上报分页
54 * @author: renchao
55 */
35 export function getDataReportPage (data) { 56 export function getDataReportPage (data) {
36 return request({ 57 return request({
37 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getDataReportPage', 58 url: urlHeader + 'getDataReportPage',
38 method: 'post', 59 method: 'post',
39 data 60 data
40 }) 61 })
41 } 62 }
42 63 /**
43 // 查询数据上报详情tabs选项卡 64 * @description: 查询数据上报详情tabs选项卡
65 * @author: renchao
66 */
44 export function getTabsDetail (params) { 67 export function getTabsDetail (params) {
45 return request({ 68 return request({
46 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getTabsDetail', 69 url: urlHeader + 'getTabsDetail',
47 method: 'get', 70 method: 'get',
48 params 71 params
49 }) 72 })
50 } 73 }
51 // 查询数据上报详情 74 /**
75 * @description: 查询数据上报详情
76 * @author: renchao
77 */
52 export function getReportDetail (params) { 78 export function getReportDetail (params) {
53 return request({ 79 return request({
54 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getReportDetail', 80 url: urlHeader + 'getReportDetail',
55 method: 'get', 81 method: 'get',
56 params 82 params
57 }) 83 })
58 } 84 }
59 85
60 // 结果 86 /**
87 * @description: 获取数据上报结果
88 * @param {*} bsmReport
89 * @author: renchao
90 */
61 export function getReceiveDataReportResult (bsmReport) { 91 export function getReceiveDataReportResult (bsmReport) {
62 return request({ 92 return request({
63 url: SERVER.SERVERAPI + '/rest/sjsb/DataReport/getReceiveDataReportResult', 93 url: urlHeader + 'getReceiveDataReportResult',
64 method: 'get', 94 method: 'get',
65 params: { 95 params: {
66 bsmReport: bsmReport 96 bsmReport: bsmReport
67 } 97 }
68 }) 98 })
99 }
100
101 /**
102 * @description: 重新上报
103 * @param {*} bsmReport
104 * @author: renchao
105 */
106
107 export function restartGenerateXml (bsmReport) {
108 return request({
109 url: urlHeader + 'restartGenerateXml?bsmReport=' + bsmReport,
110 method: 'post'
111 })
112 }
113
114 /**
115 * @description: 编辑报文头
116 * @param {*} data
117 * @author: renchao
118 */
119 export function edit (data) {
120 return request({
121 url: urlHeader + 'edit',
122 method: 'post',
123 data
124 })
69 } 125 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -78,12 +78,12 @@ export const api = { ...@@ -78,12 +78,12 @@ export const api = {
78 crudPut: crud + '/rest/put', // crudPut 78 crudPut: crud + '/rest/put', // crudPut
79 crudDel: crud + '/rest/delete', // crudDel 79 crudDel: crud + '/rest/delete', // crudDel
80 crudMetadata: crud + '/rest/metadata', //crudMetadata 80 crudMetadata: crud + '/rest/metadata', //crudMetadata
81 crudBusiness : crud + '/rest/business', // crudBusiness 81 crudBusiness: crud + '/rest/business', // crudBusiness
82 crudDatasources : crud + '/rest/datasources', // crudDatasources 82 crudDatasources: crud + '/rest/datasources', // crudDatasources
83 } 83 }
84 84
85 // 根据code获取字典 params={isTree:true}) 85 // 根据code获取字典 params={isTree:true})
86 export function getDictItems(code, params = {}) { 86 export function getDictItems (code, params = {}) {
87 return request({ 87 return request({
88 url: `${api.baseDataCategory}/${code}/base-datas`, 88 url: `${api.baseDataCategory}/${code}/base-datas`,
89 method: 'get', 89 method: 'get',
...@@ -91,21 +91,21 @@ export function getDictItems(code, params = {}) { ...@@ -91,21 +91,21 @@ export function getDictItems(code, params = {}) {
91 }) 91 })
92 } 92 }
93 // 获取一级字典值下级接口 93 // 获取一级字典值下级接口
94 export function getDictItemsChild(id) { 94 export function getDictItemsChild (id) {
95 return request({ 95 return request({
96 url: `${api.baseData}/dict/${id}`, 96 url: `${api.baseData}/dict/${id}`,
97 method: 'get' 97 method: 'get'
98 }) 98 })
99 } 99 }
100 // 获取传入字段的所有级别字典值 100 // 获取传入字段的所有级别字典值
101 export function getAllDictItems(name) { 101 export function getAllDictItems (name) {
102 return request({ 102 return request({
103 url: `${api.baseDataCategory}/${name}/base-datas`, 103 url: `${api.baseDataCategory}/${name}/base-datas`,
104 method: 'get' 104 method: 'get'
105 }) 105 })
106 } 106 }
107 // get公共方法 107 // get公共方法
108 export function getAction(url, params = {}) { 108 export function getAction (url, params = {}) {
109 return request({ 109 return request({
110 url, 110 url,
111 method: 'get', 111 method: 'get',
...@@ -113,7 +113,7 @@ export function getAction(url, params = {}) { ...@@ -113,7 +113,7 @@ export function getAction(url, params = {}) {
113 }) 113 })
114 } 114 }
115 // post公共方法 115 // post公共方法
116 export function postAction(url, data = null) { 116 export function postAction (url, data = null) {
117 return request({ 117 return request({
118 url, 118 url,
119 method: 'post', 119 method: 'post',
...@@ -121,7 +121,7 @@ export function postAction(url, data = null) { ...@@ -121,7 +121,7 @@ export function postAction(url, data = null) {
121 }) 121 })
122 } 122 }
123 // method= {post | put} 123 // method= {post | put}
124 export function httpAction(url, data, method) { 124 export function httpAction (url, data, method) {
125 return request({ 125 return request({
126 url, 126 url,
127 method, 127 method,
...@@ -129,7 +129,7 @@ export function httpAction(url, data, method) { ...@@ -129,7 +129,7 @@ export function httpAction(url, data, method) {
129 }) 129 })
130 } 130 }
131 // put公共方法 131 // put公共方法
132 export function putAction(url, data = null) { 132 export function putAction (url, data = null) {
133 return request({ 133 return request({
134 url, 134 url,
135 method: 'put', 135 method: 'put',
...@@ -137,7 +137,7 @@ export function putAction(url, data = null) { ...@@ -137,7 +137,7 @@ export function putAction(url, data = null) {
137 }) 137 })
138 } 138 }
139 // delete 139 // delete
140 export function deleteAction(url, data = null) { 140 export function deleteAction (url, data = null) {
141 return request({ 141 return request({
142 url, 142 url,
143 method: 'delete', 143 method: 'delete',
...@@ -146,7 +146,7 @@ export function deleteAction(url, data = null) { ...@@ -146,7 +146,7 @@ export function deleteAction(url, data = null) {
146 } 146 }
147 147
148 // 批量删除 148 // 批量删除
149 export function deleteBranch(url, data) { 149 export function deleteBranch (url, data) {
150 return request({ 150 return request({
151 url, 151 url,
152 method: 'delete', 152 method: 'delete',
......
1
2 import {
3 api,
4 getAction,
5 deleteAction,
6 putAction
7 } from './manageApi'
8
9
10 export const updateUserPassword = (data) => {
11 return putAction(`${api.users}/update-password`, data)
12 }
13
14 // 根据条件获取用户
15 export const getUserList = (params) => {
16 return getAction(api.users, params)
17 }
18
19
20
21 // 重置用户密码
22 // export const resetPassword = id => {
23 // return putAction(`${api.users}/${id}/reset-password`)
24 // }
25
26 // 重置用户密码
27 export const resetPassword = (ids) => {
28 return putAction(`${api.users}/reset-passwords?ids=${ids}`)
29 }
30
31 // 人员列表
32 export const getUserRoles = (id) => {
33 return getAction(`${api.userRoles}/${id}/users`)
34 }
35 // 更新人员
36 export const updateUser = (id, data) => {
37 return putAction(`${api.userRoles}/${id}/users`, data)
38 }
39
1 /*
2 * @Description: 登薄日志
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-02 13:45:53
5 */
6 /* 引入请求文件 */
1 import request from '@/utils/request' 7 import request from '@/utils/request'
8 /* 引入配置文件 */
2 import SERVER from './config' 9 import SERVER from './config'
3 10 const urlHeader = SERVER.SERVERAPI + '/rest/sjsb/RecordLog/'
4 // 登簿日志分页 11 /**
12 * @description: 登簿日志分页
13 * @author: renchao
14 */
5 export function getRecordLogPage (data) { 15 export function getRecordLogPage (data) {
6 return request({ 16 return request({
7 url: SERVER.SERVERAPI + '/rest/sjsb/RecordLog/getRecordLogPage', 17 url: urlHeader + 'getRecordLogPage',
8 method: 'post', 18 method: 'post',
9 data 19 data
10 }) 20 })
11 } 21 }
12 22
13 23 /**
24 * @description: 获取详情明细
25 * @param {*} dbBsm
26 * @author: renchao
27 */
28 export function getDetail (dbBsm) {
29 return request({
30 url: urlHeader + 'getDetail',
31 method: 'get',
32 params: {
33 dbBsm: dbBsm
34 }
35 })
36 }
37 /**
38 * @description: 详情页面编辑
39 * @param {*} data
40 * @author: renchao
41 */
42 export function edit (data) {
43 return request({
44 url: urlHeader + 'edit',
45 method: 'post',
46 data
47 })
48 }
49 /**
50 * @description: 登薄日志重新生成报文
51 * @param {*} dbBsm
52 * @author: renchao
53 */
54 export function regenerateDbXml (dbBsm) {
55 return request({
56 url: urlHeader + 'regenerateDbXml',
57 method: 'get',
58 params: {
59 dbBsm: dbBsm
60 }
61 })
62 }
......
1 /*
2 * @Author: yangwei
3 * @Date: 2023-03-09 09:29:52
4 * @LastEditors: yangwei
5 * @LastEditTime: 2023-03-09 10:31:31
6 * @FilePath: \bdcjg-web\src\api\statistics.js
7 * @Description:
8 *
9 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
10 */
11 import request from '@/utils/request'
12 import SERVER from './config'
13 const url = SERVER.SERVERAPI + '/rest/statistics/Efficient/'
14 /**
15 * dataReceiveQuality
16 * @param startDate
17 * @param endDate
18 * @returns {AxiosPromise}
19 */
20 export function dataReceiveQuality (startDate, endDate) {
21 return request({
22 url: url + 'dataReceiveQuality?startDate='+startDate+'&endDate='+endDate,
23 method: 'post'
24 })
25 }
26
27 /**
28 * 空项率统计
29 * @returns {AxiosPromise}
30 * @param startDate
31 * @param endDate
32 */
33 export function nonNullSta (startDate, endDate) {
34 return request({
35 url: url + 'nonNullSta?startDate='+startDate+'&endDate='+endDate,
36 method: 'post'
37 })
38 }
39
40 /**
41 * 登簿质量统计
42 * @returns {AxiosPromise}
43 * @param startDate
44 * @param endDate
45 */
46 export function registerBookQuality (startDate, endDate) {
47 return request({
48 url: url + 'registerBookQuality?startDate='+startDate+'&endDate='+endDate,
49 method: 'post'
50 })
51 }
...@@ -8,10 +8,21 @@ export function getUserInfo () { ...@@ -8,10 +8,21 @@ export function getUserInfo () {
8 }) 8 })
9 } 9 }
10 10
11 // // 获取菜单信息
12 // export function getMenuInfo () {
13 // return request({
14 // url: SERVER.SERVERAPI + '/rest/user/getUserAuthorizationMenus',
15 // method: 'get',
16 // })
17 // }
18
11 // 获取菜单信息 19 // 获取菜单信息
12 export function getMenuInfo () { 20 export function getMenuInfo (data) {
13 return request({ 21 return request({
14 url: SERVER.SERVERAPI + '/rest/user/getUserAuthorizationMenus', 22 url: SERVER.SERVERAPI + '/rest/user/getUserAuthorizationMenus',
15 method: 'get', 23 method: 'get',
24 params: {
25 productCode: data,
26 },
16 }) 27 })
17 }
...\ No newline at end of file ...\ No newline at end of file
28 }
......
...@@ -4,8 +4,7 @@ ...@@ -4,8 +4,7 @@
4 4
5 <script> 5 <script>
6 import tdTheme from "./theme.json"; // 引入默认主题 6 import tdTheme from "./theme.json"; // 引入默认主题
7 import "../map/hanzhong.js"; 7 import { mapGetters } from "vuex";
8
9 export default { 8 export default {
10 name: "echart", 9 name: "echart",
11 props: { 10 props: {
...@@ -30,14 +29,14 @@ export default { ...@@ -30,14 +29,14 @@ export default {
30 default: () => ({}), 29 default: () => ({}),
31 }, 30 },
32 }, 31 },
33 data() { 32 data () {
34 return { 33 return {
35 chart: null, 34 chart: null,
36 }; 35 };
37 }, 36 },
38 watch: { 37 watch: {
39 options: { 38 options: {
40 handler(options) { 39 handler (options) {
41 // 设置true清空echart缓存 40 // 设置true清空echart缓存
42 this.chart.setOption(options, true); 41 this.chart.setOption(options, true);
43 window.addEventListener("resize", () => { 42 window.addEventListener("resize", () => {
...@@ -46,22 +45,33 @@ export default { ...@@ -46,22 +45,33 @@ export default {
46 } 45 }
47 }); 46 });
48 }, 47 },
49 deep: true, 48 deep: true
49 },
50 },
51 computed: {
52 ...mapGetters(["dicData"]),
53 logoName () {
54 return (
55 this.dicData["sysCode"] &&
56 this.dicData["sysCode"].filter((item) => item.DCODE == "areaMap")
57 );
50 }, 58 },
51 }, 59 },
52 mounted() { 60 mounted () {
53 this.$echarts.registerTheme("tdTheme", tdTheme); // 覆盖默认主题 61 this.$echarts.registerTheme("tdTheme", tdTheme); // 覆盖默认主题
54 this.initChart(); 62 this.$nextTick(() => {
63 this.initChart();
64 })
55 }, 65 },
56 beforeDestroy() { 66 beforeDestroy () {
57 this.chart.dispose(); 67 // this.chart.dispose();
58 this.chart = null; 68 this.chart = null;
59 }, 69 },
60 methods: { 70 methods: {
61 initChart() { 71 initChart () {
62 // 初始化echart 72 // 初始化echart
63 this.chart = this.$echarts.init(this.$el, "tdTheme"); 73 this.chart = this.$echarts.init(this.$el, "tdTheme");
64 function nowSize(val, initWidth = 1920) { 74 function nowSize (val, initWidth = 1920) {
65 return val * (nowClientWidth / initWidth); 75 return val * (nowClientWidth / initWidth);
66 } 76 }
67 this.chart.setOption(this.options, true); 77 this.chart.setOption(this.options, true);
......
1
2 /*
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 */
20
21 (function(root, factory) {
22 if (typeof define === 'function' && define.amd) {
23 // AMD. Register as an anonymous module.
24 define(['exports', 'echarts'], factory);
25 } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
26 // CommonJS
27 factory(exports, require('echarts'));
28 } else {
29 // Browser globals
30 factory({}, root.echarts);
31 }
32 }(this, function(exports, echarts) {
33 var log = function(msg) {
34 if (typeof console !== 'undefined') {
35 console && console.error && console.error(msg);
36 }
37 }
38 if (!echarts) {
39 log('ECharts is not Loaded');
40 return;
41 }
42 if (!echarts.registerMap) {
43 log('ECharts Map is not loaded')
44 return;
45 }
46 echarts.registerMap('汉中市', {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":632701,"name":"玉树市","center":[97.008762,33.00393],"centroid":[96.660011,32.914187],"childrenNum":0,"level":"district","parent":{"adcode":632700},"subFeatureIndex":0,"acroutes":[100000,630000,632700]},"geometry":{"type":"MultiPolygon","coordinates":[[[[96.999029,32.065147],[97.006631,32.067779],[97.016239,32.056344],[97.028771,32.048832],[97.049907,32.049502],[97.057343,32.045722],[97.077895,32.048449],[97.095105,32.038735],[97.105548,32.037587],[97.114487,32.042659],[97.130695,32.043856],[97.153001,32.036821],[97.169459,32.024234],[97.170378,32.034189],[97.187505,32.054526],[97.201039,32.052516],[97.21332,32.042946],[97.231867,32.044813],[97.236462,32.0551],[97.232953,32.065052],[97.211733,32.078972],[97.202042,32.090308],[97.204297,32.097674],[97.212234,32.096861],[97.219753,32.109103],[97.232452,32.104178],[97.233872,32.094422],[97.240723,32.084712],[97.249495,32.083756],[97.256095,32.072849],[97.276062,32.071319],[97.29511,32.074954],[97.307893,32.073902],[97.293272,32.096717],[97.303799,32.118284],[97.313741,32.128993],[97.306723,32.132818],[97.288928,32.13234],[97.271384,32.141183],[97.275895,32.156096],[97.269211,32.162405],[97.264199,32.18257],[97.27673,32.208511],[97.276146,32.218589],[97.282328,32.236641],[97.28166,32.243994],[97.290849,32.271302],[97.28993,32.280609],[97.298368,32.294449],[97.319171,32.302848],[97.344318,32.296931],[97.342229,32.279941],[97.352589,32.283855],[97.367042,32.273784],[97.389683,32.282948],[97.396951,32.292111],[97.412824,32.294736],[97.417921,32.300891],[97.414662,32.316208],[97.424688,32.323411],[97.413075,32.327466],[97.41625,32.360233],[97.412574,32.376826],[97.40188,32.392701],[97.399791,32.402521],[97.389098,32.411958],[97.391353,32.422728],[97.386508,32.428065],[97.368629,32.435117],[97.349414,32.432735],[97.341728,32.442692],[97.346908,32.448981],[97.35025,32.464558],[97.366875,32.473464],[97.375814,32.482037],[97.388513,32.501464],[97.37431,32.503607],[97.369548,32.509987],[97.351252,32.51708],[97.334543,32.514509],[97.328444,32.517794],[97.33329,32.524982],[97.331118,32.537071],[97.341143,32.556677],[97.357685,32.563624],[97.361277,32.554346],[97.374728,32.546256],[97.387343,32.549254],[97.396784,32.55858],[97.411738,32.563434],[97.411905,32.575042],[97.448247,32.58722],[97.464455,32.570998],[97.463452,32.555725],[97.473227,32.544448],[97.485424,32.542116],[97.503637,32.530979],[97.50723,32.533549],[97.521098,32.525838],[97.531792,32.525505],[97.54023,32.536547],[97.554014,32.53155],[97.566295,32.532264],[97.578493,32.522792],[97.591693,32.531074],[97.604392,32.523506],[97.613498,32.524268],[97.620599,32.51927],[97.630207,32.52441],[97.66964,32.517223],[97.684344,32.530455],[97.703392,32.523363],[97.726367,32.524458],[97.731045,32.527314],[97.705564,32.532883],[97.693868,32.544686],[97.675154,32.547684],[97.665212,32.557819],[97.646832,32.567335],[97.63923,32.575994],[97.630708,32.575518],[97.617007,32.586554],[97.610574,32.595972],[97.606313,32.61528],[97.599045,32.616278],[97.58902,32.60924],[97.584007,32.61528],[97.560614,32.621509],[97.543738,32.621699],[97.540062,32.631873],[97.530121,32.639385],[97.524523,32.633585],[97.513245,32.648845],[97.500964,32.646563],[97.482918,32.654216],[97.480829,32.664054],[97.471305,32.664006],[97.464872,32.673749],[97.443569,32.690332],[97.442483,32.696888],[97.429283,32.699073],[97.423852,32.704964],[97.429366,32.712042],[97.424771,32.727763],[97.401796,32.754592],[97.385839,32.780226],[97.382331,32.792613],[97.380158,32.826301],[97.393108,32.82872],[97.392439,32.842191],[97.382832,32.855329],[97.387093,32.866472],[97.372723,32.87349],[97.376148,32.886054],[97.354343,32.887476],[97.348077,32.895819],[97.350082,32.903924],[97.330366,32.904778],[97.325437,32.918522],[97.3175,32.920085],[97.312153,32.913688],[97.294358,32.919185],[97.282328,32.915394],[97.277399,32.923403],[97.26612,32.922597],[97.255343,32.926577],[97.248576,32.962772],[97.243647,32.977455],[97.249411,32.988583],[97.247573,33.005581],[97.229361,33.014008],[97.221424,33.022907],[97.207222,33.023853],[97.201373,33.036727],[97.176394,33.045671],[97.177814,33.057879],[97.16428,33.087635],[97.151832,33.103526],[97.138464,33.113362],[97.123343,33.1353],[97.078647,33.152695],[97.069791,33.165549],[97.052748,33.171551],[97.038378,33.193379],[97.022254,33.204669],[97.024092,33.215958],[97.019664,33.226537],[97.025011,33.237067],[97.01156,33.247596],[97.012479,33.258879],[97.019748,33.269453],[97.018829,33.286019],[97.034117,33.289794],[97.035955,33.295834],[97.018912,33.312395],[97.001786,33.306309],[96.997358,33.315367],[97.008135,33.324425],[97.00095,33.333434],[96.986581,33.334189],[96.983824,33.319849],[96.974801,33.319094],[96.970373,33.335651],[96.978477,33.343197],[96.974884,33.349233],[96.963188,33.342442],[96.949654,33.345413],[96.953246,33.331123],[96.945143,33.325085],[96.91916,33.32433],[96.903872,33.318292],[96.885993,33.322113],[96.860846,33.330415],[96.844806,33.321406],[96.834029,33.329708],[96.83311,33.309376],[96.826927,33.307158],[96.821497,33.319189],[96.813477,33.322962],[96.808965,33.336547],[96.798272,33.345602],[96.799107,33.350884],[96.812558,33.356118],[96.800945,33.365925],[96.800026,33.383274],[96.788413,33.377995],[96.782983,33.354656],[96.769616,33.349375],[96.770451,33.367481],[96.766859,33.376486],[96.772206,33.3878],[96.770451,33.398358],[96.764185,33.397604],[96.758755,33.3878],[96.746223,33.394587],[96.75792,33.398358],[96.754327,33.406605],[96.739958,33.403589],[96.730016,33.409621],[96.731854,33.393786],[96.725588,33.393032],[96.718403,33.406605],[96.70938,33.413344],[96.696765,33.428375],[96.714727,33.427668],[96.716565,33.437468],[96.712889,33.445711],[96.693173,33.450186],[96.699439,33.466011],[96.697601,33.4743],[96.687659,33.481834],[96.676882,33.502878],[96.695763,33.515729],[96.70654,33.532295],[96.70019,33.542835],[96.684902,33.548058],[96.658752,33.542741],[96.648894,33.536671],[96.64079,33.53893],[96.633522,33.550928],[96.622745,33.544859],[96.618233,33.553892],[96.626254,33.572756],[96.619069,33.581034],[96.562342,33.608778],[96.561423,33.60779],[96.553403,33.598998],[96.538114,33.6163],[96.496008,33.610329],[96.467269,33.617852],[96.465514,33.621612],[96.480719,33.629886],[96.484228,33.63891],[96.451813,33.664522],[96.449975,33.679603],[96.440952,33.685569],[96.413132,33.687025],[96.399681,33.68322],[96.405028,33.693037],[96.388737,33.696748],[96.386063,33.704263],[96.400433,33.713373],[96.41639,33.748022],[96.40202,33.747975],[96.393917,33.754735],[96.37161,33.761775],[96.374868,33.749853],[96.364342,33.727929],[96.348886,33.703605],[96.335185,33.685992],[96.328334,33.682233],[96.321734,33.671099],[96.304273,33.66095],[96.288149,33.645584],[96.262752,33.650472],[96.252309,33.649626],[96.238023,33.638393],[96.223987,33.615971],[96.217805,33.610847],[96.183802,33.595424],[96.186392,33.571486],[96.199759,33.561043],[96.188063,33.550034],[96.20143,33.540059],[96.213962,33.522083],[96.231005,33.506691],[96.233344,33.49916],[96.224071,33.496288],[96.21204,33.500289],[96.202099,33.4977],[96.182883,33.507115],[96.160326,33.51201],[96.148547,33.526365],[96.135347,33.531213],[96.117217,33.542882],[96.096749,33.525707],[96.091653,33.518741],[96.079539,33.512246],[96.074443,33.514646],[96.054643,33.50189],[96.038352,33.495723],[96.019721,33.499301],[96.011534,33.50382],[96.005936,33.498359],[96.010281,33.487201],[96.021476,33.470721],[96.033255,33.447313],[96.032086,33.4402],[96.021392,33.439776],[96.004934,33.448161],[95.988559,33.451175],[95.955643,33.446135],[95.933503,33.448302],[95.928324,33.443969],[95.937096,33.424511],[95.931665,33.412873],[95.916711,33.393456],[95.908022,33.389402],[95.891982,33.396142],[95.872934,33.39897],[95.865248,33.395483],[95.849959,33.403259],[95.842022,33.403165],[95.828404,33.409951],[95.817293,33.41947],[95.805597,33.43629],[95.789974,33.441283],[95.771678,33.441425],[95.756473,33.437892],[95.735587,33.447596],[95.710106,33.450657],[95.703589,33.446936],[95.703171,33.428092],[95.687381,33.41947],[95.685376,33.404296],[95.699412,33.399159],[95.708769,33.391618],[95.724141,33.352487],[95.736506,33.347535],[95.743356,33.340226],[95.744025,33.327396],[95.77009,33.3165],[95.773098,33.311027],[95.765579,33.302016],[95.742688,33.296825],[95.751627,33.276486],[95.758979,33.273323],[95.788052,33.28399],[95.798161,33.276958],[95.801002,33.265016],[95.799247,33.245283],[95.81487,33.229276],[95.838597,33.223609],[95.849374,33.203441],[95.864997,33.191206],[95.860235,33.177552],[95.878531,33.153451],[95.898331,33.134685],[95.898832,33.13043],[95.911698,33.125183],[95.926569,33.110336],[95.941774,33.108634],[95.946369,33.103905],[95.948625,33.089007],[95.960822,33.080351],[95.961407,33.07387],[95.952301,33.066112],[95.967924,33.030196],[95.942944,33.008185],[95.934172,33.005676],[95.925149,33.009463],[95.900169,33.008185],[95.892399,33.00293],[95.910946,32.979633],[95.910027,32.970872],[95.915291,32.965567],[95.909443,32.952351],[95.931582,32.93468],[95.944615,32.934585],[95.957564,32.929468],[95.964331,32.934017],[95.977698,32.926246],[96.016212,32.920844],[96.021309,32.922455],[96.04303,32.914019],[96.045536,32.910133],[96.031584,32.902976],[96.048962,32.885011],[96.047876,32.879416],[96.037683,32.878611],[96.019721,32.863011],[96.022395,32.857463],[96.012954,32.854617],[96.033422,32.84978],[96.039103,32.843045],[96.03359,32.819279],[96.033088,32.804097],[96.02064,32.794701],[96.021643,32.781222],[96.027324,32.777283],[96.012035,32.760858],[96.032253,32.756823],[96.040774,32.749939],[96.040607,32.740775],[96.054726,32.727193],[96.067174,32.724248],[96.069179,32.716364],[96.080959,32.707387],[96.089731,32.706152],[96.104017,32.712327],[96.106942,32.722254],[96.151888,32.759482],[96.167261,32.751078],[96.174445,32.737688],[96.166425,32.73009],[96.175114,32.714844],[96.194496,32.692755],[96.191656,32.678691],[96.181881,32.65721],[96.18798,32.652219],[96.176952,32.62013],[96.178706,32.613996],[96.193159,32.609811],[96.211038,32.611238],[96.229083,32.616516],[96.259327,32.61585],[96.274532,32.607861],[96.281382,32.597066],[96.290071,32.59269],[96.291157,32.579752],[96.301684,32.562815],[96.309453,32.557914],[96.308033,32.550063],[96.315552,32.546351],[96.333514,32.527076],[96.352228,32.517889],[96.351393,32.509177],[96.366013,32.497036],[96.368268,32.488894],[96.385061,32.470273],[96.394669,32.470464],[96.408286,32.463367],[96.4138,32.453269],[96.427836,32.439691],[96.441203,32.433306],[96.442372,32.423824],[96.452231,32.425063],[96.463342,32.438547],[96.477461,32.443074],[96.483727,32.449505],[96.504195,32.454888],[96.516643,32.462891],[96.535775,32.454793],[96.547388,32.438833],[96.559167,32.432973],[96.571281,32.420393],[96.577714,32.403855],[96.58799,32.401853],[96.586904,32.389221],[96.608626,32.378828],[96.619403,32.38741],[96.635193,32.382166],[96.650147,32.390985],[96.684401,32.378733],[96.688912,32.373584],[96.700859,32.375062],[96.717651,32.369483],[96.717985,32.380449],[96.693423,32.408907],[96.698436,32.42268],[96.692588,32.435069],[96.702112,32.444217],[96.723917,32.44355],[96.733525,32.428684],[96.740208,32.440358],[96.734861,32.446123],[96.751236,32.457365],[96.760426,32.474036],[96.771203,32.464748],[96.789834,32.439214],[96.800861,32.441978],[96.804203,32.450791],[96.824003,32.460033],[96.839375,32.459937],[96.851322,32.438738],[96.854246,32.406715],[96.87296,32.381641],[96.892426,32.372869],[96.897522,32.36667],[96.88733,32.355178],[96.87672,32.355321],[96.867279,32.349312],[96.878391,32.342206],[96.877221,32.335337],[96.884657,32.327896],[96.894431,32.325224],[96.894097,32.315826],[96.900948,32.311532],[96.90855,32.292111],[96.922586,32.281898],[96.916153,32.272447],[96.926178,32.263855],[96.91231,32.259606],[96.908801,32.25383],[96.915819,32.232725],[96.910305,32.219114],[96.895517,32.204737],[96.912143,32.18515],[96.928684,32.17913],[96.939963,32.179225],[96.957257,32.173061],[96.960933,32.16618],[96.980148,32.168856],[96.982236,32.175976],[96.996606,32.188112],[96.996439,32.200151],[97.011143,32.225657],[97.015654,32.227759],[97.02852,32.218446],[97.048654,32.217443],[97.05634,32.20703],[97.091429,32.206552],[97.112566,32.203161],[97.118163,32.177219],[97.114487,32.154519],[97.097528,32.149835],[97.078312,32.135734],[97.063358,32.139128],[97.054753,32.135112],[97.030274,32.133774],[97.038211,32.126651],[97.033616,32.118523],[97.038128,32.099395],[97.030943,32.096908],[97.029105,32.088347],[97.018912,32.078159],[97.021335,32.074859],[97.001034,32.073758],[96.999029,32.065147]]]]}},{"type":"Feature","properties":{"adcode":632722,"name":"杂多县","center":[95.293423,32.891886],"centroid":[94.28247,33.060889],"childrenNum":0,"level":"district","parent":{"adcode":632700},"subFeatureIndex":1,"acroutes":[100000,630000,632700]},"geometry":{"type":"MultiPolygon","coordinates":[[[[95.742688,33.296825],[95.711275,33.326925],[95.700581,33.332585],[95.690974,33.332255],[95.68287,33.326453],[95.671257,33.310272],[95.660564,33.308385],[95.648784,33.311923],[95.639928,33.319896],[95.633161,33.320274],[95.613862,33.30612],[95.592308,33.308479],[95.577938,33.29692],[95.560227,33.297958],[95.557303,33.319991],[95.526224,33.344612],[95.51152,33.347488],[95.495814,33.340084],[95.487125,33.340273],[95.466406,33.363096],[95.42806,33.38351],[95.408677,33.38153],[95.39389,33.386904],[95.379353,33.405333],[95.337163,33.428281],[95.31352,33.436997],[95.306419,33.433934],[95.302075,33.410658],[95.296644,33.409009],[95.283361,33.417349],[95.27392,33.427574],[95.257713,33.430636],[95.213434,33.433887],[95.207502,33.446418],[95.179431,33.515964],[95.162221,33.533236],[95.151528,33.550363],[95.147434,33.567534],[95.134067,33.584185],[95.122788,33.585925],[95.101902,33.575343],[95.091125,33.563301],[95.094216,33.546317],[95.086029,33.539118],[95.07191,33.53413],[95.048267,33.534271],[95.034148,33.527401],[95.020279,33.532954],[94.992292,33.566029],[94.980345,33.570921],[94.96397,33.564006],[94.941163,33.563912],[94.927796,33.574731],[94.915932,33.579858],[94.903568,33.58014],[94.88452,33.575296],[94.872322,33.56871],[94.863049,33.569322],[94.854109,33.577459],[94.826206,33.567252],[94.819104,33.566923],[94.812671,33.573979],[94.807408,33.591803],[94.810332,33.606991],[94.825287,33.639568],[94.82679,33.648498],[94.822363,33.663159],[94.813423,33.672227],[94.769061,33.685005],[94.74617,33.69501],[94.715175,33.719102],[94.706737,33.74192],[94.709995,33.75342],[94.70657,33.762103],[94.688942,33.763418],[94.682342,33.774774],[94.667388,33.790118],[94.617762,33.810665],[94.590443,33.815965],[94.545079,33.82014],[94.535304,33.803254],[94.527033,33.794856],[94.518846,33.793167],[94.49679,33.803441],[94.479747,33.806397],[94.470306,33.792135],[94.458025,33.780921],[94.432711,33.777965],[94.411073,33.78308],[94.390521,33.774117],[94.383253,33.766327],[94.358273,33.753937],[94.355433,33.746192],[94.359276,33.736286],[94.355934,33.724737],[94.346744,33.728164],[94.318339,33.717787],[94.317671,33.703511],[94.309901,33.700224],[94.294195,33.700975],[94.288096,33.692051],[94.273643,33.681952],[94.25259,33.67514],[94.240392,33.678287],[94.231453,33.67575],[94.20923,33.679838],[94.196698,33.672885],[94.183582,33.670113],[94.159605,33.672462],[94.148577,33.678099],[94.136714,33.677301],[94.116663,33.681059],[94.10764,33.689749],[94.073888,33.686085],[94.06027,33.676596],[94.044731,33.678006],[94.035207,33.659353],[94.016326,33.658084],[94.003293,33.648122],[93.990845,33.63139],[93.979065,33.62777],[93.974554,33.618322],[93.961103,33.614796],[93.946483,33.597493],[93.930693,33.594766],[93.920751,33.602807],[93.906131,33.605581],[93.888085,33.627112],[93.864025,33.636748],[93.855002,33.645443],[93.836371,33.649767],[93.82008,33.664803],[93.804959,33.66875],[93.792845,33.667247],[93.784073,33.685099],[93.747647,33.703089],[93.73428,33.71774],[93.726343,33.704967],[93.723837,33.691769],[93.715232,33.690078],[93.6763,33.670583],[93.660176,33.66922],[93.653493,33.662595],[93.640961,33.664522],[93.614227,33.654607],[93.598103,33.651881],[93.586908,33.653291],[93.548979,33.66532],[93.521827,33.668656],[93.509713,33.68073],[93.497849,33.683549],[93.475042,33.66875],[93.439452,33.656017],[93.417647,33.639427],[93.407204,33.639991],[93.391832,33.634586],[93.37813,33.634445],[93.368021,33.647276],[93.359918,33.651881],[93.341204,33.644926],[93.328338,33.643422],[93.314052,33.635667],[93.294335,33.63468],[93.282973,33.643798],[93.259581,33.653479],[93.248219,33.648592],[93.234016,33.63327],[93.210791,33.637735],[93.202102,33.642811],[93.175953,33.646947],[93.155735,33.652868],[93.142786,33.662407],[93.118975,33.668656],[93.098674,33.662172],[93.086978,33.664803],[93.059241,33.657802],[93.03518,33.660997],[93.024988,33.668233],[93.008279,33.659447],[92.992823,33.65987],[92.979456,33.664287],[92.945955,33.655876],[92.915962,33.66236],[92.90836,33.661185],[92.877866,33.666965],[92.850965,33.656768],[92.839603,33.647041],[92.83434,33.633223],[92.822727,33.620296],[92.812952,33.615407],[92.808942,33.600926],[92.815041,33.593731],[92.807522,33.570827],[92.818967,33.555209],[92.841357,33.543306],[92.851967,33.534177],[92.855978,33.512716],[92.848876,33.499207],[92.825735,33.485883],[92.815459,33.47736],[92.793904,33.469402],[92.760236,33.474017],[92.744529,33.46149],[92.734337,33.458193],[92.698162,33.472981],[92.687385,33.465446],[92.682456,33.442932],[92.669423,33.432474],[92.657225,33.40915],[92.660985,33.390204],[92.673099,33.383274],[92.655638,33.382002],[92.620382,33.367576],[92.599162,33.35211],[92.610691,33.319],[92.609689,33.311593],[92.598494,33.303573],[92.6208,33.283518],[92.633165,33.284886],[92.679031,33.266999],[92.71178,33.247785],[92.7198,33.240089],[92.721053,33.232109],[92.710276,33.217942],[92.711863,33.191348],[92.70919,33.183222],[92.700585,33.182371],[92.670593,33.147259],[92.673517,33.132983],[92.707603,33.111565],[92.718129,33.101635],[92.731914,33.061097],[92.729826,33.038242],[92.721555,33.030385],[92.703258,33.023475],[92.692231,33.00738],[92.689557,32.997911],[92.696993,32.982995],[92.674603,32.952636],[92.656557,32.940839],[92.649706,32.923592],[92.648955,32.902692],[92.643357,32.895582],[92.627149,32.885627],[92.608352,32.879037],[92.596322,32.869934],[92.594734,32.821414],[92.587382,32.785114],[92.586714,32.769261],[92.581451,32.754829],[92.560899,32.731847],[92.571091,32.733367],[92.578109,32.741107],[92.591643,32.737213],[92.600081,32.743624],[92.605762,32.730612],[92.613281,32.728095],[92.624476,32.732559],[92.634585,32.721019],[92.649539,32.721541],[92.667836,32.731895],[92.68797,32.766033],[92.697076,32.764893],[92.710777,32.754544],[92.723142,32.749939],[92.73442,32.750936],[92.745532,32.741724],[92.756393,32.743149],[92.77661,32.724201],[92.789393,32.720069],[92.795324,32.726101],[92.810529,32.730802],[92.822727,32.729757],[92.839018,32.717219],[92.855226,32.710522],[92.866755,32.698171],[92.877031,32.696983],[92.879119,32.710807],[92.888643,32.707909],[92.900006,32.712802],[92.913874,32.704584],[92.918887,32.711899],[92.930416,32.710522],[92.938352,32.720069],[92.950717,32.714797],[92.964502,32.714607],[92.983383,32.721921],[92.98497,32.728998],[93.001178,32.741107],[93.008196,32.741962],[93.020978,32.734506],[93.026742,32.710332],[93.023735,32.703064],[93.047545,32.693942],[93.041613,32.674366],[93.048631,32.670089],[93.048715,32.653978],[93.056902,32.651174],[93.060912,32.631636],[93.065591,32.627167],[93.077036,32.627309],[93.088231,32.636723],[93.107446,32.637246],[93.117221,32.647419],[93.131089,32.64219],[93.159662,32.644804],[93.164507,32.664814],[93.175368,32.67047],[93.195001,32.665052],[93.210457,32.655309],[93.228084,32.654596],[93.239112,32.662058],[93.252981,32.655214],[93.249221,32.644994],[93.262755,32.625217],[93.284477,32.624932],[93.288069,32.620082],[93.30294,32.617895],[93.30411,32.606672],[93.313383,32.602963],[93.313801,32.590216],[93.308454,32.580418],[93.338447,32.571189],[93.364847,32.549635],[93.37554,32.538308],[93.376459,32.530884],[93.385566,32.525172],[93.396426,32.542258],[93.409376,32.544733],[93.412216,32.557867],[93.435776,32.557343],[93.446971,32.562006],[93.462928,32.556011],[93.465685,32.540545],[93.475376,32.528171],[93.47713,32.50394],[93.488242,32.498846],[93.501692,32.503417],[93.516396,32.475941],[93.53227,32.475227],[93.534358,32.48637],[93.554994,32.485989],[93.563849,32.492465],[93.563933,32.500084],[93.572455,32.501226],[93.620409,32.523982],[93.630434,32.542021],[93.625756,32.551157],[93.638622,32.551586],[93.654662,32.573187],[93.669867,32.57547],[93.678639,32.568049],[93.698189,32.575851],[93.721999,32.578134],[93.741716,32.57371],[93.751657,32.563053],[93.762936,32.56862],[93.780647,32.557058],[93.792761,32.558533],[93.82267,32.547541],[93.829771,32.529551],[93.827766,32.520983],[93.838544,32.513319],[93.850407,32.510891],[93.850741,32.495513],[93.85968,32.486323],[93.855754,32.474131],[93.858678,32.464701],[93.868619,32.473941],[93.898027,32.472655],[93.913232,32.462033],[93.913566,32.468464],[93.929022,32.476655],[93.959934,32.484942],[93.971797,32.471702],[93.975306,32.460414],[93.996275,32.463272],[93.998448,32.455889],[94.011146,32.44617],[94.031865,32.449172],[94.029359,32.459556],[94.040554,32.459414],[94.052751,32.470654],[94.067205,32.470178],[94.07063,32.466082],[94.090931,32.463986],[94.102293,32.447742],[94.121508,32.442073],[94.137633,32.433878],[94.148159,32.440834],[94.153088,32.454507],[94.180741,32.455889],[94.187926,32.470131],[94.177734,32.483132],[94.182245,32.499131],[94.196782,32.516175],[94.229281,32.509939],[94.244736,32.516985],[94.257352,32.512319],[94.293359,32.503845],[94.294195,32.519793],[94.317504,32.531788],[94.321347,32.526648],[94.353511,32.532883],[94.35677,32.520983],[94.37139,32.524839],[94.373729,32.535262],[94.379159,32.53769],[94.38342,32.549492],[94.376987,32.562197],[94.38743,32.577468],[94.3952,32.594212],[94.393111,32.603486],[94.404891,32.59873],[94.407648,32.583319],[94.428534,32.571569],[94.434215,32.563148],[94.463456,32.572473],[94.46379,32.594973],[94.459028,32.599444],[94.469722,32.608242],[94.479246,32.607291],[94.485762,32.594783],[94.497542,32.601869],[94.508904,32.603771],[94.513081,32.596305],[94.535387,32.598207],[94.554519,32.610762],[94.565631,32.627452],[94.596876,32.630019],[94.59178,32.640621],[94.60122,32.650651],[94.60122,32.663341],[94.614588,32.673606],[94.633719,32.655689],[94.638481,32.645517],[94.66037,32.628878],[94.677914,32.618323],[94.690195,32.614519],[94.687522,32.604295],[94.703646,32.598255],[94.717264,32.604104],[94.723279,32.594497],[94.737565,32.58741],[94.738735,32.573853],[94.744583,32.570047],[94.745335,32.560579],[94.761709,32.555059],[94.772069,32.555297],[94.757866,32.546256],[94.755778,32.54026],[94.760874,32.52679],[94.78577,32.52441],[94.794459,32.513986],[94.795378,32.498893],[94.806823,32.486323],[94.812671,32.487989],[94.827626,32.478656],[94.842079,32.475893],[94.850768,32.464605],[94.859623,32.464891],[94.88995,32.472321],[94.904069,32.451554],[94.912507,32.415675],[94.922449,32.409908],[94.938406,32.408431],[94.941748,32.40376],[94.957036,32.411719],[94.968064,32.407096],[94.980094,32.409193],[94.993462,32.420965],[95.019778,32.408192],[95.027046,32.412005],[95.033646,32.402807],[95.057289,32.394417],[95.059629,32.388316],[95.0745,32.376206],[95.081183,32.384311],[95.090624,32.38803],[95.107834,32.384216],[95.131644,32.386933],[95.131226,32.398898],[95.14075,32.397182],[95.154702,32.401615],[95.152864,32.387315],[95.165062,32.384549],[95.172831,32.393512],[95.185781,32.393702],[95.191211,32.386981],[95.207252,32.388077],[95.21853,32.396896],[95.222707,32.380449],[95.229475,32.373489],[95.229057,32.362998],[95.241087,32.364286],[95.261723,32.348072],[95.246183,32.342778],[95.226634,32.344829],[95.217611,32.339201],[95.206082,32.338104],[95.19355,32.332284],[95.177928,32.333715],[95.150358,32.331712],[95.136072,32.323888],[95.096806,32.322219],[95.095803,32.313583],[95.08135,32.298076],[95.079512,32.280609],[95.106581,32.258843],[95.120366,32.265048],[95.132145,32.263998],[95.138578,32.273879],[95.161636,32.280371],[95.178596,32.282327],[95.191796,32.293256],[95.207419,32.297694],[95.208338,32.308812],[95.214604,32.311055],[95.21452,32.321455],[95.225799,32.318593],[95.241254,32.320358],[95.240753,32.30175],[95.246434,32.293543],[95.2395,32.2871],[95.247353,32.27617],[95.256543,32.254164],[95.253619,32.25044],[95.256042,32.235638],[95.263895,32.211854],[95.277847,32.207078],[95.280854,32.200868],[95.26991,32.19461],[95.280938,32.182761],[95.285616,32.172631],[95.301991,32.163552],[95.307923,32.164077],[95.313102,32.148736],[95.323629,32.152368],[95.331065,32.148927],[95.343596,32.154806],[95.353705,32.145963],[95.366905,32.151173],[95.360472,32.163934],[95.365318,32.176693],[95.389044,32.186106],[95.398151,32.17913],[95.407925,32.179799],[95.41653,32.172918],[95.43349,32.187826],[95.419037,32.202158],[95.417617,32.20832],[95.428561,32.217156],[95.431318,32.231149],[95.403665,32.243326],[95.400824,32.254498],[95.40826,32.265144],[95.428561,32.282518],[95.438837,32.317687],[95.455128,32.351267],[95.460057,32.369865],[95.472004,32.380974],[95.487293,32.389984],[95.493558,32.399327],[95.486457,32.40457],[95.464903,32.407811],[95.436832,32.425635],[95.430984,32.432878],[95.42831,32.44941],[95.422295,32.455269],[95.430482,32.466511],[95.447024,32.473941],[95.454794,32.481275],[95.469163,32.486466],[95.513191,32.495227],[95.535498,32.50613],[95.541346,32.514414],[95.531237,32.521221],[95.514027,32.544781],[95.49005,32.561863],[95.486958,32.574947],[95.475095,32.59483],[95.46131,32.62341],[95.431568,32.64547],[95.426806,32.659919],[95.41369,32.668996],[95.420624,32.677313],[95.443432,32.691234],[95.45329,32.703254],[95.461895,32.708099],[95.472171,32.704489],[95.491303,32.688336],[95.516032,32.674699],[95.536751,32.653455],[95.544688,32.648417],[95.575348,32.638529],[95.610521,32.611713],[95.621381,32.607861],[95.642435,32.592928],[95.664741,32.585745],[95.685711,32.571712],[95.695235,32.569952],[95.701584,32.58194],[95.712946,32.587553],[95.729822,32.578943],[95.754969,32.584176],[95.763908,32.583985],[95.779949,32.569856],[95.788888,32.568953],[95.805012,32.578467],[95.840602,32.581084],[95.859817,32.571997],[95.888222,32.566146],[95.884379,32.57704],[95.874688,32.581987],[95.87026,32.593356],[95.862825,32.594022],[95.855723,32.604057],[95.848288,32.603771],[95.840351,32.614614],[95.85021,32.624219],[95.867336,32.631969],[95.874772,32.638434],[95.885298,32.633395],[95.887387,32.626073],[95.893987,32.629259],[95.902091,32.642142],[95.90468,32.654168],[95.900503,32.67199],[95.907772,32.675459],[95.934172,32.654976],[95.963078,32.641381],[95.981207,32.641286],[95.995326,32.646896],[96.004182,32.660775],[96.013372,32.684773],[96.023731,32.687719],[96.032169,32.68425],[96.041526,32.708812],[96.036096,32.713087],[96.032169,32.734791],[96.040607,32.740775],[96.040774,32.749939],[96.032253,32.756823],[96.012035,32.760858],[96.027324,32.777283],[96.021643,32.781222],[96.02064,32.794701],[96.033088,32.804097],[96.03359,32.819279],[96.039103,32.843045],[96.033422,32.84978],[96.012954,32.854617],[96.022395,32.857463],[96.019721,32.863011],[96.037683,32.878611],[96.047876,32.879416],[96.048962,32.885011],[96.031584,32.902976],[96.045536,32.910133],[96.04303,32.914019],[96.021309,32.922455],[96.016212,32.920844],[95.977698,32.926246],[95.964331,32.934017],[95.957564,32.929468],[95.944615,32.934585],[95.931582,32.93468],[95.909443,32.952351],[95.915291,32.965567],[95.910027,32.970872],[95.910946,32.979633],[95.892399,33.00293],[95.900169,33.008185],[95.925149,33.009463],[95.934172,33.005676],[95.942944,33.008185],[95.967924,33.030196],[95.952301,33.066112],[95.961407,33.07387],[95.960822,33.080351],[95.948625,33.089007],[95.946369,33.103905],[95.941774,33.108634],[95.926569,33.110336],[95.911698,33.125183],[95.898832,33.13043],[95.898331,33.134685],[95.878531,33.153451],[95.860235,33.177552],[95.864997,33.191206],[95.849374,33.203441],[95.838597,33.223609],[95.81487,33.229276],[95.799247,33.245283],[95.801002,33.265016],[95.798161,33.276958],[95.788052,33.28399],[95.758979,33.273323],[95.751627,33.276486],[95.742688,33.296825]]]]}},{"type":"Feature","properties":{"adcode":632723,"name":"称多县","center":[97.110893,33.367884],"centroid":[97.013299,33.918962],"childrenNum":0,"level":"district","parent":{"adcode":632700},"subFeatureIndex":2,"acroutes":[100000,630000,632700]},"geometry":{"type":"MultiPolygon","coordinates":[[[[97.003373,34.723952],[97.002872,34.712816],[96.993766,34.703581],[96.992429,34.685989],[97.0073,34.676565],[97.011143,34.648983],[97.018912,34.634353],[97.017325,34.626921],[96.995771,34.62037],[96.99151,34.605456],[96.995687,34.598997],[96.991259,34.587518],[96.991343,34.571343],[96.983907,34.560837],[96.983072,34.549353],[96.96912,34.536007],[96.971292,34.518333],[96.960933,34.514379],[96.950824,34.520845],[96.913479,34.514658],[96.885074,34.523636],[96.853327,34.526659],[96.836368,34.51517],[96.811889,34.515821],[96.783902,34.513356],[96.775965,34.509402],[96.76452,34.514147],[96.764185,34.527682],[96.750234,34.535774],[96.723499,34.538937],[96.718654,34.546981],[96.70019,34.555583],[96.691084,34.55112],[96.678803,34.562046],[96.667942,34.557489],[96.657082,34.558698],[96.654157,34.549771],[96.644466,34.544842],[96.63419,34.5454],[96.619236,34.556002],[96.59033,34.559767],[96.572033,34.573528],[96.561507,34.574086],[96.549393,34.58473],[96.529175,34.597603],[96.503443,34.597835],[96.485899,34.605224],[96.475456,34.615167],[96.461838,34.616654],[96.452899,34.622275],[96.451312,34.646336],[96.432263,34.653906],[96.407869,34.668719],[96.385479,34.673686],[96.3742,34.683389],[96.365177,34.699079],[96.361084,34.712537],[96.364091,34.727015],[96.351727,34.732118],[96.32683,34.747149],[96.316722,34.747474],[96.292828,34.754849],[96.285225,34.762409],[96.276871,34.748494],[96.250471,34.745711],[96.247046,34.754988],[96.23418,34.762873],[96.227413,34.761945],[96.225575,34.770432],[96.21204,34.778825],[96.212625,34.783833],[96.199425,34.790509],[96.192324,34.790045],[96.187645,34.779984],[96.172524,34.761296],[96.16584,34.758559],[96.154478,34.744412],[96.149549,34.742696],[96.140693,34.728036],[96.151053,34.685757],[96.14721,34.673083],[96.156985,34.648426],[96.155397,34.632448],[96.142782,34.605038],[96.129916,34.594071],[96.142197,34.578966],[96.137435,34.570227],[96.15498,34.56437],[96.160243,34.572087],[96.171521,34.574411],[96.186476,34.572552],[96.207111,34.577572],[96.215382,34.567299],[96.211623,34.547353],[96.228666,34.541448],[96.233762,34.536565],[96.237271,34.521217],[96.228164,34.507867],[96.215466,34.500842],[96.214881,34.494747],[96.205942,34.492095],[96.207947,34.478786],[96.200094,34.477158],[96.195415,34.467431],[96.181797,34.463428],[96.154645,34.465476],[96.152724,34.454863],[96.146207,34.449556],[96.153225,34.427627],[96.162666,34.42772],[96.164169,34.419524],[96.158572,34.411747],[96.160494,34.404388],[96.179375,34.395071],[96.193744,34.393255],[96.22499,34.37625],[96.220311,34.368654],[96.259744,34.353975],[96.270104,34.336496],[96.277205,34.340504],[96.290489,34.338826],[96.299428,34.341577],[96.317975,34.340551],[96.325494,34.328804],[96.336438,34.319852],[96.343706,34.319153],[96.367433,34.307962],[96.377458,34.292945],[96.389238,34.296769],[96.411043,34.293831],[96.416474,34.281051],[96.45457,34.259264],[96.461838,34.248718],[96.476375,34.243492],[96.47554,34.229164],[96.503527,34.209558],[96.500102,34.172667],[96.504613,34.16141],[96.511881,34.157626],[96.542375,34.157299],[96.552985,34.141088],[96.546552,34.126695],[96.548975,34.115198],[96.557998,34.104214],[96.554322,34.080932],[96.566519,34.0814],[96.574289,34.054697],[96.588909,34.050908],[96.593254,34.040197],[96.59434,34.013341],[96.605451,34.003934],[96.595175,33.98788],[96.596345,33.97922],[96.59058,33.954031],[96.607289,33.943822],[96.624165,33.909439],[96.632937,33.881605],[96.630932,33.869653],[96.619737,33.847291],[96.627006,33.82633],[96.628259,33.815543],[96.623914,33.810712],[96.594757,33.796592],[96.574373,33.780546],[96.559167,33.758161],[96.556995,33.741873],[96.56276,33.722671],[96.581975,33.695621],[96.582226,33.680026],[96.587322,33.670958],[96.584983,33.663582],[96.565433,33.649626],[96.559919,33.636466],[96.558833,33.620907],[96.561423,33.60779],[96.562342,33.608778],[96.619069,33.581034],[96.626254,33.572756],[96.618233,33.553892],[96.622745,33.544859],[96.633522,33.550928],[96.64079,33.53893],[96.648894,33.536671],[96.658752,33.542741],[96.684902,33.548058],[96.70019,33.542835],[96.70654,33.532295],[96.695763,33.515729],[96.676882,33.502878],[96.687659,33.481834],[96.697601,33.4743],[96.699439,33.466011],[96.693173,33.450186],[96.712889,33.445711],[96.716565,33.437468],[96.714727,33.427668],[96.696765,33.428375],[96.70938,33.413344],[96.718403,33.406605],[96.725588,33.393032],[96.731854,33.393786],[96.730016,33.409621],[96.739958,33.403589],[96.754327,33.406605],[96.75792,33.398358],[96.746223,33.394587],[96.758755,33.3878],[96.764185,33.397604],[96.770451,33.398358],[96.772206,33.3878],[96.766859,33.376486],[96.770451,33.367481],[96.769616,33.349375],[96.782983,33.354656],[96.788413,33.377995],[96.800026,33.383274],[96.800945,33.365925],[96.812558,33.356118],[96.799107,33.350884],[96.798272,33.345602],[96.808965,33.336547],[96.813477,33.322962],[96.821497,33.319189],[96.826927,33.307158],[96.83311,33.309376],[96.834029,33.329708],[96.844806,33.321406],[96.860846,33.330415],[96.885993,33.322113],[96.903872,33.318292],[96.91916,33.32433],[96.945143,33.325085],[96.953246,33.331123],[96.949654,33.345413],[96.963188,33.342442],[96.974884,33.349233],[96.978477,33.343197],[96.970373,33.335651],[96.974801,33.319094],[96.983824,33.319849],[96.986581,33.334189],[97.00095,33.333434],[97.008135,33.324425],[96.997358,33.315367],[97.001786,33.306309],[97.018912,33.312395],[97.035955,33.295834],[97.034117,33.289794],[97.018829,33.286019],[97.019748,33.269453],[97.012479,33.258879],[97.01156,33.247596],[97.025011,33.237067],[97.019664,33.226537],[97.024092,33.215958],[97.022254,33.204669],[97.038378,33.193379],[97.052748,33.171551],[97.069791,33.165549],[97.078647,33.152695],[97.123343,33.1353],[97.138464,33.113362],[97.151832,33.103526],[97.16428,33.087635],[97.177814,33.057879],[97.176394,33.045671],[97.201373,33.036727],[97.207222,33.023853],[97.221424,33.022907],[97.229361,33.014008],[97.247573,33.005581],[97.249411,32.988583],[97.243647,32.977455],[97.248576,32.962772],[97.255343,32.926577],[97.26612,32.922597],[97.277399,32.923403],[97.282328,32.915394],[97.294358,32.919185],[97.312153,32.913688],[97.3175,32.920085],[97.325437,32.918522],[97.330366,32.904778],[97.350082,32.903924],[97.361779,32.907005],[97.360358,32.917811],[97.369632,32.926577],[97.362029,32.941976],[97.375814,32.956709],[97.388931,32.956757],[97.410151,32.96192],[97.415414,32.968504],[97.435298,32.975371],[97.447412,32.976271],[97.46504,32.972056],[97.478824,32.980864],[97.481581,32.97807],[97.506227,32.981338],[97.523771,32.98863],[97.500128,33.011641],[97.497622,33.021818],[97.518007,33.022149],[97.526361,33.029628],[97.541399,33.034787],[97.537306,33.058211],[97.516921,33.09752],[97.501214,33.096811],[97.487764,33.106695],[97.490688,33.122535],[97.497956,33.137947],[97.486343,33.145274],[97.487931,33.168196],[97.494865,33.167723],[97.518007,33.182608],[97.529703,33.204103],[97.550506,33.204811],[97.55485,33.211566],[97.575151,33.220823],[97.577657,33.234423],[97.592863,33.245944],[97.593614,33.251373],[97.609154,33.268179],[97.605979,33.283423],[97.615336,33.30178],[97.62202,33.335981],[97.636807,33.344612],[97.650425,33.341263],[97.676073,33.341027],[97.676323,33.357533],[97.689523,33.362814],[97.702306,33.359749],[97.702306,33.36635],[97.710911,33.369273],[97.707151,33.376156],[97.716007,33.376345],[97.720017,33.386244],[97.733468,33.387187],[97.75001,33.397368],[97.748756,33.403778],[97.758782,33.403212],[97.753518,33.410187],[97.741321,33.411648],[97.723442,33.421213],[97.715673,33.421355],[97.703726,33.428987],[97.67482,33.433039],[97.672564,33.442555],[97.664961,33.44769],[97.645245,33.449009],[97.625528,33.46149],[97.610741,33.459041],[97.604559,33.451835],[97.588101,33.460124],[97.580331,33.469873],[97.568802,33.464222],[97.552594,33.465682],[97.5551,33.47397],[97.546662,33.480515],[97.542151,33.49271],[97.529035,33.500007],[97.511992,33.519447],[97.518592,33.532154],[97.517338,33.545894],[97.521265,33.554927],[97.519845,33.566076],[97.525192,33.575766],[97.510738,33.582492],[97.472809,33.58743],[97.461781,33.581598],[97.448581,33.583714],[97.437052,33.60022],[97.415748,33.605487],[97.406308,33.620014],[97.405974,33.628523],[97.415748,33.63421],[97.416166,33.639662],[97.429199,33.664522],[97.428614,33.674576],[97.435465,33.680307],[97.422432,33.709569],[97.42828,33.721544],[97.417837,33.72854],[97.4165,33.748445],[97.423267,33.754922],[97.409817,33.767641],[97.406391,33.795138],[97.400627,33.804098],[97.385756,33.807475],[97.368796,33.824126],[97.371804,33.841993],[97.398037,33.848276],[97.392523,33.861543],[97.396366,33.869653],[97.389599,33.879918],[97.39528,33.889291],[97.410736,33.88212],[97.419926,33.886807],[97.460695,33.887369],[97.468465,33.902083],[97.482751,33.896976],[97.498541,33.903864],[97.50489,33.912297],[97.517589,33.909346],[97.524941,33.902599],[97.537222,33.905738],[97.546662,33.914124],[97.559528,33.91478],[97.582921,33.921245],[97.601885,33.930052],[97.633966,33.919137],[97.642404,33.924899],[97.644409,33.943354],[97.655604,33.94888],[97.659865,33.956325],[97.661536,33.975101],[97.652764,33.998412],[97.658528,34.012217],[97.675572,34.01086],[97.687351,34.016616],[97.702306,34.036735],[97.703141,34.058158],[97.693701,34.069382],[97.694954,34.076584],[97.683341,34.080698],[97.663541,34.114451],[97.65903,34.132023],[97.637559,34.158467],[97.627701,34.19966],[97.620182,34.212265],[97.607149,34.217681],[97.588685,34.205449],[97.584007,34.195364],[97.584425,34.178412],[97.575903,34.169211],[97.567883,34.168277],[97.549419,34.172808],[97.541065,34.178319],[97.534381,34.192282],[97.526946,34.199379],[97.496285,34.205729],[97.4891,34.212592],[97.479493,34.237285],[97.476067,34.264116],[97.468465,34.27508],[97.452675,34.286742],[97.413075,34.294811],[97.404052,34.32251],[97.391437,34.336869],[97.369966,34.348195],[97.360191,34.36255],[97.338386,34.375224],[97.327358,34.371217],[97.316247,34.375923],[97.303632,34.396702],[97.317584,34.413377],[97.33705,34.416916],[97.346908,34.428605],[97.334543,34.435403],[97.339055,34.440618],[97.327358,34.448858],[97.325019,34.464498],[97.311234,34.467431],[97.302044,34.479903],[97.275227,34.48116],[97.2251,34.497213],[97.209561,34.49805],[97.191348,34.493351],[97.175642,34.484789],[97.163695,34.497027],[97.146151,34.503587],[97.156928,34.51196],[97.158849,34.518798],[97.183913,34.527729],[97.193771,34.54368],[97.194439,34.555769],[97.199786,34.563068],[97.19469,34.571715],[97.200454,34.589888],[97.197196,34.607454],[97.185667,34.611589],[97.148908,34.620092],[97.129107,34.633238],[97.105548,34.630312],[97.090176,34.635468],[97.073634,34.645175],[97.064778,34.656924],[97.07355,34.674661],[97.118414,34.684689],[97.125682,34.704926],[97.137378,34.725576],[97.114905,34.723256],[97.104378,34.731654],[97.091429,34.735876],[97.075138,34.745897],[97.025847,34.751416],[97.011644,34.75624],[97.000533,34.739541],[97.006297,34.728546],[97.003373,34.723952]]]]}},{"type":"Feature","properties":{"adcode":632724,"name":"治多县","center":[95.616843,33.852322],"centroid":[92.60308,34.879225],"childrenNum":0,"level":"district","parent":{"adcode":632700},"subFeatureIndex":3,"acroutes":[100000,630000,632700]},"geometry":{"type":"MultiPolygon","coordinates":[[[[94.061941,35.636484],[94.048992,35.638732],[94.032367,35.648687],[94.008556,35.673593],[93.985832,35.678821],[93.963526,35.688634],[93.934035,35.70656],[93.915404,35.708669],[93.889171,35.702205],[93.880149,35.705231],[93.85024,35.709677],[93.83587,35.722236],[93.781483,35.730577],[93.769202,35.737176],[93.76185,35.756328],[93.748232,35.759214],[93.726928,35.750739],[93.707796,35.749364],[93.697604,35.751884],[93.681396,35.765032],[93.676551,35.764895],[93.660594,35.753717],[93.627594,35.755916],[93.600358,35.763062],[93.587158,35.771033],[93.568277,35.772682],[93.549647,35.782574],[93.539371,35.7812],[93.5311,35.761322],[93.51272,35.757244],[93.478467,35.767093],[93.448558,35.773552],[93.429677,35.774285],[93.408457,35.772178],[93.385482,35.777079],[93.361087,35.774834],[93.347135,35.778132],[93.309039,35.778498],[93.265429,35.777582],[93.253482,35.779552],[93.225495,35.790543],[93.192996,35.789032],[93.174115,35.791321],[93.147046,35.800067],[93.086894,35.80721],[93.080712,35.813894],[93.067178,35.84154],[93.044621,35.846848],[93.016299,35.849182],[93.002431,35.84186],[92.993993,35.833348],[92.98355,35.833027],[92.971269,35.837695],[92.937601,35.84543],[92.915461,35.847992],[92.86617,35.862405],[92.829912,35.868993],[92.802426,35.866614],[92.756226,35.869222],[92.695489,35.87741],[92.673851,35.875352],[92.644025,35.878782],[92.591894,35.878508],[92.527648,35.887153],[92.496987,35.894288],[92.488633,35.893602],[92.452207,35.898266],[92.424888,35.910475],[92.406342,35.915185],[92.369415,35.910292],[92.351202,35.896574],[92.34243,35.896254],[92.331653,35.908509],[92.314276,35.911344],[92.296898,35.908692],[92.25805,35.907778],[92.213521,35.914545],[92.17885,35.922591],[92.170078,35.923003],[92.146602,35.9305],[92.141339,35.935162],[92.125382,35.938773],[92.057627,35.957237],[92.04309,35.958745],[91.998979,35.975194],[91.97425,35.988487],[91.974584,35.999769],[91.967817,36.006528],[91.9349,36.010501],[91.910004,36.015616],[91.895885,36.022465],[91.880429,36.024885],[91.858457,36.021826],[91.836402,36.013926],[91.793126,36.005478],[91.750601,36.011643],[91.719523,36.020547],[91.679505,36.037166],[91.646004,36.043419],[91.63272,36.037759],[91.616095,36.049125],[91.594039,36.050951],[91.579837,36.055561],[91.582928,36.060809],[91.570229,36.072537],[91.565133,36.071122],[91.565467,36.080795],[91.553353,36.082848],[91.548842,36.095257],[91.556444,36.119795],[91.562961,36.131195],[91.571315,36.155083],[91.555191,36.155083],[91.552016,36.148519],[91.535224,36.135754],[91.527705,36.133019],[91.523528,36.120525],[91.507738,36.10926],[91.493869,36.103468],[91.477328,36.091699],[91.441905,36.078879],[91.40431,36.067335],[91.388269,36.065099],[91.342988,36.072354],[91.316421,36.074316],[91.291943,36.081343],[91.276487,36.094436],[91.255099,36.107938],[91.229786,36.117743],[91.206059,36.123671],[91.175732,36.133475],[91.142899,36.14159],[91.122682,36.154901],[91.104803,36.156724],[91.116082,36.141089],[91.119925,36.12244],[91.12477,36.115508],[91.122264,36.104608],[91.111988,36.094983],[91.092522,36.088825],[91.081327,36.088414],[91.057266,36.094025],[91.039722,36.093889],[91.033289,36.100001],[91.009562,36.103331],[91.003714,36.10064],[90.995026,36.107801],[90.979236,36.106797],[90.96261,36.093067],[90.952335,36.064186],[90.940722,36.045474],[90.934289,36.043191],[90.927271,36.031276],[90.91098,36.031368],[90.884664,36.024885],[90.872299,36.026437],[90.852415,36.017168],[90.838714,36.019771],[90.829357,36.029907],[90.815906,36.03575],[90.820251,36.04027],[90.806382,36.044104],[90.787334,36.065144],[90.776306,36.086316],[90.755253,36.094436],[90.742387,36.095941],[90.738043,36.101369],[90.726848,36.103878],[90.714149,36.115143],[90.66302,36.133931],[90.652159,36.134751],[90.624005,36.130784],[90.615567,36.126453],[90.587162,36.134159],[90.578056,36.130511],[90.568866,36.132426],[90.550904,36.145055],[90.52701,36.148519],[90.490835,36.14118],[90.479724,36.132244],[90.464435,36.131377],[90.423916,36.133976],[90.395595,36.139538],[90.373873,36.147516],[90.349645,36.142684],[90.341875,36.144872],[90.32926,36.157909],[90.310129,36.160097],[90.28824,36.157408],[90.274455,36.161373],[90.253402,36.157454],[90.236777,36.160599],[90.198179,36.187485],[90.175706,36.189764],[90.151812,36.196188],[90.143123,36.203203],[90.13009,36.207804],[90.127584,36.214955],[90.133599,36.227252],[90.145713,36.238955],[90.128503,36.246741],[90.086397,36.250929],[90.082052,36.255573],[90.058409,36.255527],[90.047716,36.265405],[90.043455,36.276602],[90.020647,36.275191],[90.003604,36.278513],[90.008784,36.266862],[90.027665,36.259897],[90.0219,36.238363],[90.019895,36.21368],[90.010037,36.19965],[90.009786,36.185708],[89.993078,36.163561],[89.982384,36.155995],[89.944371,36.140359],[89.93727,36.130101],[89.94646,36.110856],[89.948214,36.097766],[89.943285,36.090193],[89.947212,36.070164],[89.941447,36.067517],[89.927662,36.076187],[89.913125,36.079381],[89.90828,36.074727],[89.902432,36.079427],[89.887394,36.077008],[89.859239,36.081662],[89.847794,36.07605],[89.832589,36.079062],[89.812287,36.079563],[89.79466,36.071213],[89.768427,36.078103],[89.764333,36.072719],[89.752971,36.079928],[89.730999,36.083487],[89.727573,36.088506],[89.68814,36.090923],[89.684381,36.085951],[89.659485,36.069708],[89.641523,36.065874],[89.643277,36.057067],[89.63793,36.050084],[89.623644,36.050038],[89.617044,36.042917],[89.605181,36.038261],[89.56249,36.035522],[89.55071,36.028674],[89.543441,36.030774],[89.514117,36.025341],[89.506431,36.029131],[89.487049,36.027304],[89.475603,36.022145],[89.462236,36.030226],[89.451543,36.027761],[89.440431,36.031733],[89.431743,36.043648],[89.419127,36.045976],[89.41094,36.034746],[89.404507,36.017123],[89.420965,36.007076],[89.434667,35.993512],[89.427064,35.984513],[89.426813,35.967609],[89.432578,35.95943],[89.434165,35.94636],[89.421467,35.932511],[89.427983,35.917425],[89.450457,35.91043],[89.472846,35.900507],[89.489973,35.903525],[89.509188,35.894425],[89.541687,35.882076],[89.554469,35.879789],[89.552798,35.873247],[89.531077,35.874162],[89.530659,35.870274],[89.543943,35.867346],[89.549958,35.857418],[89.558312,35.861536],[89.577862,35.861536],[89.592231,35.855451],[89.607186,35.861124],[89.624062,35.859111],[89.66032,35.848175],[89.671515,35.851607],[89.707606,35.849273],[89.726989,35.852751],[89.741191,35.858745],[89.748794,35.854352],[89.778786,35.861536],[89.791986,35.857876],[89.801928,35.847763],[89.786723,35.833668],[89.781543,35.807713],[89.767675,35.799014],[89.776447,35.781017],[89.781627,35.777857],[89.780039,35.763383],[89.772353,35.761047],[89.763832,35.765765],[89.746872,35.754679],[89.752553,35.731769],[89.740773,35.715499],[89.750632,35.711144],[89.749713,35.702984],[89.742862,35.700509],[89.750381,35.69111],[89.748292,35.687075],[89.748877,35.66277],[89.74587,35.65855],[89.728158,35.654788],[89.725318,35.649834],[89.733338,35.642723],[89.742361,35.6218],[89.753723,35.61354],[89.765837,35.59977],[89.764333,35.587375],[89.749546,35.580489],[89.738016,35.58003],[89.719219,35.583932],[89.709277,35.576816],[89.707773,35.562902],[89.700756,35.548021],[89.700004,35.537456],[89.70627,35.535067],[89.704097,35.525925],[89.709945,35.516505],[89.705267,35.507407],[89.720138,35.501754],[89.741108,35.507315],[89.753472,35.491597],[89.765252,35.482541],[89.744115,35.479737],[89.738935,35.468611],[89.728492,35.467507],[89.731751,35.463093],[89.725067,35.452379],[89.714373,35.447596],[89.710948,35.439226],[89.699001,35.435776],[89.702009,35.428876],[89.686469,35.414707],[89.676862,35.420596],[89.658482,35.425564],[89.634839,35.41917],[89.617545,35.410842],[89.601338,35.397912],[89.599416,35.39193],[89.58112,35.381988],[89.568087,35.383507],[89.560568,35.377938],[89.545948,35.375314],[89.534586,35.36887],[89.50735,35.372506],[89.497241,35.361319],[89.499246,35.354459],[89.512446,35.347875],[89.516373,35.332126],[89.506849,35.322637],[89.494735,35.298544],[89.497241,35.290342],[89.511277,35.284306],[89.527819,35.286794],[89.531829,35.276379],[89.514953,35.265732],[89.485712,35.256697],[89.471844,35.244987],[89.458727,35.238532],[89.45054,35.223961],[89.469087,35.214645],[89.475353,35.208141],[89.481368,35.192595],[89.492981,35.176077],[89.50451,35.165694],[89.519464,35.134029],[89.538596,35.126503],[89.540768,35.120962],[89.556474,35.119161],[89.564912,35.12147],[89.583041,35.116621],[89.593067,35.104245],[89.586383,35.09667],[89.594236,35.087339],[89.590728,35.057954],[89.580117,35.055089],[89.588305,35.043627],[89.586216,35.028142],[89.581621,35.019543],[89.567669,35.011637],[89.576776,34.999568],[89.573935,34.980236],[89.566416,34.963629],[89.570343,34.950581],[89.563074,34.945074],[89.561236,34.931052],[89.568004,34.917906],[89.584378,34.907814],[89.579115,34.895221],[89.609525,34.894897],[89.624396,34.892396],[89.621138,34.88156],[89.654472,34.883181],[89.658816,34.888599],[89.670178,34.887627],[89.671682,34.894712],[89.700756,34.908231],[89.711783,34.920545],[89.733505,34.906148],[89.746956,34.903555],[89.765085,34.916008],[89.787558,34.921748],[89.802429,34.917258],[89.814209,34.905685],[89.830667,34.898462],[89.848128,34.900731],[89.86751,34.906796],[89.86609,34.900175],[89.904437,34.871788],[89.915465,34.868917],[89.928163,34.872483],[89.946543,34.890961],[89.968766,34.900453],[90.007698,34.906935],[90.019812,34.91337],[90.049136,34.909203],[90.063673,34.905176],[90.089822,34.902861],[90.096673,34.896517],[90.107533,34.874567],[90.115804,34.868083],[90.127918,34.866369],[90.167769,34.87943],[90.185146,34.892443],[90.183392,34.907768],[90.189658,34.917073],[90.199432,34.923507],[90.209792,34.937624],[90.221154,34.942298],[90.242875,34.945676],[90.252483,34.943177],[90.272366,34.927164],[90.295007,34.926701],[90.305032,34.922859],[90.321825,34.933829],[90.340622,34.93642],[90.375043,34.931515],[90.422412,34.939614],[90.443298,34.927025],[90.464268,34.925266],[90.535949,34.924387],[90.57062,34.921147],[90.582985,34.924017],[90.60738,34.925405],[90.638207,34.919295],[90.643554,34.902768],[90.653747,34.895915],[90.679813,34.903185],[90.717157,34.900129],[90.728603,34.887581],[90.741552,34.886099],[90.781319,34.890452],[90.806466,34.880773],[90.8464,34.860903],[90.876894,34.853074],[90.91875,34.834495],[90.923929,34.81174],[90.933036,34.80386],[90.948241,34.798158],[90.942059,34.77326],[90.961107,34.75573],[90.977231,34.756287],[90.985084,34.746546],[91.003881,34.745108],[91.014241,34.762409],[91.024266,34.766304],[91.05994,34.762455],[91.064702,34.771869],[91.056932,34.788284],[91.059188,34.796443],[91.069046,34.794821],[91.096532,34.796258],[91.121763,34.786661],[91.126358,34.781004],[91.156099,34.797463],[91.166626,34.799549],[91.190937,34.798066],[91.215332,34.804231],[91.232793,34.80284],[91.247413,34.793754],[91.263788,34.789396],[91.303639,34.790973],[91.321517,34.789906],[91.335302,34.773956],[91.350006,34.761945],[91.373733,34.751927],[91.38075,34.751277],[91.410409,34.739402],[91.453434,34.72437],[91.495707,34.716296],[91.545751,34.708546],[91.57073,34.702792],[91.5917,34.695365],[91.63247,34.677447],[91.648594,34.673037],[91.675411,34.661754],[91.681009,34.661289],[91.704067,34.670483],[91.726541,34.667233],[91.732138,34.661939],[91.738571,34.646336],[91.748012,34.635003],[91.760794,34.625155],[91.770903,34.623204],[91.808164,34.625062],[91.828632,34.620742],[91.843252,34.600809],[91.853695,34.592677],[91.879594,34.585101],[91.909921,34.58301],[91.935402,34.578455],[91.958543,34.576596],[91.965645,34.56953],[91.966397,34.555304],[91.949604,34.536053],[91.93064,34.517635],[91.928718,34.506285],[91.937992,34.488698],[91.961468,34.48088],[92.004911,34.473853],[92.028136,34.461426],[92.047351,34.454584],[92.066316,34.442433],[92.084946,34.435543],[92.099399,34.434704],[92.137078,34.417196],[92.150194,34.40844],[92.16707,34.403037],[92.212101,34.396003],[92.224131,34.387711],[92.232068,34.377601],[92.274341,34.378626],[92.298569,34.382679],[92.342514,34.379651],[92.365238,34.379325],[92.39523,34.383797],[92.42422,34.389807],[92.438757,34.380816],[92.467914,34.376902],[92.491306,34.3783],[92.507932,34.411374],[92.51378,34.415938],[92.537673,34.411374],[92.546446,34.401965],[92.540848,34.379977],[92.554466,34.342043],[92.559813,34.332999],[92.578694,34.290426],[92.592813,34.276386],[92.595486,34.266822],[92.61278,34.239572],[92.627985,34.202414],[92.631744,34.187145],[92.644694,34.173088],[92.655387,34.154123],[92.654468,34.14833],[92.661653,34.138424],[92.652798,34.122863],[92.656975,34.112488],[92.667334,34.111459],[92.677443,34.100708],[92.690894,34.092808],[92.69056,34.083551],[92.702172,34.078267],[92.704094,34.072282],[92.713367,34.070318],[92.735339,34.076817],[92.753803,34.067979],[92.766585,34.072983],[92.803428,34.082569],[92.826821,34.071112],[92.833504,34.078735],[92.855142,34.087151],[92.870598,34.090049],[92.883631,34.087852],[92.896998,34.092621],[92.912704,34.091592],[92.902679,34.068728],[92.878033,34.06059],[92.87795,34.053621],[92.868676,34.044173],[92.852469,34.045249],[92.844281,34.034957],[92.829661,34.030559],[92.818216,34.036548],[92.806352,34.034817],[92.782291,34.035659],[92.774522,34.020406],[92.766167,34.018301],[92.755975,34.001033],[92.739851,33.994574],[92.726484,33.982076],[92.717545,33.964145],[92.719382,33.953188],[92.706767,33.942792],[92.719132,33.935813],[92.723643,33.922791],[92.729408,33.91806],[92.742858,33.915764],[92.749041,33.907518],[92.741772,33.899131],[92.750461,33.884651],[92.752717,33.869372],[92.741689,33.847479],[92.747286,33.839086],[92.743026,33.833318],[92.749542,33.817607],[92.746367,33.814793],[92.761823,33.791572],[92.75681,33.786505],[92.752717,33.765342],[92.757562,33.762244],[92.756393,33.747506],[92.765415,33.729667],[92.77377,33.723563],[92.766418,33.710368],[92.756476,33.703746],[92.776276,33.698063],[92.782124,33.689937],[92.797664,33.684629],[92.792985,33.653197],[92.784296,33.636842],[92.79474,33.631202],[92.812952,33.615407],[92.822727,33.620296],[92.83434,33.633223],[92.839603,33.647041],[92.850965,33.656768],[92.877866,33.666965],[92.90836,33.661185],[92.915962,33.66236],[92.945955,33.655876],[92.979456,33.664287],[92.992823,33.65987],[93.008279,33.659447],[93.024988,33.668233],[93.03518,33.660997],[93.059241,33.657802],[93.086978,33.664803],[93.098674,33.662172],[93.118975,33.668656],[93.142786,33.662407],[93.155735,33.652868],[93.175953,33.646947],[93.202102,33.642811],[93.210791,33.637735],[93.234016,33.63327],[93.248219,33.648592],[93.259581,33.653479],[93.282973,33.643798],[93.294335,33.63468],[93.314052,33.635667],[93.328338,33.643422],[93.341204,33.644926],[93.359918,33.651881],[93.368021,33.647276],[93.37813,33.634445],[93.391832,33.634586],[93.407204,33.639991],[93.417647,33.639427],[93.439452,33.656017],[93.475042,33.66875],[93.497849,33.683549],[93.509713,33.68073],[93.521827,33.668656],[93.548979,33.66532],[93.586908,33.653291],[93.598103,33.651881],[93.614227,33.654607],[93.640961,33.664522],[93.653493,33.662595],[93.660176,33.66922],[93.6763,33.670583],[93.715232,33.690078],[93.723837,33.691769],[93.726343,33.704967],[93.73428,33.71774],[93.747647,33.703089],[93.784073,33.685099],[93.792845,33.667247],[93.804959,33.66875],[93.82008,33.664803],[93.836371,33.649767],[93.855002,33.645443],[93.864025,33.636748],[93.888085,33.627112],[93.906131,33.605581],[93.920751,33.602807],[93.930693,33.594766],[93.946483,33.597493],[93.961103,33.614796],[93.974554,33.618322],[93.979065,33.62777],[93.990845,33.63139],[94.003293,33.648122],[94.016326,33.658084],[94.035207,33.659353],[94.044731,33.678006],[94.06027,33.676596],[94.073888,33.686085],[94.10764,33.689749],[94.116663,33.681059],[94.136714,33.677301],[94.148577,33.678099],[94.159605,33.672462],[94.183582,33.670113],[94.196698,33.672885],[94.20923,33.679838],[94.231453,33.67575],[94.240392,33.678287],[94.25259,33.67514],[94.273643,33.681952],[94.288096,33.692051],[94.294195,33.700975],[94.309901,33.700224],[94.317671,33.703511],[94.318339,33.717787],[94.346744,33.728164],[94.355934,33.724737],[94.359276,33.736286],[94.355433,33.746192],[94.358273,33.753937],[94.383253,33.766327],[94.390521,33.774117],[94.411073,33.78308],[94.432711,33.777965],[94.458025,33.780921],[94.470306,33.792135],[94.479747,33.806397],[94.49679,33.803441],[94.518846,33.793167],[94.527033,33.794856],[94.535304,33.803254],[94.545079,33.82014],[94.590443,33.815965],[94.617762,33.810665],[94.667388,33.790118],[94.682342,33.774774],[94.688942,33.763418],[94.70657,33.762103],[94.709995,33.75342],[94.706737,33.74192],[94.715175,33.719102],[94.74617,33.69501],[94.769061,33.685005],[94.813423,33.672227],[94.822363,33.663159],[94.82679,33.648498],[94.825287,33.639568],[94.810332,33.606991],[94.807408,33.591803],[94.812671,33.573979],[94.819104,33.566923],[94.826206,33.567252],[94.854109,33.577459],[94.863049,33.569322],[94.872322,33.56871],[94.88452,33.575296],[94.903568,33.58014],[94.915932,33.579858],[94.927796,33.574731],[94.941163,33.563912],[94.96397,33.564006],[94.980345,33.570921],[94.992292,33.566029],[95.020279,33.532954],[95.034148,33.527401],[95.048267,33.534271],[95.07191,33.53413],[95.086029,33.539118],[95.094216,33.546317],[95.091125,33.563301],[95.101902,33.575343],[95.122788,33.585925],[95.134067,33.584185],[95.147434,33.567534],[95.151528,33.550363],[95.162221,33.533236],[95.179431,33.515964],[95.207502,33.446418],[95.213434,33.433887],[95.257713,33.430636],[95.27392,33.427574],[95.283361,33.417349],[95.296644,33.409009],[95.302075,33.410658],[95.306419,33.433934],[95.31352,33.436997],[95.337163,33.428281],[95.379353,33.405333],[95.39389,33.386904],[95.408677,33.38153],[95.42806,33.38351],[95.466406,33.363096],[95.487125,33.340273],[95.495814,33.340084],[95.51152,33.347488],[95.526224,33.344612],[95.557303,33.319991],[95.560227,33.297958],[95.577938,33.29692],[95.592308,33.308479],[95.613862,33.30612],[95.633161,33.320274],[95.639928,33.319896],[95.648784,33.311923],[95.660564,33.308385],[95.671257,33.310272],[95.68287,33.326453],[95.690974,33.332255],[95.700581,33.332585],[95.711275,33.326925],[95.742688,33.296825],[95.765579,33.302016],[95.773098,33.311027],[95.77009,33.3165],[95.744025,33.327396],[95.743356,33.340226],[95.736506,33.347535],[95.724141,33.352487],[95.708769,33.391618],[95.699412,33.399159],[95.685376,33.404296],[95.687381,33.41947],[95.703171,33.428092],[95.703589,33.446936],[95.710106,33.450657],[95.735587,33.447596],[95.756473,33.437892],[95.771678,33.441425],[95.789974,33.441283],[95.805597,33.43629],[95.817293,33.41947],[95.828404,33.409951],[95.842022,33.403165],[95.849959,33.403259],[95.865248,33.395483],[95.872934,33.39897],[95.891982,33.396142],[95.908022,33.389402],[95.916711,33.393456],[95.931665,33.412873],[95.937096,33.424511],[95.928324,33.443969],[95.933503,33.448302],[95.955643,33.446135],[95.988559,33.451175],[96.004934,33.448161],[96.021392,33.439776],[96.032086,33.4402],[96.033255,33.447313],[96.021476,33.470721],[96.010281,33.487201],[96.005936,33.498359],[96.011534,33.50382],[96.019721,33.499301],[96.038352,33.495723],[96.054643,33.50189],[96.074443,33.514646],[96.079539,33.512246],[96.091653,33.518741],[96.096749,33.525707],[96.117217,33.542882],[96.135347,33.531213],[96.148547,33.526365],[96.160326,33.51201],[96.182883,33.507115],[96.202099,33.4977],[96.21204,33.500289],[96.224071,33.496288],[96.233344,33.49916],[96.231005,33.506691],[96.213962,33.522083],[96.20143,33.540059],[96.188063,33.550034],[96.199759,33.561043],[96.186392,33.571486],[96.183802,33.595424],[96.217805,33.610847],[96.223987,33.615971],[96.238023,33.638393],[96.252309,33.649626],[96.262752,33.650472],[96.288149,33.645584],[96.304273,33.66095],[96.321734,33.671099],[96.328334,33.682233],[96.335185,33.685992],[96.348886,33.703605],[96.364342,33.727929],[96.374868,33.749853],[96.37161,33.761775],[96.365929,33.756096],[96.350641,33.752294],[96.346129,33.742483],[96.330841,33.743892],[96.324575,33.724267],[96.303856,33.728681],[96.295668,33.733892],[96.286646,33.733094],[96.284891,33.726286],[96.270438,33.729995],[96.263337,33.715627],[96.258825,33.718633],[96.256068,33.733657],[96.250638,33.730653],[96.250721,33.717834],[96.240863,33.714782],[96.23184,33.720793],[96.236268,33.732859],[96.233511,33.740371],[96.215549,33.734268],[96.202015,33.736474],[96.20377,33.744032],[96.23159,33.755392],[96.22783,33.77346],[96.215299,33.773413],[96.220562,33.786223],[96.216051,33.789977],[96.208949,33.782423],[96.183802,33.780077],[96.188397,33.765811],[96.180294,33.76276],[96.175699,33.771771],[96.168597,33.771724],[96.151554,33.758161],[96.139858,33.76262],[96.13802,33.77163],[96.131671,33.774634],[96.111954,33.764732],[96.097501,33.769941],[96.101093,33.777496],[96.110952,33.782798],[96.127995,33.783643],[96.130668,33.788194],[96.107109,33.809868],[96.081962,33.79997],[96.067425,33.814887],[96.047625,33.803441],[96.043949,33.811697],[96.044701,33.829003],[96.034676,33.833459],[96.021225,33.822063],[95.989144,33.832896],[95.986638,33.839039],[95.994658,33.854652],[95.982627,33.868293],[95.960989,33.861309],[95.956227,33.881183],[95.922225,33.890369],[95.925901,33.903489],[95.922308,33.909252],[95.898665,33.910704],[95.891982,33.921948],[95.901589,33.945976],[95.892483,33.949301],[95.869174,33.944103],[95.867002,33.975335],[95.848873,33.997663],[95.846116,34.01554],[95.826734,34.02195],[95.824812,34.030279],[95.83208,34.047073],[95.819215,34.060216],[95.801754,34.062554],[95.795237,34.054463],[95.785045,34.05741],[95.783374,34.06971],[95.77786,34.076022],[95.756556,34.078735],[95.756222,34.090938],[95.751794,34.096314],[95.73166,34.103513],[95.702419,34.126882],[95.6949,34.135854],[95.691809,34.147302],[95.698242,34.160943],[95.689554,34.172761],[95.688133,34.194477],[95.680698,34.203862],[95.662402,34.210725],[95.645024,34.211939],[95.638257,34.223376],[95.630321,34.224543],[95.603085,34.220202],[95.579442,34.218614],[95.571338,34.220715],[95.567078,34.229024],[95.586878,34.240505],[95.588632,34.247972],[95.583452,34.254738],[95.56666,34.26519],[95.563736,34.273167],[95.574346,34.297609],[95.575265,34.307915],[95.555214,34.328477],[95.538839,34.330855],[95.526893,34.343581],[95.505255,34.348382],[95.477267,34.364181],[95.462146,34.367862],[95.457968,34.381002],[95.432738,34.392882],[95.422462,34.402944],[95.415528,34.415286],[95.399822,34.427021],[95.399989,34.441781],[95.3913,34.444342],[95.363563,34.445227],[95.354206,34.458866],[95.355877,34.478786],[95.344849,34.483766],[95.318951,34.486139],[95.309427,34.475622],[95.317697,34.464591],[95.31753,34.452629],[95.30667,34.452303],[95.30032,34.469432],[95.29514,34.474365],[95.281189,34.476971],[95.269743,34.460123],[95.253452,34.460821],[95.239583,34.46757],[95.224545,34.484091],[95.218029,34.495538],[95.199983,34.499074],[95.179515,34.485115],[95.160467,34.493584],[95.147016,34.512053],[95.128553,34.512937],[95.124292,34.525822],[95.115603,34.528612],[95.097224,34.520659],[95.076839,34.526612],[95.059545,34.574039],[95.053948,34.580314],[95.039077,34.586589],[95.022117,34.576689],[95.012927,34.57971],[95.01017,34.587193],[95.0151,34.600531],[95.013679,34.606804],[94.980512,34.62116],[94.981013,34.634957],[94.989702,34.648751],[94.988783,34.658039],[94.982768,34.660407],[94.957955,34.660314],[94.935565,34.66584],[94.924287,34.674522],[94.914512,34.688588],[94.903066,34.691977],[94.883684,34.685432],[94.85954,34.686082],[94.824785,34.700425],[94.810165,34.711609],[94.792119,34.704741],[94.76714,34.709103],[94.757281,34.718384],[94.746922,34.718013],[94.738651,34.726226],[94.714089,34.728453],[94.692284,34.721261],[94.662793,34.729659],[94.642909,34.727664],[94.628372,34.734577],[94.617846,34.750535],[94.608405,34.754246],[94.579165,34.754617],[94.559365,34.749654],[94.540484,34.749747],[94.517091,34.737918],[94.516339,34.731051],[94.50456,34.702235],[94.470891,34.704973],[94.463539,34.699589],[94.462704,34.687892],[94.451509,34.67884],[94.423271,34.686964],[94.409737,34.684643],[94.400046,34.67364],[94.380413,34.675776],[94.377823,34.651027],[94.371724,34.65112],[94.354932,34.669183],[94.347245,34.666768],[94.353595,34.643457],[94.349668,34.635607],[94.331706,34.641274],[94.304387,34.64053],[94.300711,34.628732],[94.301714,34.607315],[94.288012,34.595047],[94.285673,34.577711],[94.267461,34.567764],[94.24624,34.569716],[94.227276,34.575713],[94.211402,34.574643],[94.194192,34.559628],[94.183081,34.5547],[94.166706,34.558047],[94.142979,34.574876],[94.130698,34.569716],[94.122093,34.557722],[94.109812,34.557164],[94.096946,34.563068],[94.059184,34.551724],[94.034288,34.539774],[94.011063,34.537402],[93.992432,34.517915],[93.963944,34.506006],[93.953918,34.505773],[93.942139,34.50047],[93.925346,34.497539],[93.912564,34.498423],[93.89527,34.504052],[93.870625,34.504471],[93.833447,34.500749],[93.809387,34.5014],[93.771123,34.506332],[93.763521,34.510332],[93.721247,34.523589],[93.686409,34.528054],[93.667277,34.527589],[93.657001,34.518147],[93.65107,34.504889],[93.64188,34.498004],[93.627009,34.495119],[93.56669,34.501772],[93.512553,34.517589],[93.489829,34.521682],[93.4519,34.523357],[93.412383,34.52131],[93.396009,34.523636],[93.379383,34.530566],[93.351563,34.537867],[93.330426,34.547167],[93.320067,34.547772],[93.298178,34.540983],[93.288988,34.532938],[93.279631,34.531077],[93.24471,34.53796],[93.214133,34.56172],[93.208953,34.56781],[93.187482,34.577851],[93.179378,34.586356],[93.152811,34.607501],[93.135851,34.615539],[93.123069,34.632123],[93.126745,34.637929],[93.119727,34.650655],[93.119727,34.661382],[93.105525,34.672062],[93.091239,34.675497],[93.076117,34.693927],[93.064254,34.694901],[93.047879,34.682414],[93.032006,34.68571],[93.031337,34.69996],[93.009031,34.703627],[93.000677,34.708268],[92.979206,34.713651],[92.986223,34.720101],[92.997585,34.748448],[92.990568,34.76009],[92.981378,34.766861],[92.975279,34.778825],[92.984051,34.823837],[92.991988,34.843206],[92.982213,34.852843],[92.977368,34.907444],[92.976198,34.944334],[92.99015,34.968162],[92.991821,34.981577],[92.984887,35.001094],[93.013041,35.03577],[93.019056,35.052501],[93.018137,35.068536],[93.034094,35.088078],[93.042449,35.124425],[93.039274,35.161079],[93.04437,35.171785],[93.057821,35.185259],[93.066593,35.197946],[93.079793,35.208648],[93.085307,35.217735],[93.090988,35.236504],[93.095834,35.241944],[93.121732,35.257573],[93.131674,35.260339],[93.166262,35.259601],[93.215971,35.271632],[93.241201,35.284674],[93.273616,35.290573],[93.283809,35.289236],[93.292831,35.294766],[93.294502,35.307897],[93.299849,35.315636],[93.316391,35.32273],[93.345214,35.338205],[93.359416,35.348474],[93.384563,35.35782],[93.419401,35.360997],[93.42951,35.360076],[93.448391,35.363529],[93.473204,35.370941],[93.519738,35.393264],[93.541877,35.397636],[93.566439,35.406885],[93.587242,35.418388],[93.618822,35.446217],[93.639207,35.472887],[93.648731,35.480242],[93.680143,35.497526],[93.725508,35.509153],[93.749569,35.519354],[93.789336,35.526614],[93.800197,35.526614],[93.82008,35.515495],[93.851409,35.51453],[93.877893,35.525603],[93.904126,35.518987],[93.921587,35.524409],[93.957344,35.549078],[93.97681,35.566254],[93.987002,35.571535],[94.001455,35.568458],[94.017913,35.571581],[94.036627,35.596327],[94.062025,35.616293],[94.061941,35.636484]]]]}},{"type":"Feature","properties":{"adcode":632725,"name":"囊谦县","center":[96.479797,32.203206],"centroid":[96.12882,32.169504],"childrenNum":0,"level":"district","parent":{"adcode":632700},"subFeatureIndex":4,"acroutes":[100000,630000,632700]},"geometry":{"type":"MultiPolygon","coordinates":[[[[96.040607,32.740775],[96.032169,32.734791],[96.036096,32.713087],[96.041526,32.708812],[96.032169,32.68425],[96.023731,32.687719],[96.013372,32.684773],[96.004182,32.660775],[95.995326,32.646896],[95.981207,32.641286],[95.963078,32.641381],[95.934172,32.654976],[95.907772,32.675459],[95.900503,32.67199],[95.90468,32.654168],[95.902091,32.642142],[95.893987,32.629259],[95.887387,32.626073],[95.885298,32.633395],[95.874772,32.638434],[95.867336,32.631969],[95.85021,32.624219],[95.840351,32.614614],[95.848288,32.603771],[95.855723,32.604057],[95.862825,32.594022],[95.87026,32.593356],[95.874688,32.581987],[95.884379,32.57704],[95.888222,32.566146],[95.859817,32.571997],[95.840602,32.581084],[95.805012,32.578467],[95.788888,32.568953],[95.779949,32.569856],[95.763908,32.583985],[95.754969,32.584176],[95.729822,32.578943],[95.712946,32.587553],[95.701584,32.58194],[95.695235,32.569952],[95.685711,32.571712],[95.664741,32.585745],[95.642435,32.592928],[95.621381,32.607861],[95.610521,32.611713],[95.575348,32.638529],[95.544688,32.648417],[95.536751,32.653455],[95.516032,32.674699],[95.491303,32.688336],[95.472171,32.704489],[95.461895,32.708099],[95.45329,32.703254],[95.443432,32.691234],[95.420624,32.677313],[95.41369,32.668996],[95.426806,32.659919],[95.431568,32.64547],[95.46131,32.62341],[95.475095,32.59483],[95.486958,32.574947],[95.49005,32.561863],[95.514027,32.544781],[95.531237,32.521221],[95.541346,32.514414],[95.535498,32.50613],[95.513191,32.495227],[95.469163,32.486466],[95.454794,32.481275],[95.447024,32.473941],[95.430482,32.466511],[95.422295,32.455269],[95.42831,32.44941],[95.430984,32.432878],[95.436832,32.425635],[95.464903,32.407811],[95.486457,32.40457],[95.493558,32.399327],[95.487293,32.389984],[95.472004,32.380974],[95.460057,32.369865],[95.455128,32.351267],[95.438837,32.317687],[95.428561,32.282518],[95.40826,32.265144],[95.400824,32.254498],[95.403665,32.243326],[95.431318,32.231149],[95.428561,32.217156],[95.417617,32.20832],[95.419037,32.202158],[95.43349,32.187826],[95.41653,32.172918],[95.424718,32.159585],[95.440174,32.157482],[95.437667,32.148784],[95.441343,32.137694],[95.434158,32.124404],[95.445687,32.117662],[95.450533,32.108577],[95.452705,32.091456],[95.449698,32.076916],[95.45471,32.062516],[95.441928,32.058449],[95.435412,32.061272],[95.432153,32.052421],[95.423548,32.051751],[95.421292,32.033902],[95.430482,32.024282],[95.45446,32.007863],[95.450449,32.00322],[95.431485,31.999246],[95.420875,32.007863],[95.417449,32.001305],[95.395644,32.001448],[95.387457,31.992256],[95.376429,31.990054],[95.377265,31.977795],[95.361057,31.959165],[95.370497,31.951549],[95.371416,31.944987],[95.361391,31.941681],[95.368409,31.929177],[95.381692,31.925679],[95.391634,31.928075],[95.393389,31.920217],[95.407006,31.919642],[95.405419,31.904691],[95.407925,31.894818],[95.422211,31.881923],[95.419371,31.87224],[95.433323,31.850184],[95.432989,31.844861],[95.441761,31.829993],[95.459556,31.817666],[95.462313,31.811717],[95.456047,31.803753],[95.470333,31.794829],[95.479105,31.79622],[95.492807,31.776498],[95.500994,31.774098],[95.511688,31.750579],[95.546526,31.739825],[95.554964,31.74597],[95.566242,31.740833],[95.576852,31.74741],[95.581447,31.768435],[95.601414,31.767667],[95.61027,31.773618],[95.614698,31.78336],[95.637171,31.782161],[95.675936,31.772467],[95.681199,31.776306],[95.694232,31.768963],[95.721885,31.763011],[95.736171,31.764115],[95.779615,31.749091],[95.792647,31.731039],[95.801921,31.703474],[95.817126,31.686662],[95.824979,31.68205],[95.834587,31.686566],[95.83726,31.699055],[95.849792,31.705059],[95.853301,31.714136],[95.846199,31.736368],[95.857812,31.74261],[95.85965,31.752979],[95.868589,31.772898],[95.889726,31.796124],[95.899334,31.817138],[95.910194,31.815843],[95.92022,31.820208],[95.943779,31.819297],[95.946787,31.816035],[95.982878,31.816658],[95.992569,31.804329],[95.988977,31.787439],[95.992402,31.77693],[96.000757,31.773522],[96.046372,31.732047],[96.059906,31.732287],[96.064835,31.720571],[96.077534,31.719754],[96.091068,31.712551],[96.106942,31.710294],[96.108529,31.699439],[96.124569,31.697614],[96.135681,31.702081],[96.147043,31.690072],[96.152975,31.652356],[96.14838,31.631161],[96.152975,31.609336],[96.16041,31.601066],[96.193494,31.605682],[96.206192,31.598662],[96.21722,31.608807],[96.212709,31.61448],[96.225157,31.624912],[96.222651,31.632459],[96.222901,31.653029],[96.248633,31.660429],[96.247463,31.678063],[96.252977,31.693627],[96.241532,31.710822],[96.234514,31.716249],[96.222316,31.736128],[96.23017,31.750675],[96.206777,31.765747],[96.177954,31.775586],[96.1762,31.781153],[96.18163,31.794733],[96.181045,31.809222],[96.175532,31.824237],[96.183134,31.835797],[96.2026,31.840784],[96.20778,31.858479],[96.214213,31.865767],[96.214463,31.876459],[96.199759,31.883889],[96.189066,31.902822],[96.203101,31.906224],[96.218724,31.90541],[96.237271,31.916336],[96.242785,31.92635],[96.251139,31.929608],[96.267932,31.923188],[96.288567,31.919786],[96.351894,31.916144],[96.368603,31.924482],[96.383808,31.924146],[96.389322,31.91993],[96.400182,31.893763],[96.399263,31.877609],[96.408286,31.863754],[96.407869,31.845772],[96.41497,31.833878],[96.428755,31.824093],[96.43335,31.799675],[96.465096,31.776642],[96.470527,31.769347],[96.485147,31.766323],[96.523912,31.745298],[96.526919,31.738577],[96.542876,31.729358],[96.565183,31.713223],[96.572618,31.711686],[96.580973,31.720667],[96.592251,31.723356],[96.615643,31.73704],[96.632269,31.718122],[96.644216,31.709957],[96.661175,31.705731],[96.670616,31.711927],[96.668276,31.72422],[96.673456,31.727918],[96.69618,31.71961],[96.706874,31.70357],[96.722747,31.687046],[96.735196,31.679264],[96.753826,31.673931],[96.77513,31.673931],[96.781229,31.6796],[96.790502,31.69843],[96.801864,31.703234],[96.821915,31.700304],[96.837203,31.715528],[96.839375,31.729694],[96.833694,31.739201],[96.818155,31.746354],[96.81072,31.760227],[96.81097,31.767187],[96.802532,31.772419],[96.797018,31.795741],[96.781813,31.803897],[96.766107,31.818961],[96.762097,31.839442],[96.760927,31.862986],[96.766525,31.867445],[96.794345,31.869219],[96.809132,31.890887],[96.809634,31.898173],[96.784904,31.912838],[96.774796,31.937178],[96.755163,31.943406],[96.750317,31.962374],[96.740125,31.97655],[96.743049,32.000778],[96.725588,32.011454],[96.721077,32.017964],[96.732773,32.026771],[96.747142,32.013656],[96.760677,32.014996],[96.767778,32.010927],[96.783234,32.011071],[96.796851,32.018251],[96.80671,32.011502],[96.822583,32.008342],[96.840378,31.997714],[96.849484,31.987037],[96.847312,31.978801],[96.866527,31.964338],[96.87037,31.967738],[96.863102,31.995655],[96.876302,31.996134],[96.889168,32.002885],[96.894431,32.013799],[96.90713,32.003507],[96.935869,31.992591],[96.942553,31.986606],[96.955335,31.994028],[96.966196,32.009443],[96.959345,32.019735],[96.94673,32.022367],[96.934198,32.04108],[96.935953,32.04821],[96.952829,32.061464],[96.999029,32.065147],[97.001034,32.073758],[97.021335,32.074859],[97.018912,32.078159],[97.029105,32.088347],[97.030943,32.096908],[97.038128,32.099395],[97.033616,32.118523],[97.038211,32.126651],[97.030274,32.133774],[97.054753,32.135112],[97.063358,32.139128],[97.078312,32.135734],[97.097528,32.149835],[97.114487,32.154519],[97.118163,32.177219],[97.112566,32.203161],[97.091429,32.206552],[97.05634,32.20703],[97.048654,32.217443],[97.02852,32.218446],[97.015654,32.227759],[97.011143,32.225657],[96.996439,32.200151],[96.996606,32.188112],[96.982236,32.175976],[96.980148,32.168856],[96.960933,32.16618],[96.957257,32.173061],[96.939963,32.179225],[96.928684,32.17913],[96.912143,32.18515],[96.895517,32.204737],[96.910305,32.219114],[96.915819,32.232725],[96.908801,32.25383],[96.91231,32.259606],[96.926178,32.263855],[96.916153,32.272447],[96.922586,32.281898],[96.90855,32.292111],[96.900948,32.311532],[96.894097,32.315826],[96.894431,32.325224],[96.884657,32.327896],[96.877221,32.335337],[96.878391,32.342206],[96.867279,32.349312],[96.87672,32.355321],[96.88733,32.355178],[96.897522,32.36667],[96.892426,32.372869],[96.87296,32.381641],[96.854246,32.406715],[96.851322,32.438738],[96.839375,32.459937],[96.824003,32.460033],[96.804203,32.450791],[96.800861,32.441978],[96.789834,32.439214],[96.771203,32.464748],[96.760426,32.474036],[96.751236,32.457365],[96.734861,32.446123],[96.740208,32.440358],[96.733525,32.428684],[96.723917,32.44355],[96.702112,32.444217],[96.692588,32.435069],[96.698436,32.42268],[96.693423,32.408907],[96.717985,32.380449],[96.717651,32.369483],[96.700859,32.375062],[96.688912,32.373584],[96.684401,32.378733],[96.650147,32.390985],[96.635193,32.382166],[96.619403,32.38741],[96.608626,32.378828],[96.586904,32.389221],[96.58799,32.401853],[96.577714,32.403855],[96.571281,32.420393],[96.559167,32.432973],[96.547388,32.438833],[96.535775,32.454793],[96.516643,32.462891],[96.504195,32.454888],[96.483727,32.449505],[96.477461,32.443074],[96.463342,32.438547],[96.452231,32.425063],[96.442372,32.423824],[96.441203,32.433306],[96.427836,32.439691],[96.4138,32.453269],[96.408286,32.463367],[96.394669,32.470464],[96.385061,32.470273],[96.368268,32.488894],[96.366013,32.497036],[96.351393,32.509177],[96.352228,32.517889],[96.333514,32.527076],[96.315552,32.546351],[96.308033,32.550063],[96.309453,32.557914],[96.301684,32.562815],[96.291157,32.579752],[96.290071,32.59269],[96.281382,32.597066],[96.274532,32.607861],[96.259327,32.61585],[96.229083,32.616516],[96.211038,32.611238],[96.193159,32.609811],[96.178706,32.613996],[96.176952,32.62013],[96.18798,32.652219],[96.181881,32.65721],[96.191656,32.678691],[96.194496,32.692755],[96.175114,32.714844],[96.166425,32.73009],[96.174445,32.737688],[96.167261,32.751078],[96.151888,32.759482],[96.106942,32.722254],[96.104017,32.712327],[96.089731,32.706152],[96.080959,32.707387],[96.069179,32.716364],[96.067174,32.724248],[96.054726,32.727193],[96.040607,32.740775]]]]}},{"type":"Feature","properties":{"adcode":632726,"name":"曲麻莱县","center":[95.800674,34.12654],"centroid":[95.261073,34.953979],"childrenNum":0,"level":"district","parent":{"adcode":632700},"subFeatureIndex":5,"acroutes":[100000,630000,632700]},"geometry":{"type":"MultiPolygon","coordinates":[[[[96.37161,33.761775],[96.393917,33.754735],[96.40202,33.747975],[96.41639,33.748022],[96.400433,33.713373],[96.386063,33.704263],[96.388737,33.696748],[96.405028,33.693037],[96.399681,33.68322],[96.413132,33.687025],[96.440952,33.685569],[96.449975,33.679603],[96.451813,33.664522],[96.484228,33.63891],[96.480719,33.629886],[96.465514,33.621612],[96.467269,33.617852],[96.496008,33.610329],[96.538114,33.6163],[96.553403,33.598998],[96.561423,33.60779],[96.558833,33.620907],[96.559919,33.636466],[96.565433,33.649626],[96.584983,33.663582],[96.587322,33.670958],[96.582226,33.680026],[96.581975,33.695621],[96.56276,33.722671],[96.556995,33.741873],[96.559167,33.758161],[96.574373,33.780546],[96.594757,33.796592],[96.623914,33.810712],[96.628259,33.815543],[96.627006,33.82633],[96.619737,33.847291],[96.630932,33.869653],[96.632937,33.881605],[96.624165,33.909439],[96.607289,33.943822],[96.59058,33.954031],[96.596345,33.97922],[96.595175,33.98788],[96.605451,34.003934],[96.59434,34.013341],[96.593254,34.040197],[96.588909,34.050908],[96.574289,34.054697],[96.566519,34.0814],[96.554322,34.080932],[96.557998,34.104214],[96.548975,34.115198],[96.546552,34.126695],[96.552985,34.141088],[96.542375,34.157299],[96.511881,34.157626],[96.504613,34.16141],[96.500102,34.172667],[96.503527,34.209558],[96.47554,34.229164],[96.476375,34.243492],[96.461838,34.248718],[96.45457,34.259264],[96.416474,34.281051],[96.411043,34.293831],[96.389238,34.296769],[96.377458,34.292945],[96.367433,34.307962],[96.343706,34.319153],[96.336438,34.319852],[96.325494,34.328804],[96.317975,34.340551],[96.299428,34.341577],[96.290489,34.338826],[96.277205,34.340504],[96.270104,34.336496],[96.259744,34.353975],[96.220311,34.368654],[96.22499,34.37625],[96.193744,34.393255],[96.179375,34.395071],[96.160494,34.404388],[96.158572,34.411747],[96.164169,34.419524],[96.162666,34.42772],[96.153225,34.427627],[96.146207,34.449556],[96.152724,34.454863],[96.154645,34.465476],[96.181797,34.463428],[96.195415,34.467431],[96.200094,34.477158],[96.207947,34.478786],[96.205942,34.492095],[96.214881,34.494747],[96.215466,34.500842],[96.228164,34.507867],[96.237271,34.521217],[96.233762,34.536565],[96.228666,34.541448],[96.211623,34.547353],[96.215382,34.567299],[96.207111,34.577572],[96.186476,34.572552],[96.171521,34.574411],[96.160243,34.572087],[96.15498,34.56437],[96.137435,34.570227],[96.142197,34.578966],[96.129916,34.594071],[96.142782,34.605038],[96.155397,34.632448],[96.156985,34.648426],[96.14721,34.673083],[96.151053,34.685757],[96.140693,34.728036],[96.149549,34.742696],[96.154478,34.744412],[96.16584,34.758559],[96.172524,34.761296],[96.187645,34.779984],[96.192324,34.790045],[96.199425,34.790509],[96.212625,34.783833],[96.21204,34.778825],[96.225575,34.770432],[96.227413,34.761945],[96.23418,34.762873],[96.247046,34.754988],[96.250471,34.745711],[96.276871,34.748494],[96.285225,34.762409],[96.292828,34.754849],[96.316722,34.747474],[96.32683,34.747149],[96.351727,34.732118],[96.364091,34.727015],[96.361084,34.712537],[96.365177,34.699079],[96.3742,34.683389],[96.385479,34.673686],[96.407869,34.668719],[96.432263,34.653906],[96.451312,34.646336],[96.452899,34.622275],[96.461838,34.616654],[96.475456,34.615167],[96.485899,34.605224],[96.503443,34.597835],[96.529175,34.597603],[96.549393,34.58473],[96.561507,34.574086],[96.572033,34.573528],[96.59033,34.559767],[96.619236,34.556002],[96.63419,34.5454],[96.644466,34.544842],[96.654157,34.549771],[96.657082,34.558698],[96.667942,34.557489],[96.678803,34.562046],[96.691084,34.55112],[96.70019,34.555583],[96.718654,34.546981],[96.723499,34.538937],[96.750234,34.535774],[96.764185,34.527682],[96.76452,34.514147],[96.775965,34.509402],[96.783902,34.513356],[96.811889,34.515821],[96.836368,34.51517],[96.853327,34.526659],[96.885074,34.523636],[96.913479,34.514658],[96.950824,34.520845],[96.960933,34.514379],[96.971292,34.518333],[96.96912,34.536007],[96.983072,34.549353],[96.983907,34.560837],[96.991343,34.571343],[96.991259,34.587518],[96.995687,34.598997],[96.99151,34.605456],[96.995771,34.62037],[97.017325,34.626921],[97.018912,34.634353],[97.011143,34.648983],[97.0073,34.676565],[96.992429,34.685989],[96.993766,34.703581],[97.002872,34.712816],[97.003373,34.723952],[96.9809,34.728453],[96.963188,34.745154],[96.951409,34.748633],[96.941968,34.768345],[96.936538,34.771962],[96.935368,34.785502],[96.943639,34.798529],[96.956087,34.812018],[96.965528,34.817395],[96.983573,34.818646],[96.995938,34.823929],[96.996439,34.840426],[97.005796,34.844133],[97.009639,34.855391],[97.01791,34.856641],[97.023006,34.872251],[97.007133,34.898694],[97.017409,34.906842],[97.047652,34.913879],[97.065697,34.907398],[97.079566,34.911611],[97.121338,34.950535],[97.156343,34.970753],[97.21307,35.000678],[97.22226,35.008863],[97.217497,35.02768],[97.204047,35.036694],[97.204297,35.043951],[97.216411,35.055875],[97.2185,35.068074],[97.225601,35.074542],[97.241725,35.077268],[97.243146,35.09667],[97.252336,35.100042],[97.264617,35.128581],[97.262444,35.139846],[97.27648,35.148847],[97.294358,35.167678],[97.304718,35.175708],[97.312822,35.187751],[97.326105,35.195501],[97.342229,35.213676],[97.361445,35.222946],[97.371136,35.232446],[97.370718,35.243374],[97.343482,35.26269],[97.348244,35.29882],[97.32126,35.29882],[97.30948,35.319459],[97.311318,35.332494],[97.296698,35.338113],[97.278067,35.318722],[97.261776,35.317709],[97.240472,35.321716],[97.217915,35.334382],[97.193353,35.331987],[97.177396,35.333507],[97.146234,35.343178],[97.127771,35.342579],[97.111229,35.347046],[97.097945,35.355656],[97.076892,35.38185],[97.056257,35.390825],[97.043391,35.407851],[97.045647,35.430808],[97.031945,35.443503],[97.017743,35.452471],[97.000366,35.472657],[96.986163,35.47845],[96.972879,35.48038],[96.963522,35.485989],[96.958009,35.476289],[96.946062,35.466542],[96.93896,35.469209],[96.941049,35.490539],[96.929854,35.498491],[96.912143,35.484885],[96.902535,35.489666],[96.894097,35.480978],[96.851573,35.496423],[96.850654,35.506074],[96.843887,35.510026],[96.825591,35.500927],[96.819158,35.503868],[96.792256,35.504787],[96.785406,35.507407],[96.771955,35.527073],[96.763016,35.52983],[96.743801,35.54329],[96.731436,35.55537],[96.712806,35.562718],[96.715479,35.573739],[96.707626,35.585034],[96.69359,35.585631],[96.690833,35.591645],[96.67496,35.592058],[96.663013,35.583335],[96.630431,35.588248],[96.617314,35.582371],[96.599185,35.582601],[96.592502,35.579111],[96.581724,35.581132],[96.569443,35.594812],[96.566102,35.60257],[96.552317,35.605691],[96.542876,35.614549],[96.526752,35.611429],[96.500102,35.616936],[96.485732,35.617532],[96.48356,35.62203],[96.461755,35.622672],[96.441704,35.635979],[96.42959,35.63419],[96.42182,35.638411],[96.405863,35.640017],[96.374033,35.649008],[96.3544,35.652541],[96.341952,35.641852],[96.33861,35.634511],[96.320815,35.641576],[96.304273,35.64309],[96.292494,35.64832],[96.265676,35.642632],[96.262585,35.646348],[96.241866,35.647357],[96.230838,35.640842],[96.224071,35.629418],[96.203686,35.6363],[96.198673,35.631987],[96.179876,35.63263],[96.134093,35.647678],[96.128997,35.634649],[96.117552,35.625104],[96.100091,35.616385],[96.086557,35.61276],[96.072688,35.613402],[96.063833,35.59619],[96.06425,35.588661],[96.057483,35.573831],[96.053974,35.55537],[96.046455,35.554911],[96.020055,35.54035],[96.01145,35.540855],[95.993405,35.532403],[95.979787,35.533046],[95.968926,35.544484],[95.968174,35.553211],[95.956729,35.565519],[95.948959,35.569193],[95.945283,35.590865],[95.925734,35.620424],[95.917045,35.617487],[95.900837,35.623728],[95.892734,35.635016],[95.885131,35.636163],[95.792564,35.639512],[95.773182,35.641898],[95.745445,35.633823],[95.736756,35.650431],[95.739513,35.657174],[95.725645,35.65222],[95.689971,35.650752],[95.684959,35.647999],[95.666746,35.654192],[95.649035,35.646394],[95.640262,35.648963],[95.632994,35.659238],[95.598323,35.655201],[95.588799,35.658596],[95.571088,35.653321],[95.55605,35.659926],[95.54427,35.655385],[95.502915,35.656394],[95.489548,35.659651],[95.479022,35.657862],[95.468662,35.646898],[95.468244,35.634924],[95.461143,35.625793],[95.460308,35.617349],[95.433824,35.601285],[95.397065,35.59775],[95.371751,35.602846],[95.357632,35.626068],[95.350113,35.624232],[95.338834,35.633272],[95.321039,35.640475],[95.29113,35.640017],[95.2791,35.637677],[95.249776,35.647219],[95.233902,35.647173],[95.212014,35.639695],[95.20132,35.645155],[95.195388,35.642494],[95.175254,35.647678],[95.176591,35.656853],[95.166733,35.672722],[95.155621,35.656807],[95.174586,35.636392],[95.143173,35.629922],[95.14969,35.610602],[95.1471,35.603442],[95.156123,35.595914],[95.148269,35.577137],[95.134819,35.573142],[95.118695,35.579616],[95.118444,35.566989],[95.126798,35.556518],[95.120031,35.546689],[95.126882,35.535343],[95.113431,35.511635],[95.099396,35.516873],[95.091292,35.532311],[95.096388,35.542188],[95.09029,35.545311],[95.065811,35.548113],[95.052611,35.547332],[95.047932,35.550777],[95.031474,35.548756],[95.021365,35.552063],[95.009836,35.546092],[94.998391,35.551007],[94.995968,35.561478],[94.976586,35.572224],[94.964722,35.564877],[94.941413,35.566759],[94.929383,35.574015],[94.931639,35.579065],[94.913426,35.581958],[94.894628,35.589579],[94.883517,35.586595],[94.877418,35.589717],[94.861545,35.585585],[94.852104,35.58632],[94.854109,35.578101],[94.838236,35.573831],[94.828127,35.583106],[94.824368,35.60459],[94.817183,35.616156],[94.804066,35.611061],[94.802813,35.602708],[94.786689,35.590956],[94.768309,35.607986],[94.76597,35.613081],[94.759036,35.606563],[94.743497,35.605462],[94.725284,35.609409],[94.718016,35.607344],[94.711666,35.594124],[94.698299,35.594353],[94.696545,35.589579],[94.68301,35.588018],[94.66555,35.592425],[94.658448,35.599082],[94.649008,35.597475],[94.642324,35.606242],[94.626952,35.595731],[94.620937,35.60179],[94.591613,35.592793],[94.579833,35.601744],[94.539314,35.604406],[94.520767,35.609455],[94.506481,35.60973],[94.48877,35.602157],[94.461284,35.60615],[94.434048,35.623636],[94.419929,35.61588],[94.407314,35.614045],[94.384256,35.617074],[94.363453,35.628867],[94.336468,35.629968],[94.313744,35.638273],[94.28041,35.633043],[94.265957,35.638503],[94.253425,35.653871],[94.267628,35.660797],[94.248496,35.662724],[94.238972,35.660981],[94.228612,35.651623],[94.214076,35.648825],[94.196114,35.661852],[94.169797,35.669191],[94.15526,35.66942],[94.136546,35.658779],[94.122511,35.640384],[94.114992,35.638411],[94.092936,35.642127],[94.073053,35.640842],[94.061941,35.636484],[94.062025,35.616293],[94.036627,35.596327],[94.017913,35.571581],[94.001455,35.568458],[93.987002,35.571535],[93.97681,35.566254],[93.957344,35.549078],[93.921587,35.524409],[93.904126,35.518987],[93.877893,35.525603],[93.851409,35.51453],[93.82008,35.515495],[93.800197,35.526614],[93.789336,35.526614],[93.749569,35.519354],[93.725508,35.509153],[93.680143,35.497526],[93.648731,35.480242],[93.639207,35.472887],[93.618822,35.446217],[93.587242,35.418388],[93.566439,35.406885],[93.541877,35.397636],[93.519738,35.393264],[93.473204,35.370941],[93.448391,35.363529],[93.42951,35.360076],[93.419401,35.360997],[93.384563,35.35782],[93.359416,35.348474],[93.345214,35.338205],[93.316391,35.32273],[93.299849,35.315636],[93.294502,35.307897],[93.292831,35.294766],[93.283809,35.289236],[93.273616,35.290573],[93.241201,35.284674],[93.215971,35.271632],[93.166262,35.259601],[93.131674,35.260339],[93.121732,35.257573],[93.095834,35.241944],[93.090988,35.236504],[93.085307,35.217735],[93.079793,35.208648],[93.066593,35.197946],[93.057821,35.185259],[93.04437,35.171785],[93.039274,35.161079],[93.042449,35.124425],[93.034094,35.088078],[93.018137,35.068536],[93.019056,35.052501],[93.013041,35.03577],[92.984887,35.001094],[92.991821,34.981577],[92.99015,34.968162],[92.976198,34.944334],[92.977368,34.907444],[92.982213,34.852843],[92.991988,34.843206],[92.984051,34.823837],[92.975279,34.778825],[92.981378,34.766861],[92.990568,34.76009],[92.997585,34.748448],[92.986223,34.720101],[92.979206,34.713651],[93.000677,34.708268],[93.009031,34.703627],[93.031337,34.69996],[93.032006,34.68571],[93.047879,34.682414],[93.064254,34.694901],[93.076117,34.693927],[93.091239,34.675497],[93.105525,34.672062],[93.119727,34.661382],[93.119727,34.650655],[93.126745,34.637929],[93.123069,34.632123],[93.135851,34.615539],[93.152811,34.607501],[93.179378,34.586356],[93.187482,34.577851],[93.208953,34.56781],[93.214133,34.56172],[93.24471,34.53796],[93.279631,34.531077],[93.288988,34.532938],[93.298178,34.540983],[93.320067,34.547772],[93.330426,34.547167],[93.351563,34.537867],[93.379383,34.530566],[93.396009,34.523636],[93.412383,34.52131],[93.4519,34.523357],[93.489829,34.521682],[93.512553,34.517589],[93.56669,34.501772],[93.627009,34.495119],[93.64188,34.498004],[93.65107,34.504889],[93.657001,34.518147],[93.667277,34.527589],[93.686409,34.528054],[93.721247,34.523589],[93.763521,34.510332],[93.771123,34.506332],[93.809387,34.5014],[93.833447,34.500749],[93.870625,34.504471],[93.89527,34.504052],[93.912564,34.498423],[93.925346,34.497539],[93.942139,34.50047],[93.953918,34.505773],[93.963944,34.506006],[93.992432,34.517915],[94.011063,34.537402],[94.034288,34.539774],[94.059184,34.551724],[94.096946,34.563068],[94.109812,34.557164],[94.122093,34.557722],[94.130698,34.569716],[94.142979,34.574876],[94.166706,34.558047],[94.183081,34.5547],[94.194192,34.559628],[94.211402,34.574643],[94.227276,34.575713],[94.24624,34.569716],[94.267461,34.567764],[94.285673,34.577711],[94.288012,34.595047],[94.301714,34.607315],[94.300711,34.628732],[94.304387,34.64053],[94.331706,34.641274],[94.349668,34.635607],[94.353595,34.643457],[94.347245,34.666768],[94.354932,34.669183],[94.371724,34.65112],[94.377823,34.651027],[94.380413,34.675776],[94.400046,34.67364],[94.409737,34.684643],[94.423271,34.686964],[94.451509,34.67884],[94.462704,34.687892],[94.463539,34.699589],[94.470891,34.704973],[94.50456,34.702235],[94.516339,34.731051],[94.517091,34.737918],[94.540484,34.749747],[94.559365,34.749654],[94.579165,34.754617],[94.608405,34.754246],[94.617846,34.750535],[94.628372,34.734577],[94.642909,34.727664],[94.662793,34.729659],[94.692284,34.721261],[94.714089,34.728453],[94.738651,34.726226],[94.746922,34.718013],[94.757281,34.718384],[94.76714,34.709103],[94.792119,34.704741],[94.810165,34.711609],[94.824785,34.700425],[94.85954,34.686082],[94.883684,34.685432],[94.903066,34.691977],[94.914512,34.688588],[94.924287,34.674522],[94.935565,34.66584],[94.957955,34.660314],[94.982768,34.660407],[94.988783,34.658039],[94.989702,34.648751],[94.981013,34.634957],[94.980512,34.62116],[95.013679,34.606804],[95.0151,34.600531],[95.01017,34.587193],[95.012927,34.57971],[95.022117,34.576689],[95.039077,34.586589],[95.053948,34.580314],[95.059545,34.574039],[95.076839,34.526612],[95.097224,34.520659],[95.115603,34.528612],[95.124292,34.525822],[95.128553,34.512937],[95.147016,34.512053],[95.160467,34.493584],[95.179515,34.485115],[95.199983,34.499074],[95.218029,34.495538],[95.224545,34.484091],[95.239583,34.46757],[95.253452,34.460821],[95.269743,34.460123],[95.281189,34.476971],[95.29514,34.474365],[95.30032,34.469432],[95.30667,34.452303],[95.31753,34.452629],[95.317697,34.464591],[95.309427,34.475622],[95.318951,34.486139],[95.344849,34.483766],[95.355877,34.478786],[95.354206,34.458866],[95.363563,34.445227],[95.3913,34.444342],[95.399989,34.441781],[95.399822,34.427021],[95.415528,34.415286],[95.422462,34.402944],[95.432738,34.392882],[95.457968,34.381002],[95.462146,34.367862],[95.477267,34.364181],[95.505255,34.348382],[95.526893,34.343581],[95.538839,34.330855],[95.555214,34.328477],[95.575265,34.307915],[95.574346,34.297609],[95.563736,34.273167],[95.56666,34.26519],[95.583452,34.254738],[95.588632,34.247972],[95.586878,34.240505],[95.567078,34.229024],[95.571338,34.220715],[95.579442,34.218614],[95.603085,34.220202],[95.630321,34.224543],[95.638257,34.223376],[95.645024,34.211939],[95.662402,34.210725],[95.680698,34.203862],[95.688133,34.194477],[95.689554,34.172761],[95.698242,34.160943],[95.691809,34.147302],[95.6949,34.135854],[95.702419,34.126882],[95.73166,34.103513],[95.751794,34.096314],[95.756222,34.090938],[95.756556,34.078735],[95.77786,34.076022],[95.783374,34.06971],[95.785045,34.05741],[95.795237,34.054463],[95.801754,34.062554],[95.819215,34.060216],[95.83208,34.047073],[95.824812,34.030279],[95.826734,34.02195],[95.846116,34.01554],[95.848873,33.997663],[95.867002,33.975335],[95.869174,33.944103],[95.892483,33.949301],[95.901589,33.945976],[95.891982,33.921948],[95.898665,33.910704],[95.922308,33.909252],[95.925901,33.903489],[95.922225,33.890369],[95.956227,33.881183],[95.960989,33.861309],[95.982627,33.868293],[95.994658,33.854652],[95.986638,33.839039],[95.989144,33.832896],[96.021225,33.822063],[96.034676,33.833459],[96.044701,33.829003],[96.043949,33.811697],[96.047625,33.803441],[96.067425,33.814887],[96.081962,33.79997],[96.107109,33.809868],[96.130668,33.788194],[96.127995,33.783643],[96.110952,33.782798],[96.101093,33.777496],[96.097501,33.769941],[96.111954,33.764732],[96.131671,33.774634],[96.13802,33.77163],[96.139858,33.76262],[96.151554,33.758161],[96.168597,33.771724],[96.175699,33.771771],[96.180294,33.76276],[96.188397,33.765811],[96.183802,33.780077],[96.208949,33.782423],[96.216051,33.789977],[96.220562,33.786223],[96.215299,33.773413],[96.22783,33.77346],[96.23159,33.755392],[96.20377,33.744032],[96.202015,33.736474],[96.215549,33.734268],[96.233511,33.740371],[96.236268,33.732859],[96.23184,33.720793],[96.240863,33.714782],[96.250721,33.717834],[96.250638,33.730653],[96.256068,33.733657],[96.258825,33.718633],[96.263337,33.715627],[96.270438,33.729995],[96.284891,33.726286],[96.286646,33.733094],[96.295668,33.733892],[96.303856,33.728681],[96.324575,33.724267],[96.330841,33.743892],[96.346129,33.742483],[96.350641,33.752294],[96.365929,33.756096],[96.37161,33.761775]]]]}}]}
47 );
48 }));
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 <div class="naturalBuilding itemForm"> 2 <div class="naturalBuilding itemForm">
3 <el-form :model="naturalForm" :rules="rules" ref="formList" label-width="115px" :key="key"> 3 <el-form :model="naturalForm" :rules="rules" ref="formList" label-width="115px" :key="key">
4 <div v-for="(item, index) in naturalForm.naturalList" :key="index" class="naturalBuilding-item"> 4 <div v-for="(item, index) in naturalForm.naturalList" :key="index" class="naturalBuilding-item">
5 <p class="naturalBuilding-name">自然幢{{ index + 1 }}</p> 5 <p class="naturalBuilding-name obligee-item-name">自然幢{{ index + 1 }}</p>
6 <div class="naturalBuilding-list"> 6 <div class="naturalBuilding-list">
7 <el-row> 7 <el-row>
8 <el-col :span="8"> 8 <el-col :span="8">
...@@ -330,7 +330,7 @@ export default { ...@@ -330,7 +330,7 @@ export default {
330 default: "", 330 default: "",
331 }, 331 },
332 }, 332 },
333 data() { 333 data () {
334 return { 334 return {
335 naturalForm: { 335 naturalForm: {
336 naturalList: [ 336 naturalList: [
...@@ -366,7 +366,7 @@ export default { ...@@ -366,7 +366,7 @@ export default {
366 }; 366 };
367 }, 367 },
368 methods: { 368 methods: {
369 async featchData() { 369 async featchData () {
370 try { 370 try {
371 let { result: res } = await kttFwZrz.getKttFwZrzById(this.bsmSjsb); 371 let { result: res } = await kttFwZrz.getKttFwZrzById(this.bsmSjsb);
372 this.naturalForm.naturalList = res; 372 this.naturalForm.naturalList = res;
...@@ -375,7 +375,7 @@ export default { ...@@ -375,7 +375,7 @@ export default {
375 this.$refs.msg.messageShow(); 375 this.$refs.msg.messageShow();
376 } 376 }
377 }, 377 },
378 handleUpdateForm() { 378 handleUpdateForm () {
379 return new Promise(async (resolve) => { 379 return new Promise(async (resolve) => {
380 try { 380 try {
381 let res = await kttFwZrz.updateKttFwZrz(this.naturalForm.naturalList); 381 let res = await kttFwZrz.updateKttFwZrz(this.naturalForm.naturalList);
......
1 /*
2 * FileName: lb-column.vue
3 * Remark: element-column
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 9:58:23 am
7 * Last Modified: Tuesday, 19th March 2019 10:14:42 am
8 * Modified By: 任超
9 */
10
11 <template>
12 <el-table-column v-bind="$attrs" v-on="$listeners" :prop="column.prop" :label="column.label" :type="column.type"
13 :index="column.index" :column-key="column.columnKey" :width="column.width" :min-width="column.minWidth"
14 :fixed="column.fixed" :scoped-slot="column.renderHeader" :sortable="column.sortable || false"
15 :sort-method="column.sortMethod" :sort-by="column.sortBy" :sort-orders="column.sortOrders"
16 :resizable="column.resizable || true" :formatter="column.formatter"
17 :show-overflow-tooltip="column.showOverflowTooltip || false" :align="column.align || align || 'center'"
18 :header-align="column.headerAlign || headerAlign || column.align || align || 'center'"
19 :class-name="column.className" :label-class-name="column.labelClassName" :selectable="column.selectable"
20 :reserve-selection="column.reserveSelection || false" :filters="column.filters"
21 :filter-placement="column.filterPlacement" :filter-multiple="column.filterMultiple"
22 :filter-method="column.filterMethod" :filtered-value="column.filteredValue">
23 <template slot="header" slot-scope="scope">
24 <lb-render v-if="column.renderHeader" :scope="scope" :render="column.renderHeader">
25 </lb-render>
26 <span v-else>{{ scope.column.label }}</span>
27 </template>
28
29 <template slot-scope="scope">
30 <lb-render :scope="scope" :render="column.render">
31 </lb-render>
32 </template>
33
34 <template v-if="column.children">
35 <lb-column v-for="(col, index) in column.children" :key="index" :column="col">
36 </lb-column>
37 </template>
38 </el-table-column>
39 </template>
40
41 <script>
42 import LbRender from './LbRender'
43 import forced from './forced.js'
44 export default {
45 name: 'LbColumn',
46 props: {
47 column: Object,
48 headerAlign: String,
49 align: String
50 },
51 components: {
52 LbRender
53 },
54 methods: {
55 setColumn () {
56 if (this.column.type) {
57 this.column.renderHeader = forced[this.column.type].renderHeader
58 this.column.render = this.column.render || forced[this.column.type].renderCell
59 }
60 if (this.column.formatter) {
61 this.column.render = (h, scope) => {
62 return <span>{scope.column.formatter(scope.row, scope.column, scope.row, scope.$index)}</span>
63 }
64 }
65 if (!this.column.render) {
66 this.column.render = (h, scope) => {
67 return <span>{scope.row[scope.column.property]}</span>
68 }
69 }
70 }
71 },
72 watch: {
73 column: {
74 handler () {
75 this.setColumn()
76 },
77 immediate: true
78 }
79 }
80 }
81 </script>
1 /*
2 * FileName: lb-render.vue
3 * Remark: 自定义render
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 10:15:30 am
7 * Last Modified: Tuesday, 19th March 2019 10:15:32 am
8 * Modified By: 任超
9 */
10 <script>
11 export default {
12 name: 'LbRender',
13 functional: true,
14 props: {
15 scope: Object,
16 render: Function
17 },
18 render: (h, ctx) => {
19 return ctx.props.render ? ctx.props.render(h, ctx.props.scope) : ''
20 }
21 }
22 </script>
1 export default {
2 selection: {
3 renderHeader: (h, { store }) => {
4 return (
5 <el-checkbox
6 disabled={store.states.data && store.states.data.length === 0}
7 indeterminate={
8 store.states.selection.length > 0 && !store.states.isAllSelected
9 }
10 nativeOn-click={store.toggleAllSelection}
11 value={store.states.isAllSelected}
12 />
13 )
14 },
15 renderCell: (h, { row, column, store, $index }) => {
16 return (
17 <el-checkbox
18 nativeOn-click={event => event.stopPropagation()}
19 value={store.isSelected(row)}
20 disabled={
21 column.selectable
22 ? !column.selectable.call(null, row, $index)
23 : false
24 }
25 on-input={() => {
26 store.commit('rowSelectedChanged', row)
27 }}
28 />
29 )
30 },
31 sortable: false,
32 resizable: false
33 },
34 index: {
35 renderHeader: (h, scope) => {
36 return <span>{scope.column.label || '#'}</span>
37 },
38 renderCell: (h, { $index, column }) => {
39 let i = $index + 1
40 const index = column.index
41
42 if (typeof index === 'number') {
43 i = $index + index
44 } else if (typeof index === 'function') {
45 i = index($index)
46 }
47
48 return <div>{i}</div>
49 },
50 sortable: false
51 },
52 expand: {
53 renderHeader: (h, scope) => {
54 return <span>{scope.column.label || ''}</span>
55 },
56 renderCell: (h, { row, store }, proxy) => {
57 const expanded = store.states.expandRows.indexOf(row) > -1
58 return (
59 <div
60 class={
61 'el-table__expand-icon ' +
62 (expanded ? 'el-table__expand-icon--expanded' : '')
63 }
64 on-click={e => proxy.handleExpandClick(row, e)}
65 >
66 <i class='el-icon el-icon-arrow-right' />
67 </div>
68 )
69 },
70 sortable: false,
71 resizable: false,
72 className: 'el-table__expand-column'
73 }
74 }
1 /*
2 * FileName: lb-table.vue
3 * Remark: element table
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 9:55:27 am
7 * Last Modified: Tuesday, 19th March 2019 9:55:34 am
8 * Modified By: 任超
9 */
10
11 <template>
12 <div :class="['lb-table', customClass]">
13 <el-table v-if="!heightNumSetting" class="table-fixed" :row-style="{ height: '50px' }" ref="elTable" :border='border'
14 :row-class-name="tableRowClassName" :show-header='showHeader' @row-click="singleElection" v-bind="$attrs"
15 :height="tableHeight" v-on="$listeners" :data="data" style="width: 100%"
16 :span-method="this.merge ? this.mergeMethod : this.spanMethod">
17 <el-table-column width="45" align="center" v-if="isRadio">
18 <template slot-scope="scope">
19 <el-radio v-model="selected" :label="scope.$index"></el-radio>
20 </template>
21 </el-table-column>
22
23 <el-table-column :label="downTitle" align="center">
24 <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item">
25 </lb-column>
26 </el-table-column>
27 </el-table>
28 <br>
29 <el-pagination class="lb-table-pagination" v-if="pagination" v-bind="$attrs" v-on="$listeners" background
30 layout="total, prev, pager, next" @current-change="paginationCurrentChange"
31 :style="{ 'margin-top': paginationTop, 'text-align': paginationAlign }">
32 </el-pagination>
33 </div>
34 </template>
35
36 <script>
37 import LbColumn from './LbColumn'
38 export default {
39 props: {
40 column: Array,
41 data: Array,
42 spanMethod: Function,
43 pagination: {
44 type: Boolean,
45 default: true,
46 },
47 downExcel: {
48 type: Boolean,
49 default: false,
50 },
51 downTitle: {
52 type: String,
53 default: '标题'
54 },
55 isRadio: {
56 type: Boolean,
57 default: false,
58 },
59 border: {
60 type: Boolean,
61 default: false,
62 },
63 showHeader: {
64 type: Boolean,
65 default: true,
66 },
67 paginationTop: {
68 type: String,
69 default: '0',
70 },
71 heightNum: {
72 type: Number,
73 default: 355,
74 },
75 maxHeight: {
76 type: Number,
77 default: 500
78 },
79 heightNumSetting: {
80 type: Boolean,
81 default: false,
82 },
83 customClass: {
84 type: String,
85 default: '',
86 },
87 paginationAlign: {
88 type: String,
89 default: 'left',
90 },
91 merge: Array,
92 },
93 components: {
94 LbColumn,
95 },
96 data () {
97 return {
98 tableHeight: 'auto',
99 mergeLine: {},
100 mergeIndex: {},
101 selected: ''
102 }
103 },
104 created () {
105 this.getMergeArr(this.data, this.merge)
106 this.getHeight()
107 },
108 computed: {
109 dataLength () {
110 return [] || this.data.length
111 },
112 },
113 methods: {
114 // 单选
115 singleElection (row) {
116 this.selected = this.data.indexOf(row);
117 },
118
119 tableRowClassName ({ row, rowIndex }) {
120 if (rowIndex % 2 === 1) {
121 return 'interlaced';
122 }
123 },
124 getHeight () {
125 if (!this.heightNumSetting) {
126 let _this = this
127 if (this.heightNum) {
128 _this.$nextTick(() => {
129
130 window.addEventListener('resize', () => {
131 _this.tableHeight = _this.calcHeightx(230)
132 });
133 _this.tableHeight = _this.calcHeightx(230)
134 })
135 } else {
136 _this.tableHeight = window.innerHeight - _this.heightNum
137 }
138 }
139 },
140 calcHeightx (value, wappered = true) {
141 //项目自定义的公共header部分的高度,可忽略
142 let header = document.querySelector(".from-clues-header").offsetHeight;
143 //value为动态计算table界面高度时,减去的其他空白部分,需自行在调试找到临界值,剩下的就是table表格的高度(包含header+body部分)
144 value = value == undefined ? 100 : value;
145 let res = window.innerHeight - parseInt(header) - value;
146 if (wappered) {
147 //通过原生方法,获取dom节点的高度------获取element-ui table表格body的元素
148 let wapper = window.document.getElementsByClassName('el-table__body-wrapper');
149 //通过原生方法,获取dom节点的高度------获取element-ui table表格header的元素
150 let header = window.document.getElementsByClassName('el-table__header-wrapper');
151 //必须加延时,要不然赋不上去值
152 setTimeout(() => {
153 //通过上边计算得到的table高度的value值,减去table表格的header高度,剩下的通过dom节点直接强行赋给table表格的body
154 wapper[0].style.height = (value - header[0].clientHeight)
155 }, 100)
156 }
157 return res;
158 },
159 clearSelection () {
160 this.$refs.elTable.clearSelection()
161 },
162 toggleRowSelection (row, selected) {
163 this.$refs.elTable.toggleRowSelection(row, selected)
164 },
165 toggleAllSelection () {
166 this.$refs.elTable.toggleAllSelection()
167 },
168 toggleRowExpansion (row, expanded) {
169 this.$refs.elTable.toggleRowExpansion(row, expanded)
170 },
171 setCurrentRow (row) {
172 this.$refs.elTable.setCurrentRow(row)
173 },
174 clearSort () {
175 this.$refs.elTable.clearSort()
176 },
177 clearFilter (columnKey) {
178 this.$refs.elTable.clearFilter(columnKey)
179 },
180 doLayout () {
181 this.$refs.elTable.doLayout()
182 },
183 sort (prop, order) {
184 this.$refs.elTable.sort(prop, order)
185 },
186 paginationCurrentChange (val) {
187 this.$emit('p-current-change', val)
188 },
189 getMergeArr (tableData, merge) {
190 if (!merge) return
191 this.mergeLine = {}
192 this.mergeIndex = {}
193 merge.forEach((item, k) => {
194 tableData.forEach((data, i) => {
195 if (i === 0) {
196 this.mergeIndex[item] = this.mergeIndex[item] || []
197 this.mergeIndex[item].push(1)
198 this.mergeLine[item] = 0
199 } else {
200 if (data[item] === tableData[i - 1][item]) {
201 this.mergeIndex[item][this.mergeLine[item]] += 1
202 this.mergeIndex[item].push(0)
203 } else {
204 this.mergeIndex[item].push(1)
205 this.mergeLine[item] = i
206 }
207 }
208 })
209 })
210 },
211 mergeMethod ({ row, column, rowIndex, columnIndex }) {
212 const index = this.merge.indexOf(column.property)
213 if (index > -1) {
214 const _row = this.mergeIndex[this.merge[index]][rowIndex]
215 const _col = _row > 0 ? 1 : 0
216 return {
217 rowspan: _row,
218 colspan: _col,
219 }
220 }
221 },
222 },
223 watch: {
224 merge () {
225 this.getMergeArr(this.data, this.merge)
226 },
227 dataLength () {
228 this.getMergeArr(this.data, this.merge)
229 }
230 },
231 }
232 </script>
233 <style rel="stylesheet/scss" scoped lang="scss">
234 .lb-table {
235 margin-top: 1px;
236
237 .interlaced {
238 background: #fafcff;
239 border: 1px solid #ebf2fa;
240 }
241 }
242
243 /deep/.el-table .cell {
244 padding-left: 3px;
245 padding-right: 3px;
246 }
247
248 /deep/.el-radio__label {
249 display: none;
250 }
251 </style>
1 ## 这是对于element-table 进行的二次封装
2
3 ### 文档地址
4
5 <!-- table 已经全局注册不需要每个页面单独注册 -->
6
7 [Windows/Mac/Linux 全平台客户端](https://github.liubing.me/lb-element-table/zh/guide/)
1 <template> 1 <template>
2 <!--上报统计柱状图 --> 2 <!--上报统计柱状图 -->
3 <Echart 3 <Echart
4 :options="options" 4 :options="options"
5 id="bottomLeftChart" 5 id="bottomLeftChart"
6 height="100%" 6 height="100%"
7 width="100%" 7 width="100%"></Echart>
8 ></Echart>
9 </template> 8 </template>
10 9
11 <script> 10 <script>
12 import Echart from "@/common/echart"; 11 import Echart from "@/common/echart";
13 export default { 12 export default {
14 data() { 13 data () {
15 return { 14 return {
16 options: {}, 15 options: {},
17 }; 16 };
18 },
19 components: {
20 Echart,
21 },
22 props: {
23 cdata: {
24 type: Object,
25 default: () => ({}),
26 }, 17 },
27 }, 18 components: {
28 watch: { 19 Echart,
29 cdata: { 20 },
30 handler(newData) { 21 props: {
31 this.options = { 22 cdata: {
32 tooltip: { 23 type: Object,
33 trigger: "axis", 24 default: () => ({}),
34 axisPointer: { 25 },
35 type: "shadow", 26 },
36 }, 27 watch: {
37 }, 28 cdata: {
38 grid: { 29 handler (newData) {
39 left: "5%", 30 this.options = {
40 right: "8%", 31 tooltip: {
41 bottom: "5%", 32 trigger: "axis",
42 containLabel: true, 33 axisPointer: {
43 }, 34 type: "shadow",
44 xAxis: {
45 type: "value",
46 splitLine: { show: false },
47 axisTick: { show: false },
48 axisLine: {
49 show: true,
50 lineStyle: {
51 color: "#01F3F5",
52 },
53 },
54 axisLabel: {
55 show: true,
56 textStyle: {
57 color: "#01F3F5",
58 fontSize: 12,
59 }, 35 },
60 }, 36 },
61 }, 37 grid: {
62 yAxis: { 38 left: "5%",
63 type: "category", 39 right: "8%",
64 data: newData.category, 40 bottom: "5%",
65 axisLine: { 41 containLabel: true,
66 show: true,
67 lineStyle: {
68 color: "#01F3F5",
69 },
70 }, 42 },
71 }, 43 xAxis: {
72 series: [ 44 type: "value",
73 { 45 splitLine: { show: false },
74 name: "成功", 46 axisTick: { show: false },
75 type: "bar", 47 axisLine: {
76 stack: "总量",
77 barWidth: 18,
78 label: {
79 show: true, 48 show: true,
80 formatter: function (params) { 49 lineStyle: {
81 if (params.value > 0) { 50 color: "#01F3F5",
82 return params.value; 51 },
83 } else {
84 return '';
85 }
86 }
87 }, 52 },
88 itemStyle: { 53 axisLabel: {
89 normal: { 54 show: true,
90 color: "#5fba7d", 55 textStyle: {
56 color: "#01F3F5",
57 fontSize: 12,
91 }, 58 },
92 }, 59 },
93 data: newData.barData,
94
95 }, 60 },
96 { 61 yAxis: {
97 name: "失败", 62 type: "category",
98 type: "bar", 63 data: newData.category,
99 stack: "总量", 64 axisLine: {
100 label: {
101 show: true, 65 show: true,
102 formatter: function (params) { 66 lineStyle: {
103 if (params.value > 0) { 67 color: "#01F3F5",
104 return params.value; 68 },
105 } else { 69 },
106 return ''; 70 },
107 } 71 series: [
108 } 72 {
109 73 name: "成功",
74 type: "bar",
75 stack: "总量",
76 barWidth: 18,
77 label: {
78 show: true,
79 formatter: function (params) {
80 if (params.value > 0) {
81 return params.value;
82 } else {
83 return '';
84 }
85 }
86 },
87 itemStyle: {
88 normal: {
89 color: "#5fba7d",
90 },
91 },
92 data: newData.barData,
110 93
111 }, 94 },
112 itemStyle: { 95 {
113 normal: { 96 name: "失败",
114 // 这里设置圆角 97 type: "bar",
115 color: "#c97168", 98 stack: "总量",
99 label: {
100 show: true,
101 formatter: function (params) {
102 if (params.value > 0) {
103 return params.value;
104 } else {
105 return '';
106 }
107 }
108
109
116 }, 110 },
111 itemStyle: {
112 normal: {
113 // 这里设置圆角
114 color: "#c97168",
115 },
116 },
117 data: newData.lineData,
117 }, 118 },
118 data: newData.lineData, 119 ],
119 }, 120 };
120 ], 121 },
121 }; 122 immediate: true,
123 deep: true,
122 }, 124 },
123 immediate: true,
124 deep: true,
125 }, 125 },
126 }, 126 };
127 };
128 </script> 127 </script>
......
...@@ -3,47 +3,47 @@ ...@@ -3,47 +3,47 @@
3 </template> 3 </template>
4 4
5 <script> 5 <script>
6 import Chart from "./Chart"; 6 import Chart from "./Chart";
7 import work from "@/api/work"; 7 import work from "@/api/work";
8 export default { 8 export default {
9 data() { 9 data () {
10 return { 10 return {
11 cdata: { 11 cdata: {
12 category: [], 12 category: [],
13 lineData: [], 13 lineData: [],
14 barData: [], 14 barData: [],
15 }, 15 },
16 }; 16 };
17 }, 17 },
18 components: { 18 components: {
19 Chart, 19 Chart,
20 }, 20 },
21 mounted() { 21 mounted () {
22 window.addEventListener("resize", () => { 22 window.addEventListener("resize", () => {
23 this.submitViews();
24 });
23 this.submitViews(); 25 this.submitViews();
24 });
25 this.submitViews();
26 },
27 methods: {
28 async submitViews() {
29 try {
30 let { result: res } = await work.submitViews("A20");
31 this.cdata.category = [];
32 this.cdata.barData = [];
33 this.cdata.lineData = [];
34 res.map((item) => {
35 return (
36 this.cdata.category.push(item.areaName),
37 this.cdata.barData.push(item.successCount),
38 this.cdata.lineData.push(item.failureCount)
39 );
40 });
41 } catch (error) {
42 // this.$refs.msg.messageShow();
43 }
44 }, 26 },
45 }, 27 methods: {
46 }; 28 async submitViews () {
29 try {
30 let { result: res } = await work.submitViews("A20");
31 this.cdata.category = [];
32 this.cdata.barData = [];
33 this.cdata.lineData = [];
34 res.map((item) => {
35 return (
36 this.cdata.category.push(item.areaName),
37 this.cdata.barData.push(item.successCount),
38 this.cdata.lineData.push(item.failureCount)
39 );
40 });
41 } catch (error) {
42 // this.$refs.msg.messageShow();
43 }
44 },
45 },
46 };
47 </script> 47 </script>
48 48
49 <style lang="scss" scoped></style> 49 <style lang="scss" scoped></style>
......
1 <template> 1 <template>
2 <!--登记类型总量柱状图 --> 2 <!--登记类型总量柱状图 -->
3 <Echart :options="options" id="bottomLeftChart" height="100%" width="100%" class="" ></Echart> 3 <Echart :options="options" id="bottomLeftChart" height="100%" width="100%" class=""></Echart>
4 </template> 4 </template>
5 5
6 <script> 6 <script>
7 import Echart from "@/common/echart"; 7 import Echart from "@/common/echart";
8 export default { 8 export default {
9 data () { 9 data () {
10 return { 10 return {
11 options: {}, 11 options: {},
12 }; 12 };
13 },
14 components: {
15 Echart,
16 },
17 props: {
18 cdata: {
19 type: Object,
20 default: () => ({}),
21 }, 13 },
22 }, 14 components: {
23 watch: { 15 Echart,
24 cdata: { 16 },
25 handler (newData) { 17 props: {
26 this.options = { 18 cdata: {
27 grid: { 19 type: Object,
28 // 让图表占满容器 20 default: () => ({}),
29 top: "20%", 21 },
30 left: "10%", 22 },
31 right: "5%", 23 watch: {
32 bottom: "16%", 24 cdata: {
33 }, 25 handler (newData) {
34 xAxis: { 26 this.options = {
35 data: newData.category, 27 grid: {
36 axisLabel: { 28 // 让图表占满容器
37 show: true, 29 top: "20%",
38 color: "#ffff", 30 left: "12%",
31 right: "5%",
32 bottom: "16%",
33 },
34 xAxis: {
35 data: newData.category,
36 axisLabel: {
37 show: true,
38 color: "#ffff",
39 textStyle: { 39 textStyle: {
40 fontWeight: "normal", 40 fontWeight: "normal",
41 fontSize: "8", 41 fontSize: "8",
42 }, 42 },
43 },
44 axisTick: {
45 show: false,
46 },
47 axisLine: {
48 show: true,
49 lineStyle: {
50 color: "rgba(95, 180, 237, 0.32)",
51 }, 43 },
52 } 44 axisTick: {
53 }, 45 show: false,
54 yAxis: {
55 splitLine: {
56 show: false,
57 },
58 axisLine: {
59 show: true,
60 lineStyle: {
61 color: "rgba(95, 180, 237, 0.32)",
62 }, 46 },
47 axisLine: {
48 show: true,
49 lineStyle: {
50 color: "rgba(95, 180, 237, 0.32)",
51 },
52 }
63 }, 53 },
64 axisTick: { 54 yAxis: {
65 show: false, 55 splitLine: {
66 }, 56 show: false,
67 axisLabel: {
68 color: "#ffff",
69 },
70 },
71 series: [
72 {
73 // 顶部圆片
74 type: "pictorialBar",
75 animation: false,
76 itemStyle: {
77 color: "rgba(115, 240, 252, 1)",
78 }, 57 },
79 symbolRepeat: false, 58 axisLine: {
80 symbolSize: [15, 8], 59 show: true,
81 symbolMargin: 1, 60 lineStyle: {
82 z: 10, 61 color: "rgba(95, 180, 237, 0.32)",
83 data: newData.lineData, 62 },
84 symbolPosition: "end", 63 },
85 symbolOffset: [0, -4], 64 axisTick: {
86 }, 65 show: false,
87 { 66 },
88 // 底部圆片 67 axisLabel: {
89 type: "pictorialBar", 68 color: "#ffff",
90 animation: false,
91
92 itemStyle: {
93 color: "rgba(50, 96, 225, 0.8)",
94 }, 69 },
95 symbolRepeat: false,
96 symbolSize: [15, 8],
97 symbolMargin: 1,
98 z: 10,
99 data: newData.lineData,
100 symbolPosition: "start",
101 symbolOffset: [0, 3],
102 }, 70 },
103 { 71 series: [
104 barWidth: 15, 72 {
105 animation: false, 73 // 顶部圆片
74 type: "pictorialBar",
75 animation: false,
76 itemStyle: {
77 color: "rgba(115, 240, 252, 1)",
78 },
79 symbolRepeat: false,
80 symbolSize: [15, 8],
81 symbolMargin: 1,
82 z: 10,
83 data: newData.lineData,
84 symbolPosition: "end",
85 symbolOffset: [0, -4],
86 },
87 {
88 // 底部圆片
89 type: "pictorialBar",
90 animation: false,
106 91
107 type: "bar", 92 itemStyle: {
108 label: { 93 color: "rgba(50, 96, 225, 0.8)",
109 show: true,
110 position: "top",
111 textStyle: {
112 color: "#ffff",
113 }, 94 },
95 symbolRepeat: false,
96 symbolSize: [15, 8],
97 symbolMargin: 1,
98 z: 10,
99 data: newData.lineData,
100 symbolPosition: "start",
101 symbolOffset: [0, 3],
114 }, 102 },
115 itemStyle: { 103 {
116 color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [ 104 barWidth: 15,
117 { offset: 1, color: "rgba(82, 180, 249, 0.35)" }, 105 animation: false,
118 { offset: 0, color: "rgba(82, 180, 249, 1)" }, 106
119 ]), 107 type: "bar",
108 label: {
109 show: true,
110 position: "top",
111 textStyle: {
112 color: "#ffff",
113 },
114 },
115 itemStyle: {
116 color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
117 { offset: 1, color: "rgba(82, 180, 249, 0.35)" },
118 { offset: 0, color: "rgba(82, 180, 249, 1)" },
119 ]),
120 },
121 data: newData.lineData,
120 }, 122 },
121 data: newData.lineData, 123 ],
122 }, 124 }
123 ], 125 },
124 } 126 immediate: true,
127 deep: true,
125 }, 128 },
126 immediate: true,
127 deep: true,
128 }, 129 },
129 }, 130 };
130 };
131 </script> 131 </script>
......
1 <template> 1 <template>
2 <!-- 地图 --> 2 <!-- 地图 -->
3 <Echart id="centreLeft2Chart" class="centreLeft2Chart":key="key" ref="centreLeft2ChartRef" width="100%" height="100%" 3 <Echart
4 id="centreLeft2Chart"
5 class="centreLeft2Chart"
6 :key="key"
7 ref="centreLeft2ChartRef"
8 width="100%"
9 height="100%"
4 :options="options"></Echart> 10 :options="options"></Echart>
5 </template> 11 </template>
6 12
7 <script> 13 <script>
8 import Echart from '@/common/echart'; 14 import Echart from "@/common/echart";
9 export default { 15 import { mapGetters } from "vuex";
10 data () { 16 export default {
11 return { 17 data () {
12 options: {}, 18 return {
13 max: "100", //最大value值 19 options: {},
14 min: "1", // 最小value值 20 max: "100", //最大value值
15 key: 0 21 min: "1", // 最小value值
16 }; 22 key: 0,
17 }, 23 mapjson: "",
18 components: { 24 };
19 Echart,
20 },
21 props: {
22 cdata: {
23 type: Array,
24 default: () => [],
25 }, 25 },
26 }, 26 components: {
27 mounted() { 27 Echart,
28 window.addEventListener("resize", () => { 28 },
29 this.key++ 29 created () { },
30 }); }, 30 props: {
31 watch: { 31 cdata: {
32 cdata: { 32 type: Array,
33 handler (newData) { 33 default: () => [],
34 let _this = this; 34 },
35 // 设置点的位置(经纬度) 35 },
36 const geoCoordMap = { 36 mounted () {
37 汉台区: [107.03187, 33.06774, 20], 37
38 南郑区: [106.94024, 33.00299, 20], 38 window.addEventListener("resize", () => {
39 城固县: [107.33367, 33.15661, 20], 39 this.key++;
40 洋县: [107.545837, 33.222739, 20], 40 });
41 西乡县: [107.76867, 32.98411, 20], 41 this.getDistrictcode();
42 镇巴县: [107.89648, 32.53487, 20], 42 },
43 勉县: [106.673221, 33.153553, 20], 43 watch: {
44 留坝县: [106.92233, 33.61606, 20], 44 cdata: {
45 佛坪县: [107.98974, 33.52496, 20], 45 handler (newData) {
46 宁强县: [106.25958, 32.82881, 20], 46 let _this = this;
47 略阳县: [106.15399, 33.33009, 20], 47 // 设置点的位置(经纬度)
48 }; 48 const geoCoordMap = {
49 let convertData = function (data) { 49 汉台区: [107.03187, 33.06774, 20],
50 let scatterData = []; 50 南郑区: [106.94024, 33.00299, 20],
51 for (var i = 0; i < data.length; i++) { 51 城固县: [107.33367, 33.15661, 20],
52 var geoCoord = geoCoordMap[data[i].name]; 52 洋县: [107.545837, 33.222739, 20],
53 if (geoCoord) { 53 西乡县: [107.76867, 32.98411, 20],
54 scatterData.push({ 54 镇巴县: [107.89648, 32.53487, 20],
55 name: data[i].name, 55 勉县: [106.673221, 33.153553, 20],
56 value: geoCoord.concat(data[i].value), 56 留坝县: [106.92233, 33.61606, 20],
57 }); 57 佛坪县: [107.98974, 33.52496, 20],
58 } 58 宁强县: [106.25958, 32.82881, 20],
59 } 59 略阳县: [106.15399, 33.33009, 20],
60 return scatterData; 60 };
61 }; 61 this.options = {
62 this.options = { 62 showLegendSymbol: true,
63 showLegendSymbol: true, 63 tooltip: {
64 tooltip: { 64 trigger: "item",
65 trigger: 'item', 65 textStyle: {
66 textStyle: { 66 fontSize: 14,
67 fontSize: 14, 67 lineHeight: 22,
68 lineHeight: 22, 68 },
69 position: (point) => {
70 // 固定在顶部
71 return [point[0] + 50, point[1] - 20];
72 },
73 // 如果需要自定义 tooltip样式,需要使用formatter
74 formatter: (params) => {
75 return `<div style="">${params.name}:${params.value + "个"
76 }</div>`;
77 },
69 }, 78 },
70 position: point => { 79 visualMap: {
71 // 固定在顶部 80 min: 0,
72 return [point[0] + 50, point[1] - 20]; 81 max: _this.max,
82 bottom: "13%",
83 left: 50,
84 splitNumber: 6,
85 seriesIndex: [0],
86 itemWidth: 20, // 每个图元的宽度
87 itemGap: 2, // 每两个图元之间的间隔距离,单位为px
88 pieces: [
89 // 自定义每一段的范围,以及每一段的文字
90 { gte: 100, label: "100以上", color: "#035cf5" }, // 不指定 max,表示 max 为无限大(Infinity)。
91 { gte: 50, lte: 6000, label: "20-100", color: "#3375e4" },
92 { gte: 20, lte: 2000, label: "1-200", color: "#6797ef" },
93 { gte: 1, lte: 1000, label: "1-20", color: "#96b5ef" },
94 ],
95 textStyle: {
96 color: "#737373",
97 },
73 }, 98 },
74 // 如果需要自定义 tooltip样式,需要使用formatter 99 geo: {
75 formatter: params => {
76 return `<div style="">${params.name}:${params.value + "个"}</div>`
77 }
78 },
79 visualMap: {
80 min: 0,
81 max: _this.max,
82 bottom: '13%',
83 left: 50,
84 splitNumber: 6,
85 seriesIndex: [0],
86 itemWidth: 20, // 每个图元的宽度
87 itemGap: 2, // 每两个图元之间的间隔距离,单位为px
88 pieces: [ // 自定义每一段的范围,以及每一段的文字
89 { gte: 100, label: '100以上', color: '#035cf5' }, // 不指定 max,表示 max 为无限大(Infinity)。
90 { gte: 50, lte: 6000, label: '20-100', color: '#3375e4' },
91 { gte: 20, lte: 2000, label: '1-200', color: '#6797ef' },
92 { gte: 1, lte: 1000, label: '1-20', color: '#96b5ef' },
93 ],
94 textStyle: {
95 color: '#737373'
96 }
97 },
98 geo: {
99 aspectScale: 1, //长宽比
100 zoom: 1.1,
101 mapType: '汉中市', // 自定义扩展图表类型
102 top: '15%',
103 left: '10%',
104 map: '汉中市',
105 itemStyle: {
106 normal: {//阴影
107 areaColor: '#5689FD ',
108 shadowColor: '#21371d',
109 borderWidth: 0,
110 shadowOffsetX: 2,
111 shadowOffsetY: 25
112 }
113 }
114 },
115 series: [
116 {
117 type: 'map',
118 aspectScale: 1, //长宽比 100 aspectScale: 1, //长宽比
119 zoom: 1.1, 101 zoom: 1.1,
120 mapType: '汉中市', // 自定义扩展图表类型 102 mapType: "", // 自定义扩展图表类型
121 top: '15%', 103 top: "15%",
122 left: '10%', 104 left: "10%",
105 map: "汉中市",
123 itemStyle: { 106 itemStyle: {
124 normal: { 107 normal: {
125 areaColor: 'rgba(19,54,162,.5)', 108 //阴影
126 borderColor: 'rgba(0,242,252,.5)', 109 areaColor: "#5689FD ",
127 borderWidth: 2, 110 shadowColor: "#21371d",
128 shadowBlur: 1, 111 borderWidth: 0,
129 borderColor: 'rgb(155, 200, 200)', 112 shadowOffsetX: 2,
130 shadowColor: '#44f2fc', 113 shadowOffsetY: 25,
131 }, 114 },
132 // emphasis: {
133 // areaColor: '#4f7fff',
134 // borderColor: 'rgba(0,242,252,.5)',
135 // borderWidth: 2,
136 // shadowBlur: 10,
137 // shadowColor: '#00f2fc',
138 // },
139 }, 115 },
140 label: {
141 formatter: params => {
142 return `${params.name}\n${params.value+"个"}`;
143 }, 116 },
144 show: true, 117 series: [
145 position: 'insideRight', 118 {
146 textStyle: { 119 type: "map",
147 fontSize: 14, 120 aspectScale: 1, //长宽比
148 color: '#efefef', 121 zoom: 1.1,
122 mapType: "汉中市", // 自定义扩展图表类型
123 top: "15%",
124 left: "10%",
125 itemStyle: {
126 normal: {
127 areaColor: "rgba(19,54,162,.5)",
128 borderColor: "rgba(0,242,252,.5)",
129 borderWidth: 2,
130 shadowBlur: 1,
131 borderColor: "rgb(155, 200, 200)",
132 shadowColor: "#44f2fc",
133 },
149 }, 134 },
150 emphasis: { 135 label: {
136 formatter: (params) => {
137 return `${params.name}\n${params.value + "个"}`;
138 },
139 show: true,
140 position: "insideRight",
151 textStyle: { 141 textStyle: {
152 color: '#fff', 142 fontSize: 14,
153 } 143 color: "#efefef",
154 } 144 },
145 emphasis: {
146 textStyle: {
147 color: "#fff",
148 },
149 },
150 },
151 data: newData,
155 }, 152 },
156 data: newData, 153 ],
157 } 154 };
158 ], 155 // 重新选择区域
159 }; 156 this.handleMapRandomSelect();
160 // 重新选择区域 157 },
161 this.handleMapRandomSelect();
162 },
163 158
164 immediate: true, 159 immediate: true,
165 deep: true, 160 deep: true,
161 },
166 }, 162 },
167 }, 163 computed: {
168 methods: { 164 ...mapGetters(["sidebar", "dicData"]),
169 // 开启定时器 165 logoName () {
170 startInterval () { 166 return (
171 const _self = this; 167 this.dicData["sysCode"].filter((item) => { return item.DCODE == "areaMap" })
172 // 应通过接口获取配置时间,暂时写死5s 168 );
173 const time = 2000; 169 },
174 if (this.intervalId !== null) {
175 clearInterval(this.intervalId);
176 }
177 this.intervalId = setInterval(() => {
178 this.$refs.centreLeft2ChartRef && _self.reSelectMapRandomArea();
179 }, time);
180 }, 170 },
181 // 重新随机选中地图区域 171 methods: {
182 reSelectMapRandomArea () { 172 // 根据行政区代码匹配行政区
183 const length = 9; 173 getDistrictcode () {
184 this.$nextTick(() => { 174 this.mapjson = ""
185 try { 175 if (this.logoName[0].DNAME) {
186 const map = this.$refs.centreLeft2ChartRef.chart; 176 this.mapjson = this.logoName[0].DNAME;
187 let index = Math.floor(Math.random() * length); 177 require(`@/common/map/${this.mapjson}.js`);
188 while (index === this.preSelectMapIndex || index >= length) {
189 index = Math.floor(Math.random() * length);
190 }
191 map.dispatchAction({
192 type: 'mapUnSelect',
193 seriesIndex: 0,
194 dataIndex: this.preSelectMapIndex,
195 });
196 map.dispatchAction({
197 type: 'showTip',
198 seriesIndex: 0,
199 dataIndex: index,
200 });
201 map.dispatchAction({
202 type: 'mapSelect',
203 seriesIndex: 0,
204 dataIndex: index,
205 });
206 this.preSelectMapIndex = index;
207 } catch (error) {
208 console.log(error)
209 } 178 }
210 }); 179 },
211 }, 180 // 开启定时器
212 handleMapRandomSelect () { 181 startInterval () {
213 this.$nextTick(() => { 182 const _self = this;
214 try { 183 // 应通过接口获取配置时间,暂时写死5s
215 const map = this.$refs.centreLeft2ChartRef.chart; 184 const time = 2000;
216 const _self = this; 185 if (this.intervalId !== null) {
217 setTimeout(() => { 186 clearInterval(this.intervalId);
218 _self.reSelectMapRandomArea(); 187 }
219 }, 0); 188 this.intervalId = setInterval(() => {
220 // 移入区域,清除定时器、取消之前选中并选中当前 189 this.$refs.centreLeft2ChartRef && _self.reSelectMapRandomArea();
221 map.on('mouseover', function (params) { 190 }, time);
222 clearInterval(_self.intervalId); 191 },
192 // 重新随机选中地图区域
193 reSelectMapRandomArea () {
194 const length = 9;
195 this.$nextTick(() => {
196 try {
197 const map = this.$refs.centreLeft2ChartRef.chart;
198 let index = Math.floor(Math.random() * length);
199 while (index === this.preSelectMapIndex || index >= length) {
200 index = Math.floor(Math.random() * length);
201 }
223 map.dispatchAction({ 202 map.dispatchAction({
224 type: 'mapUnSelect', 203 type: "mapUnSelect",
225 seriesIndex: 0, 204 seriesIndex: 0,
226 dataIndex: _self.preSelectMapIndex, 205 dataIndex: this.preSelectMapIndex,
227 }); 206 });
228 map.dispatchAction({ 207 map.dispatchAction({
229 type: 'mapSelect', 208 type: "showTip",
230 seriesIndex: 0, 209 seriesIndex: 0,
231 dataIndex: params.dataIndex, 210 dataIndex: index,
232 }); 211 });
233 _self.preSelectMapIndex = params.dataIndex; 212 map.dispatchAction({
234 }); 213 type: "mapSelect",
235 // 移出区域重新随机选中地图区域,并开启定时器 214 seriesIndex: 0,
236 map.on('globalout', function () { 215 dataIndex: index,
237 _self.reSelectMapRandomArea(); 216 });
238 _self.startInterval(); 217 this.preSelectMapIndex = index;
239 }); 218 } catch (error) {
240 this.startInterval(); 219 console.log(error);
241 } catch (error) { 220 }
242 console.log(error) 221 });
243 } 222 },
244 }); 223 handleMapRandomSelect () {
224 this.$nextTick(() => {
225 try {
226 const map = this.$refs.centreLeft2ChartRef.chart;
227 const _self = this;
228 setTimeout(() => {
229 _self.reSelectMapRandomArea();
230 }, 0);
231 // 移入区域,清除定时器、取消之前选中并选中当前
232 map.on("mouseover", function (params) {
233 clearInterval(_self.intervalId);
234 map.dispatchAction({
235 type: "mapUnSelect",
236 seriesIndex: 0,
237 dataIndex: _self.preSelectMapIndex,
238 });
239 map.dispatchAction({
240 type: "mapSelect",
241 seriesIndex: 0,
242 dataIndex: params.dataIndex,
243 });
244 _self.preSelectMapIndex = params.dataIndex;
245 });
246 // 移出区域重新随机选中地图区域,并开启定时器
247 map.on("globalout", function () {
248 _self.reSelectMapRandomArea();
249 _self.startInterval();
250 });
251 this.startInterval();
252 } catch (error) {
253 console.log(error);
254 }
255 });
256 },
245 }, 257 },
246 }, 258 };
247 };
248 </script> 259 </script>
249 <style> 260 <style></style>
250
251 </style>
......
...@@ -4,75 +4,77 @@ ...@@ -4,75 +4,77 @@
4 id="centreLeft1Chart" 4 id="centreLeft1Chart"
5 :key="key" 5 :key="key"
6 height="1.0417rem" 6 height="1.0417rem"
7 width="80%" 7 width="80%"></Echart>
8 ></Echart>
9 </template> 8 </template>
10 <script> 9 <script>
11 import Echart from "@/common/echart"; 10 import Echart from "@/common/echart";
12 export default { 11 export default {
13 components: { 12 components: {
14 Echart, 13 Echart,
15 },
16 data() {
17 return {
18 key: 0,
19 };
20 },
21 props: {
22 cdata: {
23 type: Object,
24 default: () => ({}),
25 }, 14 },
26 }, 15 data () {
27 watch: { 16 return {
28 cdata: { 17 key: 0,
29 handler(newData) { 18 };
19 },
20 props: {
21 cdata: {
22 type: Object,
23 default: () => ({}),
24 },
25 },
26 watch: {
27 cdata: {
28 handler (newData) {
30 29
31 this.options = { 30 this.options = {
32 color: [ 31 color: [
33 "#37a2da", 32 "#37a2da",
34 "#32c5e9", 33 "#32c5e9",
35 "#9fe6b8", 34 "#9fe6b8",
36 "#ffdb5c", 35 "#ffdb5c",
37 "#ff9f7f", 36 "#ff9f7f",
38 "#8378ea", 37 "#8378ea",
39 "#fb7293", 38 "#fb7293",
40 "#e7bcf3", 39 "#e7bcf3",
41 40
42 ], 41 ],
43 series: [ 42 series: [
44 { 43 {
45 name: "Access From", 44 name: "Access From",
46 type: "pie", 45 type: "pie",
47 radius: ["54%", "70%"], 46 radius: ["54%", "70%"],
48 avoidLabelOverlap: true, 47 avoidLabelOverlap: true,
49 label: { 48 label: {
50 formatter: (params) => { 49 formatter: (params) => {
51 // console.log(params) 50 // console.log(params)
52 return `${params.name}(${params.value}`; 51 return `${params.name}\n(${params.value})`;
52 },
53 position: "outer",
54 alignTo: "edge",
55 margin: 5
53 }, 56 },
54 }, 57 labelLine: {
55 labelLine: { 58 lineStyle: {
56 lineStyle: { 59 width: 3,
57 width: 3, 60 },
58 }, 61 },
59 }, 62 data: newData.seriesData,
60 data: newData.seriesData, 63 }
61 } 64 ],
62 ], 65 };
63 }; 66 this.key++;
64 this.key++; 67 },
68 immediate: true,
69 deep: true,
65 }, 70 },
66 immediate: true,
67 deep: true,
68 }, 71 },
69 }, 72 };
70 };
71 </script> 73 </script>
72 74
73 <style lang="scss" scoped> 75 <style lang="scss" scoped>
74 #centreLeft1Chart { 76 #centreLeft1Chart {
75 margin-bottom: 0.0521rem; 77 margin-bottom: 0.0521rem;
76 margin-left: .3125rem; 78 margin-left: 0.3125rem;
77 } 79 }
78 </style> 80 </style>
......
1 <!-- 1 <!--
2 功能:结果 2 * @Description:
3 作者:calliope 3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 11:09:01
4 --> 5 -->
5 <template> 6 <template>
6 <div class='result'> 7 <div class='result'>
7 <p>响应xml</p> 8 <div class="result-con" style="margin-bottom: 15px;">
8 <el-input type="textarea" disabled :rows="6" class="resulttext" placeholder="响应xml" v-model="REPMSGXML"> 9 <p>响应xml</p>
9 </el-input> 10 <el-input type="textarea" disabled :rows="6" class="resulttext" placeholder="响应xml" v-model="REPMSGXML">
10 <p>错误信息</p> 11 </el-input>
11 <el-input type="textarea" disabled :rows="6" class="resulttext" placeholder="错误信息" v-model="ERRORINFO"> 12 </div>
12 </el-input> 13 <div class="result-con" style="margin-top: 15px;">
14 <p>错误信息</p>
15 <el-input type="textarea" disabled :rows="6" class="resulttext" placeholder="错误信息" v-model="ERRORINFO">
16 </el-input>
17 </div>
13 </div> 18 </div>
14 </template> 19 </template>
15 <script> 20 <script>
...@@ -40,21 +45,40 @@ export default { ...@@ -40,21 +45,40 @@ export default {
40 <style scoped lang='scss'> 45 <style scoped lang='scss'>
41 @import '~@/styles/public.scss'; 46 @import '~@/styles/public.scss';
42 47
48
43 .result { 49 .result {
44 padding: 15px; 50 padding: 15px;
45 51 height: 100%;
46 p {
47 color: #ffffff;
48 line-height: 26px;
49 font-size: 18px;
50 }
51 52
52 /deep/.el-textarea__inner { 53 /deep/.el-textarea__inner {
53 min-height: 33vh !important; 54 height: 30vh !important;
54 background-color: #08346F !important;
55 color: #ffffff; 55 color: #ffffff;
56 border: none !important; 56 border: none !important;
57 color: #ffffff;
57 } 58 }
58 59
60 &-con {
61 background: #04275B;
62 border-radius: 2px;
63 padding: 10px;
64 box-sizing: border-box;
65
66 p {
67 color: #2997E8;
68 font-size: 14px;
69 position: relative;
70 padding-left: 10px;
71 }
72
73 p::before {
74 position: absolute;
75 content: '';
76 width: 3px;
77 height: 10px;
78 background-color: #2997E8;
79 left: 0;
80 top: 3px;
81 }
82 }
59 } 83 }
60 </style> 84 </style>
......
1 <template> 1 <template>
2 <!-- 编辑 --> 2 <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" custom-class="dialogBox editDialogBox mainCenter"
3 <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" 3 :visible.sync="dialogVisible" width="92%">
4 custom-class="dialogBox editDialogBox mainCenter" :visible.sync="dialogVisible" width="85%">
5 <div slot="title" class="dialog_title" ref="dialogTitle"> 4 <div slot="title" class="dialog_title" ref="dialogTitle">
6 {{ title || '标题' }} 5 {{ title || '详情' }}
7 </div> 6 </div>
8 <div class="editDialogBox-box"> 7 <div class="regularHeight">
9 <el-tabs v-model="titleName" type="card" @tab-click="handleTitleTab"> 8 <div class="editDialogBox-box">
10 <el-tab-pane label="数据模型" name="sjmx"></el-tab-pane> 9 <el-tabs v-model="titleName" type="card" @tab-click="handleTitleTab">
11 <el-tab-pane v-if="visiableXml" label="xml报文" name="xml"></el-tab-pane> 10 <el-tab-pane label="数据模型" name="sjmx"></el-tab-pane>
12 <el-tab-pane v-if="visiableXml" label="响应结果" name="xyjg"></el-tab-pane> 11 <el-tab-pane v-if="visiableXml" label="xml报文" name="xml"></el-tab-pane>
13 </el-tabs> 12 <el-tab-pane v-if="visiableXml" label="响应结果" name="xyjg"></el-tab-pane>
14 <div class="dialog-from" v-if="titleName == 'sjmx'">
15 <el-row>
16 <el-col :span="5">
17 <span>业务报文ID:</span>
18 <p>{{ dataReport.BizMsgId }}</p>
19 </el-col>
20 <el-col :span="6">
21 <span>接入报文ID:</span>
22 <p>{{ dataReport.ASID }}</p>
23 </el-col>
24 <el-col :span="6">
25 <span>行政区划编码:</span>
26 <p>{{ dataReport.AreaCode }}</p>
27 </el-col>
28 <el-col :span="7">
29 <span>上次不动产单元号:</span>
30 <p>{{ dataReport.PreEstateNum }}</p>
31 </el-col>
32 </el-row>
33 <el-row>
34 <el-col :span="5">
35 <span>业务编码:</span>
36 <p>{{ dataReport.RecType }}</p>
37 </el-col>
38 <el-col :span="6">
39 <span>权利类型:</span>
40 <p>{{ this.dicStatus(dataReport.RightType, 'A8') }}</p>
41 </el-col>
42 <el-col :span="6">
43 <span>登记类型:</span>
44 <p>{{ this.dicStatus(dataReport.RegType, 'A21') }}</p>
45 </el-col>
46 <el-col :span="7">
47 <span>不动产权证书数量:</span>
48 <p>{{ dataReport.CertCount }}</p>
49 </el-col>
50 </el-row>
51 <el-row>
52 <el-col :span="5">
53 <span>创建时间:</span>
54 <p>{{ dataReport.createDate }}</p>
55 </el-col>
56 <el-col :span="6">
57 <span>业务流水号:</span>
58 <p>{{ dataReport.RecFlowID }}</p>
59 </el-col>
60 <el-col :span="6">
61 <span>宗地/宗海代码:</span>
62 <p>{{ dataReport.ParcelID }}</p>
63 </el-col>
64 <el-col :span="7">
65 <span>证明数量:</span>
66 <p>{{ dataReport.ProofCount }}</p>
67 </el-col>
68 </el-row>
69 <el-row>
70 <el-col :span="6">
71 <span>不动产单元号:</span>
72 <p>{{ dataReport.EstateNum }}</p>
73 </el-col>
74 <el-col :span="8">
75 <span>登记机构:</span>
76 <p>{{ dataReport.RegOrgID }}</p>
77 </el-col>
78 <el-col :span="11">
79 <span>上次不动产权证号/不动产登记证明:</span>
80 <p>{{ dataReport.PreCertID }}</p>
81 </el-col>
82 </el-row>
83 </div>
84 </div>
85 <div class="editDialogBox-box">
86 <div v-if="titleName == 'sjmx'" class="sjmx">
87 <el-tabs v-model="activeName" ref="elTabs" type="card" @tab-click="changeList">
88 <el-tab-pane :name="item.soleurl" v-for="item in headerList" :key="item.soleurl">
89 <div slot="label" class="tab-pane-item">
90 <p class="name">{{ item.chinesetable }}</p>
91 <p class="soleurl" :data-name="item.soleurl">({{ item.datatable }})</p>
92 </div>
93 </el-tab-pane>
94 </el-tabs> 13 </el-tabs>
95 <div class="edit-content"> 14 <div class="dialog-from item-content-input" v-if="titleName == 'sjmx'">
96 <component :is="editItem" ref="editItem" :class="{ 'editForm': $store.state.business.Edit }" 15 <el-row>
97 :bsmYwsjb="bsmYwsjb" :bsmSjsb="dataReport.bsmReport || dataReport.bsmSjsb" /> 16 <el-col :span="5">
17 <span>业务报文ID:</span>
18 <el-select v-model="dataReport.BizMsgId" :disabled="$store.state.business.Edit">
19 <el-option v-for="item in bwoptions" :key="item.value" :label="item.label" :value="item.value">
20 </el-option>
21 </el-select>
22 </el-col>
23 <el-col :span="6">
24 <span>ASID:</span>
25 <el-input v-model="dataReport.ASID" :disabled="$store.state.business.Edit" maxLength="5"></el-input>
26 </el-col>
27 <el-col :span="6">
28 <span>行政区划编码:</span>
29 <el-input v-model="dataReport.AreaCode" :disabled="$store.state.business.Edit"></el-input>
30 </el-col>
31 <el-col :span="7">
32 <span>上次不动产单元号:</span>
33 <el-input v-model="dataReport.PreEstateNum" :disabled="$store.state.business.Edit"></el-input>
34 </el-col>
35 </el-row>
36 <el-row>
37 <el-col :span="5">
38 <span>业务编码:</span>
39 <el-input v-model="dataReport.RecType" :disabled="$store.state.business.Edit"></el-input>
40 </el-col>
41 <el-col :span="6">
42 <span>权利类型:</span>
43 <el-select v-model="dataReport.RightType" :disabled="$store.state.business.Edit">
44 <el-option v-for="item in dicData['A8']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
45 </el-option>
46 </el-select>
47 </el-col>
48 <el-col :span="6">
49 <span>登记类型:</span>
50 <el-select v-model="dataReport.RegType" :disabled="$store.state.business.Edit">
51 <el-option v-for="item in dicData['A21']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
52 </el-option>
53 </el-select>
54 </el-col>
55 <el-col :span="7">
56 <span>不动产权证书数量:</span>
57 <el-input v-model="dataReport.CertCount" :disabled="$store.state.business.Edit"
58 oninput="if(value.length > 8) value=value.slice(0, 8)"></el-input>
59 </el-col>
60 </el-row>
61 <el-row>
62 <el-col :span="5">
63 <span>创建时间:</span>
64 <el-date-picker v-model="dataReport.createDate" clearable disabled type="date" value-format="yyyy-MM-dd">
65 </el-date-picker>
66 </el-col>
67 <el-col :span="6">
68 <span>业务流水号:</span>
69 <el-input v-model="dataReport.RecFlowID" :disabled="$store.state.business.Edit"></el-input>
70 </el-col>
71 <el-col :span="6">
72 <span>宗地/宗海代码:</span>
73 <el-input v-model="dataReport.ParcelID" :disabled="$store.state.business.Edit"></el-input>
74 </el-col>
75 <el-col :span="7">
76 <span>证明数量:</span>
77 <el-input v-model="dataReport.ProofCount" :disabled="$store.state.business.Edit"
78 oninput="if(value.length > 8) value=value.slice(0, 8)"></el-input>
79 </el-col>
80 </el-row>
81 <el-row>
82 <el-col :span="7">
83 <span>不动产单元号:</span>
84 <el-input v-model="dataReport.EstateNum" :disabled="$store.state.business.Edit"></el-input>
85 </el-col>
86 <el-col :span="7">
87 <span>登记机构:</span>
88 <el-input v-model="dataReport.RegOrgID" :disabled="$store.state.business.Edit"></el-input>
89 </el-col>
90 <el-col :span="11">
91 <span>上次不动产权证号/不动产登记证明:</span>
92 <el-input v-model="dataReport.PreCertID" :disabled="$store.state.business.Edit"></el-input>
93 </el-col>
94 </el-row>
95 </div>
96 </div>
97 <div class="editDialogBox-box editDialogBox-con" v-if="titleName == 'sjmx'">
98 <div class="sjmx">
99 <el-tabs v-model="activeName" ref="elTabs" type="card" @tab-click="changeList">
100 <el-tab-pane :name="item.soleurl" v-for="item in headerList" :key="item.soleurl">
101 <div slot="label" class="tab-pane-item">
102 <p class="name">{{ item.chinesetable }}</p>
103 <p class="soleurl" :data-name="item.soleurl">({{ item.datatable }})</p>
104 </div>
105 </el-tab-pane>
106 </el-tabs>
107 <div class="edit-content">
108 <component :is="editItem" ref="editItem" :class="{ 'editForm': $store.state.business.Edit }"
109 :bsmYwsjb="bsmYwsjb" :bsmSjsb="dataReport.bsmReport || dataReport.bsmSjsb" />
110 </div>
98 </div> 111 </div>
99 </div> 112 </div>
100 <div v-if="titleName == 'xyjg'"> 113 <div class="editDialogBox-box JsonEditor" v-if="titleName == 'xml'">
114 <JsonEditor :resultInfo="resultInfo" />
115 </div>
116 <div class="editDialogBox-box JsonEditor" v-if="titleName == 'xyjg'">
101 <Xyjg :form-data='dataReport'></Xyjg> 117 <Xyjg :form-data='dataReport'></Xyjg>
102 </div> 118 </div>
103 <JsonEditor :resultInfo="resultInfo" class="JsonEditor" v-if="titleName == 'xml'" /> 119 </div>
120 <div class="d-center" v-if="!$store.state.business.Edit && titleName == 'sjmx'">
121 <btn nativeType="cz" @click="dialogVisible = false">取 消</btn>
122 <btn nativeType="cx" @click="submitForm">保 存</btn>
123 </div>
124 <div class="d-center" v-if="!$store.state.business.Edit && titleName == 'xml'">
125 <btn nativeType="cx" @click="handleResubmit">重新上报</btn>
104 </div> 126 </div>
105 </el-dialog> 127 </el-dialog>
106 </template> 128 </template>
107 129
108 <script> 130 <script>
131 import axios from "axios";
132 import SERVER from '@/api/config'
133 const urlHeader = SERVER.SERVERAPI + '/rest/sjsb/DataReport/'
109 import { mapGetters } from "vuex"; 134 import { mapGetters } from "vuex";
110 import JsonEditor from "@/components/JsonEditor.vue"; 135 import JsonEditor from "@/components/JsonEditor.vue";
111 import Xyjg from "./Result"; 136 import Xyjg from "./Result";
112 import { getTabsDetail, getXml, getReportDetail } from "@/api/dataReport.js"; 137 import { getTabsDetail, getXml, getReportDetail, restartGenerateXml, edit } from "@/api/dataReport.js";
113 import { MessageBox } from "element-ui";
114 export default { 138 export default {
115 components: { JsonEditor, Xyjg }, 139 components: { JsonEditor, Xyjg },
116 props: { 140 props: {
...@@ -133,34 +157,33 @@ export default { ...@@ -133,34 +157,33 @@ export default {
133 }, 157 },
134 data () { 158 data () {
135 return { 159 return {
136 160 key: 0,
137 resultInfo: '', 161 resultInfo: '',
138 162
139 titleName: 'sjmx', 163 titleName: 'sjmx',
140 164 // 报文list
165 bwoptions: [],
141 dataReport: {}, 166 dataReport: {},
142 index: 0, 167 index: 0,
143 bsmYwsjb: "", 168 bsmYwsjb: "",
144 ruleFormList: { 169 ruleFormList: {
145 bizMsgID: "", 170 BizMsgId: "", // 业务报文ID
146 asid: "", 171 ASID: "", // ASID
147 areaCode: "", 172 AreaCode: "", //行政区划编码
148 preestateNum: "", 173 PreEstateNum: "", //上次不动产单元号
149 recType: "", 174 RecType: "", // 业务编码
150 rightType: "", 175 RightType: "", // 权利类型
151 regType: "", 176 RegType: "", //登记类型
152 certCount: "", 177 CertCount: "", //不动产权证书数量
153 createDate: "", 178 createDate: "", //创建时间
154 recFlowID: "", 179 RecFlowID: "", // 业务流水号
155 regOrgID: "", 180 ParcelID: "", //宗地/宗海代码
156 prllfCount: "", 181 ProofCount: "", //证明数量
157 parcelID: "", 182 EstateNum: "", // 不动产单元号
158 estateNum: "", 183 RegOrgID: "", // 登记机构
159 preCertID: "", 184 PreCertID: "", //次不动产权证号/不动产登记证明
160 digitalSign: "",
161 }, 185 },
162 images: require("./images/success.gif"), 186 images: require("./images/success.gif"),
163 saveloding: false,
164 dialogVisible: false, 187 dialogVisible: false,
165 activeName: undefined, 188 activeName: undefined,
166 editItem: "", 189 editItem: "",
...@@ -182,21 +205,24 @@ export default { ...@@ -182,21 +205,24 @@ export default {
182 } 205 }
183 }, 206 },
184 handleTitleTab (val) { 207 handleTitleTab (val) {
185 console.log(val);
186 }, 208 },
187 isShow (item) { 209 isShow (item) {
188 this.dataReport = item; 210 this.$set(this.bwoptions, 0, {
211 value: item.bizMsgid,
212 label: item.bizMsgid,
213 })
214 this.$set(this.bwoptions, 1, {
215 value: item.bizMsgid + 'CBXZ',
216 label: item.bizMsgid + 'CBXZ',
217 })
218 this.$set(this.bwoptions, 2, {
219 value: item.bizMsgid + 'BBXZ',
220 label: item.bizMsgid + 'BBXZ',
221 })
189 this.titleName = 'sjmx'; 222 this.titleName = 'sjmx';
190 this.dialogVisible = true; 223 this.dialogVisible = true;
191 //获取表头列表 224 //获取表头列表
192 getTabsDetail({ bsmReport: this.dataReport.bsmReport || this.dataReport.bsmSjsb }).then((res) => { 225 this._getList(item)
193 if (res.code == 200) {
194 this.headerList = res.result;
195 this.activeName = this.tabsActiveName == '' ? res.result[0].soleurl : this.tabsActiveName
196 this.bsmYwsjb = this.headerList[0].bsmYwsjb;
197 this.editItem = this.loadView(this.activeName);
198 }
199 });
200 //不动产数据查询上报详情 226 //不动产数据查询上报详情
201 getReportDetail({ bsmReport: item.bsmSjsb || item.bsmReport }).then((res) => { 227 getReportDetail({ bsmReport: item.bsmSjsb || item.bsmReport }).then((res) => {
202 if (res.code == 200) { 228 if (res.code == 200) {
...@@ -210,6 +236,17 @@ export default { ...@@ -210,6 +236,17 @@ export default {
210 }) 236 })
211 } 237 }
212 }, 238 },
239 // 获取列表接口
240 _getList (data) {
241 getTabsDetail({ bsmReport: data.bsmReport || data.bsmSjsb }).then((res) => {
242 if (res.code == 200) {
243 this.headerList = res.result;
244 this.activeName = this.tabsActiveName == '' ? res.result[0].soleurl : this.tabsActiveName
245 this.bsmYwsjb = this.headerList[0].bsmYwsjb;
246 this.editItem = this.loadView(this.activeName);
247 }
248 });
249 },
213 changeList (val) { 250 changeList (val) {
214 let _index = val.index; 251 let _index = val.index;
215 if (_index > this.index) { 252 if (_index > this.index) {
...@@ -233,52 +270,66 @@ export default { ...@@ -233,52 +270,66 @@ export default {
233 this.editItem = ""; 270 this.editItem = "";
234 this.headerList = []; 271 this.headerList = [];
235 }, 272 },
236 submitForm () { 273 /**
237 let _this = this; 274 * @description: 提交
238 this.$store.dispatch( 275 * @author: renchao
239 "business/setRules", 276 */
240 this.$store.state.business.subRules 277 submitForm: _.debounce(async function () {
241 ); 278 let _this = this
242 this.$nextTick(() => { 279 // 上报请求头修改
243 this.$refs["editItem"] && 280 try {
244 this.$refs["editItem"].verificationForm().then((res) => { 281 var headRes = await axios.post(urlHeader + 'edit', this.dataReport,
245 if (!res) { 282 {
246 _this.$message({ 283 headers: {
247 message: "请检查表单必填项是否完整", 284 'Authorization': sessionStorage.getItem("token") || ""
248 type: "warning",
249 });
250 return false;
251 } else {
252 _this.saveloding = true;
253 _this.$refs["editItem"]
254 .handleUpdateForm()
255 .then((res) => {
256 if (res == 200) {
257 _this.$alert(
258 '<p><img class="success-images" src="' +
259 this.images +
260 '"/>编辑成功!</p>',
261 "提示",
262 {
263 showConfirmButton: false,
264 dangerouslyUseHTMLString: true,
265 }
266 );
267 setTimeout(() => {
268 MessageBox.close(false);
269 }, 1500);
270 }
271 })
272 .catch(function (error) {
273 _this.$alert(error, "提示", {
274 confirmButtonText: "确定",
275 type: "error",
276 });
277 });
278 _this.saveloding = false;
279 } 285 }
280 }); 286 })
281 }); 287 if (headRes.code == 200) {
288 _this._getList(_this.dataReport)
289 }
290 } catch (error) {
291 this.$message({
292 message: '报文头修改出错',
293 type: 'error'
294 })
295 }
296 let listRes = await this.$refs["editItem"].handleUpdateForm()
297 if (headRes.data?.code == 200 && listRes == 200) {
298 this.$message({
299 message: '修改成功',
300 type: 'success'
301 })
302 }
303 }, 500),
304 /**
305 * @description: 重新上报
306 * @author: renchao
307 */
308 handleResubmit () {
309 let _this = this
310 this.$confirm('重新生成报文,是否上报省厅?', '提示', {
311 confirmButtonText: '确定',
312 cancelButtonText: '取消',
313 type: 'warning'
314 }).then(() => {
315 createXml()
316 }).catch(() => {
317 this.$message({
318 type: 'info',
319 message: '已取消删除'
320 })
321 })
322 function createXml () {
323 restartGenerateXml(_this.dataReport.bsmSjsb || _this.dataReport.bsmReport).then((res) => {
324 if (res.code == 200) {
325 _this.resultInfo = res.message
326 _this.$message({
327 message: '修改成功',
328 type: 'success'
329 })
330 }
331 })
332 }
282 } 333 }
283 } 334 }
284 } 335 }
...@@ -287,40 +338,42 @@ export default { ...@@ -287,40 +338,42 @@ export default {
287 @import "~@/styles/mixin.scss"; 338 @import "~@/styles/mixin.scss";
288 @import "~@/styles/dialogBox.scss"; 339 @import "~@/styles/dialogBox.scss";
289 340
290 .editForm {
291 /deep/.el-textarea__inner {
292 border: 1px solid #224C7C !important;
293 margin: 0 0 10px 0 !important;
294 width: 100% !important;
295 color: #dadde3 !important;
296 background: transparent !important;
297 }
298
299 /deep/.el-input__inner {
300 border: 1px solid #224C7C !important;
301 margin: 0 !important;
302 width: 100% !important;
303 color: #dadde3 !important;
304 background: transparent !important;
305 }
306 }
307
308 /deep/.el-dialog__body { 341 /deep/.el-dialog__body {
309 display: flex; 342 display: flex;
310 flex-direction: column; 343 flex-direction: column;
344 padding-bottom: 30px;
311 } 345 }
312 346
313 /deep/ .el-tabs { 347 /deep/ .el-tabs {
314 color: #CEF8FF; 348 color: #CEF8FF;
315 } 349 }
316 350
351 .d-center {
352 z-index: 1000;
353 }
354
317 .sjmx { 355 .sjmx {
356 display: flex;
357 flex-direction: column;
358 height: 49vh;
359
318 /deep/.el-tabs__item { 360 /deep/.el-tabs__item {
319 height: 50px; 361 height: 50px;
320 padding-top: 6px; 362 padding-top: 6px;
321 } 363 }
322 } 364 }
323 365
366 .result {
367 flex: 1;
368 height: 100%;
369 }
370
371 .editDialogBox-con {
372 flex: 1;
373 height: 100%;
374 overflow-y: hidden;
375 }
376
324 /deep/.el-tabs__item { 377 /deep/.el-tabs__item {
325 color: #CEF8FF !important; 378 color: #CEF8FF !important;
326 379
...@@ -390,11 +443,9 @@ export default { ...@@ -390,11 +443,9 @@ export default {
390 } 443 }
391 444
392 .edit-content { 445 .edit-content {
393 height: 450px;
394 overflow-y: auto; 446 overflow-y: auto;
395 overflow-x: hidden; 447 overflow-x: hidden;
396 padding-right: 1px; 448 padding-right: 1px;
397 margin-bottom: 10px;
398 border-top: none; 449 border-top: none;
399 } 450 }
400 451
...@@ -402,66 +453,10 @@ export default { ...@@ -402,66 +453,10 @@ export default {
402 border-radius: 8px; 453 border-radius: 8px;
403 overflow: hidden; 454 overflow: hidden;
404 min-width: 1228px; 455 min-width: 1228px;
405 height: 825px !important;
406
407 .dialog-from {
408 padding: 13px;
409 border-radius: 2px;
410 box-sizing: border-box;
411
412 .el-row {
413 display: flex;
414 flex-wrap: nowrap;
415 }
416
417 .el-col {
418 line-height: 18px;
419 display: flex;
420 align-items: center;
421 margin-bottom: 3px;
422 color: #B5D6DC;
423 border-radius: 2px;
424 border: 1px solid #224C7C;
425 margin: 5px;
426
427 span {
428 display: inline-block;
429 padding: 3px;
430 border-radius: 3px;
431 overflow: hidden;
432 white-space: nowrap;
433 text-align: left;
434 color: #02D9FD;
435 }
436
437 p {
438 flex: 1;
439 width: 100%;
440 padding-left: 5px;
441 line-height: 20px;
442 color: #c0c4cc;
443 cursor: not-allowed;
444 white-space: nowrap;
445 margin-right: 5px;
446 text-align: right;
447 }
448 }
449 }
450
451 .dialog_title {
452 display: flex;
453 position: relative;
454 font-size: 24px;
455 top: -11px;
456 width: 38%;
457 height: 40px;
458 margin-left: 28px;
459 justify-content: center;
460 }
461 456
462 .el-dialog__header { 457 .el-dialog__header {
463 display: flex; 458 display: flex;
464 margin-bottom: 15px; 459 margin-bottom: 10px;
465 } 460 }
466 461
467 .dialog_footer { 462 .dialog_footer {
...@@ -481,5 +476,53 @@ export default { ...@@ -481,5 +476,53 @@ export default {
481 .el-dialog__wrapper { 476 .el-dialog__wrapper {
482 overflow: hidden; 477 overflow: hidden;
483 } 478 }
479
480 .dialog-from {
481 padding-top: 0;
482
483 .el-col {
484 justify-content: space-between;
485 }
486
487 .bz {
488 height: 100%;
489 position: relative;
490 top: 3px;
491 }
492
493 /deep/.el-select {
494 padding-right: 15px;
495 }
496
497 /deep/.el-icon-circle-close {
498 display: none;
499 }
500
501 /deep/.el-input__suffix {
502 right: -25px !important;
503 top: -5px;
504 }
505
506 /deep/.el-select,
507 /deep/.el-input {
508 flex: 1;
509 width: 100%;
510 }
511
512 /deep/.el-textarea__inner {
513 border: none !important;
514 margin: 0;
515 }
516
517 &_header {
518 margin: 0 -5px !important;
519 }
520
521 &_title {
522 font-size: 18px;
523 color: #d7eaee;
524 margin: 3px 0;
525 }
526 }
484 </style> 527 </style>
485 528
......
...@@ -10,26 +10,15 @@ export default { ...@@ -10,26 +10,15 @@ export default {
10 type: String, 10 type: String,
11 default: '' 11 default: ''
12 } 12 }
13 },
14 data () {
15 return {
16 myValue: this.value,
17 }
18 },
19 methods: {
20 onJsonChange (value) {
21 },
22 onJsonSave (value) {
23 }
24 } 13 }
25 } 14 }
26 15
27 </script> 16 </script>
28 17
29 <style scoped lang="scss"> 18 <style scoped lang="scss">
30 /* jsoneditor右上角默认有一个链接,加css去掉了 */
31 /deep/.el-textarea__inner { 19 /deep/.el-textarea__inner {
32 min-height: 73vh !important; 20 height: 67vh !important;
21 border: none !important;
33 background-color: #08346F !important; 22 background-color: #08346F !important;
34 color: #ffffff; 23 color: #ffffff;
35 border: none !important; 24 border: none !important;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
2 <div> 2 <div>
3 <i class="el-icon-s-management icon" :title="title" @click="openDialog" /> 3 <i class="el-icon-s-management icon" :title="title" @click="openDialog" />
4 <el-dialog 4 <el-dialog
5 class="configuration"
5 :key="key" 6 :key="key"
6 :title="title" 7 :title="title"
7 :inner-dialog="true" 8 :inner-dialog="true"
...@@ -9,8 +10,7 @@ ...@@ -9,8 +10,7 @@
9 width="600px" 10 width="600px"
10 :close-on-click-modal="false" 11 :close-on-click-modal="false"
11 append-to-body 12 append-to-body
12 @cancel="cancel" 13 @cancel="cancel">
13 >
14 <vue-json-editor 14 <vue-json-editor
15 id="minejson" 15 id="minejson"
16 v-model="resultInfo" 16 v-model="resultInfo"
...@@ -18,15 +18,13 @@ ...@@ -18,15 +18,13 @@
18 lang="zh" 18 lang="zh"
19 @json-change="onJsonChange" 19 @json-change="onJsonChange"
20 @json-save="onJsonSave" 20 @json-save="onJsonSave"
21 @has-error="onError" 21 @has-error="onError" />
22 />
23 <el-tooltip 22 <el-tooltip
24 content="全屏缩放" 23 content="全屏缩放"
25 effect="dark" 24 effect="dark"
26 placement="bottom" 25 placement="bottom"
27 fullscreen 26 fullscreen
28 class="fullScreen" 27 class="fullScreen">
29 >
30 <i class="el-icon-full-screen" @click="enLarge" /> 28 <i class="el-icon-full-screen" @click="enLarge" />
31 </el-tooltip> 29 </el-tooltip>
32 <template slot="footer"> 30 <template slot="footer">
...@@ -34,142 +32,156 @@ ...@@ -34,142 +32,156 @@
34 <el-button 32 <el-button
35 type="primary" 33 type="primary"
36 class="confirmBtn" 34 class="confirmBtn"
37 @click="onJsonSave" 35 @click="onJsonSave">保存</el-button>
38 >保存</el-button>
39 <el-button 36 <el-button
40 type="primary" 37 type="primary"
41 class="cancelBtn" 38 class="cancelBtn"
42 @click="cancel" 39 @click="cancel">关闭</el-button>
43 >关闭</el-button>
44 </div> 40 </div>
45 </template> 41 </template>
46 </el-dialog> 42 </el-dialog>
47 </div> 43 </div>
48 </template> 44 </template>
49 <script> 45 <script>
50 import vueJsonEditor from 'vue-json-editor' 46 import vueJsonEditor from 'vue-json-editor'
51 export default { 47 export default {
52 components: { 48 components: {
53 vueJsonEditor 49 vueJsonEditor
54 },
55 props: {
56 title: {
57 type: String,
58 default: '配置参数'
59 }, 50 },
60 resultInfos: { 51 props: {
61 type: String, 52 title: {
62 default: '' 53 type: String,
63 } 54 default: '配置参数'
64 },
65 data() {
66 return {
67 activeNames: [],
68 resultInfo: {},
69 tmpResultInfo: {},
70 dialogVisible: false,
71 hasJsonFlag: true,
72 key: 0,
73 isEnlarge: false
74 }
75 },
76 watch: {
77 resultInfos: {
78 handler: function(val) {
79 ++this.key
80 this.resultInfo =
81 this.resultInfos === '' ? {} : JSON.parse(this.resultInfos)
82 this.tmpResultInfo = this.resultInfo
83 }, 55 },
84 deep: true, 56 resultInfos: {
85 immediate: true 57 type: String,
86 } 58 default: ''
87 },
88
89 mounted() {
90 this.resultInfo =
91 this.resultInfos === '' ? {} : JSON.parse(this.resultInfos)
92 },
93
94 methods: {
95 onJsonChange(value) {
96 // 只有在格式正确的时候进入此事件
97 this.hasJsonFlag = true
98 },
99 onJsonSave() {
100 const value = this.resultInfo
101 console.log(this.resultInfo, 'resultInfo')
102 if (this.hasJsonFlag === false) {
103 this.$message.error({ message: 'json格式验证失败', showClose: true })
104 // alert("json验证失败")
105 return false
106 } else {
107 this.dialogVisible = false
108 this.$emit('getJsonString', JSON.stringify(value))
109 return true
110 } 59 }
111 }, 60 },
112 onError(value) { 61 data () {
113 this.hasJsonFlag = false 62 return {
63 activeNames: [],
64 resultInfo: {},
65 tmpResultInfo: {},
66 dialogVisible: false,
67 hasJsonFlag: true,
68 key: 0,
69 isEnlarge: false
70 }
114 }, 71 },
115 openDialog() { 72 watch: {
116 this.dialogVisible = true 73 resultInfos: {
74 handler: function (val) {
75 ++this.key
76 this.resultInfo =
77 this.resultInfos === '' ? {} : JSON.parse(this.resultInfos)
78 this.tmpResultInfo = this.resultInfo
79 },
80 deep: true,
81 immediate: true
82 }
117 }, 83 },
118 cancel() { 84
119 console.log(this.tmpResultInfo, 'tmpResultInfo') 85 mounted () {
120 this.resultInfo = this.tmpResultInfo 86 this.resultInfo =
121 this.dialogVisible = false 87 this.resultInfos === '' ? {} : JSON.parse(this.resultInfos)
122 }, 88 },
123 // 放大 89
124 enLarge() { 90 methods: {
125 const fullarea = document.getElementById('minejson') 91 onJsonChange (value) {
126 if (fullarea.requestFullscreen) { 92 // 只有在格式正确的时候进入此事件
127 fullarea.requestFullscreen() 93 this.hasJsonFlag = true
128 } else if (fullarea.webkitRequestFullScreen) { 94 },
129 fullarea.webkitRequestFullScreen() // webkit内核(chrome、safari、Opera等) 95 onJsonSave () {
130 } else if (fullarea.mozRequestFullScreen) { 96 const value = this.resultInfo
131 fullarea.mozRequestFullScreen() // moz内核(firefox) 97 console.log(this.resultInfo, 'resultInfo')
132 } else if (fullarea.msRequestFullscreen) { 98 if (this.hasJsonFlag === false) {
133 fullarea.msRequestFullscreen() // IE11、edge 99 this.$message.error({ message: 'json格式验证失败', showClose: true })
100 // alert("json验证失败")
101 return false
102 } else {
103 this.dialogVisible = false
104 this.$emit('getJsonString', JSON.stringify(value))
105 return true
106 }
107 },
108 onError (value) {
109 this.hasJsonFlag = false
110 },
111 openDialog () {
112 this.dialogVisible = true
113 },
114 cancel () {
115 console.log(this.tmpResultInfo, 'tmpResultInfo')
116 this.resultInfo = this.tmpResultInfo
117 this.dialogVisible = false
118 },
119 // 放大
120 enLarge () {
121 const fullarea = document.getElementById('minejson')
122 if (fullarea.requestFullscreen) {
123 fullarea.requestFullscreen()
124 } else if (fullarea.webkitRequestFullScreen) {
125 fullarea.webkitRequestFullScreen() // webkit内核(chrome、safari、Opera等)
126 } else if (fullarea.mozRequestFullScreen) {
127 fullarea.mozRequestFullScreen() // moz内核(firefox)
128 } else if (fullarea.msRequestFullscreen) {
129 fullarea.msRequestFullscreen() // IE11、edge
130 }
131 this.isEnlarge = true
134 } 132 }
135 this.isEnlarge = true
136 } 133 }
137 } 134 }
138 }
139 </script> 135 </script>
140 136
141 <style scoped lang="scss"> 137 <style scoped lang="scss">
142 /* jsoneditor右上角默认有一个链接,加css去掉了 */ 138 /* jsoneditor右上角默认有一个链接,加css去掉了 */
143 .icon { 139 .icon {
144 color: #349af3; 140 color: #349af3;
145 } 141 }
146 /deep/ .jsoneditor-vue { 142 /deep/ .jsoneditor-vue {
147 height: 100%; 143 height: 100%;
148 } 144 }
149 .fullScreen { 145 .fullScreen {
150 position: absolute; 146 position: absolute;
151 right: 5%; 147 right: 5%;
152 top: 22%; 148 top: 20%;
153 cursor: pointer; 149 cursor: pointer;
154 color: #fff; 150 color: #fff;
155 } 151 }
156 /deep/ .jsoneditor-modes { 152 /deep/ .jsoneditor-modes {
157 display: none !important; 153 display: none !important;
158 } 154 }
159 .jsoneditor-poweredBy { 155 /deep/.jsoneditor-poweredBy {
160 display: none !important; 156 display: none !important;
161 } 157 }
162 .jsoneditor-menu { 158 .jsoneditor-menu {
163 background-color: #9c9e9f !important; 159 background-color: #9c9e9f !important;
164 border-bottom: 1px solid #9c9e9f !important; 160 border-bottom: 1px solid #9c9e9f !important;
165 } 161 }
166 .jsoneditor { 162 .jsoneditor {
167 border: 1px solid #9c9e9f !important; 163 border: 1px solid #9c9e9f !important;
168 } 164 }
169 .el-collapse { 165 .el-collapse {
170 border: 0; 166 border: 0;
171 } 167 }
172 .el-collapse-item__header { 168 .el-collapse-item__header {
173 height: 44px; 169 height: 44px;
174 } 170 }
171 .configuration {
172 color: white;
173 margin-top: 6vh;
174 /deep/.el-dialog {
175 background-color: #031a46 !important;
176 border: 1px solid #5f82c7;
177 .el-dialog__header {
178 .el-dialog__title {
179 color: white !important;
180 }
181 .el-dialog__headerbtn {
182 top: 20px;
183 }
184 }
185 }
186 }
175 </style> 187 </style>
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
10 10
11 <template> 11 <template>
12 <div :class="['lb-table', customClass]"> 12 <div :class="['lb-table', customClass]">
13 <el-table v-if="!heightNumSetting" class="table-fixed" :row-style="{ height: '50px' }" ref="elTable" 13 <el-table v-if="!heightNumSetting" class="table-fixed" :row-style="{ height: '50px' }" ref="elTable" :border='border'
14 :border='border' :row-class-name="tableRowClassName" :show-header='showHeader' @row-click="singleElection" 14 :row-class-name="tableRowClassName" :show-header='showHeader' @row-click="singleElection" v-bind="$attrs"
15 v-bind="$attrs" :height="tableHeight" v-on="$listeners" :data="data" style="width: 100%" 15 :height="tableHeight" v-on="$listeners" :data="data" style="width: 100%"
16 :span-method="this.merge ? this.mergeMethod : this.spanMethod"> 16 :span-method="this.merge ? this.mergeMethod : this.spanMethod">
17 <el-table-column width="45" align="center" v-if="isRadio"> 17 <el-table-column width="45" align="center" v-if="isRadio">
18 <template slot-scope="scope"> 18 <template slot-scope="scope">
...@@ -24,9 +24,10 @@ ...@@ -24,9 +24,10 @@
24 </lb-column> 24 </lb-column>
25 </el-table> 25 </el-table>
26 26
27 <el-table v-else ref="elTable" class="table-fixed" :row-style="{ height: '50px' }" :border='border' 27 <el-table v-else ref="elTable" id="heightNumSetting" class="table-fixed" :row-style="{ height: '50px' }"
28 :row-class-name="tableRowClassName" :show-header='showHeader' v-bind="$attrs" :max-height="maxHeight" 28 :border='border' :row-class-name="tableRowClassName" :show-header='showHeader' v-bind="$attrs"
29 v-on="$listeners" :data="data" style="width: 100%" :span-method="this.merge ? this.mergeMethod : this.spanMethod"> 29 :max-height="maxHeight" :height="tableHeight" v-on="$listeners" :data="data" style="width: 100%"
30 :span-method="this.merge ? this.mergeMethod : this.spanMethod">
30 31
31 <el-table-column width="45" align="center" v-if="isRadio"> 32 <el-table-column width="45" align="center" v-if="isRadio">
32 <template slot-scope="scope"> 33 <template slot-scope="scope">
...@@ -80,6 +81,10 @@ export default { ...@@ -80,6 +81,10 @@ export default {
80 type: Number, 81 type: Number,
81 default: 500 82 default: 500
82 }, 83 },
84 minHeight: {
85 type: Number,
86 default: undefined
87 },
83 heightNumSetting: { 88 heightNumSetting: {
84 type: Boolean, 89 type: Boolean,
85 default: false, 90 default: false,
...@@ -139,6 +144,11 @@ export default { ...@@ -139,6 +144,11 @@ export default {
139 } else { 144 } else {
140 _this.tableHeight = window.innerHeight - _this.heightNum 145 _this.tableHeight = window.innerHeight - _this.heightNum
141 } 146 }
147 } else {
148 this.tableHeight = this.heightNum
149 this.$nextTick(() => {
150 this.minHeight && (document.getElementById('heightNumSetting').style.minHeight = this.minHeight + 'px')
151 })
142 } 152 }
143 }, 153 },
144 calcHeightx (value, wappered = true) { 154 calcHeightx (value, wappered = true) {
......
1 /*
2 * FileName: lb-column.vue
3 * Remark: element-column
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 9:58:23 am
7 * Last Modified: Tuesday, 19th March 2019 10:14:42 am
8 * Modified By: 任超
9 */
10
11 <template>
12 <el-table-column v-bind="$attrs" v-on="$listeners" :prop="column.prop" :label="column.label" :type="column.type"
13 :index="column.index" :column-key="column.columnKey" :width="column.width" :min-width="column.minWidth"
14 :fixed="column.fixed" :scoped-slot="column.renderHeader" :sortable="column.sortable || false"
15 :sort-method="column.sortMethod" :sort-by="column.sortBy" :sort-orders="column.sortOrders"
16 :resizable="column.resizable || true" :formatter="column.formatter"
17 :show-overflow-tooltip="column.showOverflowTooltip || false" :align="column.align || align || 'center'"
18 :header-align="column.headerAlign || headerAlign || column.align || align || 'center'"
19 :class-name="column.className" :label-class-name="column.labelClassName" :selectable="column.selectable"
20 :reserve-selection="column.reserveSelection || false" :filters="column.filters"
21 :filter-placement="column.filterPlacement" :filter-multiple="column.filterMultiple"
22 :filter-method="column.filterMethod" :filtered-value="column.filteredValue">
23 <template slot="header" slot-scope="scope">
24 <lb-render v-if="column.renderHeader" :scope="scope" :render="column.renderHeader">
25 </lb-render>
26 <span v-else>{{ scope.column.label }}</span>
27 </template>
28
29 <template slot-scope="scope">
30 <lb-render :scope="scope" :render="column.render">
31 </lb-render>
32 </template>
33
34 <template v-if="column.children">
35 <lb-column v-for="(col, index) in column.children" :key="index" :column="col">
36 </lb-column>
37 </template>
38 </el-table-column>
39 </template>
40
41 <script>
42 import LbRender from './LbRender'
43 import forced from './forced.js'
44 export default {
45 name: 'LbColumn',
46 props: {
47 column: Object,
48 headerAlign: String,
49 align: String
50 },
51 components: {
52 LbRender
53 },
54 methods: {
55 setColumn () {
56 if (this.column.type) {
57 this.column.renderHeader = forced[this.column.type].renderHeader
58 this.column.render = this.column.render || forced[this.column.type].renderCell
59 }
60 if (this.column.formatter) {
61 this.column.render = (h, scope) => {
62 return <span>{scope.column.formatter(scope.row, scope.column, scope.row, scope.$index)}</span>
63 }
64 }
65 if (!this.column.render) {
66 this.column.render = (h, scope) => {
67 return <span>{scope.row[scope.column.property]}</span>
68 }
69 }
70 }
71 },
72 watch: {
73 column: {
74 handler () {
75 this.setColumn()
76 },
77 immediate: true
78 }
79 }
80 }
81 </script>
1 /*
2 * FileName: lb-render.vue
3 * Remark: 自定义render
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 10:15:30 am
7 * Last Modified: Tuesday, 19th March 2019 10:15:32 am
8 * Modified By: 任超
9 */
10 <script>
11 export default {
12 name: 'LbRender',
13 functional: true,
14 props: {
15 scope: Object,
16 render: Function
17 },
18 render: (h, ctx) => {
19 return ctx.props.render ? ctx.props.render(h, ctx.props.scope) : ''
20 }
21 }
22 </script>
1 export default {
2 selection: {
3 renderHeader: (h, { store }) => {
4 return (
5 <el-checkbox
6 disabled={store.states.data && store.states.data.length === 0}
7 indeterminate={
8 store.states.selection.length > 0 && !store.states.isAllSelected
9 }
10 nativeOn-click={store.toggleAllSelection}
11 value={store.states.isAllSelected}
12 />
13 )
14 },
15 renderCell: (h, { row, column, store, $index }) => {
16 return (
17 <el-checkbox
18 nativeOn-click={event => event.stopPropagation()}
19 value={store.isSelected(row)}
20 disabled={
21 column.selectable
22 ? !column.selectable.call(null, row, $index)
23 : false
24 }
25 on-input={() => {
26 store.commit('rowSelectedChanged', row)
27 }}
28 />
29 )
30 },
31 sortable: false,
32 resizable: false
33 },
34 index: {
35 renderHeader: (h, scope) => {
36 return <span>{scope.column.label || '#'}</span>
37 },
38 renderCell: (h, { $index, column }) => {
39 let i = $index + 1
40 const index = column.index
41
42 if (typeof index === 'number') {
43 i = $index + index
44 } else if (typeof index === 'function') {
45 i = index($index)
46 }
47
48 return <div>{i}</div>
49 },
50 sortable: false
51 },
52 expand: {
53 renderHeader: (h, scope) => {
54 return <span>{scope.column.label || ''}</span>
55 },
56 renderCell: (h, { row, store }, proxy) => {
57 const expanded = store.states.expandRows.indexOf(row) > -1
58 return (
59 <div
60 class={
61 'el-table__expand-icon ' +
62 (expanded ? 'el-table__expand-icon--expanded' : '')
63 }
64 on-click={e => proxy.handleExpandClick(row, e)}
65 >
66 <i class='el-icon el-icon-arrow-right' />
67 </div>
68 )
69 },
70 sortable: false,
71 resizable: false,
72 className: 'el-table__expand-column'
73 }
74 }
1 /*
2 * FileName: lb-table.vue
3 * Remark: element table
4 * Project: lb-element-table
5 * Author: 任超
6 * File Created: Tuesday, 19th March 2019 9:55:27 am
7 * Last Modified: Tuesday, 19th March 2019 9:55:34 am
8 * Modified By: 任超
9 */
10
11 <template>
12 <div :class="['lb-table', customClass]">
13 <el-table v-if="!heightNumSetting" class="table-fixed" :row-style="{ height: '50px' }" ref="elTable" :border='border'
14 :row-class-name="tableRowClassName" :show-header='showHeader' @row-click="singleElection" v-bind="$attrs"
15 :height="tableHeight" v-on="$listeners" :data="data" style="width: 100%"
16 :span-method="this.merge ? this.mergeMethod : this.spanMethod">
17 <el-table-column width="45" align="center" v-if="isRadio">
18 <template slot-scope="scope">
19 <el-radio v-model="selected" :label="scope.$index"></el-radio>
20 </template>
21 </el-table-column>
22
23 <el-table-column :label="downTitle" align="center">
24 <lb-column v-bind="$attrs" v-for="(item, index) in column" :key="index" :column="item">
25 </lb-column>
26 </el-table-column>
27 </el-table>
28 <br>
29 <el-pagination class="lb-table-pagination" v-if="pagination" v-bind="$attrs" v-on="$listeners" background
30 layout="total, prev, pager, next" @current-change="paginationCurrentChange"
31 :style="{ 'margin-top': paginationTop, 'text-align': paginationAlign }">
32 </el-pagination>
33 </div>
34 </template>
35
36 <script>
37 import LbColumn from './LbColumn'
38 export default {
39 props: {
40 column: Array,
41 data: Array,
42 spanMethod: Function,
43 pagination: {
44 type: Boolean,
45 default: true,
46 },
47 downExcel: {
48 type: Boolean,
49 default: false,
50 },
51 downTitle: {
52 type: String,
53 default: '标题'
54 },
55 isRadio: {
56 type: Boolean,
57 default: false,
58 },
59 border: {
60 type: Boolean,
61 default: false,
62 },
63 showHeader: {
64 type: Boolean,
65 default: true,
66 },
67 paginationTop: {
68 type: String,
69 default: '0',
70 },
71 heightNum: {
72 type: Number,
73 default: 355,
74 },
75 maxHeight: {
76 type: Number,
77 default: 500
78 },
79 heightNumSetting: {
80 type: Boolean,
81 default: false,
82 },
83 customClass: {
84 type: String,
85 default: '',
86 },
87 paginationAlign: {
88 type: String,
89 default: 'left',
90 },
91 merge: Array,
92 },
93 components: {
94 LbColumn,
95 },
96 data () {
97 return {
98 tableHeight: 'auto',
99 mergeLine: {},
100 mergeIndex: {},
101 selected: ''
102 }
103 },
104 created () {
105 this.getMergeArr(this.data, this.merge)
106 this.getHeight()
107 },
108 computed: {
109 dataLength () {
110 return [] || this.data.length
111 },
112 },
113 methods: {
114 // 单选
115 singleElection (row) {
116 this.selected = this.data.indexOf(row);
117 },
118
119 tableRowClassName ({ row, rowIndex }) {
120 if (rowIndex % 2 === 1) {
121 return 'interlaced';
122 }
123 },
124 getHeight () {
125 if (!this.heightNumSetting) {
126 let _this = this
127 if (this.heightNum) {
128 _this.$nextTick(() => {
129
130 window.addEventListener('resize', () => {
131 _this.tableHeight = _this.calcHeightx(230)
132 });
133 _this.tableHeight = _this.calcHeightx(230)
134 })
135 } else {
136 _this.tableHeight = window.innerHeight - _this.heightNum
137 }
138 }
139 },
140 calcHeightx (value, wappered = true) {
141 //项目自定义的公共header部分的高度,可忽略
142 let header = document.querySelector(".from-clues-header").offsetHeight;
143 //value为动态计算table界面高度时,减去的其他空白部分,需自行在调试找到临界值,剩下的就是table表格的高度(包含header+body部分)
144 value = value == undefined ? 100 : value;
145 let res = window.innerHeight - parseInt(header) - value;
146 if (wappered) {
147 //通过原生方法,获取dom节点的高度------获取element-ui table表格body的元素
148 let wapper = window.document.getElementsByClassName('el-table__body-wrapper');
149 //通过原生方法,获取dom节点的高度------获取element-ui table表格header的元素
150 let header = window.document.getElementsByClassName('el-table__header-wrapper');
151 //必须加延时,要不然赋不上去值
152 setTimeout(() => {
153 //通过上边计算得到的table高度的value值,减去table表格的header高度,剩下的通过dom节点直接强行赋给table表格的body
154 wapper[0].style.height = (value - header[0].clientHeight)
155 }, 100)
156 }
157 return res;
158 },
159 clearSelection () {
160 this.$refs.elTable.clearSelection()
161 },
162 toggleRowSelection (row, selected) {
163 this.$refs.elTable.toggleRowSelection(row, selected)
164 },
165 toggleAllSelection () {
166 this.$refs.elTable.toggleAllSelection()
167 },
168 toggleRowExpansion (row, expanded) {
169 this.$refs.elTable.toggleRowExpansion(row, expanded)
170 },
171 setCurrentRow (row) {
172 this.$refs.elTable.setCurrentRow(row)
173 },
174 clearSort () {
175 this.$refs.elTable.clearSort()
176 },
177 clearFilter (columnKey) {
178 this.$refs.elTable.clearFilter(columnKey)
179 },
180 doLayout () {
181 this.$refs.elTable.doLayout()
182 },
183 sort (prop, order) {
184 this.$refs.elTable.sort(prop, order)
185 },
186 paginationCurrentChange (val) {
187 this.$emit('p-current-change', val)
188 },
189 getMergeArr (tableData, merge) {
190 if (!merge) return
191 this.mergeLine = {}
192 this.mergeIndex = {}
193 merge.forEach((item, k) => {
194 tableData.forEach((data, i) => {
195 if (i === 0) {
196 this.mergeIndex[item] = this.mergeIndex[item] || []
197 this.mergeIndex[item].push(1)
198 this.mergeLine[item] = 0
199 } else {
200 if (data[item] === tableData[i - 1][item]) {
201 this.mergeIndex[item][this.mergeLine[item]] += 1
202 this.mergeIndex[item].push(0)
203 } else {
204 this.mergeIndex[item].push(1)
205 this.mergeLine[item] = i
206 }
207 }
208 })
209 })
210 },
211 mergeMethod ({ row, column, rowIndex, columnIndex }) {
212 const index = this.merge.indexOf(column.property)
213 if (index > -1) {
214 const _row = this.mergeIndex[this.merge[index]][rowIndex]
215 const _col = _row > 0 ? 1 : 0
216 return {
217 rowspan: _row,
218 colspan: _col,
219 }
220 }
221 },
222 },
223 watch: {
224 merge () {
225 this.getMergeArr(this.data, this.merge)
226 },
227 dataLength () {
228 this.getMergeArr(this.data, this.merge)
229 }
230 },
231 }
232 </script>
233 <style rel="stylesheet/scss" scoped lang="scss">
234 .lb-table {
235 margin-top: 1px;
236
237 .interlaced {
238 background: #fafcff;
239 border: 1px solid #ebf2fa;
240 }
241 }
242
243 /deep/.el-table .cell {
244 padding-left: 3px;
245 padding-right: 3px;
246 }
247
248 /deep/.el-radio__label {
249 display: none;
250 }
251 </style>
1 ## 这是对于element-table 进行的二次封装
2
3 ### 文档地址
4
5 <!-- table 已经全局注册不需要每个页面单独注册 -->
6
7 [Windows/Mac/Linux 全平台客户端](https://github.liubing.me/lb-element-table/zh/guide/)

1.81 MB | W: | H:

1.74 MB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
2 <div class="navbar-con"> 2 <div class="navbar-con">
3 <div class="navbar"> 3 <div class="navbar">
4 <div class="title"> 4 <div class="title">
5 {{ logoName[0].DNAME }} 5 {{ logoName[0] && logoName[0].DNAME }}
6 </div> 6 </div>
7 <div class="user"> 7 <div class="user">
8 欢迎进入系统 {{ userInfo.name }} 8 欢迎进入系统 {{ userName }}
9 <span @click="onCancel"> 9 <span @click="onCancel">
10 <svg-icon icon-class="close" class="closeStyle" />退出系统</span> 10 <svg-icon icon-class="close" class="closeStyle" />退出系统</span>
11 </div> 11 </div>
...@@ -16,244 +16,247 @@ ...@@ -16,244 +16,247 @@
16 <sidebarRight /> 16 <sidebarRight />
17 </div> 17 </div>
18 </div> 18 </div>
19 </div> 19 </div>
20 </template> 20 </template>
21 <script> 21 <script>
22 import sidebarLeft from "./Sidebar/sidebarLeft"; 22 import sidebarLeft from "./Sidebar/sidebarLeft";
23 import sidebarRight from "./Sidebar/sidebarRight"; 23 import sidebarRight from "./Sidebar/sidebarRight";
24 import { logout } from "@/api/login.js"; 24 import { logout } from "@/api/login.js";
25 import { mapGetters } from "vuex"; 25 import { mapGetters } from "vuex";
26 export default { 26 export default {
27 components: { 27 components: {
28 sidebarLeft, 28 sidebarLeft,
29 sidebarRight, 29 sidebarRight,
30 }, 30 },
31 computed: { 31 computed: {
32 ...mapGetters(["sidebar", "dicData", "userInfo"]), 32 ...mapGetters(["sidebar", "dicData", "userInfo"]),
33 logoName: function () { 33 logoName () {
34 return this.dicData['sysCode'] && this.dicData['sysCode'].filter(item => 34 return this.dicData['sysCode'] && this.dicData['sysCode'].filter(item =>
35 item.DCODE == "systemTitle" 35 item.DCODE == "systemTitle"
36 ) 36 )
37 } 37 },
38 }, 38 userName () {
39 methods: { 39 return this.userInfo ? this.userInfo.name : ""
40 onCancel () { 40 }
41 logout() 41 },
42 .then((res) => { 42 methods: {
43 sessionStorage.removeItem("token"); 43 onCancel () {
44 this.$store.dispatch("user/resetState"); 44 logout()
45 this.$router.replace({ 45 .then((res) => {
46 path: "/login", 46 sessionStorage.removeItem("token");
47 query: { 47 this.$store.dispatch("user/resetState");
48 redirect: this.$route.fullPath, 48 this.$router.replace({
49 }, 49 path: "/jg",
50 query: {
51 redirect: this.$route.fullPath,
52 },
53 });
54 })
55 .catch((error) => {
56 // console.dir(error);
50 }); 57 });
51 }) 58 },
52 .catch((error) => {
53 // console.dir(error);
54 });
55 }, 59 },
56 }, 60 };
57 };
58 </script> 61 </script>
59 <style lang="scss" scoped> 62 <style lang="scss" scoped>
60 /deep/.el-menu--horizontal { 63 /deep/.el-menu--horizontal {
61 display: flex; 64 display: flex;
62 align-items: center; 65 align-items: center;
63 } 66 }
64
65 .menubg {
66 height: 34px;
67 width: 130px;
68 text-align: center;
69 color: #ffffff;
70 margin-right: 20px;
71 background: url("~@/image/navbar.png") no-repeat;
72 background-size: 100% 100%;
73 }
74
75 /deep/.el-menu-item {
76 @extend .menubg;
77 }
78
79 /deep/.el-submenu {
80 @extend .menubg;
81 }
82
83 /deep/.el-submenu__title {
84 height: 34px;
85 color: #ffffff;
86 }
87 67
88 /deep/.el-submenu__title span { 68 .menubg {
89 font-size: 14px; 69 height: 34px;
90 } 70 width: 130px;
71 text-align: center;
72 color: #ffffff;
73 margin-right: 20px;
74 background: url("~@/image/navbar.png") no-repeat;
75 background-size: 100% 100%;
76 }
91 77
92 .sidebarLeft { 78 /deep/.el-menu-item {
93 position: relative; 79 @extend .menubg;
94 top: 13px; 80 }
95 width: 30%;
96 }
97 81
98 /deep/.el-menu { 82 /deep/.el-submenu {
99 display: flex; 83 @extend .menubg;
100 justify-content: space-between; 84 }
101 }
102 85
103 /deep/.el-menu-item { 86 /deep/.el-submenu__title {
104 flex: 1; 87 height: 34px;
105 width: 100%; 88 color: #ffffff;
106 } 89 }
107 90
108 .sidebarRight { 91 /deep/.el-submenu__title span {
109 position: relative; 92 font-size: 14px;
110 top: 13px; 93 }
111 width: 30%;
112 padding-left: 20px;
113 }
114 94
115 // 导航选中背景色 95 .sidebarLeft {
116 .xuanzhong { 96 position: relative;
117 background: url("~@/image/selNavbar.png") no-repeat; 97 top: 13px;
118 background-size: 100% 100%; 98 width: 30%;
119 color: #ffffff !important; 99 }
120 font-weight: 700;
121 }
122 100
123 /deep/.el-menu-item:hover { 101 /deep/.el-menu {
124 @extend .xuanzhong; 102 display: flex;
125 } 103 justify-content: space-between;
104 }
126 105
127 /deep/.el-submenu__title:hover { 106 /deep/.el-menu-item {
128 @extend .xuanzhong; 107 flex: 1;
129 } 108 width: 100%;
109 }
130 110
131 /deep/.el-menu--horizontal .el-menu-item:not(.is-disabled):focus { 111 .sidebarRight {
132 @extend .xuanzhong; 112 position: relative;
133 } 113 top: 13px;
114 width: 30%;
115 padding-left: 20px;
116 }
134 117
135 /deep/.el-menu-item.is-active { 118 // 导航选中背景色
136 @extend .xuanzhong; 119 .xuanzhong {
137 } 120 background: url("~@/image/selNavbar.png") no-repeat;
121 background-size: 100% 100%;
122 color: #ffffff !important;
123 font-weight: 700;
124 }
138 125
139 .navbar { 126 /deep/.el-menu-item:hover {
140 height: $headerHeight; 127 @extend .xuanzhong;
141 overflow: hidden; 128 }
142 position: relative;
143 display: flex;
144 align-items: center;
145 padding: 0 20px;
146 justify-content: space-between;
147 background: url("~@/image/header.png") no-repeat;
148 background-size: 100% 100%;
149 129
150 .user { 130 /deep/.el-submenu__title:hover {
151 font-size: 12px; 131 @extend .xuanzhong;
152 color: #ffffff; 132 }
153 position: absolute;
154 right: 20px;
155 top: 0;
156 cursor: pointer;
157 133
158 .closeStyle { 134 /deep/.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
159 margin-right: 5px; 135 @extend .xuanzhong;
160 }
161 } 136 }
162 137
163 .title { 138 /deep/.el-menu-item.is-active {
164 position: absolute; 139 @extend .xuanzhong;
165 left: 0;
166 top: 10px;
167 bottom: 0;
168 right: 0;
169 margin: 0 auto;
170 font-size: 32px;
171 color: #ffffff;
172 font-weight: 700;
173 text-align: center;
174 } 140 }
175 141
176 .right-menu { 142 .navbar {
177 float: right; 143 height: $headerHeight;
178 height: 100%; 144 overflow: hidden;
179 line-height: 50px; 145 position: relative;
180 display: flex; 146 display: flex;
181 align-items: center; 147 align-items: center;
148 padding: 0 20px;
149 justify-content: space-between;
150 background: url("~@/image/header.png") no-repeat;
151 background-size: 100% 100%;
182 152
183 .shutdown { 153 .user {
184 font-size: 20px; 154 font-size: 12px;
185 margin-left: 15px; 155 color: #ffffff;
156 position: absolute;
157 right: 20px;
158 top: 0;
186 cursor: pointer; 159 cursor: pointer;
160
161 .closeStyle {
162 margin-right: 5px;
163 }
187 } 164 }
188 165
189 .organization-item { 166 .title {
190 margin-right: 40px; 167 position: absolute;
191 margin-top: -40px !important; 168 left: 0;
169 top: 10px;
170 bottom: 0;
171 right: 0;
172 margin: 0 auto;
173 font-size: 32px;
174 color: #ffffff;
175 font-weight: 700;
176 text-align: center;
192 } 177 }
193 178
194 .item { 179 .right-menu {
195 margin-right: 40px; 180 float: right;
196 margin-top: -20px; 181 height: 100%;
197 line-height: 18.4px; 182 line-height: 50px;
198 cursor: pointer; 183 display: flex;
199 position: relative; 184 align-items: center;
200 185
201 .item-box { 186 .shutdown {
202 position: absolute; 187 font-size: 20px;
203 top: -5px; 188 margin-left: 15px;
204 left: 3px;
205 width: 100%;
206 min-width: 25px;
207 height: 25px;
208 cursor: pointer; 189 cursor: pointer;
209 z-index: 100;
210 } 190 }
211 }
212
213 &:focus {
214 outline: none;
215 }
216 191
217 .right-menu-item { 192 .organization-item {
218 display: inline-block; 193 margin-right: 40px;
219 height: 100%; 194 margin-top: -40px !important;
220 font-size: 18px; 195 }
221 color: #fff;
222 vertical-align: text-bottom;
223 196
224 &.hover-effect { 197 .item {
198 margin-right: 40px;
199 margin-top: -20px;
200 line-height: 18.4px;
225 cursor: pointer; 201 cursor: pointer;
226 transition: background 0.3s; 202 position: relative;
227 display: flex;
228 align-items: center;
229 203
230 &:hover { 204 .item-box {
231 background: rgba(0, 0, 0, 0.025); 205 position: absolute;
206 top: -5px;
207 left: 3px;
208 width: 100%;
209 min-width: 25px;
210 height: 25px;
211 cursor: pointer;
212 z-index: 100;
232 } 213 }
233 } 214 }
234 }
235 215
236 .avatar-wrapper { 216 &:focus {
237 position: relative; 217 outline: none;
238 display: flex; 218 }
239 height: 40px;
240 align-items: center;
241 219
242 .user-avatar { 220 .right-menu-item {
243 cursor: pointer; 221 display: inline-block;
244 width: 35px; 222 height: 100%;
245 height: 35px; 223 font-size: 18px;
246 border-radius: 50%; 224 color: #fff;
225 vertical-align: text-bottom;
226
227 &.hover-effect {
228 cursor: pointer;
229 transition: background 0.3s;
230 display: flex;
231 align-items: center;
232
233 &:hover {
234 background: rgba(0, 0, 0, 0.025);
235 }
236 }
247 } 237 }
248 238
249 .el-icon-caret-bottom { 239 .avatar-wrapper {
250 cursor: pointer; 240 position: relative;
251 position: absolute; 241 display: flex;
252 right: -15px; 242 height: 40px;
253 top: 17px; 243 align-items: center;
254 font-size: 12px; 244
245 .user-avatar {
246 cursor: pointer;
247 width: 35px;
248 height: 35px;
249 border-radius: 50%;
250 }
251
252 .el-icon-caret-bottom {
253 cursor: pointer;
254 position: absolute;
255 right: -15px;
256 top: 17px;
257 font-size: 12px;
258 }
255 } 259 }
256 } 260 }
257 } 261 }
258 }
259 </style> 262 </style>
......
1 <template> 1 <template>
2 <el-menu router :default-active="activeMenu" mode="horizontal"> 2 <el-menu router :default-active="activeMenu" mode="horizontal">
3 <!-- 权限菜单 --> 3 <!-- 权限菜单 -->
4 <sidebar-item v-for="route in permission_routes.slice(2, 5)" :key="route.path" :item="route" 4 <sidebar-item v-for="route in permission_routes.slice(3, 6)" :key="route.path" :item="route"
5 :base-path="route.path" /> 5 :base-path="route.path" />
6 <!-- 菜单全部展示 --> 6 <!-- 菜单全部展示 -->
7 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> --> 7 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> -->
...@@ -9,35 +9,40 @@ ...@@ -9,35 +9,40 @@
9 </template> 9 </template>
10 10
11 <script> 11 <script>
12 import { mapGetters } from 'vuex' 12 import { mapGetters } from 'vuex'
13 import Logo from './Logo' 13 import Logo from './Logo'
14 import SidebarItem from './SidebarItem' 14 import SidebarItem from './SidebarItem'
15 import variables from '@/styles/variables.scss' 15 import variables from '@/styles/variables.scss'
16 import { asyncRoutes } from '@/router' 16 import { asyncRoutes } from '@/router'
17 export default { 17 export default {
18 components: { SidebarItem, Logo }, 18 components: { SidebarItem, Logo },
19 computed: { 19 computed: {
20 ...mapGetters(['permission_routes', 'sidebar']), 20 ...mapGetters(['permission_routes', 'sidebar']),
21 activeMenu () { 21
22 const route = this.$route 22 activeMenu () {
23 const { meta, path } = route 23
24 if (meta.activeMenu) { 24 const route = this.$route
25 return meta.activeMenu 25 const { meta, path } = route
26 if (meta.activeMenu) {
27 return meta.activeMenu
28 }
29 return path
30 },
31 variables () {
32 return variables
33 },
34 asyncRoutes () {
35 return asyncRoutes.slice(0, 3)
26 } 36 }
27 return path
28 }, 37 },
29 variables () { 38 mounted () {
30 return variables 39 console.log("permission_routes", this.permission_routes);
31 },
32 asyncRoutes () {
33 return asyncRoutes.slice(0, 3)
34 } 40 }
35 } 41 }
36 }
37 </script> 42 </script>
38 <style scoped lang="scss"> 43 <style scoped lang="scss">
39 .el-menu--horizontal {
40 display: flex;
41 background: none !important;
42 }
43 </style>
...\ No newline at end of file ...\ No newline at end of file
44 .el-menu--horizontal {
45 display: flex;
46 background: none !important;
47 }
48 </style>
......
1 <!--
2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-01-10 09:03:06
4 * @LastEditors: xiaomiao 1158771342@qq.com
5 * @LastEditTime: 2023-03-08 10:45:43
6 * @FilePath: \监管系统\js-web-jianguan\src\layout\components\Sidebar\sidebarRight.vue
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 -->
1 <template> 9 <template>
2 <el-menu router :default-active="activeMenu" mode="horizontal"> 10 <el-menu router :default-active="activeMenu" mode="horizontal">
3 <!-- 权限菜单 --> 11 <!-- 权限菜单 -->
4 <sidebar-item v-for="route in permission_routes.slice(5, 8)" :key="route.path" :item="route" 12 <sidebar-item v-for="route in permission_routes.slice(6, 9)" :key="route.path" :item="route"
5 :base-path="route.path" /> 13 :base-path="route.path" />
6 <!-- 菜单全部展示 --> 14 <!-- 菜单全部展示 -->
7 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> --> 15 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> -->
...@@ -9,59 +17,59 @@ ...@@ -9,59 +17,59 @@
9 </template> 17 </template>
10 18
11 <script> 19 <script>
12 import { mapGetters } from 'vuex' 20 import { mapGetters } from 'vuex'
13 import Logo from './Logo' 21 import Logo from './Logo'
14 import SidebarItem from './SidebarItem' 22 import SidebarItem from './SidebarItem'
15 import variables from '@/styles/variables.scss' 23 import variables from '@/styles/variables.scss'
16 import { asyncRoutes } from '@/router' 24 import { asyncRoutes } from '@/router'
17 export default { 25 export default {
18 components: { SidebarItem, Logo }, 26 components: { SidebarItem, Logo },
19 computed: { 27 computed: {
20 ...mapGetters(['permission_routes', 'sidebar']), 28 ...mapGetters(['permission_routes', 'sidebar']),
21 activeMenu () { 29 activeMenu () {
22 const route = this.$route 30 const route = this.$route
23 const { meta, path } = route 31 const { meta, path } = route
24 if (meta.activeMenu) { 32 if (meta.activeMenu) {
25 return meta.activeMenu 33 return meta.activeMenu
34 }
35 return path
36 },
37 variables () {
38 return variables
39 },
40 asyncRoutes () {
41 return asyncRoutes.slice(3, 6)
26 } 42 }
27 return path
28 },
29 variables () {
30 return variables
31 },
32 asyncRoutes () {
33 return asyncRoutes.slice(3, 6)
34 } 43 }
35 } 44 }
36 }
37 </script> 45 </script>
38 <style scoped lang="scss"> 46 <style scoped lang="scss">
39 .el-menu--horizontal { 47 .el-menu--horizontal {
40 display: flex; 48 display: flex;
41 background: none !important; 49 background: none !important;
42 } 50 }
43 51
44 /deep/.el-menu-item:hover { 52 /deep/.el-menu-item:hover {
45 background: none; 53 background: none;
46 font-weight: 700; 54 font-weight: 700;
47 color: #fff !important; 55 color: #fff !important;
48 } 56 }
49 57
50 /deep/.el-submenu__title { 58 /deep/.el-submenu__title {
51 color: #fff; 59 color: #fff;
52 font-size: 18px; 60 font-size: 18px;
53 } 61 }
54 62
55 /deep/.el-submenu__title:hover { 63 /deep/.el-submenu__title:hover {
56 background: none; 64 background: none;
57 font-weight: 700; 65 font-weight: 700;
58 font-size: 20px; 66 font-size: 20px;
59 } 67 }
60 68
61 /deep/.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
62 background: none;
63 color: #fff;
64 font-size: 20px;
65 font-weight: 700 !important;
66 }
67 </style>
...\ No newline at end of file ...\ No newline at end of file
69 /deep/.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
70 background: none;
71 color: #fff;
72 font-size: 20px;
73 font-weight: 700 !important;
74 }
75 </style>
......
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-10 14:59:43
5 -->
1 <template> 6 <template>
2 <div class="app-wrapper"> 7 <div class="app-wrapper jgWrapper">
3 <navbar /> 8 <navbar />
4 <div class="appMain"> 9 <div class="appMain">
5 <app-main /> 10 <app-main />
...@@ -7,54 +12,61 @@ ...@@ -7,54 +12,61 @@
7 </div> 12 </div>
8 </template> 13 </template>
9 <script> 14 <script>
10 import { AppMain, Navbar, Sidebar, TagsView } from './components' 15 import { AppMain, Navbar, Sidebar, TagsView } from './components'
11 import ResizeMixin from './mixin/ResizeHandler' 16 import ResizeMixin from './mixin/ResizeHandler'
12 import { mapState } from 'vuex' 17 import { mapState } from 'vuex'
13 export default { 18 export default {
14 name: 'Layout', 19 name: 'Layout',
15 components: { 20 components: {
16 AppMain, 21 AppMain,
17 Navbar, 22 Navbar,
18 Sidebar, 23 Sidebar,
19 TagsView 24 TagsView
20 }, 25 },
21 mixins: [ResizeMixin], 26 created () {
22 computed: { 27 this.$store.dispatch("products/setData", "BDCJGPT");
23 ...mapState({ 28 console.log("ZOULEJG");
24 sidebar: state => state.app.sidebar, 29 },
25 needTagsView: state => state.settings.tagsView, 30 mixins: [ResizeMixin],
26 fixedHeader: state => state.settings.fixedHeader 31 computed: {
27 }) 32 ...mapState({
33 sidebar: state => state.app.sidebar,
34 needTagsView: state => state.settings.tagsView,
35 fixedHeader: state => state.settings.fixedHeader
36 })
37 }
28 } 38 }
29 }
30 </script> 39 </script>
40 <style lang="scss">
41 @import "~@/styles/jgSidebar.scss";
42 </style>
31 <style lang="scss" scoped> 43 <style lang="scss" scoped>
32 @import "~@/styles/mixin.scss"; 44 @import "~@/styles/mixin.scss";
33 45
34 .app-wrapper { 46 .app-wrapper {
35 @include clearfix; 47 @include clearfix;
36 position: relative; 48 position: relative;
37 height: 100%; 49 height: 100%;
38 width: 100%; 50 width: 100%;
39 min-width: 1280px; 51 min-width: 1280px;
40 background: url('~@/image/bg.png') no-repeat; 52 background: url("~@/image/bg.png") no-repeat;
41 background-size: 100% 100%; 53 background-size: 100% 100%;
42 padding: 12px; 54 padding: 12px;
43 box-sizing: border-box; 55 box-sizing: border-box;
44 56
45 &.mobile.openSidebar { 57 &.mobile.openSidebar {
46 position: fixed; 58 position: fixed;
47 top: 0; 59 top: 0;
60 }
48 } 61 }
49 }
50 62
51 .appMain { 63 .appMain {
52 min-width: 1290px; 64 // min-width: 1280px;
53 height: calc(100vh - 101px) !important; 65 height: calc(100vh - 101px) !important;
54 box-sizing: border-box; 66 box-sizing: border-box;
55 67
56 .app-main { 68 .app-main {
57 height: 100%; 69 height: 100%;
70 }
58 } 71 }
59 }
60 </style> 72 </style>
......
...@@ -22,6 +22,6 @@ export default { ...@@ -22,6 +22,6 @@ export default {
22 box-sizing: border-box; 22 box-sizing: border-box;
23 flex: 1; 23 flex: 1;
24 width: 100%; 24 width: 100%;
25 margin-right: 15px; 25 // background-color: #ffffff;
26 } 26 }
27 </style> 27 </style>
......
...@@ -4,11 +4,7 @@ ...@@ -4,11 +4,7 @@
4 <div class="logo"> 4 <div class="logo">
5 <img :src="require('@/image/logo.png')" alt="" /> 5 <img :src="require('@/image/logo.png')" alt="" />
6 </div> 6 </div>
7 <div class="backdrop">
8 <Breadcrumb />
9 </div>
10 <div class="right-menu"> 7 <div class="right-menu">
11 <div class="dataView d-center pointer" @click="handleDataView">大屏展示</div>
12 <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover" @command="handleCommand"> 8 <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover" @command="handleCommand">
13 <div class="avatar-wrapper"> 9 <div class="avatar-wrapper">
14 <span style="padding-right:10px">{{ name }}</span> 10 <span style="padding-right:10px">{{ name }}</span>
...@@ -67,15 +63,6 @@ export default { ...@@ -67,15 +63,6 @@ export default {
67 } 63 }
68 } 64 }
69 65
70 .dataView {
71 color: #fff;
72 width: 120px;
73 height: 32px;
74 background: url('../../image/dp.png');
75 background-size: cover;
76 margin-right: 20px;
77 }
78
79 .NoticeBar { 66 .NoticeBar {
80 position: absolute; 67 position: absolute;
81 bottom: 0; 68 bottom: 0;
...@@ -83,7 +70,7 @@ export default { ...@@ -83,7 +70,7 @@ export default {
83 70
84 .el-dropdown-menu { 71 .el-dropdown-menu {
85 padding: 0 !important; 72 padding: 0 !important;
86 border: 1px solid #EBEEF5; 73 border: 1px solid #ebeef5;
87 box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12); 74 box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);
88 border-radius: 4px 0 0 4px 4px; 75 border-radius: 4px 0 0 4px 4px;
89 76
...@@ -93,14 +80,14 @@ export default { ...@@ -93,14 +80,14 @@ export default {
93 font-size: 14px; 80 font-size: 14px;
94 font-family: PingFangSC-Regular, PingFang SC; 81 font-family: PingFangSC-Regular, PingFang SC;
95 font-weight: 400; 82 font-weight: 400;
96 color: #4A4A4A; 83 color: #4a4a4a;
97 width: 140px; 84 width: 140px;
98 height: 36px; 85 height: 36px;
99 line-height: 36px; 86 line-height: 36px;
100 } 87 }
101 88
102 .el-dropdown-menu__item:nth-child(6) { 89 .el-dropdown-menu__item:nth-child(6) {
103 border-top: 1px solid #EBEEF5; 90 border-top: 1px solid #ebeef5;
104 } 91 }
105 92
106 .popper__arrow { 93 .popper__arrow {
...@@ -111,8 +98,8 @@ export default { ...@@ -111,8 +98,8 @@ export default {
111 98
112 .el-dropdown-menu__item:not(.is-disabled):hover, 99 .el-dropdown-menu__item:not(.is-disabled):hover,
113 .el-dropdown-menu__item:focus { 100 .el-dropdown-menu__item:focus {
114 background: #F6F7F9; 101 background: #f6f7f9;
115 color: #4A4A4A; 102 color: #4a4a4a;
116 } 103 }
117 } 104 }
118 105
...@@ -120,15 +107,11 @@ export default { ...@@ -120,15 +107,11 @@ export default {
120 height: $headerHeight; 107 height: $headerHeight;
121 overflow: hidden; 108 overflow: hidden;
122 position: relative; 109 position: relative;
123 // background: linear-gradient(270deg, #148CEE 0%, #1870E3 100%); //默认颜色 110 background: #3D59C4;
124 // box-shadow: 0 1px 0px rgba(0, 21, 41, 0.08);
125 background: #0D1230;
126 display: flex; 111 display: flex;
127 align-items: center; 112 align-items: center;
128 padding-right: 20px; 113 padding-right: 20px;
129 justify-content: space-between; 114 justify-content: space-between;
130 margin-bottom: 10px;
131
132 .header-logo { 115 .header-logo {
133 width: 300px; 116 width: 300px;
134 } 117 }
......
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-06 16:18:21
5 -->
1 <template> 6 <template>
2 <div> 7 <div>
3 <el-scrollbar wrap-class="scrollbar-wrapper"> 8 <el-scrollbar wrap-class="scrollbar-wrapper">
4 <el-menu router :default-active="activeMenu" :background-color="variables.menuBg" :text-color="variables.menuText" 9 <el-menu router :default-active="activeMenu" :background-color="variables.menuBg" :text-color="variables.menuText"
5 :unique-opened="true" :active-text-color="variables.menuActiveText" :collapse-transition="false" 10 :unique-opened="true" :active-text-color="variables.menuActiveText" :collapse-transition="false" mode="vertical">
6 mode="vertical">
7 <!-- 权限菜单 --> 11 <!-- 权限菜单 -->
8 <!-- <sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" /> --> 12 <sidebar-item v-for="route in permission_routes.slice(3)" :key="route.path" :item="route"
13 :base-path="route.path" />
9 <!-- 菜单全部展示 --> 14 <!-- 菜单全部展示 -->
10 <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> 15 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> -->
11 </el-menu> 16 </el-menu>
12 </el-scrollbar> 17 </el-scrollbar>
13 </div> 18 </div>
...@@ -27,6 +32,9 @@ export default { ...@@ -27,6 +32,9 @@ export default {
27 title: defaultSettings.title 32 title: defaultSettings.title
28 } 33 }
29 }, 34 },
35 created () {
36 console.log(this.permission_routes);
37 },
30 computed: { 38 computed: {
31 ...mapGetters(['permission_routes', 'sidebar']), 39 ...mapGetters(['permission_routes', 'sidebar']),
32 activeMenu () { 40 activeMenu () {
......
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-10 15:00:56
5 -->
1 <template> 6 <template>
2 <div class="app-wrapper"> 7 <div class="app-wrapper scWrapper">
3 <navbar /> 8 <navbar />
4 <div class="main-container"> 9 <div class="main-container">
5 <sidebar class="sidebar-container" /> 10 <sidebar class="sidebar-container" />
...@@ -8,60 +13,66 @@ ...@@ -8,60 +13,66 @@
8 </div> 13 </div>
9 </template> 14 </template>
10 <script> 15 <script>
11 import { AppMain, Navbar, Sidebar, TagsView } from './components' 16 import { AppMain, Navbar, Sidebar, TagsView } from './components'
12 import ResizeMixin from './mixin/ResizeHandler' 17 import ResizeMixin from './mixin/ResizeHandler'
13 import { mapState } from 'vuex' 18 import { mapState } from 'vuex'
14 export default { 19 export default {
15 name: 'Layout', 20 name: 'Layout',
16 components: { 21 components: {
17 AppMain, 22 AppMain,
18 Navbar, 23 Navbar,
19 Sidebar, 24 Sidebar,
20 TagsView 25 TagsView
21 }, 26 },
22 mixins: [ResizeMixin], 27 mixins: [ResizeMixin],
23 computed: { 28 created () {
24 ...mapState({ 29 this.$store.dispatch("products/setData", "BDCSBPT");
25 sidebar: state => state.app.sidebar, 30 console.log("ZOULEJG");
26 needTagsView: state => state.settings.tagsView, 31 },
27 fixedHeader: state => state.settings.fixedHeader 32 computed: {
28 }) 33 ...mapState({
34 sidebar: state => state.app.sidebar,
35 needTagsView: state => state.settings.tagsView,
36 fixedHeader: state => state.settings.fixedHeader
37 })
38 }
29 } 39 }
30 }
31 </script> 40 </script>
32 <style lang="scss" scoped> 41 <style lang="scss">
33 @import "~@/styles/mixin.scss"; 42 @import "~@/styles/mixin.scss";
43 @import "~@/styles/sbSidebar.scss";
34 44
35 .app-wrapper { 45 .app-wrapper {
36 @include clearfix; 46 @include clearfix;
37 position: relative; 47 position: relative;
38 height: 100%; 48 height: 100%;
39 width: 100%; 49 width: 100%;
40 background-color: $containerbg; 50 // background-color: $containerbg;
51 padding: 0;
41 52
42 &.mobile.openSidebar { 53 &.mobile.openSidebar {
43 position: fixed; 54 position: fixed;
44 top: 0; 55 top: 0;
56 }
45 } 57 }
46 }
47 58
48 .drawer-bg { 59 .drawer-bg {
49 background: #000; 60 background: #000;
50 opacity: 0.3; 61 opacity: 0.3;
51 width: 100%; 62 width: 100%;
52 top: 0; 63 top: 0;
53 height: 100%; 64 height: 100%;
54 position: absolute; 65 position: absolute;
55 z-index: 999; 66 z-index: 999;
56 } 67 }
57 68
58 .fixed-header { 69 .fixed-header {
59 width: 100%; 70 width: 100%;
60 transition: width 0.28s; 71 transition: width 0.28s;
61 } 72 }
62 73
63 .el-dropdown-menu--small { 74 .el-dropdown-menu--small {
64 padding: 0; 75 padding: 0;
65 width: 5px; 76 width: 5px;
66 } 77 }
67 </style> 78 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-10 16:43:16
5 */
1 import router from "./router"; 6 import router from "./router";
2 import store from "./store"; 7 import store from "./store";
3 import { getMenuInfo } from "@/api/user"; 8 import { getMenuInfo } from "@/api/user";
...@@ -6,33 +11,31 @@ import "nprogress/nprogress.css"; // progress bar style ...@@ -6,33 +11,31 @@ import "nprogress/nprogress.css"; // progress bar style
6 import getPageTitle from "@/utils/get-page-title"; 11 import getPageTitle from "@/utils/get-page-title";
7 import Cookies from "js-cookie"; 12 import Cookies from "js-cookie";
8 NProgress.configure({ showSpinner: false }); // NProgress Configuration 13 NProgress.configure({ showSpinner: false }); // NProgress Configuration
9
10 router.beforeEach(async (to, from, next) => { 14 router.beforeEach(async (to, from, next) => {
11 NProgress.start(); 15 NProgress.start();
12 document.title = getPageTitle(to.meta.title); 16 document.title = getPageTitle(to.meta.title);
13 let hasAddDict = store.state.dict.addDict; 17 let hasAddDict = store.state.dict.addDict;
14 let hasUser = store.state.user.hasUser; 18 let hasUser = store.state.user.hasUser;
15 let hasAddRoute = store.state.permission.addRoutes; 19 let hasAddRoute = store.state.permission.addRoutes;
16 if (to.path == "/login") { 20 if (to.path == "/sb" || to.path == "/jg") {
17 sessionStorage.removeItem("token"); 21 sessionStorage.removeItem("token");
22 sessionStorage.setItem("psth", to.path)
18 next(); 23 next();
19 } else { 24 } else {
25 let code = sessionStorage.getItem("psth") == "/sb" ? "BDCSBPT" : "BDCJGPT"
20 //判断token是否存在 26 //判断token是否存在
21 const hasToken = sessionStorage.getItem("token"); 27 const hasToken = sessionStorage.getItem("token");
22 if (hasToken) { 28 if (hasToken) {
23 //请求用户信息 29 //请求用户信息
24 if (!hasUser) { 30 if (!hasUser) {
25 store.dispatch("user/getUserInfo"); 31 store.dispatch("user/getUserInfo");
26 } 32 import("@/styles/public.scss");
27 //加载字典
28 if (!hasAddDict) {
29 store.dispatch("dict/generateDic");
30 } 33 }
31 if (hasAddRoute) { 34 if (hasAddRoute) {
32 next(); 35 next();
33 } else { 36 } else {
34 //请求菜单 37 //请求菜单
35 const { result: getMenuData } = (await getMenuInfo()) || []; 38 const { result: getMenuData } = (await getMenuInfo(code)) || [];
36 const accessRoutes = await store.dispatch( 39 const accessRoutes = await store.dispatch(
37 "permission/generateRoutes", 40 "permission/generateRoutes",
38 getMenuData 41 getMenuData
...@@ -42,16 +45,22 @@ router.beforeEach(async (to, from, next) => { ...@@ -42,16 +45,22 @@ router.beforeEach(async (to, from, next) => {
42 { path: "*", redirect: "/404", hidden: true }, 45 { path: "*", redirect: "/404", hidden: true },
43 ]); 46 ]);
44 const routeTo = Cookies.get("routerTo"); 47 const routeTo = Cookies.get("routerTo");
48 if (!hasAddDict) {
49 await store.dispatch("dict/generateDic");
50 }
45 if (routeTo && routeTo !== "/") { 51 if (routeTo && routeTo !== "/") {
46 next({ ...to, replace: true }); 52 next({ ...to, replace: true });
47 } else { 53 } else {
48 next("/home"); 54 next("/home");
49 } 55 }
50 } 56 }
57 } else if (sessionStorage.getItem("psth")) {
58 next(sessionStorage.getItem("psth"));
51 } else { 59 } else {
52 next("/login"); 60 next("/jg");
53 } 61 }
54 } 62 }
63
55 NProgress.done(); 64 NProgress.done();
56 }); 65 });
57 router.afterEach((to) => { 66 router.afterEach((to) => {
......
1 import Vue from 'vue' 1 import Vue from 'vue'
2 import Router from 'vue-router' 2 import Router from 'vue-router'
3 Vue.use(Router) 3 Vue.use(Router)
4 /* Layout */
5 import Layout from '@/layout' 4 import Layout from '@/layout'
6 /* Router Modules */ 5
7 // import componentsRouter from './modules/components'
8 export const constantRoutes = [ 6 export const constantRoutes = [
9 { 7 {
10 path: '/404', 8 path: '/404',
...@@ -22,9 +20,14 @@ export const constantRoutes = [ ...@@ -22,9 +20,14 @@ export const constantRoutes = [
22 }, 20 },
23 //登录 21 //登录
24 { 22 {
25 path: "/login", 23 path: "/jg",
26 name: "login", 24 name: "loginjg",
27 component: () => import("@/views/login/index.vue"), 25 component: () => import("@/views/loginjg/index.vue"),
26 },
27 {
28 path: "/sb",
29 name: "loginsb",
30 component: () => import("@/views/loginsb/index.vue"),
28 }, 31 },
29 // 监管首页 32 // 监管首页
30 { 33 {
......
1 module.exports = { 1 module.exports = {
2 title: '汉中市不动产综合监管', 2 title: '',
3 /** 3 /**
4 * @type {boolean} true | false 4 * @type {boolean} true | false
5 * @description Whether show the settings right-panel 5 * @description Whether show the settings right-panel
......
1 /*
2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-03-09 15:24:53
4 * @LastEditors: xiaomiao 1158771342@qq.com
5 * @LastEditTime: 2023-03-13 09:03:16
6 * @FilePath: \上报\bdcjg-web\src\store\modules\permission.js
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 */
1 import { constantRoutes } from '@/router' 9 import { constantRoutes } from '@/router'
2 import asyncRouter from '@/utils/asyncRouter.js' 10 import asyncRouter from '@/utils/asyncRouter.js'
3 const state = { 11 const state = {
4 routes: [], 12 routes: [],
5 addRoutes: false, 13 addRoutes: false,
6 } 14 }
7 15
8 const mutations = { 16 const mutations = {
9 SET_ROUTES: (state, routes) => { 17 SET_ROUTES: (state, routes) => {
10 state.addRoutes = true 18 state.addRoutes = true
11 state.routes = routes 19 state.routes = routes
12 }, 20 },
13 RESET_ROUTE: (state) => { 21 RESET_ROUTE: (state) => {
14 state.addRoutes = false 22 state.addRoutes = false
15 } 23 }
16 } 24 }
17 const actions = { 25 const actions = {
18 // 添加全部菜单 26 // 添加全部菜单
19 generateRoutes ({ commit }, getMenuInfo) { 27 generateRoutes ({ commit }, getMenuInfo) {
20 return new Promise(resolve => { 28 return new Promise(resolve => {
21 // 将权限菜单数组转成路由树数据结构 29 // 将权限菜单数组转成路由树数据结构
22 let permission_tree = asyncRouter(getMenuInfo) 30 let permission_tree = asyncRouter(getMenuInfo)
23 const mergeResult = _.cloneDeep(constantRoutes).concat(permission_tree); 31 const mergeResult = _.cloneDeep(constantRoutes).concat(permission_tree);
24 commit('SET_ROUTES', mergeResult) 32 commit('SET_ROUTES', mergeResult)
25 resolve(permission_tree) 33 resolve(permission_tree)
26 }) 34 })
27 }, 35 },
28 // 重置路由 36 // 重置路由
29 resetRoutes ({ commit }) { 37 resetRoutes ({ commit }) {
30 commit('RESET_ROUTE') 38 commit('RESET_ROUTE')
31 } 39 }
32 } 40 }
33 // 树转数组 41 // 树转数组
34 function dfs (root, fVisit) { 42 function dfs (root, fVisit) {
35 let stack = Array.isArray(root) ? [...root] : [root]; 43 let stack = Array.isArray(root) ? [...root] : [root];
36 while (stack.length) { 44 while (stack.length) {
37 let node = stack.pop(); 45 let node = stack.pop();
38 fVisit && fVisit(node); 46 fVisit && fVisit(node);
39 let children = node.children; 47 let children = node.children;
40 if (children && children.length) { 48 if (children && children.length) {
41 for (let i = children.length - 1; i >= 0; i--) stack.push(children[i]); 49 for (let i = children.length - 1; i >= 0; i--) stack.push(children[i]);
42 }
43 } 50 }
51 }
44 } 52 }
45 // 数组转树 53 // 数组转树
46 //需要插入父节点id,pid为null或'',就是找root节点,然后root节点再去找自己的子节点 54 //需要插入父节点id,pid为null或'',就是找root节点,然后root节点再去找自己的子节点
47 function array2Tree (data, pid) { 55 function array2Tree (data, pid) {
48 let res = []; 56 let res = [];
49 data.forEach(item => { 57 data.forEach(item => {
50 if (item.parentId === pid) { 58 if (item.parentId === pid) {
51 let itemChildren = array2Tree(data, item.id); 59 let itemChildren = array2Tree(data, item.id);
52 if (itemChildren.length) item.children = itemChildren; 60 if (itemChildren.length) item.children = itemChildren;
53 res.push(item); 61 res.push(item);
54 } 62 }
55 }); 63 });
56 // 菜单数据反转,保持一致 64 // 菜单数据反转,保持一致
57 res.reverse() 65 res.reverse()
58 _.each(res, c => { 66 _.each(res, c => {
59 if (c.children && c.children.length > 0) { 67 if (c.children && c.children.length > 0) {
60 c.children.reverse() 68 c.children.reverse()
61 } 69 }
62 }) 70 })
63 return res; 71 return res;
64 } 72 }
65 73
66 export default { 74 export default {
67 namespaced: true, 75 namespaced: true,
68 state, 76 state,
69 mutations, 77 mutations,
70 actions 78 actions
71 } 79 }
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-07 09:38:47
5 */
1 import { getUserInfo } from "@/api/user"; 6 import { getUserInfo } from "@/api/user";
2 const state = { 7 const state = {
3 hasUser: false, 8 hasUser: false,
...@@ -15,14 +20,14 @@ const mutations = { ...@@ -15,14 +20,14 @@ const mutations = {
15 }; 20 };
16 21
17 const actions = { 22 const actions = {
18 getUserInfo({ commit }) { 23 getUserInfo ({ commit }) {
19 return new Promise(async (resolve) => { 24 return new Promise(async (resolve) => {
20 let { result: res } = await getUserInfo(); 25 let { result: res } = await getUserInfo();
21 commit("SET_USERINFO", res); 26 commit("SET_USERINFO", res);
22 resolve(true); 27 resolve(true);
23 }); 28 });
24 }, 29 },
25 resetState({ commit }) { 30 resetState ({ commit }) {
26 commit("RESET_USER"); 31 commit("RESET_USER");
27 }, 32 },
28 }; 33 };
......
...@@ -2,11 +2,19 @@ ...@@ -2,11 +2,19 @@
2 overflow: hidden; 2 overflow: hidden;
3 background: url("~@/image/dialogBg.png") no-repeat !important; 3 background: url("~@/image/dialogBg.png") no-repeat !important;
4 background-size: 100% 100% !important; 4 background-size: 100% 100% !important;
5 min-height: 90vh;
5 6
6 .dialog_title { 7 .dialog_title {
7 display: flex; 8 display: flex;
8 position: relative; 9 position: relative;
9 top: -2px; 10 font-size: 22px;
11 top: -10px;
12 width: 38%;
13 height: 40px;
14 margin-left: 28px;
15 justify-content: center;
16 white-space: nowrap;
17
10 b { 18 b {
11 font-weight: 200; 19 font-weight: 200;
12 display: inline-block; 20 display: inline-block;
...@@ -48,10 +56,88 @@ ...@@ -48,10 +56,88 @@
48 box-shadow: inset 0px 0px 12px 0px #02D9FD; 56 box-shadow: inset 0px 0px 12px 0px #02D9FD;
49 border-radius: 2px; 57 border-radius: 2px;
50 border: 1px solid #6BC1FC; 58 border: 1px solid #6BC1FC;
51 margin: 0 18px 15px 18px; 59 margin: 0 18px 10px 18px;
60 }
61 }
62
63 .item-content-input {
64 /deep/.el-input__inner {
65 border: none !important;
66 text-align: right;
67 }
68 }
69
70 .regularHeight {
71 display: flex;
72 flex: 1;
73 height: 100%;
74 flex-direction: column;
75
76 .editDialogBox-con,
77 .JsonEditor {
78 flex: 1;
79 height: 100%;
52 } 80 }
53 } 81 }
54 82
83 .dialog-from {
84 padding: 13px;
85 border-radius: 2px;
86 box-sizing: border-box;
87
88 .el-row {
89 display: flex;
90 flex-wrap: nowrap;
91 }
92
93 .el-col {
94 line-height: 18px;
95 display: flex;
96 align-items: center;
97 margin-bottom: 3px;
98 color: #B5D6DC;
99 border-radius: 2px;
100 border: 1px solid #224C7C;
101 span {
102 display: inline-block;
103 padding: 3px;
104 border-radius: 3px;
105 overflow: hidden;
106 white-space: nowrap;
107 text-align: left;
108 color: #02D9FD;
109 }
110
111 p {
112 flex: 1;
113 width: 100%;
114 padding-left: 5px;
115 line-height: 20px;
116 color: #c0c4cc;
117 cursor: not-allowed;
118 white-space: nowrap;
119 margin-right: 5px;
120 text-align: right;
121 }
122 }
123 }
124
125 /deep/.el-textarea__inner {
126 border: 1px solid #224C7C;
127 margin: 0 0 10px 0 !important;
128 width: 100% !important;
129 color: #dadde3 !important;
130 background: transparent !important;
131 }
132
133 /deep/.el-input__inner {
134 border: 1px solid #224C7C !important;
135 margin: 0 !important;
136 width: 100% !important;
137 color: #dadde3 !important;
138 background: transparent !important;
139 }
140
55 .dialog_title { 141 .dialog_title {
56 @include flex; 142 @include flex;
57 justify-content: space-between; 143 justify-content: space-between;
...@@ -60,7 +146,6 @@ ...@@ -60,7 +146,6 @@
60 146
61 .el-dialog__header { 147 .el-dialog__header {
62 color: #FFFFFF; 148 color: #FFFFFF;
63 // background: #074487;
64 height: 46px !important; 149 height: 46px !important;
65 width: 97%; 150 width: 97%;
66 margin: 0 auto; 151 margin: 0 auto;
...@@ -70,6 +155,7 @@ ...@@ -70,6 +155,7 @@
70 .el-dialog__body { 155 .el-dialog__body {
71 padding-top: 0; 156 padding-top: 0;
72 padding-bottom: 0; 157 padding-bottom: 0;
158 height: 95vh;
73 } 159 }
74 160
75 .el-dialog__headerbtn { 161 .el-dialog__headerbtn {
...@@ -79,7 +165,8 @@ ...@@ -79,7 +165,8 @@
79 background-size: 100% 100%; 165 background-size: 100% 100%;
80 right: 40px; 166 right: 40px;
81 top: 33px; 167 top: 33px;
82 &:hover{ 168
169 &:hover {
83 box-shadow: inset 0px 0px 12px 0px #02D9FD; 170 box-shadow: inset 0px 0px 12px 0px #02D9FD;
84 } 171 }
85 } 172 }
......
1 // cover some element-ui styles 1 // cover some element-ui styles
2
3 .el-breadcrumb__inner, 2 .el-breadcrumb__inner,
4 .el-breadcrumb__inner a { 3 .el-breadcrumb__inner a {
5 font-weight: 400 !important; 4 font-weight: 400 !important;
...@@ -16,6 +15,25 @@ ...@@ -16,6 +15,25 @@
16 padding: 0 7px !important; 15 padding: 0 7px !important;
17 } 16 }
18 17
18 // input 样式
19 // 全局css 加上以下代码,可以隐藏上下箭头
20
21 // 取消input的上下箭头
22 input::-webkit-inner-spin-button {
23 -webkit-appearance: none !important;
24
25 }
26
27 input::-webkit-outer-spin-button {
28 -webkit-appearance: none !important;
29
30 }
31
32 input[type="number"] {
33 -moz-appearance: textfield;
34
35 }
36
19 .el-upload { 37 .el-upload {
20 input[type="file"] { 38 input[type="file"] {
21 display: none !important; 39 display: none !important;
...@@ -208,10 +226,29 @@ table td { ...@@ -208,10 +226,29 @@ table td {
208 box-shadow: inset 0px 0px 20px 0px #03DBFF !important; 226 box-shadow: inset 0px 0px 20px 0px #03DBFF !important;
209 } 227 }
210 228
211 .el-table__body tr:hover>td { 229 .el-table__body tr:hover>td,
230 .el-table__body tr.hover-row>td.el-table__cell {
212 background: none !important; 231 background: none !important;
213 } 232 }
214 233
234 // table 固定列样式
235 // tr:hover {
236 // background: #063160 !important;
237 // box-shadow: inset 0px 0px 20px 0px #03DBFF !important;
238 // }
239 // .el-table__fixed-right-patch {
240 // background-color: #073781
241 // }
242
243 .el-table__fixed-right {
244 background-color: #073781
245 }
246
247 .el-table__fixed::before,
248 .el-table__fixed-right::before {
249 display: none;
250 }
251
215 // 表格样式 252 // 表格样式
216 .el-table th { 253 .el-table th {
217 height: 48px !important; 254 height: 48px !important;
...@@ -488,4 +525,50 @@ table td { ...@@ -488,4 +525,50 @@ table td {
488 .el-select-dropdown__item.hover, 525 .el-select-dropdown__item.hover,
489 .el-select-dropdown__item:hover { 526 .el-select-dropdown__item:hover {
490 background-color: transparent !important; 527 background-color: transparent !important;
528 }
529
530 // 提示框
531 .el-message-box {
532 background-color: #031a46;
533 border: 1px solid #5f82c7;
534
535 .el-message-box__title {
536 color: white;
537 }
538
539 .el-message-box__content {
540 color: white;
541 }
542 }
543
544 // 上级菜单
545 .el-cascader__dropdown {
546 background-color: #031a46;
547 border: 1px solid #5f82c7;
548
549 }
550
551 .el-cascader-menu {
552 color: white;
553 }
554
555 .el-radio {
556 .el-cascader-menu:hover {
557 color: white;
558 }
559 }
560
561 .el-cascader-node:not(.is-disabled):hover,
562 .el-cascader-node:not(.is-disabled):focus {
563 background: #F5F7FA;
564 background-image: initial;
565 background-position-x: initial;
566 background-position-y: initial;
567 background-size: initial;
568 background-repeat-x: initial;
569 background-repeat-y: initial;
570 background-attachment: initial;
571 background-origin: initial;
572 background-clip: initial;
573 background-color: rgb(80, 142, 235);
491 } 574 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 @import './mixin.scss'; 2 @import './mixin.scss';
3 @import './transition.scss'; 3 @import './transition.scss';
4 @import './element-ui.scss'; 4 @import './element-ui.scss';
5 @import './sidebar.scss'; 5 // @import './sidebar.scss';
6 6
7 /* CSS 初始化 */ 7 /* CSS 初始化 */
8 html, 8 html,
...@@ -336,6 +336,15 @@ aside { ...@@ -336,6 +336,15 @@ aside {
336 color: $yellow; 336 color: $yellow;
337 } 337 }
338 338
339 // 操作按钮样式
340 .btnColor {
341 color: #8DEAF9;
342 }
343 .successColor {
344 color:#67C23A
345 }
346
347
339 // 通过 入库 样式 348 // 通过 入库 样式
340 .adopt, 349 .adopt,
341 .success { 350 .success {
...@@ -408,4 +417,10 @@ aside { ...@@ -408,4 +417,10 @@ aside {
408 top: 2px; 417 top: 2px;
409 background: #FF7962; 418 background: #FF7962;
410 color: #FF7962; 419 color: #FF7962;
420 }
421
422 // 引入字体
423 @font-face {
424 font-family: AliBold;
425 src: url('../image/font/Alibaba_PuHuiTi_2.0_55_Regular_85_Bold.ttf')
411 } 426 }
...\ No newline at end of file ...\ No newline at end of file
......
1 #app { 1 .jgWrapper {
2 .main-container { 2 .main-container {
3 width: 100%; 3 width: 100%;
4 height: calc(100% - 74px); 4 height: calc(100% - 74px);
...@@ -340,4 +340,5 @@ ...@@ -340,4 +340,5 @@
340 word-break: break-all; 340 word-break: break-all;
341 line-height: 20px; 341 line-height: 20px;
342 flex: 1; 342 flex: 1;
343
343 } 344 }
...\ No newline at end of file ...\ No newline at end of file
......
1 .tableClass { 1 .tableClass {
2 /deep/.el-table { 2 .el-table {
3 border: none !important; 3 border: none !important;
4 border-radius: 0 !important; 4 border-radius: 0 !important;
5 background-color: rgba(0, 0, 0, 0); 5 background-color: rgba(0, 0, 0, 0);
6 6
7 .el-table__header-wrapper { 7 .el-table__header-wrapper {
8 border-right: none; 8 border-right: none;
9 9
10 } 10 }
11 11
12 .el-table__row .cell { 12 .el-table__row .cell {
13 color: #8DEAF9 !important; 13 color: #8DEAF9 !important;
14 font-weight: 100 !important; 14 font-weight: 100 !important;
15 } 15 }
16 16
17 .el-table__row { 17 .el-table__row {
18 background: rgba(0, 0, 0, 0) !important; 18 background: rgba(0, 0, 0, 0) !important;
19 } 19 }
20 20
21 thead { 21 thead {
22 background: #073781; 22 background: #073781;
23 border-radius: 2px; 23 border-radius: 2px;
24 height: 42px; 24 height: 42px;
25 25
26 & th { 26 & th {
27 //inherit:规定应该从父元素继承 background-color 属性的设置。 27 //inherit:规定应该从父元素继承 background-color 属性的设置。
28 //transparent:默认。背景颜色为透明。 28 //transparent:默认。背景颜色为透明。
29 // background-color: inherit !important; 29 // background-color: inherit !important;
30 background-color: transparent; 30 background-color: transparent;
31 color: #02D9FD; 31 color: #02D9FD;
32 } 32 }
33 33
34 & tr { 34 & tr {
35 // background-color: inherit !important; 35 // background-color: inherit !important;
36 background-color: transparent; 36 background-color: transparent;
37 } 37 }
38 }
39 } 38 }
39 }
40 } 40 }
41 41
42 //*****start*通用表单查询条件,列表样式******// 42 //*****start*通用表单查询条件,列表样式******//
43 .bgc {
44 box-shadow: inset 0px 0px 8px 0px rgba(255, 255, 255, 0.5);
45 background-color: rgba(0, 0, 0, 0);
46 }
47
43 .from-clues { 48 .from-clues {
44 height: 100%; 49 height: 100%;
50 width: 100%;
51 // min-width: 1280px;
52 box-sizing: border-box;
53 overflow-x: hidden;
54 padding: 2px;
55
56 &-header {
45 width: 100%; 57 width: 100%;
46 min-width: 1280px; 58 padding: 5px 30px 20px 24px;
47 box-sizing: border-box; 59 box-sizing: border-box;
48 overflow-x: hidden; 60 background: url("~@/image/formHeader.png") no-repeat;
49 padding: 2px; 61 background-size: 100% 100%;
50 62 margin-top: 15px;
51 &-header {
52 width: 100%;
53 padding: 5px 30px 20px 24px;
54 box-sizing: border-box;
55 background: url("~@/image/formHeader.png") no-repeat;
56 background-size: 100% 100%;
57 margin-top: 15px;
58
59 /deep/.el-form-item__label {
60 color: #E3F1FF;
61 }
62 63
63 /deep/.el-input__inner { 64 .el-form-item__label {
64 background: #07388B; 65 color: #E3F1FF;
65 border-radius: 2px;
66 color: #CEF8FF;
67 border: 1px solid #6BC1FC;
68 }
69 } 66 }
70 67
71 .advanced-search { 68 .el-input__inner {
72 display: flex; 69 background: #07388B;
73 font-size: 12px; 70 border-radius: 2px;
74 flex-wrap: wrap; 71 color: #CEF8FF;
75 padding-top: 5px; 72 border: 1px solid #6BC1FC;
76 height: 30px; 73 }
77 74 }
78 span { 75
79 display: flex; 76 .advanced-search {
80 align-items: center; 77 display: flex;
81 } 78 font-size: 12px;
82 79 flex-wrap: wrap;
83 i { 80 padding-top: 5px;
84 color: $light-blue; 81 height: 30px;
85 margin-left: 5px; 82
86 cursor: pointer; 83 span {
87 } 84 display: flex;
85 align-items: center;
86 }
88 87
89 ul { 88 i {
90 display: flex; 89 color: $light-blue;
91 align-items: center; 90 margin-left: 5px;
92 91 cursor: pointer;
93 li { 92 }
94 color: $light-blue;
95 border: 1px solid $light-blue;
96 border-radius: 10px;
97 padding: 2px 8px;
98 line-height: 16px;
99 }
100 }
101 93
102 .clean-btn { 94 ul {
103 margin-left: 10px; 95 display: flex;
104 } 96 align-items: center;
97
98 li {
99 color: $light-blue;
100 border: 1px solid $light-blue;
101 border-radius: 10px;
102 padding: 2px 8px;
103 line-height: 16px;
104 }
105 } 105 }
106 106
107 &-content { 107 .clean-btn {
108 width: 100%; 108 margin-left: 10px;
109 box-sizing: border-box; 109 }
110 margin-top: 15px; 110 }
111 background: url("~@/image/formContent.png") no-repeat;
112 background-size: 100% 100%;
113 padding: 22px 42px 20px;
114 //修改表头的背景颜色横向渐变色
115 @extend .tableClass;
116 111
117 /deep/.el-pagination__total { 112 &-content {
118 color: #FFFFFF; 113 width: 100%;
119 } 114 box-sizing: border-box;
115 margin-top: 15px;
116 background: url("~@/image/formContent.png") no-repeat;
117 background-size: 100% 100%;
118 padding: 22px 42px 20px;
119 //修改表头的背景颜色横向渐变色
120 @extend .tableClass;
121
122 .el-pagination__total {
123 color: #FFFFFF;
124 }
120 125
121 .bgc { 126 .el-pagination {
122 box-shadow: inset 0px 0px 8px 0px rgba(255, 255, 255, 0.5); 127 .el-input__inner {
123 background-color: rgba(0, 0, 0, 0); 128 color: #FFFFFF;
124 } 129 border: none;
130 @extend .bgc;
131 }
132
133 .el-pager li:not(.disabled).active {
134 box-shadow: inset 0px 0px 12px 0px #02D9FD;
135 border-radius: 1px;
136 border: 1px solid #02D9FD;
137 background-color: rgba(0, 0, 0, 0);
138 }
125 139
126 /deep/ .el-pagination { 140 .el-pager li {
127 .el-input__inner { 141 @extend .bgc;
128 color: #FFFFFF; 142 color: #FFFFFF;
129 border: none; 143 }
130 @extend .bgc; 144 }
131 } 145 }
132
133 .el-pager li:not(.disabled).active {
134 box-shadow: inset 0px 0px 12px 0px #02D9FD;
135 border-radius: 1px;
136 border: 1px solid #02D9FD;
137 background-color: rgba(0, 0, 0, 0);
138 }
139
140 .el-pager li {
141 @extend .bgc;
142 color: #FFFFFF;
143 }
144 }
145 146
146 /deep/.btn-next,
147 /deep/.btn-prev {
148 @extend .bgc;
149 color: #FFFFFF;
150 }
151 147
152 }
153 148
154 .el-form--inline .el-form-item { 149 .el-form--inline .el-form-item {
155 width: auto; 150 width: auto;
156 margin-right: 0px; 151 margin-right: 0px;
157 152
158 .el-form-item__content { 153 .el-form-item__content {
159 width: auto; 154 width: auto;
160 }
161 } 155 }
156 }
162 157
163 158
164 159
165 .el-form-item--small.el-form-item { 160 .el-form-item--small.el-form-item {
166 margin-bottom: 0px; 161 margin-bottom: 0px;
167 } 162 }
168 } 163 }
169 164
165 .el-pagination.is-background .btn-prev,
166 .el-pagination.is-background .btn-next {
167 @extend .bgc;
168 color: #FFFFFF;
169 }
170 170
171 171
172 //*****end*通用表单查询条件,列表样式******// 172 //*****end*通用表单查询条件,列表样式******//
173 /deep/.el-range-separator { 173 .el-range-separator {
174 line-height: 28px !important; 174 line-height: 28px !important;
175 } 175 }
176 176
177 .width200px { 177 .width200px {
178 width: 200px; 178 width: 200px;
179 } 179 }
180 180
181 .width300px { 181 .width300px {
182 width: 300px; 182 width: 300px;
183 } 183 }
184 184
185 185
186 .slxx_title { 186 .slxx_title {
187 border-bottom: 1px solid $borderColor; 187 border-bottom: 1px solid $borderColor;
188 padding-left: 10px; 188 padding-left: 10px;
189 padding-bottom: 5px; 189 padding-bottom: 5px;
190 margin-bottom: 10px; 190 margin-bottom: 10px;
191 margin-top: 5px; 191 margin-top: 5px;
192 font-size: 16px; 192 font-size: 16px;
193 font-weight: 500; 193 font-weight: 500;
194 color: #4a4a4a; 194 color: #4a4a4a;
195 } 195 }
196 196
197 // 搜索框按钮的位置 197 // 搜索框按钮的位置
198 .btnColRight { 198 .btnColRight {
199 box-sizing: border-box; 199 box-sizing: border-box;
200 text-align: right; 200 text-align: right;
201 }
202
203 // 修改弹框样式
204 .modifydialog {
205 .el-dialog__header {
206 text-align: center;
207 margin-bottom: 10px;
208
209 .el-dialog__title {
210 color: white;
211 }
212 }
213
214 .el-form-item__label {
215 color: white;
216 }
217
218 .el-input__inner {
219 background-color: #07388b;
220 }
221
222 .el-input__inner {
223 background: #07388b;
224 border-radius: 2px;
225 border: 1px solid #6bc1fc;
226 }
227
228 .el-textarea__inner {
229 background: #07388b;
230 color: #fff;
231 }
232
233 .el-form-item__label {
234 color: #fff;
235 }
236
237 .el-dialog__headerbtn {
238 position: absolute;
239 top: 22px;
240 right: 30px;
241 }
242
243 .el-dialog__header {
244 text-align: center;
245 margin-bottom: 10px;
246
247 .el-dialog__title {
248 color: white;
249 }
250 }
251 }
252
253 // 角色配置
254 .roleconfiguration {
255 .el-dialog__body {
256 display: flex;
257 flex-direction: column;
258 }
259
260 .el-tabs {
261 color: #cef8ff;
262 }
263
264 .sjmx {
265 .el-tabs__item {
266 height: 50px;
267 padding-top: 6px;
268 }
269 }
270
271 .el-tabs__item {
272 color: #cef8ff !important;
273
274 display: flex;
275 flex-direction: row;
276 justify-content: center;
277 background: url("~@/image/tabitem.png") no-repeat;
278 background-size: 100% 100%;
279 border: none !important;
280 }
281
282 .obligee-item-name {
283 background: #05275b;
284 color: #ffffff;
285 background: url("~@/image/itembg.png") no-repeat;
286 background-size: 100% 100%;
287 }
288
289 .el-tabs__nav-scroll {
290 background: none;
291 }
292
293 .el-tabs__nav {
294 display: flex;
295 border: none !important;
296 }
297
298 .el-tabs__item.is-top {
299 border: 1px solid #dfe4ed;
300 border-top: 1px solid #dfe4ed;
301 border-bottom: 1px solid transparent;
302 }
303
304 .el-tabs__header {
305 border: none;
306 margin-bottom: 0;
307 }
308
309 .el-tabs__item.is-top:not(:last-child) {
310 margin-right: 5px;
311 }
312
313 .el-tabs__item.is-top {
314 background-color: none !important;
315 }
316
317 .el-tabs__item.is-active {
318 background: url("~@/image/tabitemse.png") no-repeat;
319 background-size: 100% 100%;
320 }
321
322 .success-images {
323 width: 30px;
324 height: 30px;
325 position: relative;
326 top: 10px;
327 right: 3px;
328 }
329
330 .tab-pane-item {
331 line-height: 20px;
332 color: #02d9fd;
333
334 p {
335 text-align: center;
336 }
337 }
338
339 .edit-content {
340 overflow-y: auto;
341 overflow-x: hidden;
342 padding-right: 1px;
343 margin-bottom: 10px;
344 border-top: none;
345 }
346
347 .editDialogBox {
348 border-radius: 8px;
349 overflow: hidden;
350 min-width: 1228px;
351 height: 825px !important;
352
353 .dialog-from {
354 padding: 13px;
355 border-radius: 2px;
356 box-sizing: border-box;
357
358 .el-row {
359 display: flex;
360 flex-wrap: nowrap;
361 }
362
363 .el-col {
364 line-height: 18px;
365 display: flex;
366 align-items: center;
367 margin-bottom: 3px;
368 color: #b5d6dc;
369 border-radius: 2px;
370 border: 1px solid #224c7c;
371 margin: 5px;
372
373 span {
374 display: inline-block;
375 padding: 3px;
376 border-radius: 3px;
377 overflow: hidden;
378 white-space: nowrap;
379 text-align: left;
380 color: #02d9fd;
381 }
382
383 p {
384 flex: 1;
385 width: 100%;
386 padding-left: 5px;
387 line-height: 20px;
388 color: #c0c4cc;
389 cursor: not-allowed;
390 white-space: nowrap;
391 margin-right: 5px;
392 text-align: right;
393 }
394 }
395 }
396
397 .dialog_title {
398 display: flex;
399 position: relative;
400 font-size: 24px;
401 top: -8px;
402 width: 38%;
403 height: 40px;
404 margin-left: 28px;
405 justify-content: center;
406 }
407
408 .el-dialog__header {
409 display: flex;
410 margin-bottom: 10px;
411 }
412
413 .el-dialog__footer {
414 padding-right: 40px;
415 }
416
417 .divider {
418 width: 100%;
419 border-bottom: 1px solid #ccc;
420 }
421 }
422
423 .el-dialog__wrapper {
424 overflow: hidden;
425 }
426
427 .el-table {
428 background: none;
429
430 th.el-table__cell {
431 background-color: #073781;
432 color: #02d9fd;
433 }
434
435 tr {
436 background: none;
437
438 td {
439 color: white;
440 }
441 }
442 }
201 } 443 }
...\ No newline at end of file ...\ No newline at end of file
......
1 .scWrapper {
2 .main-container {
3 width: 100%;
4 height: calc(100% - 74px);
5 transition: margin-left 0.28s;
6 display: flex;
7 }
8
9 .sidebar-container {
10 transition: width 0.28s;
11 width: $sideBarWidth !important;
12 font-size: 0px;
13 margin-right: 15px;
14 background: #121F41;
15
16 .horizontal-collapse-transition {
17 transition: 0s width ease-in-out, 0s padding-left ease-in-out,
18 0s padding-right ease-in-out;
19 }
20
21 .scrollbar-wrapper {
22 overflow-x: hidden !important;
23 margin-right: 0 !important;
24
25 &::-webkit-scrollbar {
26 display: none;
27 }
28 }
29
30 a {
31 display: inline-block;
32 width: 100%;
33 overflow: hidden;
34 }
35
36 .svg-icon {
37 margin-right: 5px;
38 }
39
40 .sub-el-icon {
41 margin-right: 12px;
42 margin-left: -2px;
43 }
44
45 .el-menu {
46 background-color: transparent !important;
47 border: none;
48 height: 100%;
49 width: 100% !important;
50 }
51
52 // menu hover
53 .el-menu--collapse .el-submenu__title,
54 .el-menu--collapse .submenu-title-noDropdown {
55 margin-left: 0px !important;
56 }
57
58 // 有子级
59 .el-submenu__title {
60 padding-left: 10px !important;
61 color: $menuText;
62 height: 42px;
63 background: linear-gradient(90deg, #013874 0%, #081B56 100%);
64 margin-bottom: 8px;
65
66 &:hover {
67 color: $subMenuActiveText !important;
68 background: linear-gradient(90deg, #1D66DC 0%, #081B56 100%);
69
70 .svg-icon,
71 i,
72 span {
73 color: $subMenuActiveText !important;
74 }
75 }
76 }
77
78 // 没有子级
79 .submenu-title-noDropdown {
80 color: $menuText;
81 padding-left: 20px;
82 margin-bottom: 8px;
83 background: linear-gradient(90deg, #013874 0%, #081B56 100%);
84
85 &:hover {
86 color: $menuActiveText !important;
87 background: linear-gradient(90deg, #1D66DC 0%, #081B56 100%);
88
89 .svg-icon {
90 color: #1ea6f8 !important;
91 }
92
93 i {
94 color: #1ea6f8 !important;
95 }
96 }
97 }
98
99 .submenu-title-noDropdown.is-active,
100 .el-submenu__title.is-active {
101 color: $menuActiveText;
102 background: linear-gradient(90deg, #1D66DC 0%, #081B56 100%);
103
104 .svg-icon {
105 color: #1ea6f8 !important;
106 }
107
108 i {
109 color: #1ea6f8 !important;
110 }
111 }
112
113 .submenu-title-noDropdown,
114 .el-submenu__title {
115 font-weight: 600;
116 font-size: $sideBarFontSize;
117
118 // margin: 0 10px;
119 >i {
120 color: $subMenuActiveText !important;
121 transform: rotate(90deg);
122 -webkit-transform: rotate(90deg);
123 -moz-transform: rotate(90deg);
124 -ms-transform: rotate(90deg);
125 -o-transform: rotate(90deg);
126 margin-right: 10px;
127 }
128
129 .svg-icon {
130 font-size: 18px;
131 margin-top: -5px;
132 }
133 }
134
135 .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow {
136 transform: rotateZ(0deg) !important;
137 -webkit-transform: rotateZ(0deg) !important;
138 -moz-transform: rotateZ(0deg) !important;
139 -ms-transform: rotateZ(0deg) !important;
140 -o-transform: rotateZ(0deg) !important;
141 }
142
143 .is-active>.el-submenu__title {
144 color: #fff !important;
145 }
146
147 & .nest-menu .el-submenu>.el-submenu__title,
148 & .el-submenu .el-menu-item {
149 &.is-active {
150 background-color: $subMenuHover !important;
151 color: $menuActiveText !important;
152 }
153
154 &:hover {
155 background-color: $subMenuHover !important;
156 color: $menuActiveText !important;
157 }
158
159 min-width: 130px !important;
160 background-color: transparent !important;
161 font-weight: 600;
162 font-size: $sideBarFontSize;
163 margin: 0 10px;
164 // border-radius: 6px;
165 }
166 }
167
168 .hideSidebar {
169 .sidebar-container {
170 width: 54px !important;
171 }
172
173 .submenu-title-noDropdown {
174 padding: 0 !important;
175 position: relative;
176
177 .el-tooltip {
178 padding: 0 !important;
179
180 .svg-icon {
181 margin-left: 16px;
182 }
183
184 .sub-el-icon {
185 margin-left: 19px;
186 }
187 }
188 }
189
190 .el-submenu {
191 overflow: hidden;
192
193 &>.el-submenu__title {
194 padding: 0 !important;
195
196 .svg-icon {
197 margin-left: 16px;
198 }
199
200 .sub-el-icon {
201 margin-left: 19px;
202 }
203
204 .el-submenu__icon-arrow {
205 display: none;
206 }
207 }
208 }
209
210 .el-menu--collapse {
211 .el-submenu {
212 &>.el-submenu__title {
213 &>span {
214 height: 0;
215 width: 0;
216 overflow: hidden;
217 visibility: hidden;
218 display: inline-block;
219 }
220 }
221 }
222 }
223 }
224
225 .el-menu--collapse .el-menu .el-submenu {
226 min-width: $sideBarWidth !important;
227 }
228
229 // mobile responsive
230 .mobile {
231 .main-container {
232 margin-left: 0px;
233 }
234
235 .sidebar-container {
236 transition: transform 0.28s;
237 width: $sideBarWidth !important;
238 }
239
240 &.hideSidebar {
241 .sidebar-container {
242 pointer-events: none;
243 transition-duration: 0.3s;
244 transform: translate3d(-$sideBarWidth, 0, 0);
245 }
246 }
247 }
248
249 .withoutAnimation {
250
251 .main-container,
252 .sidebar-container {
253 transition: none;
254 }
255 }
256 }
257
258 // when menu collapsed
259 .el-menu--vertical {
260 &>.el-menu {
261 .svg-icon {
262 margin-right: 16px;
263 }
264
265 .sub-el-icon {
266 margin-right: 12px;
267 margin-left: -2px;
268 }
269 }
270
271 .nest-menu .el-submenu>.el-submenu__title,
272 .el-menu-item {
273 width: calc(100% - 12px);
274 border-top-right-radius: 8px;
275 border-bottom-right-radius: 8px;
276 font-weight: 600 !important;
277 font-size: 15px !important;
278 background-color: $menuHover !important;
279 color: $menuText !important;
280
281 &:hover {
282 background-color: $menuHover !important;
283 opacity: .9;
284
285 .svg-icon,
286 i,
287 span {
288 color: $menuText;
289 }
290 }
291 }
292
293 // the scroll bar appears when the subMenu is too long
294 >.el-menu--popup {
295 max-height: 100vh;
296 overflow-y: auto;
297 background-color: #32ACFE !important;
298 border-top-right-radius: 8px;
299 border-bottom-right-radius: 8px;
300 min-width: 140px;
301 padding: 12px 0;
302
303 &::-webkit-scrollbar-track-piece {
304 background: #d3dce6;
305 }
306
307 &::-webkit-scrollbar {
308 width: 6px;
309 }
310
311 &::-webkit-scrollbar-thumb {
312 background: #99a9bf;
313 border-radius: 20px;
314 }
315 }
316 }
317
318 .el-submenu__title {
319 display: flex;
320 align-items: center;
321 }
322
323 .el-submenu__title span {
324 white-space: normal;
325 word-break: break-all;
326 line-height: 20px;
327 flex: 1;
328 padding-right: 20px;
329 }
330
331 .el-menu-item {
332 height: 42px;
333 display: flex;
334 align-items: center;
335 padding-right: 20px !important;
336 }
337
338 .el-menu-item span {
339 white-space: nowrap !important;
340 word-break: break-all;
341 line-height: 20px;
342 flex: 1;
343 }
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-07 09:35:10
5 */
1 import Layout from '@/layout' 6 import Layout from '@/layout'
2 export default function filterAsyncRouter (routers) { 7 export default function filterAsyncRouter (routers) {
3 routers.forEach(item => { 8 routers.forEach(item => {
...@@ -21,4 +26,4 @@ export default function filterAsyncRouter (routers) { ...@@ -21,4 +26,4 @@ export default function filterAsyncRouter (routers) {
21 } 26 }
22 function loadView (view) { 27 function loadView (view) {
23 return r => require.ensure([], () => r(require(`@/views${view}.vue`))) 28 return r => require.ensure([], () => r(require(`@/views${view}.vue`)))
24 }
...\ No newline at end of file ...\ No newline at end of file
29 }
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:11:50
5 */
1 /** 6 /**
2 * 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器 7 * 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器
3 */ 8 */
...@@ -57,17 +62,17 @@ service.interceptors.response.use( ...@@ -57,17 +62,17 @@ service.interceptors.response.use(
57 } 62 }
58 ); 63 );
59 //对错误信息的处理函数 64 //对错误信息的处理函数
60 function handleErrorData(status) { 65 function handleErrorData (status) {
61 switch (status) { 66 switch (status) {
62 case 401: 67 // case 401:
63 Message.error("由于长时间未操作,请重新登录!"); 68 // Message.error("由于长时间未操作,请重新登录!");
64 router.replace({ 69 // router.replace({
65 path: "/login", 70 // path: "/login/jg",
66 query: { 71 // query: {
67 redirect: router.history.current.fullPath, 72 // redirect: router.history.current.fullPath,
68 }, 73 // },
69 }); 74 // });
70 break; 75 // break;
71 case 403: 76 case 403:
72 Message.error("拒绝访问"); 77 Message.error("拒绝访问");
73 break; 78 break;
......
1 import Vue from 'vue' 1 import Vue from 'vue'
2 2
3 // 下载,导出 3 // 下载,导出
4 Vue.prototype.$download = function(name, href) { 4 Vue.prototype.$download = function (name, href) {
5 var a = document.createElement('a') // 创建a标签 5 var a = document.createElement('a') // 创建a标签
6 var e = document.createEvent('MouseEvents') // 创建鼠标事件对象 6 var e = document.createEvent('MouseEvents') // 创建鼠标事件对象
7 e.initEvent('click', false, false) // 初始化事件对象 7 e.initEvent('click', false, false) // 初始化事件对象
...@@ -10,7 +10,7 @@ Vue.prototype.$download = function(name, href) { ...@@ -10,7 +10,7 @@ Vue.prototype.$download = function(name, href) {
10 a.dispatchEvent(e) // 给指定的元素,执行事件click事件 10 a.dispatchEvent(e) // 给指定的元素,执行事件click事件
11 } 11 }
12 // 导出json文件 12 // 导出json文件
13 Vue.prototype.$downloadJson = function(data, name) { 13 Vue.prototype.$downloadJson = function (data, name) {
14 // 1 生成文件的 blob 对象 14 // 1 生成文件的 blob 对象
15 const blobData = new Blob([JSON.stringify(data)], { 15 const blobData = new Blob([JSON.stringify(data)], {
16 type: 'application/octet-stream' 16 type: 'application/octet-stream'
...@@ -84,7 +84,7 @@ const checkCode = (rule, value, callback) => { ...@@ -84,7 +84,7 @@ const checkCode = (rule, value, callback) => {
84 // } 84 // }
85 // } 85 // }
86 // 日期格式转换 "yyyy-MM-dd HH:mm:ss" 86 // 日期格式转换 "yyyy-MM-dd HH:mm:ss"
87 Vue.prototype.$formdate = function(date) { 87 Vue.prototype.$formdate = function (date) {
88 if (!date) { 88 if (!date) {
89 return "" 89 return ""
90 } 90 }
...@@ -95,22 +95,22 @@ Vue.prototype.$formdate = function(date) { ...@@ -95,22 +95,22 @@ Vue.prototype.$formdate = function(date) {
95 var hh = (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) + ':'; 95 var hh = (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) + ':';
96 var mm = (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()) + ':'; 96 var mm = (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()) + ':';
97 var ss = (d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds()); 97 var ss = (d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds());
98 return YY + MM + DD +" "+hh + mm + ss 98 return YY + MM + DD + " " + hh + mm + ss
99 } 99 }
100 // 时间格式过滤 100 // 时间格式过滤
101 Vue.filter('timeFilter', function(timeStr) { 101 Vue.filter('timeFilter', function (timeStr) {
102 if (timeStr) { 102 if (timeStr) {
103 return timeStr.substring(0, 10) 103 return timeStr.substring(0, 10)
104 } 104 }
105 }) 105 })
106 export function getType(o) { 106 export function getType (o) {
107 return Object.prototype.toString.call(o).slice(8, -1) 107 return Object.prototype.toString.call(o).slice(8, -1)
108 } 108 }
109 export function isKeyType(o, type) { 109 export function isKeyType (o, type) {
110 return getType(o).toLowerCase() === type.toLowerCase() 110 return getType(o).toLowerCase() === type.toLowerCase()
111 } 111 }
112 // 深拷贝全局挂载 112 // 深拷贝全局挂载
113 Vue.prototype.$deepCopy = function(sth) { 113 Vue.prototype.$deepCopy = function (sth) {
114 // 深度复制数组 114 // 深度复制数组
115 // if (Object.prototype.toString.call(obj) === "[object Array]") { 115 // if (Object.prototype.toString.call(obj) === "[object Array]") {
116 // const object = []; 116 // const object = [];
...@@ -196,7 +196,7 @@ Vue.prototype.$dealArrNotDisabled = arr => { ...@@ -196,7 +196,7 @@ Vue.prototype.$dealArrNotDisabled = arr => {
196 } 196 }
197 } 197 }
198 } 198 }
199 function nodeDeal(arr) { 199 function nodeDeal (arr) {
200 arr.forEach(item => { 200 arr.forEach(item => {
201 delete item.disabled 201 delete item.disabled
202 if (item.children) { 202 if (item.children) {
...@@ -222,7 +222,7 @@ Vue.prototype.$dealArrDisabled = (arr, id) => { ...@@ -222,7 +222,7 @@ Vue.prototype.$dealArrDisabled = (arr, id) => {
222 } 222 }
223 } 223 }
224 } 224 }
225 function nodeDeal(arr) { 225 function nodeDeal (arr) {
226 arr.forEach(item => { 226 arr.forEach(item => {
227 item['disabled'] = true 227 item['disabled'] = true
228 if (item.children) { 228 if (item.children) {
...@@ -249,10 +249,9 @@ Vue.prototype.$getNodeRoute = (val, id) => { ...@@ -249,10 +249,9 @@ Vue.prototype.$getNodeRoute = (val, id) => {
249 } 249 }
250 } 250 }
251 }) 251 })
252 function nodefun(newVal, newId, newCid_list) { 252 function nodefun (newVal, newId, newCid_list) {
253 let flag = false 253 let flag = false
254 newVal.forEach(j => { 254 newVal.forEach(j => {
255 // console.log(j)
256 if (j.id === newId) { 255 if (j.id === newId) {
257 newCid_list.push(j.id) 256 newCid_list.push(j.id)
258 flag = true 257 flag = true
...@@ -272,7 +271,7 @@ Vue.prototype.$getNodeRoute = (val, id) => { ...@@ -272,7 +271,7 @@ Vue.prototype.$getNodeRoute = (val, id) => {
272 return newCid_list 271 return newCid_list
273 } 272 }
274 } 273 }
275 function result(cid_list) { 274 function result (cid_list) {
276 const arr = cid_list.concat() 275 const arr = cid_list.concat()
277 arr.pop() 276 arr.pop()
278 return arr 277 return arr
...@@ -325,7 +324,7 @@ Vue.prototype.$findParent = (list, id) => { ...@@ -325,7 +324,7 @@ Vue.prototype.$findParent = (list, id) => {
325 Vue.prototype.$findChildren = (list, nodeId) => { 324 Vue.prototype.$findChildren = (list, nodeId) => {
326 let newArray = [] 325 let newArray = []
327 let flag = false 326 let flag = false
328 function dealList(list, nodeId) { 327 function dealList (list, nodeId) {
329 if (list.length !== 0) { 328 if (list.length !== 0) {
330 list.forEach(item => { 329 list.forEach(item => {
331 if (!flag) { 330 if (!flag) {
......
1 1
2 import XLSX2 from "xlsx";
3 import XLSX from "xlsx-style";
2 /** 4 /**
3 * 获取数据类型 5 * 获取数据类型
4 * @param {All} [o] 需要检测的数据 6 * @param {All} [o] 需要检测的数据
5 * @returns {String} 7 * @returns {String}
6 */ 8 */
7 export function getType(o) { 9 export function getType (o) {
8 return Object.prototype.toString.call(o).slice(8, -1); 10 return Object.prototype.toString.call(o).slice(8, -1);
9 } 11 }
10 /** 12 /**
...@@ -13,10 +15,10 @@ export function getType(o) { ...@@ -13,10 +15,10 @@ export function getType(o) {
13 * @param {String} [type] 数据类型 15 * @param {String} [type] 数据类型
14 * @returns {Boolean} 16 * @returns {Boolean}
15 */ 17 */
16 export function isKeyType(o, type) { 18 export function isKeyType (o, type) {
17 return getType(o).toLowerCase() === type.toLowerCase(); 19 return getType(o).toLowerCase() === type.toLowerCase();
18 } 20 }
19 export function deepCopy(sth) { 21 export function deepCopy (sth) {
20 let copy; 22 let copy;
21 if (null == sth || "object" != typeof sth) return sth; 23 if (null == sth || "object" != typeof sth) return sth;
22 if (isKeyType(sth, 'date')) { 24 if (isKeyType(sth, 'date')) {
...@@ -47,7 +49,7 @@ export function deepCopy(sth) { ...@@ -47,7 +49,7 @@ export function deepCopy(sth) {
47 * @param endLen 字符串后面保留位数 49 * @param endLen 字符串后面保留位数
48 * @returns {string} 50 * @returns {string}
49 */ 51 */
50 export function hideCode(str, frontLen, endLen = 0) { 52 export function hideCode (str, frontLen, endLen = 0) {
51 var len = str.length - frontLen - endLen; 53 var len = str.length - frontLen - endLen;
52 var xing = ''; 54 var xing = '';
53 for (var i = 0; i < len; i++) { 55 for (var i = 0; i < len; i++) {
...@@ -57,7 +59,7 @@ export function hideCode(str, frontLen, endLen = 0) { ...@@ -57,7 +59,7 @@ export function hideCode(str, frontLen, endLen = 0) {
57 }; 59 };
58 // 数组去重 60 // 数组去重
59 61
60 export function unique(arr) { 62 export function unique (arr) {
61 var obj = {}; 63 var obj = {};
62 return arr.filter(function (item, index, arr) { 64 return arr.filter(function (item, index, arr) {
63 return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true) 65 return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
...@@ -65,7 +67,7 @@ export function unique(arr) { ...@@ -65,7 +67,7 @@ export function unique(arr) {
65 } 67 }
66 // 创造id 68 // 创造id
67 69
68 export function getUuid(len, radix) { 70 export function getUuid (len, radix) {
69 var chars = "0123456789abcdefghijklmnopqrstuvwxyz".split( 71 var chars = "0123456789abcdefghijklmnopqrstuvwxyz".split(
70 "" 72 ""
71 ); 73 );
...@@ -89,7 +91,7 @@ export function getUuid(len, radix) { ...@@ -89,7 +91,7 @@ export function getUuid(len, radix) {
89 } 91 }
90 92
91 //js计算两个时间戳之间的时间差 (月) 93 //js计算两个时间戳之间的时间差 (月)
92 export function intervalTime(startTime, endTime) { 94 export function intervalTime (startTime, endTime) {
93 // var timestamp=new Date().getTime(); //计算当前时间戳 95 // var timestamp=new Date().getTime(); //计算当前时间戳
94 var timestamp = (Date.parse(new Date())) / 1000;//计算当前时间戳 (毫秒级) 96 var timestamp = (Date.parse(new Date())) / 1000;//计算当前时间戳 (毫秒级)
95 var date1 = ""; //开始时间 97 var date1 = ""; //开始时间
...@@ -107,16 +109,184 @@ export function intervalTime(startTime, endTime) { ...@@ -107,16 +109,184 @@ export function intervalTime(startTime, endTime) {
107 return mon 109 return mon
108 } 110 }
109 // 日期转时间戳 111 // 日期转时间戳
110 export function js_strto_time(str_time) { 112 export function js_strto_time (str_time) {
111 var str = str_time.replace(/-/g, '/') // 将-替换成/,因为下面这个构造函数只支持/分隔的日期字符串 113 var str = str_time.replace(/-/g, '/') // 将-替换成/,因为下面这个构造函数只支持/分隔的日期字符串
112 var date = new Date(str) // 构造一个日期型数据,值为传入的字符串 114 var date = new Date(str) // 构造一个日期型数据,值为传入的字符串
113 return date.getTime() 115 return date.getTime()
114 } 116 }
115 // 时间戳转日期 117 // 时间戳转日期
116 export function timestampToTime(timestamp) { 118 export function timestampToTime (timestamp) {
117 var date = new Date(timestamp)//时间戳为10位需*1000,时间戳为13位的话不需乘1000 119 var date = new Date(timestamp)//时间戳为10位需*1000,时间戳为13位的话不需乘1000
118 var Y = date.getFullYear() + '-' 120 var Y = date.getFullYear() + '-'
119 var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-' 121 var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
120 var D = date.getDate() > 10 ? date.getDate() : '0' + date.getDate() 122 var D = date.getDate() > 10 ? date.getDate() : '0' + date.getDate()
121 return Y + M + D 123 return Y + M + D
122 }
...\ No newline at end of file ...\ No newline at end of file
124 }
125
126
127 function formatDate (value) {
128 var date = new Date(value);
129 var y = date.getFullYear(),
130 m = date.getMonth() + 1,
131 d = date.getDate()
132 if (m < 10) { m = '0' + m; }
133 if (d < 10) { d = '0' + d; }
134 var t = y + '-' + m + '-' + d
135 return t;
136 }
137
138 export function getCurrentDate (date = 'firstDay') {
139 var now = new Date() // 当前日期
140 var nowYear = now.getFullYear() //当前年
141 var nowMonth = now.getMonth() //当前月 (值为0~11)
142 var d = now.getDate() //当天
143 if (date == 'firstDay') {
144 return formatDate(new Date(nowYear, nowMonth, 1)) // 本月开始时间
145 } else {
146 return formatDate(new Date(nowYear, nowMonth + 1, 0)) // 本月结束时间
147 }
148 }
149
150 export function setExport2Excel (exportName) {
151 /* generate workbook object from table */
152 var wb = XLSX2.utils.table_to_sheet(document.querySelector("#mytable"));//mytable为表格的id名
153 if (!wb['!merges']) {
154 this.$message.warning('无法导出:报表无数据');
155 return
156 }
157 for (var i = 0; i < 11; i++) {
158 wb["!cols"][i] = { wpx: 150 }
159 }
160 // 样式的文档地址
161 // https://www.npmjs.com/package/xlsx-style
162 for (const key in wb) {
163 if (key == 'A1') {
164 wb[key].s = {
165 font: {//字体设置
166 sz: 24,
167 bold: true,
168 },
169 alignment: {//文字居中
170 horizontal: 'center',
171 vertical: 'center',
172 wrapText: 1,
173 indent: 0,
174 wrap_text: true
175 },
176 border: { // 设置边框
177 top: { style: 'thin' },
178 bottom: { style: 'thin' },
179 left: { style: 'thin' },
180 right: { style: 'thin' }
181 }
182 }
183 } else if (key.indexOf('!') === -1) {
184 wb[key].s = {
185 font: {//字体设置
186 sz: 13,
187 bold: false,
188 color: {
189 rgb: '000000'//十六进制,不带#
190 }
191 },
192 alignment: {//文字居中
193 horizontal: 'center',
194 vertical: 'center',
195 wrapText: 1,
196 indent: 0,
197 wrap_text: true
198 },
199 border: { // 设置边框
200 top: { style: 'thin' },
201 bottom: { style: 'thin' },
202 left: { style: 'thin' },
203 right: { style: 'thin' }
204 }
205 }
206 }
207 }
208 var data = addRangeBorder(wb['!merges'], wb) //合并项添加边框
209 var filedata = sheet2blob(data)
210 openDownloadDialog(filedata, exportName + ".xlsx")
211 }
212 //为合并项添加边框
213 function addRangeBorder (range, ws) {
214 let arr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
215
216 range.forEach(item => {
217 let startColNumber = Number(item.s.r), endColNumber = Number(item.e.r);
218 let startRowNumber = Number(item.s.c), endRowNumber = Number(item.e.c);
219 console.log(startColNumber);
220 const test = ws[arr[startRowNumber] + (startColNumber + 1)];
221 for (let col = startColNumber; col <= endColNumber; col++) {
222 for (let row = startRowNumber; row <= endRowNumber; row++) {
223 ws[arr[row] + (col + 1)] = test;
224 }
225 }
226 })
227 return ws;
228 }
229 //将一个sheet转成最终的excel文件的blob对象,然后利用URL.createObjectURL下载
230 function sheet2blob (sheet, sheetName) {
231 sheetName = sheetName || 'sheet1';
232 var workbook = {
233 SheetNames: [sheetName],
234 Sheets: {}
235 };
236 workbook.Sheets[sheetName] = sheet; // 生成excel的配置项
237
238 var wopts = {
239 bookType: 'xlsx', // 要生成的文件类型
240 bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
241 type: 'binary'
242 };
243 var wbout = XLSX.write(workbook, wopts);
244 var blob = new Blob([s2ab(wbout)], {
245 type: "application/octet-stream"
246 }); // 字符串转ArrayBuffer
247 function s2ab (s) {
248 var buf = new ArrayBuffer(s.length);
249 var view = new Uint8Array(buf);
250 for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
251 return buf;
252 }
253 return blob;
254 }
255 function openDownloadDialog (url, saveName) {
256 if (typeof url == 'object' && url instanceof Blob) {
257 url = URL.createObjectURL(url); // 创建blob地址
258 }
259 var aLink = document.createElement('a');
260 aLink.href = url;
261 aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
262 var event;
263 if (window.MouseEvent) event = new MouseEvent('click');
264 else {
265 event = document.createEvent('MouseEvents');
266 event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
267 }
268 aLink.dispatchEvent(event);
269 }
270
271
272
273
274 export function judgeListComplete (list) {
275 function judgeObjectComplete (obj) {
276 let flag = false
277 for (const key in obj) {
278 if (obj[key] == '' && key != 'index') {
279 flag = true
280 }
281 }
282 return flag
283 }
284 let isNotComplete = list.findIndex(item => {
285 return judgeObjectComplete(item) === true
286 })
287 if (isNotComplete > -1) {
288 return false
289 } else {
290 return true
291 }
292 }
......
...@@ -29,11 +29,13 @@ class data extends filter { ...@@ -29,11 +29,13 @@ class data extends filter {
29 }, 29 },
30 { 30 {
31 label: "业务号", 31 label: "业务号",
32 prop: "ywh" 32 prop: "ywh",
33 minWidth: 150,
33 }, 34 },
34 { 35 {
35 label: "不动产单元号", 36 label: "不动产单元号",
36 prop: "bdcdyh" 37 prop: "bdcdyh",
38 minWidth: 150,
37 }, 39 },
38 // { 40 // {
39 // label: "不动产产权证号", 41 // label: "不动产产权证号",
......
...@@ -120,11 +120,12 @@ export default { ...@@ -120,11 +120,12 @@ export default {
120 return ( 120 return (
121 <div> 121 <div>
122 <el-button 122 <el-button
123 type="primary" 123 type="text"
124 size="mini" 124 class='btnColor'
125 onClick={() => { this.handleEdit(scope.row) }} 125 onClick={() => { this.handleEdit(scope.row) }}
126 > 126 >
127 详情 127 详情
128 <i class="el-icon-d-arrow-right"></i>
128 </el-button> 129 </el-button>
129 </div> 130 </div>
130 ) 131 )
...@@ -161,5 +162,5 @@ export default { ...@@ -161,5 +162,5 @@ export default {
161 } 162 }
162 </script> 163 </script>
163 <style scoped lang="scss"> 164 <style scoped lang="scss">
164 @import "~@/styles/public.scss"; 165 // @import "~@/styles/public.scss";
165 </style> 166 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:22:01
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 class data extends filter { 7 class data extends filter {
3 constructor() { 8 constructor() {
...@@ -34,12 +39,12 @@ class data extends filter { ...@@ -34,12 +39,12 @@ class data extends filter {
34 { 39 {
35 label: "不动产单元号", 40 label: "不动产单元号",
36 prop: "bdcdyh", 41 prop: "bdcdyh",
37 width: 150, 42 minWidth: 150,
38 }, 43 },
39 { 44 {
40 label: "不动产权证号", 45 label: "不动产权证号",
41 prop: "bdcdjzmh", 46 prop: "bdcdjzmh",
42 width: 150, 47 minWidth: 160,
43 }, 48 },
44 { 49 {
45 label: "抵押类型", 50 label: "抵押类型",
......
...@@ -113,11 +113,13 @@ export default { ...@@ -113,11 +113,13 @@ export default {
113 return ( 113 return (
114 <div> 114 <div>
115 <el-button 115 <el-button
116 type="primary" 116 type="text"
117 class='btnColor'
117 size="mini" 118 size="mini"
118 onClick={() => { this.handleEdit(scope.row) }} 119 onClick={() => { this.handleEdit(scope.row) }}
119 > 120 >
120 详情 121 详情
122 <i class="el-icon-d-arrow-right"></i>
121 </el-button> 123 </el-button>
122 </div> 124 </div>
123 ) 125 )
...@@ -152,6 +154,6 @@ export default { ...@@ -152,6 +154,6 @@ export default {
152 </script> 154 </script>
153 <style scoped lang="scss"> 155 <style scoped lang="scss">
154 // 引入表单整体样式 156 // 引入表单整体样式
155 @import "~@/styles/public.scss"; 157 // @import "~@/styles/public.scss";
156 </style> 158 </style>
157 159
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:23:47
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 class data extends filter { 7 class data extends filter {
3 constructor() { 8 constructor() {
...@@ -7,16 +12,18 @@ class data extends filter { ...@@ -7,16 +12,18 @@ class data extends filter {
7 return [ 12 return [
8 { 13 {
9 label: "行政区", 14 label: "行政区",
15 width: 80,
10 render: (h, scope) => { 16 render: (h, scope) => {
11 return ( 17 return (
12 <div> 18 <div>
13 <span>{this.dicStatus(scope.row.xzq, 'A20')}</span> 19 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
14 </div> 20 </div>
15 ) 21 )
16 }, 22 },
17 }, 23 },
18 { 24 {
19 label: "权属状态", 25 label: "权属状态",
26 width: 80,
20 render: (h, scope) => { 27 render: (h, scope) => {
21 return ( 28 return (
22 <div> 29 <div>
...@@ -31,17 +38,18 @@ class data extends filter { ...@@ -31,17 +38,18 @@ class data extends filter {
31 }, 38 },
32 { 39 {
33 label: "供役地不动产单元号", 40 label: "供役地不动产单元号",
34 width: 150, 41 minWidth: 150,
35 prop: "GYDBDCDYH" 42 prop: "GYDBDCDYH"
36 }, 43 },
37 { 44 {
38 label: "需役地不动产单元号", 45 label: "需役地不动产单元号",
39 width: 150, 46 minWidth: 150,
40 prop: "XYDBDCDYH" 47 prop: "XYDBDCDYH"
41 }, 48 },
42 { 49 {
43 label: "不动产产权证号", 50 label: "不动产产权证号",
44 prop: "bdcqzh" 51 prop: "bdcqzh",
52 minWidth: 150,
45 }, 53 },
46 { 54 {
47 label: "权利类型", 55 label: "权利类型",
...@@ -59,11 +67,13 @@ class data extends filter { ...@@ -59,11 +67,13 @@ class data extends filter {
59 }, 67 },
60 { 68 {
61 label: "登记时间", 69 label: "登记时间",
62 prop: "DJSJ" 70 prop: "DJSJ",
71 width: 140,
63 }, 72 },
64 { 73 {
65 label: "登记机构", 74 label: "登记机构",
66 prop: "DJJG" 75 prop: "DJJG",
76 minWidth: 150,
67 } 77 }
68 ] 78 ]
69 } 79 }
......
...@@ -116,16 +116,17 @@ export default { ...@@ -116,16 +116,17 @@ export default {
116 }].concat(data.columns()).concat([ 116 }].concat(data.columns()).concat([
117 { 117 {
118 label: "操作", 118 label: "操作",
119 width: 170, 119 width: 80,
120 render: (h, scope) => { 120 render: (h, scope) => {
121 return ( 121 return (
122 <div> 122 <div>
123 <el-button 123 <el-button
124 type="primary" 124 type="text"
125 size="mini" 125 class='btnColor'
126 onClick={() => { this.handleEdit(scope.row) }} 126 onClick={() => { this.handleEdit(scope.row) }}
127 > 127 >
128 详情 128 详情
129 <i class="el-icon-d-arrow-right"></i>
129 </el-button> 130 </el-button>
130 </div> 131 </div>
131 ) 132 )
...@@ -160,5 +161,5 @@ export default { ...@@ -160,5 +161,5 @@ export default {
160 } 161 }
161 </script> 162 </script>
162 <style scoped lang="scss"> 163 <style scoped lang="scss">
163 @import "~@/styles/public.scss"; 164 // @import "~@/styles/public.scss";
164 </style> 165 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:25:09
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 class data extends filter { 7 class data extends filter {
3 constructor() { 8 constructor() {
...@@ -33,11 +38,13 @@ class data extends filter { ...@@ -33,11 +38,13 @@ class data extends filter {
33 }, 38 },
34 { 39 {
35 label: "不动产单元号", 40 label: "不动产单元号",
36 prop: "bdcdyh" 41 prop: "bdcdyh",
42 minWidth: 150,
37 }, 43 },
38 { 44 {
39 label: "不动产权证号", 45 label: "不动产权证号",
40 prop: "bdcqzh" 46 prop: "bdcqzh",
47 minWidth: 150,
41 }, 48 },
42 { 49 {
43 label: "权利人", 50 label: "权利人",
...@@ -86,7 +93,8 @@ class data extends filter { ...@@ -86,7 +93,8 @@ class data extends filter {
86 }, 93 },
87 { 94 {
88 label: "登记机构", 95 label: "登记机构",
89 prop: "djjg" 96 prop: "djjg",
97 minWidth: 150,
90 } 98 }
91 ] 99 ]
92 } 100 }
......
...@@ -104,17 +104,19 @@ export default { ...@@ -104,17 +104,19 @@ export default {
104 }].concat(data.columns()).concat([ 104 }].concat(data.columns()).concat([
105 { 105 {
106 label: "操作", 106 label: "操作",
107 width: 90, 107 width: 80,
108 render: (h, scope) => { 108 render: (h, scope) => {
109 return ( 109 return (
110 <div> 110 <div>
111 <el-button 111 <el-button
112 type="primary" 112 type="text"
113 class='btnColor'
113 onClick={() => { 114 onClick={() => {
114 this.handleEdit(scope.row); 115 this.handleEdit(scope.row);
115 }} 116 }}
116 > 117 >
117 详情 118 详情
119 <i class="el-icon-d-arrow-right"></i>
118 </el-button> 120 </el-button>
119 </div> 121 </div>
120 ); 122 );
...@@ -169,5 +171,5 @@ export default { ...@@ -169,5 +171,5 @@ export default {
169 } 171 }
170 </script> 172 </script>
171 <style scoped lang="scss"> 173 <style scoped lang="scss">
172 @import "~@/styles/public.scss"; 174 // @import "~@/styles/public.scss";
173 </style> 175 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:25:56
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 class data extends filter { 7 class data extends filter {
3 constructor() { 8 constructor() {
...@@ -8,7 +13,7 @@ class data extends filter { ...@@ -8,7 +13,7 @@ class data extends filter {
8 { 13 {
9 label: "业务号", 14 label: "业务号",
10 prop: "ywh", 15 prop: "ywh",
11 width: 150 16 minWidth: 150,
12 }, 17 },
13 // { 18 // {
14 // label: "权利类型", 19 // label: "权利类型",
......
...@@ -77,12 +77,14 @@ export default { ...@@ -77,12 +77,14 @@ export default {
77 return ( 77 return (
78 <div> 78 <div>
79 <el-button 79 <el-button
80 type="primary" 80 type="text"
81 class='btnColor'
81 onClick={() => { 82 onClick={() => {
82 this.handleEdit(scope.row); 83 this.handleEdit(scope.row);
83 }} 84 }}
84 > 85 >
85 详情 86 详情
87 <i class="el-icon-d-arrow-right"></i>
86 </el-button> 88 </el-button>
87 </div> 89 </div>
88 ); 90 );
...@@ -135,5 +137,5 @@ export default { ...@@ -135,5 +137,5 @@ export default {
135 } 137 }
136 </script> 138 </script>
137 <style scoped lang="scss"> 139 <style scoped lang="scss">
138 @import "~@/styles/public.scss"; 140 // @import "~@/styles/public.scss";
139 </style> 141 </style>
......
...@@ -34,12 +34,12 @@ class data extends filter { ...@@ -34,12 +34,12 @@ class data extends filter {
34 { 34 {
35 label: "不动产单元号", 35 label: "不动产单元号",
36 prop: "bdcdyh", 36 prop: "bdcdyh",
37 width: 150 37 minWidth: 150,
38 }, 38 },
39 { 39 {
40 label: "不动产权证号", 40 label: "不动产权证号",
41 prop: "bdcqzh", 41 prop: "bdcqzh",
42 width: 150 42 minWidth: 150,
43 }, 43 },
44 { 44 {
45 label: "权利人", 45 label: "权利人",
......
...@@ -109,12 +109,14 @@ export default { ...@@ -109,12 +109,14 @@ export default {
109 return ( 109 return (
110 <div> 110 <div>
111 <el-button 111 <el-button
112 type="primary" 112 type="text"
113 class='btnColor'
113 onClick={() => { 114 onClick={() => {
114 this.handleEdit(scope.row); 115 this.handleEdit(scope.row);
115 }} 116 }}
116 > 117 >
117 详情 118 详情
119 <i class="el-icon-d-arrow-right"></i>
118 </el-button> 120 </el-button>
119 </div> 121 </div>
120 ); 122 );
...@@ -201,5 +203,5 @@ export default { ...@@ -201,5 +203,5 @@ export default {
201 } 203 }
202 </script> 204 </script>
203 <style scoped lang="scss"> 205 <style scoped lang="scss">
204 @import "~@/styles/public.scss"; 206 // @import "~@/styles/public.scss";
205 </style> 207 </style>
......
...@@ -7,6 +7,7 @@ class data extends filter { ...@@ -7,6 +7,7 @@ class data extends filter {
7 return [ 7 return [
8 { 8 {
9 label: "行政区", 9 label: "行政区",
10 width: 80,
10 render: (h, scope) => { 11 render: (h, scope) => {
11 return ( 12 return (
12 <div> 13 <div>
...@@ -28,19 +29,17 @@ class data extends filter { ...@@ -28,19 +29,17 @@ class data extends filter {
28 { 29 {
29 label: "业务号", 30 label: "业务号",
30 prop: "YWH", 31 prop: "YWH",
31 width: 150 32 minWidth: 150,
32 },
33 {
34 label: "业务号",
35 prop: "BDCDYH"
36 }, 33 },
37 { 34 {
38 label: "不动产单元号", 35 label: "不动产单元号",
39 prop: "BDCDYH" 36 prop: "BDCDYH",
37 minWidth: 150,
40 }, 38 },
41 { 39 {
42 label: "不动产权证号", 40 label: "不动产权证号",
43 prop: "BDCQZH" 41 prop: "BDCQZH",
42 minWidth: 150,
44 }, 43 },
45 { 44 {
46 label: "建筑物名称", 45 label: "建筑物名称",
......
...@@ -100,17 +100,19 @@ export default { ...@@ -100,17 +100,19 @@ export default {
100 }].concat(data.columns()).concat([ 100 }].concat(data.columns()).concat([
101 { 101 {
102 label: "操作", 102 label: "操作",
103 width: 170, 103 width: 80,
104 render: (h, scope) => { 104 render: (h, scope) => {
105 return ( 105 return (
106 <div> 106 <div>
107 <el-button 107 <el-button
108 type="primary" 108 type="text"
109 class='btnColor'
109 onClick={() => { 110 onClick={() => {
110 this.handleEdit(scope.row); 111 this.handleEdit(scope.row);
111 }} 112 }}
112 > 113 >
113 详情 114 详情
115 <i class="el-icon-d-arrow-right"></i>
114 </el-button> 116 </el-button>
115 </div> 117 </div>
116 ); 118 );
...@@ -151,5 +153,5 @@ export default { ...@@ -151,5 +153,5 @@ export default {
151 } 153 }
152 </script> 154 </script>
153 <style scoped lang="scss"> 155 <style scoped lang="scss">
154 @import "~@/styles/public.scss"; 156 // @import "~@/styles/public.scss";
155 </style> 157 </style>
......
...@@ -7,10 +7,11 @@ class data extends filter { ...@@ -7,10 +7,11 @@ class data extends filter {
7 return [ 7 return [
8 { 8 {
9 label: "行政区", 9 label: "行政区",
10 width: 80,
10 render: (h, scope) => { 11 render: (h, scope) => {
11 return ( 12 return (
12 <div> 13 <div>
13 <span>{this.dicStatus(scope.row.XZQ, 'A20')}</span> 14 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
14 </div> 15 </div>
15 ) 16 )
16 }, 17 },
...@@ -20,7 +21,7 @@ class data extends filter { ...@@ -20,7 +21,7 @@ class data extends filter {
20 render: (h, scope) => { 21 render: (h, scope) => {
21 return ( 22 return (
22 <div> 23 <div>
23 <span>{this.dicStatus(scope.row.ZXYWH, 'A22')}</span> 24 <span>{this.dicStatus(scope.row.qszt, 'A22')}</span>
24 </div> 25 </div>
25 ) 26 )
26 }, 27 },
...@@ -28,19 +29,17 @@ class data extends filter { ...@@ -28,19 +29,17 @@ class data extends filter {
28 { 29 {
29 label: "业务号", 30 label: "业务号",
30 prop: "YWH", 31 prop: "YWH",
31 width: 150 32 minWidth: 150,
32 },
33 {
34 label: "业务号",
35 prop: "BDCDYH"
36 }, 33 },
37 { 34 {
38 label: "不动产单元号", 35 label: "不动产单元号",
39 prop: "BDCDYH" 36 prop: "BDCDYH",
37 minWidth: 150,
40 }, 38 },
41 { 39 {
42 label: "不动产权证号", 40 label: "不动产权证号",
43 prop: "BDCQZH" 41 prop: "BDCQZH",
42 minWidth: 150,
44 }, 43 },
45 { 44 {
46 label: "海岛名称", 45 label: "海岛名称",
......
...@@ -101,17 +101,19 @@ export default { ...@@ -101,17 +101,19 @@ export default {
101 }].concat(data.columns()).concat([ 101 }].concat(data.columns()).concat([
102 { 102 {
103 label: "操作", 103 label: "操作",
104 width: 170, 104 width: 80,
105 render: (h, scope) => { 105 render: (h, scope) => {
106 return ( 106 return (
107 <div> 107 <div>
108 <el-button 108 <el-button
109 type="primary" 109 type="text"
110 class='btnColor'
110 onClick={() => { 111 onClick={() => {
111 this.handleEdit(scope.row); 112 this.handleEdit(scope.row);
112 }} 113 }}
113 > 114 >
114 详情 115 详情
116 <i class="el-icon-d-arrow-right"></i>
115 </el-button> 117 </el-button>
116 </div> 118 </div>
117 ); 119 );
...@@ -157,6 +159,6 @@ export default { ...@@ -157,6 +159,6 @@ export default {
157 } 159 }
158 </script> 160 </script>
159 <style scoped lang="scss"> 161 <style scoped lang="scss">
160 @import "~@/styles/public.scss"; 162 // @import "~@/styles/public.scss";
161 </style> 163 </style>
162 164
......
...@@ -11,7 +11,7 @@ class data extends filter { ...@@ -11,7 +11,7 @@ class data extends filter {
11 render: (h, scope) => { 11 render: (h, scope) => {
12 return ( 12 return (
13 <div> 13 <div>
14 <span>{this.dicStatus(scope.row.QXDM, 'A20')}</span> 14 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
15 </div> 15 </div>
16 ) 16 )
17 }, 17 },
...@@ -22,7 +22,7 @@ class data extends filter { ...@@ -22,7 +22,7 @@ class data extends filter {
22 render: (h, scope) => { 22 render: (h, scope) => {
23 return ( 23 return (
24 <div> 24 <div>
25 <span>{this.dicStatus(scope.row.QSZT, 'A22')}</span> 25 <span>{this.dicStatus(scope.row.qszt, 'A22')}</span>
26 </div> 26 </div>
27 ) 27 )
28 }, 28 },
...@@ -52,17 +52,17 @@ class data extends filter { ...@@ -52,17 +52,17 @@ class data extends filter {
52 { 52 {
53 label: "业务号", 53 label: "业务号",
54 prop: "YWH", 54 prop: "YWH",
55 width: 95 55 minWidth: 150,
56 }, 56 },
57 { 57 {
58 label: "不动产单元号", 58 label: "不动产单元号",
59 prop: "BDCDYH", 59 prop: "BDCDYH",
60 width: 150, 60 minWidth: 150,
61 }, 61 },
62 { 62 {
63 label: "不动产权证号", 63 label: "不动产权证号",
64 prop: "BDCQZH", 64 prop: "BDCQZH",
65 width: 150, 65 minWidth: 150,
66 }, 66 },
67 { 67 {
68 label: "权利人", 68 label: "权利人",
......
...@@ -103,12 +103,14 @@ export default { ...@@ -103,12 +103,14 @@ export default {
103 return ( 103 return (
104 <div> 104 <div>
105 <el-button 105 <el-button
106 type="primary" 106 type="text"
107 class='btnColor'
107 onClick={() => { 108 onClick={() => {
108 this.handleEdit(scope.row); 109 this.handleEdit(scope.row);
109 }} 110 }}
110 > 111 >
111 详情 112 详情
113 <i class="el-icon-d-arrow-right"></i>
112 </el-button> 114 </el-button>
113 </div> 115 </div>
114 ); 116 );
...@@ -163,6 +165,6 @@ export default { ...@@ -163,6 +165,6 @@ export default {
163 } 165 }
164 </script> 166 </script>
165 <style scoped lang="scss"> 167 <style scoped lang="scss">
166 @import "~@/styles/public.scss"; 168 // @import "~@/styles/public.scss";
167 @import "./index.scss"; 169 @import "./index.scss";
168 </style> 170 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:33:35
5 */
1 6
2 import filter from '@/utils/filter.js' 7 import filter from '@/utils/filter.js'
3 class data extends filter { 8 class data extends filter {
...@@ -8,35 +13,40 @@ class data extends filter { ...@@ -8,35 +13,40 @@ class data extends filter {
8 return [ 13 return [
9 { 14 {
10 label: "行政区", 15 label: "行政区",
16 width: 80,
11 render: (h, scope) => { 17 render: (h, scope) => {
12 return ( 18 return (
13 <div> 19 <div>
14 <span>{this.dicStatus(scope.row.XZQ, 'A20')}</span> 20 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
15 </div> 21 </div>
16 ) 22 )
17 }, 23 },
18 }, 24 },
19 { 25 {
20 label: "权属状态", 26 label: "权属状态",
27 width: 80,
21 render: (h, scope) => { 28 render: (h, scope) => {
22 return ( 29 return (
23 <div> 30 <div>
24 <span>{this.dicStatus(scope.row.ZXYWH, 'A22')}</span> 31 <span>{this.dicStatus(scope.row.qszt, 'A22')}</span>
25 </div> 32 </div>
26 ) 33 )
27 }, 34 },
28 }, 35 },
29 { 36 {
30 label: "业务号", 37 label: "业务号",
31 prop: "BDCDYH" 38 prop: "BDCDYH",
39 minWidth: 150,
32 }, 40 },
33 { 41 {
34 label: "不动产单元号", 42 label: "不动产单元号",
35 prop: "BDCDYH" 43 prop: "BDCDYH",
44 minWidth: 150,
36 }, 45 },
37 { 46 {
38 label: "不动产权证号", 47 label: "不动产权证号",
39 prop: "BDCQZH" 48 prop: "BDCQZH",
49 minWidth: 150,
40 }, 50 },
41 { 51 {
42 label: "权利人", 52 label: "权利人",
......
...@@ -95,17 +95,19 @@ export default { ...@@ -95,17 +95,19 @@ export default {
95 }].concat(data.columns()).concat([ 95 }].concat(data.columns()).concat([
96 { 96 {
97 label: "操作", 97 label: "操作",
98 width: 170, 98 width: 80,
99 render: (h, scope) => { 99 render: (h, scope) => {
100 return ( 100 return (
101 <div> 101 <div>
102 <el-button 102 <el-button
103 type="primary" 103 type="text"
104 class='btnColor'
104 onClick={() => { 105 onClick={() => {
105 this.handleEdit(scope.row); 106 this.handleEdit(scope.row);
106 }} 107 }}
107 > 108 >
108 详情 109 详情
110 <i class="el-icon-d-arrow-right"></i>
109 </el-button> 111 </el-button>
110 </div> 112 </div>
111 ); 113 );
...@@ -143,5 +145,5 @@ export default { ...@@ -143,5 +145,5 @@ export default {
143 } 145 }
144 </script> 146 </script>
145 <style scoped lang="scss"> 147 <style scoped lang="scss">
146 @import "~@/styles/public.scss"; 148 // @import "~@/styles/public.scss";
147 </style> 149 </style>
......
...@@ -7,20 +7,22 @@ class data extends filter { ...@@ -7,20 +7,22 @@ class data extends filter {
7 return [ 7 return [
8 { 8 {
9 label: "行政区", 9 label: "行政区",
10 width: 80,
10 render: (h, scope) => { 11 render: (h, scope) => {
11 return ( 12 return (
12 <div> 13 <div>
13 <span>{this.dicStatus(scope.row.XZQ, 'A20')}</span> 14 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
14 </div> 15 </div>
15 ) 16 )
16 }, 17 },
17 }, 18 },
18 { 19 {
19 label: "权属状态", 20 label: "权属状态",
21 width: 80,
20 render: (h, scope) => { 22 render: (h, scope) => {
21 return ( 23 return (
22 <div> 24 <div>
23 <span>{this.dicStatus(scope.row.ZXYWH, 'A22')}</span> 25 <span>{this.dicStatus(scope.row.qszt, 'A22')}</span>
24 </div> 26 </div>
25 ) 27 )
26 }, 28 },
...@@ -28,11 +30,7 @@ class data extends filter { ...@@ -28,11 +30,7 @@ class data extends filter {
28 { 30 {
29 label: "业务号", 31 label: "业务号",
30 prop: "YWH", 32 prop: "YWH",
31 width: 150 33 width: 150,
32 },
33 {
34 label: "业务号",
35 prop: "BDCDYH"
36 }, 34 },
37 { 35 {
38 label: "不动产单元号", 36 label: "不动产单元号",
......
...@@ -100,17 +100,19 @@ export default { ...@@ -100,17 +100,19 @@ export default {
100 }].concat(data.columns()).concat([ 100 }].concat(data.columns()).concat([
101 { 101 {
102 label: "操作", 102 label: "操作",
103 width: 170, 103 width: 80,
104 render: (h, scope) => { 104 render: (h, scope) => {
105 return ( 105 return (
106 <div> 106 <div>
107 <el-button 107 <el-button
108 type="primary" 108 type="text"
109 class='btnColor'
109 onClick={() => { 110 onClick={() => {
110 this.handleEdit(scope.row); 111 this.handleEdit(scope.row);
111 }} 112 }}
112 > 113 >
113 详情 114 详情
115 <i class="el-icon-d-arrow-right"></i>
114 </el-button> 116 </el-button>
115 </div> 117 </div>
116 ); 118 );
...@@ -148,5 +150,5 @@ export default { ...@@ -148,5 +150,5 @@ export default {
148 } 150 }
149 </script> 151 </script>
150 <style scoped lang="scss"> 152 <style scoped lang="scss">
151 @import "~@/styles/public.scss"; 153 // @import "~@/styles/public.scss";
152 </style> 154 </style>
......
1 /*
2 * @Description: ,
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:35:00
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 class data extends filter { 7 class data extends filter {
3 constructor() { 8 constructor() {
...@@ -30,15 +35,17 @@ class data extends filter { ...@@ -30,15 +35,17 @@ class data extends filter {
30 { 35 {
31 label: "业务号", 36 label: "业务号",
32 prop: "ywh", 37 prop: "ywh",
33 width: 80, 38 minWidth: 150,
34 }, 39 },
35 { 40 {
36 label: "不动产单元号", 41 label: "不动产单元号",
37 prop: "bdcdyh" 42 prop: "bdcdyh",
43 minWidth: 150,
38 }, 44 },
39 { 45 {
40 label: "不动产权证号", 46 label: "不动产权证号",
41 prop: "bdcqzh" 47 prop: "bdcqzh",
48 minWidth: 150,
42 }, 49 },
43 { 50 {
44 label: "权利人", 51 label: "权利人",
......
...@@ -101,12 +101,14 @@ export default { ...@@ -101,12 +101,14 @@ export default {
101 return ( 101 return (
102 <div> 102 <div>
103 <el-button 103 <el-button
104 type="primary" 104 type="text"
105 class='btnColor'
105 onClick={() => { 106 onClick={() => {
106 this.handleEdit(scope.row); 107 this.handleEdit(scope.row);
107 }} 108 }}
108 > 109 >
109 详情 110 详情
111 <i class="el-icon-d-arrow-right"></i>
110 </el-button> 112 </el-button>
111 </div> 113 </div>
112 ); 114 );
...@@ -145,5 +147,5 @@ export default { ...@@ -145,5 +147,5 @@ export default {
145 } 147 }
146 </script> 148 </script>
147 <style scoped lang="scss"> 149 <style scoped lang="scss">
148 @import "~@/styles/public.scss"; 150 // @import "~@/styles/public.scss";
149 </style> 151 </style>
......
...@@ -108,16 +108,17 @@ export default { ...@@ -108,16 +108,17 @@ export default {
108 }].concat(data.columns()).concat([ 108 }].concat(data.columns()).concat([
109 { 109 {
110 label: "操作", 110 label: "操作",
111 width: 170, 111 width: 80,
112 render: (h, scope) => { 112 render: (h, scope) => {
113 return ( 113 return (
114 <div> 114 <div>
115 <el-button 115 <el-button
116 type="primary" 116 type="text"
117 size="mini" 117 class='btnColor'
118 onClick={() => { this.handleEdit(scope.row) }} 118 onClick={() => { this.handleEdit(scope.row) }}
119 > 119 >
120 详情 120 详情
121 <i class="el-icon-d-arrow-right"></i>
121 </el-button> 122 </el-button>
122 </div> 123 </div>
123 ) 124 )
...@@ -160,5 +161,5 @@ export default { ...@@ -160,5 +161,5 @@ export default {
160 </script> 161 </script>
161 <style scoped lang="scss"> 162 <style scoped lang="scss">
162 // 引入表单整体样式 163 // 引入表单整体样式
163 @import "~@/styles/public.scss"; 164 // @import "~@/styles/public.scss";
164 </style> 165 </style>
......
...@@ -7,16 +7,18 @@ class data extends filter { ...@@ -7,16 +7,18 @@ class data extends filter {
7 return [ 7 return [
8 { 8 {
9 label: "行政区", 9 label: "行政区",
10 width: 80,
10 render: (h, scope) => { 11 render: (h, scope) => {
11 return ( 12 return (
12 <div> 13 <div>
13 <span>{this.dicStatus(scope.row.xzq, 'A20')}</span> 14 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
14 </div> 15 </div>
15 ) 16 )
16 }, 17 },
17 }, 18 },
18 { 19 {
19 label: "权属状态", 20 label: "权属状态",
21 width: 80,
20 render: (h, scope) => { 22 render: (h, scope) => {
21 return ( 23 return (
22 <div> 24 <div>
...@@ -27,15 +29,18 @@ class data extends filter { ...@@ -27,15 +29,18 @@ class data extends filter {
27 }, 29 },
28 { 30 {
29 label: "业务号", 31 label: "业务号",
30 prop: "ywh" 32 prop: "ywh",
33 minWidth: 150,
31 }, 34 },
32 { 35 {
33 label: "不动产单元号", 36 label: "不动产单元号",
34 prop: "bdcdyh" 37 prop: "bdcdyh",
38 minWidth: 150,
35 }, 39 },
36 { 40 {
37 label: "不动产产权证号", 41 label: "不动产产权证号",
38 prop: "bdcqzh" 42 prop: "bdcqzh",
43 minWidth: 150,
39 }, 44 },
40 { 45 {
41 label: "权利人", 46 label: "权利人",
......
...@@ -101,11 +101,12 @@ export default { ...@@ -101,11 +101,12 @@ export default {
101 return ( 101 return (
102 <div> 102 <div>
103 <el-button 103 <el-button
104 type="primary" 104 type="text"
105 size="mini" 105 class='btnColor'
106 onClick={() => { this.handleEdit(scope.row) }} 106 onClick={() => { this.handleEdit(scope.row) }}
107 > 107 >
108 详情 108 详情
109 <i class="el-icon-d-arrow-right"></i>
109 </el-button> 110 </el-button>
110 </div> 111 </div>
111 ) 112 )
...@@ -151,5 +152,5 @@ export default { ...@@ -151,5 +152,5 @@ export default {
151 } 152 }
152 </script> 153 </script>
153 <style scoped lang="scss"> 154 <style scoped lang="scss">
154 @import "~@/styles/public.scss"; 155 // @import "~@/styles/public.scss";
155 </style> 156 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:37:10
5 */
1 6
2 import filter from '@/utils/filter.js' 7 import filter from '@/utils/filter.js'
3 class data extends filter { 8 class data extends filter {
...@@ -8,10 +13,11 @@ class data extends filter { ...@@ -8,10 +13,11 @@ class data extends filter {
8 return [ 13 return [
9 { 14 {
10 label: "行政区", 15 label: "行政区",
16 width: 80,
11 render: (h, scope) => { 17 render: (h, scope) => {
12 return ( 18 return (
13 <div> 19 <div>
14 <span>{this.dicStatus(scope.row.QXDM, 'A20')}</span> 20 <span>{this.dicStatus(scope.row.qxdm, 'A20')}</span>
15 </div> 21 </div>
16 ) 22 )
17 }, 23 },
...@@ -28,11 +34,13 @@ class data extends filter { ...@@ -28,11 +34,13 @@ class data extends filter {
28 // }, 34 // },
29 { 35 {
30 label: "业务号", 36 label: "业务号",
31 prop: "YWH" 37 prop: "YWH",
38 minWidth: 150,
32 }, 39 },
33 { 40 {
34 label: "不动产单元号", 41 label: "不动产单元号",
35 prop: "BDCDYH" 42 prop: "BDCDYH",
43 minWidth: 150,
36 }, 44 },
37 { 45 {
38 label: "不动产权证号", 46 label: "不动产权证号",
......
...@@ -102,12 +102,14 @@ export default { ...@@ -102,12 +102,14 @@ export default {
102 return ( 102 return (
103 <div> 103 <div>
104 <el-button 104 <el-button
105 type="primary" 105 type="text"
106 class='btnColor'
106 onClick={() => { 107 onClick={() => {
107 this.handleEdit(scope.row); 108 this.handleEdit(scope.row);
108 }} 109 }}
109 > 110 >
110 详情 111 详情
112 <i class="el-icon-d-arrow-right"></i>
111 </el-button> 113 </el-button>
112 </div> 114 </div>
113 ); 115 );
...@@ -143,5 +145,5 @@ export default { ...@@ -143,5 +145,5 @@ export default {
143 } 145 }
144 </script> 146 </script>
145 <style scoped lang="scss"> 147 <style scoped lang="scss">
146 @import "~@/styles/public.scss"; 148 // @import "~@/styles/public.scss";
147 </style> 149 </style>
......
...@@ -11,74 +11,74 @@ ...@@ -11,74 +11,74 @@
11 </template> 11 </template>
12 12
13 <script> 13 <script>
14 import maps from "@/components/Echart/Map"; 14 import maps from "@/components/Echart/Map";
15 import brokenline from "@/components/Echart/Brokenline"; 15 import brokenline from "@/components/Echart/Brokenline";
16 export default { 16 export default {
17 data () { 17 data () {
18 return {}; 18 return {};
19 }, 19 },
20 components: { maps, brokenline }, 20 components: { maps, brokenline },
21 mounted () { }, 21 mounted () { },
22 beforeDestroy () { }, 22 beforeDestroy () { },
23 methods: {}, 23 methods: {},
24 }; 24 };
25 </script> 25 </script>
26 26
27 <style lang="scss" scoped> 27 <style lang="scss" scoped>
28 .centercard { 28 .centercard {
29 width: 44%; 29 width: 44%;
30 height: calc(100vh - 114px); 30 height: calc(100vh - 114px);
31 box-sizing: border-box; 31 box-sizing: border-box;
32 padding: 0 .0521rem; 32 padding: 0 0.0521rem;
33 display: flex; 33 display: flex;
34 flex-direction: column; 34 flex-direction: column;
35 35
36 .card1 { 36 .card1 {
37 width: 100%; 37 width: 100%;
38 background: url("~@/image/mapcenter.png") no-repeat; 38 background: url("~@/image/mapcenter.png") no-repeat;
39 background-size: 100% 100%; 39 background-size: 100% 100%;
40 position: relative; 40 position: relative;
41 height: 64%; 41 height: 64%;
42 42
43 .title { 43 .title {
44 position: absolute; 44 position: absolute;
45 font-weight: bold; 45 font-weight: bold;
46 color: #02D9FD; 46 color: #02d9fd;
47 line-height: .1354rem; 47 line-height: 0.1354rem;
48 font-size: .1146rem; 48 font-size: 0.1146rem;
49 position: absolute; 49 position: absolute;
50 left: 0; 50 left: 0;
51 right: 0; 51 right: 0;
52 top: .0365rem; 52 top: 0.0365rem;
53 text-align: right; 53 text-align: right;
54 padding-right: 15%; 54 padding-right: 15%;
55 }
55 } 56 }
56 }
57
58 .card2 {
59 width: 100%;
60 background: url("~@/image/sjqs.png") no-repeat;
61 background-size: 100% 100%;
62 position: relative;
63 flex: 1;
64 57
65 .title { 58 .card2 {
66 position: absolute;
67 font-weight: bold;
68 color: #02D9FD;
69 line-height: .1354rem;
70 font-size: .1146rem;
71 position: absolute;
72 left: 0;
73 right: 0;
74 top: .0365rem;
75 text-align: center;
76 margin-bottom: .0521rem;
77 }
78 .brokenline {
79 margin: auto;
80 width: 100%; 59 width: 100%;
60 background: url("~@/image/sjqs.png") no-repeat;
61 background-size: 100% 100%;
62 position: relative;
63 flex: 1;
64
65 .title {
66 position: absolute;
67 font-weight: bold;
68 color: #02d9fd;
69 line-height: 0.1354rem;
70 font-size: 0.1146rem;
71 position: absolute;
72 left: 0;
73 right: 0;
74 top: 0.0365rem;
75 text-align: center;
76 margin-bottom: 0.0521rem;
77 }
78 .brokenline {
79 margin: auto;
80 width: 100%;
81 }
81 } 82 }
82 } 83 }
83 }
84 </style> 84 </style>
......
...@@ -9,63 +9,57 @@ ...@@ -9,63 +9,57 @@
9 <div class="d-flex"> 9 <div class="d-flex">
10 <dv-decoration-8 class="dv-dec-8" :color="decorationColor" /> 10 <dv-decoration-8 class="dv-dec-8" :color="decorationColor" />
11 <div class="title"> 11 <div class="title">
12 <span class="title-text">{{ products.name }}}</span>
13 <dv-decoration-5 12 <dv-decoration-5
14 :dur="1" 13 :dur="1"
15 class="dv-dec-5" 14 class="dv-dec-5"
16 :color="decorationColor" 15 :color="decorationColor" />
17 />
18 </div> 16 </div>
19 <dv-decoration-8 17 <dv-decoration-8
20 class="dv-dec-8" 18 class="dv-dec-8"
21 :reverse="true" 19 :reverse="true"
22 :color="decorationColor" 20 :color="decorationColor" />
23 />
24 </div> 21 </div>
25 <dv-decoration-10 class="dv-dec-10-s" /> 22 <dv-decoration-10 class="dv-dec-10-s" />
26 </div> 23 </div>
27 </div> 24 </div>
28 <screencontent v-show="isshow"/> 25 <screencontent v-show="isshow" />
29 </div> 26 </div>
30 </div> 27 </div>
31 </div> 28 </div>
32 </template> 29 </template>
33 <script> 30 <script>
34 import drawMixin from "@/utils/drawMixin"; 31 import drawMixin from "@/utils/drawMixin";
35 import screencontent from "./screencontent"; 32 import screencontent from "./screencontent";
36 export default { 33 export default {
37 mixins: [drawMixin], 34 mixins: [drawMixin],
38 data() { 35 data () {
39 return { 36 return {
40 isshow:true, 37 isshow: true,
41 loading: true, 38 loading: true,
42 decorationColor: ["#568aea", "#568aea"], 39 decorationColor: ["#568aea", "#568aea"],
43 }; 40 };
44 }, 41 },
45 components: { 42 components: {
46 screencontent, 43 screencontent,
47 }, 44 },
48 mounted() { 45 mounted () {
49 46
50 // this.timeFn(); 47 // this.timeFn();
51 this.cancelLoading(); 48 this.cancelLoading();
52 }, 49 },
53 beforeDestroy() { 50 beforeDestroy () {
54 clearInterval(this.timing); 51 clearInterval(this.timing);
55 }, 52 },
56 methods: { 53 methods: {
57 cancelLoading() { 54 cancelLoading () {
58 setTimeout(() => { 55 setTimeout(() => {
59 this.loading = false; 56 this.loading = false;
60 }, 500); 57 }, 500);
58 },
61 }, 59 },
62 }, 60 };
63 computed: {
64 ...mapGetters(["products"]),
65 },
66 };
67 </script> 61 </script>
68 62
69 <style scoped lang="scss"> 63 <style scoped lang="scss">
70 @import "./index.scss"; 64 @import "./index.scss";
71 </style> 65 </style>
......
...@@ -55,206 +55,200 @@ ...@@ -55,206 +55,200 @@
55 55
56 <script> 56 <script>
57 57
58 import columnar from "@/components/Echart/Columnar"; 58 import columnar from "@/components/Echart/Columnar";
59 import work from "@/api/work"; 59 import work from "@/api/work";
60 export default { 60 export default {
61 data () { 61 data () {
62 return { 62 return {
63 // 日均接入量 63 // 日均接入量
64 qxerrer: "", 64 qxerrer: "",
65 qxsuccess: "", 65 qxsuccess: "",
66 sterrer: "", 66 sterrer: "",
67 stsuccess: "", 67 stsuccess: "",
68 qxjrl: "", 68 qxjrl: "",
69 stjrl: "", 69 stjrl: "",
70 qxcgl: "", 70 qxcgl: "",
71 stcgl: "" 71 stcgl: ""
72 }; 72 };
73 },
74 mounted () {
75 this.getsthjqxjrtotal();
76 },
77 components: { columnar },
78 computed: {
79 qxjrlList: function () {
80 return this.qxjrl && this.qxjrl.toString().split("");
81 }, 73 },
82 stjrlList: function () { 74 mounted () {
83 return this.stjrl && this.stjrl.toString().split(""); 75 this.getsthjqxjrtotal();
84 }, 76 },
85 }, 77 components: { columnar },
86 methods: { 78 computed: {
87 getsthjqxjrtotal () { 79 qxjrlList: function () {
88 return new Promise(async (resolve) => { 80 return this.qxjrl && this.qxjrl.toString().split("");
89 try { 81 },
90 let p = { 82 stjrlList: function () {
91 DJLX: "", 83 return this.stjrl && this.stjrl.toString().split("");
92 QLLX: "", 84 },
93 XZQDM: "", 85 },
94 }; 86 methods: {
95 let res = await work.getsthjqxjrtotal(p); 87 getsthjqxjrtotal () {
96 this.stjrl=res.result.stsum 88 return new Promise(async (resolve) => {
97 this.qxjrl=res.result.qxsum 89 try {
98 this.qxerrer=Number(res.result.qxjrerrer) 90 let p = {
99 this.sterrer=Number(res.result.sthjerrer) 91 DJLX: "",
100 if(res.result.sum=="0"){ 92 QLLX: "",
101 this.qxcgl="100%" 93 XZQDM: "",
102 this.stcgl="100%" 94 };
103 }else{ 95 let res = await work.getsthjqxjrtotal(p);
104 let qxcglnum=Number(res.result.qxjrsuccess)/this.qxjrl*100 96 this.stjrl = res.result.stsum
105 let stcgl=Number(res.result.sthjsuccess)/this.qxjrl*100 97 this.qxjrl = res.result.qxsum
106 this.qxcgl=qxcglnum.toFixed(2)+"%"; 98 this.qxerrer = Number(res.result.qxjrerrer)
107 this.stcgl=stcgl.toFixed(2)+"%"; 99 this.sterrer = Number(res.result.sthjerrer)
108 100 if (res.result.sum == "0") {
101 this.qxcgl = "100%"
102 this.stcgl = "100%"
103 } else {
104 let qxcglnum = Number(res.result.qxjrsuccess) / this.qxjrl * 100
105 let stcgl = Number(res.result.sthjsuccess) / this.qxjrl * 100
106 this.qxcgl = qxcglnum.toFixed(2) + "%";
107 this.stcgl = stcgl.toFixed(2) + "%";
108
109 }
110 } catch (error) {
111 this.$refs.msg.messageShow();
109 } 112 }
110 } catch (error) { 113 });
111 this.$refs.msg.messageShow(); 114 },
112 }
113 });
114 }, 115 },
115 }, 116 };
116 };
117 </script> 117 </script>
118 118
119 <style lang="scss" scoped> 119 <style lang="scss" scoped>
120 .leftcard { 120 .leftcard {
121 width: 32%; 121 width: 32%;
122 height: calc(100vh -114px);
123 display: flex;
124 flex-direction: column;
125
126 .card {
127 background: url("~@/image/qxjr.png") no-repeat;
128 background-size: 100% 100%;
129 position: relative;
130 text-align: center;
131 width: 100%;
132 height: 22%;
133 }
134 .carda {
135 background: url("~@/image/sthj.png") no-repeat;
136 background-size: 100% 100%;
137 position: relative;
138 text-align: center;
139 width: 100%;
140 height: 22%;
141 }
142
143 // .card1 {
144 // background: url("~@/image/sbtj.png") no-repeat;
145 // background-size: 100% 100%;
146 // position: relative;
147 // text-align: center;
148 // width: 100%;
149 // padding: .0417rem 0;
150 // height: 49%;
151 // }
152
153 .card1 {
154 background: url("~@/image/sbtj.png") no-repeat;
155 background-size: 100% 100%;
156 position: relative;
157 box-sizing: border-box;
158 flex: 1;
159 height: 56%;
160 }
161
162 .cardhead {
163 color: #02d9fd;
164 line-height: .125rem;
165 letter-spacing: .0104rem;
166 position: absolute;
167 font-size: .1042rem;
168 left: 0;
169 right: 0;
170 margin: auto;
171 text-align: center;
172 top: 8px;
173 font-weight: 700;
174 }
175
176 .rjjrlList {
177 display: flex; 122 display: flex;
178 margin-top: .01781rem; 123 height: calc(100vh - 114px);
124 flex-direction: column;
179 125
180 .qxjr { 126 .card {
181 background: url("~@/image/jrl3.png"); 127 height: 22%;
128 background: url("~@/image/qxjr.png") no-repeat;
182 background-size: 100% 100%; 129 background-size: 100% 100%;
130 position: relative;
131 text-align: center;
132 width: 100%;
183 } 133 }
184 134 .carda {
185 .sthj { 135 height: 22%;
186 background: url("~@/image/jh.png"); 136 background: url("~@/image/sthj.png") no-repeat;
187 background-size: 100% 100%; 137 background-size: 100% 100%;
188 } 138 position: relative;
189 139 text-align: center;
190 p { 140 width: 100%;
191 margin: 0 .0156rem .0521rem .0156rem;
192 font-weight: 700;
193 width: .195rem;
194 height: .2475rem;
195 font-size: .2863rem;
196 font-size: .2867rem;
197 } 141 }
198 }
199 142
200 .cardcontent { 143 .card1 {
201 width: 100%; 144 background: url("~@/image/sbtj.png") no-repeat;
202 height: 100%; 145 background-size: 100% 100%;
203 display: flex;
204 // padding: 35px 20px 20px 20px;
205 box-sizing: border-box;
206 color: #e3f1ff;
207 margin-top: .1263rem;
208
209 .cardcontent-left {
210 width: 60%;
211 flex-direction: column;
212 position: relative; 146 position: relative;
213 li{ 147 box-sizing: border-box;
214 font-size: .1042rem; 148 flex: 1;
215 }
216 } 149 }
217 150
218 .cardcontent-left::before { 151 .cardhead {
152 color: #02d9fd;
153 line-height: 0.125rem;
154 letter-spacing: 0.0104rem;
219 position: absolute; 155 position: absolute;
156 font-size: 0.1042rem;
157 left: 0;
220 right: 0; 158 right: 0;
221 top: .3042rem; 159 margin: auto;
222 content: ""; 160 text-align: center;
223 width: .0052rem; 161 top: 8px;
224 height: .4688rem; 162 font-weight: 700;
225 background: linear-gradient(180deg,
226 #091b4c 0%,
227 #47b5e0 56%,
228 #091b4c 100%);
229 } 163 }
230 164
231 .cardcontent-right { 165 .rjjrlList {
232 flex: 1; 166 display: flex;
233 width: 100%; 167 margin-top: 0.01781rem;
234 flex-direction: column;
235 font-size: .0833rem;
236 168
237 .bad { 169 .qxjr {
238 color: #c97168; 170 background: url("~@/image/jrl3.png");
171 background-size: 100% 100%;
239 } 172 }
240 173
241 .cg { 174 .sthj {
242 color: #5fba7d; 175 background: url("~@/image/jh.png");
176 background-size: 100% 100%;
243 } 177 }
244 178
245 p { 179 p {
246 margin-bottom: .0417rem; 180 margin: 0 0.0156rem 0.0521rem 0.0156rem;
181 font-weight: 700;
182 width: 0.195rem;
183 height: 0.2475rem;
184 font-size: 0.2863rem;
185 font-size: 0.2867rem;
186 }
187 }
188
189 .cardcontent {
190 width: 100%;
191 height: 100%;
192 display: flex;
193 // padding: 35px 20px 20px 20px;
194 box-sizing: border-box;
195 color: #e3f1ff;
196 margin-top: 0.1263rem;
197
198 .cardcontent-left {
199 width: 60%;
200 flex-direction: column;
201 position: relative;
202 flex: 1;
203 height: 100%;
204 li {
205 font-size: 0.1042rem;
206 }
207 }
208
209 .cardcontent-left::before {
210 position: absolute;
211 right: 0;
212 top: 0.3042rem;
213 content: "";
214 width: 0.0052rem;
215 height: 0.4688rem;
216 background: linear-gradient(
217 180deg,
218 #091b4c 0%,
219 #47b5e0 56%,
220 #091b4c 100%
221 );
222 }
223
224 .cardcontent-right {
225 flex: 1;
226 width: 100%;
227 height: 100%;
228 flex-direction: column;
229 font-size: 0.09977rem;
247 230
248 span:nth-child(1) { 231 .bad {
249 margin-right: .0781rem; 232 color: #c97168;
250 } 233 }
251 234
252 span:nth-child(2) { 235 .cg {
253 font-size: .1042rem; 236 color: #5fba7d;
254 font-weight: 900; 237 }
238
239 p {
240 margin-bottom: 0.0417rem;
241
242 span:nth-child(1) {
243 margin-right: 0.0781rem;
244 }
245
246 span:nth-child(2) {
247 font-size: 0.1142rem;
248 font-weight: 900;
249 }
255 } 250 }
256 } 251 }
257 } 252 }
258 } 253 }
259 }
260 </style> 254 </style>
......
1 <template> 1 <template>
2 <div class="rightcard"> 2 <div class="rightcard">
3 <div class="card2 cardCon mt-10">
4 <div class="cardhead">登记业务量</div>
5 <Rose />
6 </div>
3 <div class="card1 cardCon d-center"> 7 <div class="card1 cardCon d-center">
4 <div class="cardhead">新建国有房屋信息</div> 8 <div class="cardhead">新建国有房屋信息</div>
5 <div class="cardcontent" style="margin-top: .3646rem"> 9 <div class="cardcontent" style="margin-top: .3646rem">
6 <dv-scroll-board v-if="config.data.length > 0" :config="config" class="board" /> 10 <dv-scroll-board v-if="config.data.length > 0" :config="config" class="board" />
7 <div v-else="config.data.length==0" class="nodata">暂无数据</div> 11 <div v-else class="nodata">暂无数据</div>
8 </div> 12 </div>
9 </div> 13 </div>
10 <div class="card2 cardCon mt-10"> 14
11 <div class="cardhead">登记业务量</div>
12 <Rose />
13 </div>
14 <div class="card3 cardCon mt-10"> 15 <div class="card3 cardCon mt-10">
15 <div class="cardhead">登记类型总量</div> 16 <div class="cardhead">登记类型总量</div>
16 <columnarsmat /> 17 <columnarsmat />
...@@ -19,131 +20,136 @@ ...@@ -19,131 +20,136 @@
19 </template> 20 </template>
20 21
21 <script> 22 <script>
22 import columnarsmat from "@/components/Echart/Columnarsmat"; 23 import columnarsmat from "@/components/Echart/Columnarsmat";
23 import Rose from "@/components/Echart/Rose"; 24 import Rose from "@/components/Echart/Rose";
24 import work from "@/api/work"; 25 import work from "@/api/work";
25 export default { 26 export default {
26 data () { 27 data () {
27 return { 28 return {
28 config: { 29 config: {
29 headerBGC: '#016AC5', 30 headerBGC: '#016AC5',
30 oddRowBGC: '#154295', 31 oddRowBGC: '#154295',
31 evenRowBGC: '#154295', 32 evenRowBGC: '#154295',
32 header: ['序号', '用途', '性质', '面积'], 33 header: ['序号', '用途', '性质', '面积'],
33 data: [], 34 data: [],
34 key: 0 35 key: 0
36 }
35 } 37 }
36 } 38 },
37 }, 39 components: { columnarsmat, Rose },
38 components: { columnarsmat, Rose }, 40 mounted () {
39 mounted () { 41 this.addhousetotal();
40 this.addhousetotal(); 42 // scroll(tableref.value.$refs.bodyWrapper);//设置滚动
41 // scroll(tableref.value.$refs.bodyWrapper);//设置滚动 43 },
42 }, 44 methods: {
43 methods: { 45 async addhousetotal () {
44 async addhousetotal () { 46 try {
45 try { 47 let { result: res } = await work.addhousetotal();
46 let { result: res } = await work.addhousetotal(); 48 res.map((item, index) => {
47 res.map((item, index) => { 49 return (
48 return ( 50 this.config.data.push([index, item.fwyt, item.fwxz, item.mj])
49 this.config.data.push([index, item.fwyt, item.fwxz, item.mj]) 51 )
50 ) 52 });
51 }); 53 } catch (error) {
52 } catch (error) { 54 console.log("error", error);
53 console.log("error", error); 55 }
54 } 56 }
55 } 57 }
56 } 58 }
57 }
58 </script> 59 </script>
59 <style lang="scss" scoped> 60 <style lang="scss" scoped>
60 /deep/.row-item:not(:last-child) { 61 /deep/.row-item:not(:last-child) {
61 margin-bottom: .026rem; 62 margin-bottom: 0.026rem;
62 }
63
64 .rightcard {
65 width: 32%;
66 display: flex;
67 height: calc(100vh - 114px);
68 flex-direction: column;
69
70 .cardhead {
71 font-size: .1042rem;
72 font-weight: bold;
73 color: #02D9FD;
74 text-align: center;
75 position: absolute;
76 left: 0;
77 right: 0;
78 top: .0625rem;
79 text-align: center;
80 } 63 }
81 64
82 .cardcontent { 65 .rightcard {
83 width: 100%; 66 width: 32%;
84 height: 100%; 67 display: flex;
85 display: -webkit-box; 68 height: calc(100vh - 114px);
86 overflow: hidden; 69 flex-direction: column;
87 70
88 .nodata { 71 .cardhead {
89 font-size: .1042rem; 72 font-size: 0.1042rem;
90 color: #02D9FD;
91 font-weight: bold; 73 font-weight: bold;
92 margin: auto; 74 color: #02d9fd;
93 margin-top: 120px; 75 text-align: center;
76 position: absolute;
77 left: 0;
78 right: 0;
79 top: 0.0625rem;
80 text-align: center;
94 } 81 }
95 }
96 82
97 .cardCon { 83 .cardcontent {
98 padding: .0521rem .026rem; 84 width: 100%;
99 position: relative; 85 height: 100%;
100 text-align: center; 86 display: -webkit-box;
101 width: 100%; 87 overflow: hidden;
102 }
103 88
104 .card1 { 89 .nodata {
105 height: 33%; 90 font-size: 0.1042rem;
106 background: url("~@/image/xjgyfwxx.png") no-repeat; 91 color: #02d9fd;
107 background-size: 100% 100%; 92 font-weight: bold;
93 margin: auto;
94 margin-top: 120px;
95 }
96 }
108 97
109 .board { 98 .cardCon {
110 width: 90%; 99 padding: 0.0521rem 0.026rem;
111 margin: 0 auto; 100 position: relative;
112 height: 1.1031rem; 101 text-align: center;
113 margin-top: .0521rem; 102 width: 100%;
114 /deep/.header{ 103 }
115 font-size: .0738rem; 104
105 .card1 {
106 height: 33%;
107 background: url("~@/image/xjgyfwxx.png") no-repeat;
108 background-size: 100% 100%;
109 /deep/.dv-scroll-board {
110 .header {
111 height: 0.1875rem;
112 align-items: center;
113 }
116 } 114 }
117 /deep/.rows{ 115 .board {
118 .ceil{ 116 width: 90%;
119 font-size: .0738rem; 117 margin: 0 auto;
120 color: #6BC1FC 118 height: 1.1031rem;
121 } 119 margin-top: 0.0521rem;
120 /deep/.header {
121 font-size: 0.0738rem;
122 }
123 /deep/.rows {
124 .ceil {
125 font-size: 0.0738rem;
126 color: #6bc1fc;
127 }
128 }
122 } 129 }
123 } 130 }
124 }
125 131
126 .card2 { 132 .card2 {
127 height: 33%; 133 height: 33%;
128 background: url("~@/image/djywl.png") no-repeat; 134 background: url("~@/image/djywl.png") no-repeat;
129 background-size: 100% 100%; 135 background-size: 100% 100%;
130 padding: .3825rem 0 0 0; 136 padding: 0.3825rem 0 0 0;
131 } 137 }
132 138
133 .card3 { 139 .card3 {
134 height: 33%; 140 height: 33%;
135 flex: 1; 141 flex: 1;
136 background: url("~@/image/djlxzl.png") no-repeat; 142 background: url("~@/image/djlxzl.png") no-repeat;
137 background-size: 100% 100%; 143 background-size: 100% 100%;
138 padding-bottom: 0; 144 padding-bottom: 0;
139 145
140 .cardhead { 146 .cardhead {
141 top: .0417rem; 147 top: 0.0417rem;
148 }
142 } 149 }
143 }
144 150
145 .cardhead { 151 .cardhead {
146 position: absolute; 152 position: absolute;
153 }
147 } 154 }
148 }
149 </style> 155 </style>
......
...@@ -10,29 +10,16 @@ ...@@ -10,29 +10,16 @@
10 <el-row> 10 <el-row>
11 <el-col :span="4"> 11 <el-col :span="4">
12 <el-form-item label="开始日期" prop="startTime"> 12 <el-form-item label="开始日期" prop="startTime">
13 <el-date-picker 13 <el-date-picker type="date" :clearable="false" class="width100" placeholder="开始日期"
14 type="date" 14 :picker-options="pickerOptionsStart" v-model="form.startTime"
15 :clearable="false" 15 value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
16 class="width100"
17 placeholder="开始日期"
18 :picker-options="pickerOptionsStart"
19 v-model="form.startTime"
20 value-format="yyyy-MM-dd HH:mm:ss"
21 ></el-date-picker>
22 </el-form-item> 16 </el-form-item>
23 </el-col> 17 </el-col>
24 <el-col :span="4"> 18 <el-col :span="4">
25 <el-form-item label="结束日期" prop="endTime"> 19 <el-form-item label="结束日期" prop="endTime">
26 <el-date-picker 20 <el-date-picker class="width100" :clearable="false" type="date" placeholder="结束日期"
27 class="width100" 21 :picker-options="pickerOptionsEnd" v-model="form.endTime" value-format="yyyy-MM-dd HH:mm:ss"
28 :clearable="false" 22 @change="endTimeChange"></el-date-picker>
29 type="date"
30 placeholder="结束日期"
31 :picker-options="pickerOptionsEnd"
32 v-model="form.endTime"
33 value-format="yyyy-MM-dd HH:mm:ss"
34 @change="endTimeChange"
35 ></el-date-picker>
36 </el-form-item> 23 </el-form-item>
37 </el-col> 24 </el-col>
38 <!-- 操作按钮 --> 25 <!-- 操作按钮 -->
...@@ -57,7 +44,7 @@ import efficient from "@/api/efficient"; ...@@ -57,7 +44,7 @@ import efficient from "@/api/efficient";
57 import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; 44 import { getFirstDayOfSeason, timeFormat } from "@/utils/operation";
58 export default { 45 export default {
59 name: "jktj", 46 name: "jktj",
60 data() { 47 data () {
61 return { 48 return {
62 // 开始日期限制 49 // 开始日期限制
63 pickerOptionsStart: { 50 pickerOptionsStart: {
...@@ -83,19 +70,19 @@ export default { ...@@ -83,19 +70,19 @@ export default {
83 pieChartsData: [], 70 pieChartsData: [],
84 }; 71 };
85 }, 72 },
86 created() {}, 73 created () { },
87 mounted() { 74 mounted () {
88 this.getProcessCounts(); 75 this.getProcessCounts();
89 }, 76 },
90 computed: { 77 computed: {
91 ...mapGetters(["dicData"]), 78 ...mapGetters(["dicData"]),
92 }, 79 },
93 methods: { 80 methods: {
94 endTimeChange(val) { 81 endTimeChange (val) {
95 this.form.endTime = timeFormat(new Date(val), true); 82 this.form.endTime = timeFormat(new Date(val), true);
96 }, 83 },
97 //查询各区县办件数量 84 //查询各区县办件数量
98 async getProcessCounts() { 85 async getProcessCounts () {
99 this.pieChartsData = []; 86 this.pieChartsData = [];
100 let { result: res } = await efficient.getProcessCounts( 87 let { result: res } = await efficient.getProcessCounts(
101 this.form.startTime, 88 this.form.startTime,
...@@ -121,7 +108,7 @@ export default { ...@@ -121,7 +108,7 @@ export default {
121 }); 108 });
122 }, 109 },
123 // 重置 110 // 重置
124 resetForm() { 111 resetForm () {
125 this.form = { 112 this.form = {
126 startTime: getFirstDayOfSeason(), 113 startTime: getFirstDayOfSeason(),
127 endTime: timeFormat(new Date(), true), 114 endTime: timeFormat(new Date(), true),
...@@ -129,7 +116,7 @@ export default { ...@@ -129,7 +116,7 @@ export default {
129 this.getProcessCounts(); 116 this.getProcessCounts();
130 }, 117 },
131 //玫瑰图初始化 118 //玫瑰图初始化
132 echartInit() { 119 echartInit () {
133 let _this = this; 120 let _this = this;
134 // 基于准备好的dom,初始化echarts实例 121 // 基于准备好的dom,初始化echarts实例
135 let myChart = this.$echarts.init(document.getElementById("myChart")); 122 let myChart = this.$echarts.init(document.getElementById("myChart"));
...@@ -190,7 +177,7 @@ export default { ...@@ -190,7 +177,7 @@ export default {
190 }); 177 });
191 }, 178 },
192 //柱图初始化 179 //柱图初始化
193 async barChartInit(recType) { 180 async barChartInit (recType) {
194 //请求recType对应业务的各区县数据 181 //请求recType对应业务的各区县数据
195 let { result: res } = await efficient.getProcessDays( 182 let { result: res } = await efficient.getProcessDays(
196 recType, 183 recType,
...@@ -325,7 +312,7 @@ export default { ...@@ -325,7 +312,7 @@ export default {
325 }; 312 };
326 </script> 313 </script>
327 <style scoped lang="scss"> 314 <style scoped lang="scss">
328 @import "~@/styles/public.scss"; 315 // @import "~@/styles/public.scss";
329 316
330 .jktjDetail { 317 .jktjDetail {
331 height: 100%; 318 height: 100%;
...@@ -364,5 +351,5 @@ export default { ...@@ -364,5 +351,5 @@ export default {
364 } 351 }
365 </style> 352 </style>
366 <style scoped lang="scss"> 353 <style scoped lang="scss">
367 @import "~@/styles/public.scss"; 354 // @import "~@/styles/public.scss";
368 </style> 355 </style>
......
...@@ -10,47 +10,24 @@ ...@@ -10,47 +10,24 @@
10 <el-row> 10 <el-row>
11 <el-col :span="4"> 11 <el-col :span="4">
12 <el-form-item label="行政区"> 12 <el-form-item label="行政区">
13 <el-select 13 <el-select v-model="form.qxdm" class="width100" clearable placeholder="行政区">
14 v-model="form.qxdm" 14 <el-option v-for="item in dicData['A20']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
15 class="width100"
16 clearable
17 placeholder="行政区"
18 >
19 <el-option
20 v-for="item in dicData['A20']"
21 :key="item.DCODE"
22 :label="item.DNAME"
23 :value="item.DCODE"
24 >
25 </el-option> 15 </el-option>
26 </el-select> 16 </el-select>
27 </el-form-item> 17 </el-form-item>
28 </el-col> 18 </el-col>
29 <el-col :span="4"> 19 <el-col :span="4">
30 <el-form-item label="开始日期" prop="startTime"> 20 <el-form-item label="开始日期" prop="startTime">
31 <el-date-picker 21 <el-date-picker type="date" :clearable="false" class="width100" placeholder="开始日期"
32 type="date" 22 :picker-options="pickerOptionsStart" v-model="form.startTime"
33 :clearable="false" 23 value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
34 class="width100"
35 placeholder="开始日期"
36 :picker-options="pickerOptionsStart"
37 v-model="form.startTime"
38 value-format="yyyy-MM-dd HH:mm:ss"
39 ></el-date-picker>
40 </el-form-item> 24 </el-form-item>
41 </el-col> 25 </el-col>
42 <el-col :span="4"> 26 <el-col :span="4">
43 <el-form-item label="结束日期" prop="endTime"> 27 <el-form-item label="结束日期" prop="endTime">
44 <el-date-picker 28 <el-date-picker type="date" :clearable="false" class="width100" placeholder="结束日期"
45 type="date" 29 :picker-options="pickerOptionsEnd" v-model="form.endTime" value-format="yyyy-MM-dd HH:mm:ss"
46 :clearable="false" 30 @change="endTimeChange"></el-date-picker>
47 class="width100"
48 placeholder="结束日期"
49 :picker-options="pickerOptionsEnd"
50 v-model="form.endTime"
51 value-format="yyyy-MM-dd HH:mm:ss"
52 @change="endTimeChange"
53 ></el-date-picker>
54 </el-form-item> 31 </el-form-item>
55 </el-col> 32 </el-col>
56 <!-- 操作按钮 --> 33 <!-- 操作按钮 -->
...@@ -98,7 +75,7 @@ export default { ...@@ -98,7 +75,7 @@ export default {
98 // 搜索表单 75 // 搜索表单
99 form: { 76 form: {
100 startTime: getFirstDayOfSeason(), 77 startTime: getFirstDayOfSeason(),
101 endTime: timeFormat(new Date(),true), 78 endTime: timeFormat(new Date(), true),
102 qxdm: "", 79 qxdm: "",
103 }, 80 },
104 }; 81 };
...@@ -111,8 +88,8 @@ export default { ...@@ -111,8 +88,8 @@ export default {
111 ...mapGetters(["dicData"]), 88 ...mapGetters(["dicData"]),
112 }, 89 },
113 methods: { 90 methods: {
114 endTimeChange(val){ 91 endTimeChange (val) {
115 this.form.endTime = timeFormat(new Date(val),true) 92 this.form.endTime = timeFormat(new Date(val), true)
116 }, 93 },
117 async getSuucessRate () { 94 async getSuucessRate () {
118 this.recTypeArr = []; 95 this.recTypeArr = [];
...@@ -137,7 +114,7 @@ export default { ...@@ -137,7 +114,7 @@ export default {
137 resetForm () { 114 resetForm () {
138 this.form = { 115 this.form = {
139 startTime: getFirstDayOfSeason(), 116 startTime: getFirstDayOfSeason(),
140 endTime: timeFormat(new Date(),true), 117 endTime: timeFormat(new Date(), true),
141 qxdm: "", 118 qxdm: "",
142 }; 119 };
143 this.getSuucessRate(); 120 this.getSuucessRate();
...@@ -231,7 +208,7 @@ export default { ...@@ -231,7 +208,7 @@ export default {
231 color: "#fff", 208 color: "#fff",
232 fontSize: "16", 209 fontSize: "16",
233 }, 210 },
234 splitNumber:2, 211 splitNumber: 2,
235 axisLabel: { 212 axisLabel: {
236 formatter: "{value} %", 213 formatter: "{value} %",
237 textStyle: { 214 textStyle: {
...@@ -302,7 +279,7 @@ export default { ...@@ -302,7 +279,7 @@ export default {
302 }; 279 };
303 </script> 280 </script>
304 <style scoped lang="scss"> 281 <style scoped lang="scss">
305 @import "~@/styles/public.scss"; 282 // @import "~@/styles/public.scss";
306 283
307 .jktjDetail { 284 .jktjDetail {
308 height: 100%; 285 height: 100%;
...@@ -337,5 +314,5 @@ export default { ...@@ -337,5 +314,5 @@ export default {
337 } 314 }
338 </style> 315 </style>
339 <style scoped lang="scss"> 316 <style scoped lang="scss">
340 @import "~@/styles/public.scss"; 317 // @import "~@/styles/public.scss";
341 </style> 318 </style>
......
...@@ -10,47 +10,24 @@ ...@@ -10,47 +10,24 @@
10 <el-row> 10 <el-row>
11 <el-col :span="4"> 11 <el-col :span="4">
12 <el-form-item label="行政区"> 12 <el-form-item label="行政区">
13 <el-select 13 <el-select v-model="form.qxdm" class="width100" clearable placeholder="行政区">
14 v-model="form.qxdm" 14 <el-option v-for="item in dicData['A20']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
15 class="width100"
16 clearable
17 placeholder="行政区"
18 >
19 <el-option
20 v-for="item in dicData['A20']"
21 :key="item.DCODE"
22 :label="item.DNAME"
23 :value="item.DCODE"
24 >
25 </el-option> 15 </el-option>
26 </el-select> 16 </el-select>
27 </el-form-item> 17 </el-form-item>
28 </el-col> 18 </el-col>
29 <el-col :span="4"> 19 <el-col :span="4">
30 <el-form-item label="开始日期"> 20 <el-form-item label="开始日期">
31 <el-date-picker 21 <el-date-picker class="width100" :clearable="false" type="date" placeholder="开始日期"
32 class="width100" 22 :picker-options="pickerOptionsStart" v-model="form.startTime"
33 :clearable="false" 23 value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
34 type="date"
35 placeholder="开始日期"
36 :picker-options="pickerOptionsStart"
37 v-model="form.startTime"
38 value-format="yyyy-MM-dd HH:mm:ss"
39 ></el-date-picker>
40 </el-form-item> 24 </el-form-item>
41 </el-col> 25 </el-col>
42 <el-col :span="4"> 26 <el-col :span="4">
43 <el-form-item label="结束日期"> 27 <el-form-item label="结束日期">
44 <el-date-picker 28 <el-date-picker class="width100" :clearable="false" type="date" placeholder="结束日期"
45 class="width100" 29 :picker-options="pickerOptionsEnd" v-model="form.endTime" value-format="yyyy-MM-dd HH:mm:ss"
46 :clearable="false" 30 @change="endTimeChange"></el-date-picker>
47 type="date"
48 placeholder="结束日期"
49 :picker-options="pickerOptionsEnd"
50 v-model="form.endTime"
51 value-format="yyyy-MM-dd HH:mm:ss"
52 @change="endTimeChange"
53 ></el-date-picker>
54 </el-form-item> 31 </el-form-item>
55 </el-col> 32 </el-col>
56 <!-- 操作按钮 --> 33 <!-- 操作按钮 -->
...@@ -98,13 +75,13 @@ export default { ...@@ -98,13 +75,13 @@ export default {
98 // 搜索表单 75 // 搜索表单
99 form: { 76 form: {
100 startTime: getFirstDayOfSeason(), 77 startTime: getFirstDayOfSeason(),
101 endTime: timeFormat(new Date(),true), 78 endTime: timeFormat(new Date(), true),
102 qxdm: "", 79 qxdm: "",
103 }, 80 },
104 chartData:[] 81 chartData: []
105 }; 82 };
106 }, 83 },
107 mounted() { 84 mounted () {
108 // 查询业务量 85 // 查询业务量
109 this.getProcessCounts(); 86 this.getProcessCounts();
110 }, 87 },
...@@ -112,10 +89,10 @@ export default { ...@@ -112,10 +89,10 @@ export default {
112 ...mapGetters(["dicData"]), 89 ...mapGetters(["dicData"]),
113 }, 90 },
114 methods: { 91 methods: {
115 endTimeChange(val){ 92 endTimeChange (val) {
116 this.form.endTime = timeFormat(new Date(val),true) 93 this.form.endTime = timeFormat(new Date(val), true)
117 }, 94 },
118 async getProcessCounts(){ 95 async getProcessCounts () {
119 this.chartData = []; 96 this.chartData = [];
120 let { result: res } = await efficient.getProcessCounts( 97 let { result: res } = await efficient.getProcessCounts(
121 this.form.startTime, 98 this.form.startTime,
...@@ -133,13 +110,13 @@ export default { ...@@ -133,13 +110,13 @@ export default {
133 resetForm () { 110 resetForm () {
134 this.form = { 111 this.form = {
135 startTime: getFirstDayOfSeason(), 112 startTime: getFirstDayOfSeason(),
136 endTime: timeFormat(new Date(),true), 113 endTime: timeFormat(new Date(), true),
137 qxdm: "" 114 qxdm: ""
138 }; 115 };
139 this.getProcessCounts(); 116 this.getProcessCounts();
140 }, 117 },
141 //图表渲染 118 //图表渲染
142 echartInit(chartArr) { 119 echartInit (chartArr) {
143 // 基于准备好的dom,初始化echarts实例 120 // 基于准备好的dom,初始化echarts实例
144 let myChart = this.$echarts.init(document.getElementById("myChart")); 121 let myChart = this.$echarts.init(document.getElementById("myChart"));
145 // 绘制图表 122 // 绘制图表
...@@ -158,7 +135,7 @@ export default { ...@@ -158,7 +135,7 @@ export default {
158 xAxis: [ 135 xAxis: [
159 { 136 {
160 type: "category", 137 type: "category",
161 data: chartArr.map(item=>item.recTypeName), 138 data: chartArr.map(item => item.recTypeName),
162 axisLabel: { 139 axisLabel: {
163 interval: 0, 140 interval: 0,
164 formatter: function (val) { 141 formatter: function (val) {
...@@ -221,7 +198,7 @@ export default { ...@@ -221,7 +198,7 @@ export default {
221 }, 198 },
222 }, 199 },
223 barMaxWidth: '60', 200 barMaxWidth: '60',
224 data: chartArr.map(item=>item.counts), 201 data: chartArr.map(item => item.counts),
225 }, 202 },
226 ], 203 ],
227 }); 204 });
...@@ -230,7 +207,7 @@ export default { ...@@ -230,7 +207,7 @@ export default {
230 }; 207 };
231 </script> 208 </script>
232 <style scoped lang="scss"> 209 <style scoped lang="scss">
233 @import "~@/styles/public.scss"; 210 // @import "~@/styles/public.scss";
234 211
235 .jktjDetail { 212 .jktjDetail {
236 height: 100%; 213 height: 100%;
...@@ -240,11 +217,13 @@ export default { ...@@ -240,11 +217,13 @@ export default {
240 .rows { 217 .rows {
241 margin-left: 100px; 218 margin-left: 100px;
242 } 219 }
220
243 .center { 221 .center {
244 line-height: 50vh; 222 line-height: 50vh;
245 text-align: center; 223 text-align: center;
246 color:#b6b5b5 224 color: #b6b5b5
247 } 225 }
226
248 .echarts-box { 227 .echarts-box {
249 display: flex; 228 display: flex;
250 justify-content: center; 229 justify-content: center;
...@@ -263,5 +242,5 @@ export default { ...@@ -263,5 +242,5 @@ export default {
263 } 242 }
264 </style> 243 </style>
265 <style scoped lang="scss"> 244 <style scoped lang="scss">
266 @import "~@/styles/public.scss"; 245 // @import "~@/styles/public.scss";
267 </style> 246 </style>
......
...@@ -46,7 +46,7 @@ class data extends filter { ...@@ -46,7 +46,7 @@ class data extends filter {
46 { 46 {
47 prop: "bizMsgid", 47 prop: "bizMsgid",
48 label: "业务报文ID", 48 label: "业务报文ID",
49 width: 90, 49 width: 98,
50 }, 50 },
51 { 51 {
52 prop: "createdate", 52 prop: "createdate",
...@@ -56,7 +56,7 @@ class data extends filter { ...@@ -56,7 +56,7 @@ class data extends filter {
56 { 56 {
57 prop: "recflowid", 57 prop: "recflowid",
58 label: "业务流水号", 58 label: "业务流水号",
59 width: 95, 59 width: 100,
60 }, 60 },
61 { 61 {
62 prop: "estatenum", 62 prop: "estatenum",
...@@ -70,6 +70,7 @@ class data extends filter { ...@@ -70,6 +70,7 @@ class data extends filter {
70 }, 70 },
71 { 71 {
72 prop: "rectypeName", 72 prop: "rectypeName",
73 minWidth: 240,
73 label: "业务名称", 74 label: "业务名称",
74 render: (h, scope) => { 75 render: (h, scope) => {
75 return ( 76 return (
......
...@@ -24,9 +24,8 @@ ...@@ -24,9 +24,8 @@
24 </el-col> 24 </el-col>
25 <el-col :span="6"> 25 <el-col :span="6">
26 <el-form-item label="至" prop="receiveEndTime" label-width="35px"> 26 <el-form-item label="至" prop="receiveEndTime" label-width="35px">
27 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd" 27 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd" clearable
28 clearable v-model="form.receiveEndTime" value-format="yyyy-MM-dd HH:mm:ss" 28 v-model="form.receiveEndTime" value-format="yyyy-MM-dd HH:mm:ss" @change="endTimeChange"></el-date-picker>
29 @change="endTimeChange"></el-date-picker>
30 </el-form-item> 29 </el-form-item>
31 </el-col> 30 </el-col>
32 <el-col :span="6"> 31 <el-col :span="6">
...@@ -119,6 +118,7 @@ export default { ...@@ -119,6 +118,7 @@ export default {
119 }, 118 },
120 data () { 119 data () {
121 return { 120 return {
121
122 pickerOptionsStart: { 122 pickerOptionsStart: {
123 disabledDate: (time) => { 123 disabledDate: (time) => {
124 let endDateVal = this.form.receiveEndTime; 124 let endDateVal = this.form.receiveEndTime;
...@@ -189,14 +189,29 @@ export default { ...@@ -189,14 +189,29 @@ export default {
189 render: (h, scope) => { 189 render: (h, scope) => {
190 return ( 190 return (
191 <div> 191 <div>
192 <el-button 192 {
193 type="primary" 193 scope.row.receiveState == 2 ?
194 onClick={() => { 194 <el-button
195 this.handleEdit(scope.row); 195 type="text"
196 }} 196 class='successColor'
197 > 197 onClick={() => {
198 详情 198 this.handleDetails(scope.row);
199 </el-button> 199 }}
200 >
201 修改
202 <i class="el-icon-d-arrow-right"></i>
203 </el-button> :
204 <el-button
205 type="text"
206 class='btnColor'
207 onClick={() => {
208 this.handleDetails(scope.row);
209 }}
210 >
211 详情
212 <i class="el-icon-d-arrow-right"></i>
213 </el-button>
214 }
200 </div> 215 </div>
201 ) 216 )
202 } 217 }
...@@ -245,13 +260,41 @@ export default { ...@@ -245,13 +260,41 @@ export default {
245 // 结果 260 // 结果
246 handleResult (row) { 261 handleResult (row) {
247 this.$popupDialog('响应结果', 'views/jsbwcx/components/result', row) 262 this.$popupDialog('响应结果', 'views/jsbwcx/components/result', row)
248 } 263 },
264 // 详情
265 handleDetails (row) {
266 if (row.rectypeName) {
267 this.title = row.rectypeName
268 } else {
269 let Title = ''
270 this.dicData['A21'].map(item => {
271 if (item.DCODE == row.DJLX || item.DCODE == row.djlx) {
272 Title = item.DNAME
273 return
274 }
275 })
276
277 this.dicData['A8'].map(item => {
278 if (item.DCODE == row.QLLX || item.DCODE == row.qllx) {
279 Title += '-' + item.DNAME
280 return
281 }
282 })
283 this.title = Title
284 }
285 this.$refs.editLog.isShow(row);
286 if (row.receiveState == 2) {
287 this.$store.dispatch('business/setReportLogEdit')
288 } else {
289 this.$store.dispatch('business/setEdit')
290 }
291 },
249 } 292 }
250 } 293 }
251 </script> 294 </script>
252 <style scoped lang="scss"> 295 <style scoped lang="scss">
253 // 引入表单整体样式 296 // 引入表单整体样式
254 @import "~@/styles/public.scss"; 297 // // @import "~@/styles/public.scss";
255 // 引入当前css 298 // 引入当前css
256 @import "./index.scss"; 299 @import "./index.scss";
257 </style> 300 </style>
......
1 <template> 1 <template>
2 <div class="bg"> 2 <div class="bg">
3 <div class="login-logo"></div>
3 <div class="login-inner-bg login"> 4 <div class="login-inner-bg login">
4 <h2>{{ productName }}</h2> 5 <h2>{{ productName }}</h2>
5 <div class="user_style"> 6 <div class="user_style">
6 <h3>欢迎登录</h3> 7 <h3>欢迎登录</h3>
7 <el-form 8 <el-form :model="user" :rules="rules" ref="user" id="loginform" class="demo-ruleForm">
8 :model="user"
9 :rules="rules"
10 ref="user"
11 id="loginform"
12 class="demo-ruleForm"
13 >
14 <el-form-item prop="account"> 9 <el-form-item prop="account">
15 <el-input 10 <el-input class="username" v-model="user.account" placeholder="请输入用户名"></el-input>
16 class="username"
17 v-model="user.account"
18 placeholder="请输入用户名"
19 ></el-input>
20 </el-form-item> 11 </el-form-item>
21 <el-form-item prop="password"> 12 <el-form-item prop="password">
22 <el-input 13 <el-input type="password" class="password" @keyup.enter.native="login('user')" v-model="user.password"
23 type="password" 14 placeholder="请输入密码"></el-input>
24 class="password"
25 v-model="user.password"
26 placeholder="请输入密码"
27 ></el-input>
28 </el-form-item> 15 </el-form-item>
29 <!-- <el-form-item>
30 <el-checkbox
31 label="记住用户名"
32 @change="checkUserName"
33 ></el-checkbox>
34 </el-form-item> -->
35 <el-form-item class="login-btn"> 16 <el-form-item class="login-btn">
36 <el-button type="primary" style="width: 100%" @click="login('user')" 17 <el-button type="primary" style="width: 100%" @click="login('user')">登录</el-button>
37 >登录</el-button
38 >
39 </el-form-item> 18 </el-form-item>
40 </el-form> 19 </el-form>
41 </div> 20 </div>
...@@ -44,221 +23,244 @@ ...@@ -44,221 +23,244 @@
44 </template> 23 </template>
45 24
46 <script> 25 <script>
47 import { loginIn } from "@/api/login.js"; 26 import { loginIn } from "@/api/login.js";
48 import { api, getAction } from "@/api/manageApi"; 27 import { api, getAction } from "@/api/manageApi";
49 export default { 28 export default {
50 name: "Login", 29 name: "Login",
51 data() { 30 data () {
52 return { 31 return {
53 user: { 32 user: {
54 account: "", 33 account: "",
55 password: "", 34 password: "",
56 checkStatus: false, 35 checkStatus: false,
57 }, 36 },
58 productName: "", 37 productName: "",
59 rules: { 38 rules: {
60 account: [{ required: true, message: "请填写帐号", trigger: "blur" }], 39 account: [{ required: true, message: "请填写帐号", trigger: "blur" }],
61 password: [{ required: true, message: "请填写密码", trigger: "blur" }], 40 password: [{ required: true, message: "请填写密码", trigger: "blur" }],
62 }, 41 },
63 }; 42 };
64 },
65 created() {
66 const params = {};
67 const queryOptions = {
68 conditionGroup: {
69 conditions: [
70 {
71 property: "code",
72 value: "BDCJGPT",
73 operator: "EQ",
74 },
75 ],
76 queryRelation: "AND",
77 },
78 };
79 params.queryOptions = JSON.stringify(queryOptions);
80 //根据子系统code获取子系统详细信息
81 getAction(api.subsystem, params).then((res) => {
82 if (res.status === 1) {
83 this.productName = res.content[0].name;
84 this.$store.dispatch("products/setData", res.content[0]);
85 } else {
86 this.$message.error({ message: res.message, showClose: true });
87 }
88 });
89 },
90 mounted() {
91 // this.checkUserName();
92 },
93 methods: {
94 //记住用户名
95 checkUserName: function (flag) {
96 this.user.checkStatus = flag;
97 if (this.user.checkStatus) {
98 localStorage.setItem("accountId", this.user.account);
99 let name = localStorage.getItem("accountId");
100 if (name === "") {
101 return;
102 } else {
103 this.user.account = name;
104 }
105 } else {
106 this.user.account = localStorage.getItem("accountId");
107 }
108 }, 43 },
109 login(user) { 44 created () {
110 var self = this; 45 const params = {};
111 this.$refs[user].validate((valid) => { 46 const queryOptions = {
112 if (valid) { 47 conditionGroup: {
113 loginIn(self.user.account, self.user.password) 48 conditions: [
114 .then((res) => { 49 {
115 if (res.status === 1) { 50 property: "code",
116 //存储token 51 value: "BDCJGPT",
117 sessionStorage.setItem("token", `Bearer ${res.content}`); 52 operator: "EQ",
118 //登录成功后需判断有无重定向,没有重定向则跳转首页 53 },
119 this.$router.replace(this.$route.query.redirect || "/"); 54 ],
120 } else { 55 queryRelation: "AND",
121 //错误处理 56 },
122 } 57 };
123 }) 58 params.queryOptions = JSON.stringify(queryOptions);
124 .catch((error) => { 59 //根据子系统code获取子系统详细信息
125 // console.dir(error); 60 getAction(api.subsystem, params).then((res) => {
126 }); 61 if (res.status === 1) {
62 console.log(" res.contentJJJGGG", res.content);
63 // this.productName = res.content[0].name;
64 this.$store.dispatch("products/setData", res.content[0].code);
65 sessionStorage.setItem("products", res.content[0].code)
66 console.log("jjjggg的product");
67 } else {
68 this.$message.error({ message: res.message, showClose: true });
127 } 69 }
128 }); 70 });
129 }, 71 },
130 }, 72 mounted () {
131 computed: { 73 // this.checkUserName();
132 productName() { 74 },
133 return this.$store.state.products.products.name; 75 methods: {
76 //记住用户名
77 checkUserName: function (flag) {
78 this.user.checkStatus = flag;
79 if (this.user.checkStatus) {
80 localStorage.setItem("accountId", this.user.account);
81 let name = localStorage.getItem("accountId");
82 if (name === "") {
83 return;
84 } else {
85 this.user.account = name;
86 }
87 } else {
88 this.user.account = localStorage.getItem("accountId");
89 }
90 },
91 login (user) {
92 var self = this;
93 this.$refs[user].validate((valid) => {
94 if (valid) {
95 loginIn(self.user.account, self.user.password)
96 .then((res) => {
97 if (res.status === 1) {
98 //存储token
99 sessionStorage.setItem("token", `Bearer ${res.content}`);
100 //登录成功后需判断有无重定向,没有重定向则跳转首页
101 this.$router.replace(this.$route.query.redirect || "/");
102 } else {
103 //错误处理
104 }
105 })
106 .catch((error) => {
107 // console.dir(error);
108 });
109 }
110 });
111 },
134 }, 112 },
135 }, 113 components: {},
136 components: {}, 114 };
137 };
138 </script> 115 </script>
139 <style scoped lang="scss"> 116 <style scoped lang="scss">
140 .username, 117 .username,
141 .password { 118 .password {
142 position: relative; 119 position: relative;
143 &:before { 120
144 content: ""; 121 &:before {
145 display: block; 122 content: "";
146 width: 16px; 123 display: block;
147 height: 16px; 124 width: 16px;
148 position: absolute; 125 height: 16px;
149 left: 10px; 126 position: absolute;
150 top: 7px; 127 left: 10px;
151 background-size: 100% 100%; 128 top: 7px;
129 background-size: 100% 100%;
130 }
131
132 /deep/ .el-input__inner {
133 text-indent: 24px;
134 border: 1px solid rgba(11, 161, 248, 0.4);
135 background-color: rgba(6, 135, 205, 0.3) !important;
136 }
152 } 137 }
153 /deep/ .el-input__inner { 138
154 text-indent: 24px; 139 .username::before {
155 border: 1px solid rgba(11, 161, 248, 0.4); 140 background-image: url(../../image/username.png);
156 background-color: rgba(6, 135, 205, 0.3) !important;
157 } 141 }
158 }
159 .username::before {
160 background-image: url(../../image/username.png);
161 }
162 .password::before {
163 background-image: url(../../image/password.png);
164 }
165 .bg {
166 width: 100%;
167 height: 100%;
168 min-width: 1440px;
169 min-height: 560px;
170 background: url(../../image/loginBoxBg.png) no-repeat;
171 background-size: 100% 100%;
172 overflow: hidden;
173 position: relative;
174 }
175 142
176 .login-inner-bg { 143 .password::before {
177 background: url(../../image/loginBg.png) no-repeat; 144 background-image: url(../../image/password.png);
178 width: 21.6%; 145 }
179 height: 43%; 146
180 min-width: 360px; 147 .bg {
181 min-height: 380px;
182 top: 30%;
183 right: 20%;
184 position: absolute;
185 background-size: 100% 100%;
186 box-sizing: border-box;
187 padding: 56px;
188 h2 {
189 width: 100%; 148 width: 100%;
190 font-size: 36px; 149 height: 100%;
191 font-weight: 700; 150 min-width: 1440px;
192 color: #fff; 151 min-height: 560px;
193 text-align: center; 152 background: url(../../image/loginBoxBg.png) no-repeat;
194 white-space: nowrap; 153 background-size: 100% 100%;
195 position: absolute; 154 overflow: hidden;
196 right: 0; 155 position: relative;
197 top: -70px; 156 .login-logo {
198 background-image: linear-gradient( 157 background: url(../../image/loginLogo.png) no-repeat;
199 180deg, 158 background-size: 100% 100%;
200 rgba(99, 163, 255, 1) 0, 159 width: 28%;
201 rgba(99, 163, 255, 1) 0, 160 height: 52%;
202 rgba(182, 220, 255, 1) 49.731445%, 161 position: absolute;
203 rgba(114, 190, 255, 1) 100%, 162 top: 25%;
204 rgba(114, 190, 255, 1) 100% 163 left: 19%;
205 ); 164 }
206 overflow-wrap: break-word;
207 color: rgba(255, 255, 255, 1);
208 font-size: 36px;
209 font-family: AlimamaShuHeiTi-Bold;
210 -webkit-background-clip: text;
211 -webkit-text-fill-color: transparent;
212 } 165 }
213 } 166
214 .login { 167 .login-inner-bg {
215 .user_style { 168 background: url(../../image/loginBg.png) no-repeat;
216 h3 { 169 width: 20.6%;
170 height: 43%;
171 min-width: 360px;
172 min-height: 380px;
173 top: 30%;
174 right: 20%;
175 position: absolute;
176 background-size: 100% 100%;
177 box-sizing: border-box;
178 padding: 56px;
179
180 h2 {
181 width: 100%;
182 font-size: 36px;
183 font-weight: 700;
217 color: #fff; 184 color: #fff;
218 font-size: 22px;
219 font-weight: normal;
220 text-align: center; 185 text-align: center;
221 margin: 16px auto 34px; 186 white-space: nowrap;
222 font-weight: 400; 187 position: absolute;
188 right: 0;
189 top: -70px;
190 background-image: linear-gradient(
191 180deg,
192 rgba(99, 163, 255, 1) 0,
193 rgba(99, 163, 255, 1) 0,
194 rgba(182, 220, 255, 1) 49.731445%,
195 rgba(114, 190, 255, 1) 100%,
196 rgba(114, 190, 255, 1) 100%
197 );
198 overflow-wrap: break-word;
199 color: rgba(255, 255, 255, 1);
200 font-size: 36px;
201 font-family: AlimamaShuHeiTi-Bold;
202 -webkit-background-clip: text;
203 -webkit-text-fill-color: transparent;
223 } 204 }
224 } 205 }
225 .btn {
226 width: 100%;
227 height: 6vh;
228 background-color: #00c2de;
229 border-radius: 5px;
230 font-size: 1.4vw;
231 color: #ffffff;
232 }
233 .btn:hover {
234 cursor: pointer;
235 background-color: #2d8cf0;
236 }
237 }
238 206
239 .login #loginform { 207 .login {
240 .el-form-item { 208 .user_style {
241 margin-bottom: 24px !important; 209 h3 {
242 } 210 color: #fff;
243 .login-btn { 211 font-size: 22px;
244 margin-top: 40px !important; 212 font-weight: normal;
213 text-align: center;
214 margin: 16px auto 34px;
215 font-weight: 400;
216 }
217 }
218
219 .btn {
220 width: 100%;
221 height: 6vh;
222 background-color: #00c2de;
223 border-radius: 5px;
224 font-size: 1.4vw;
225 color: #ffffff;
226 }
227
228 .btn:hover {
229 cursor: pointer;
230 background-color: #2d8cf0;
231 }
245 } 232 }
246 .el-button { 233
247 font-size: 18px; 234 .login #loginform {
248 background: #0d8cc0 !important; 235 .el-form-item {
249 color: #ffffff !important; 236 margin-bottom: 24px !important;
250 cursor: pointer !important; 237 }
238
239 .login-btn {
240 margin-top: 40px !important;
241 }
242
243 .el-button {
244 font-size: 18px;
245 background: #0d8cc0 !important;
246 color: #ffffff !important;
247 cursor: pointer !important;
248 }
249
250 .el-input__inner {
251 width: 100% !important;
252 }
253
254 .el-checkbox__label {
255 color: #fff;
256 }
251 } 257 }
252 .el-input__inner { 258
253 width: 100% !important; 259 .inputUser .ivu-input {
260 padding: 6px 24px !important;
261 border: 1px solid #9f9f9f !important;
254 } 262 }
255 .el-checkbox__label { 263 tr.hover-row > td.el-table__cell {
256 color: #fff; 264 background-color: transparent !important;
257 } 265 }
258 }
259
260 .inputUser .ivu-input {
261 padding: 6px 24px !important;
262 border: 1px solid #9f9f9f !important;
263 }
264 </style> 266 </style>
......
1 <template>
2 <div class="bg">
3 <div class="title">
4 <img src="../../image/bdclogo.png" alt="">
5 <h2>{{ productName }}</h2>
6 </div>
7 <div class="login-inner-bg login">
8 <div class="user_style">
9 <h3>用户登录</h3>
10 <el-form :model="user" :rules="rules" ref="user" id="loginform" class="demo-ruleForm">
11 <el-form-item prop="account">
12 <el-input class="username" v-model="user.account" placeholder="请输入用户名"></el-input>
13 </el-form-item>
14 <el-form-item prop="password">
15 <el-input type="password" class="password" @keyup.native="login('user')" v-model="user.password"
16 placeholder="请输入密码" show-password></el-input>
17 </el-form-item>
18 <el-form-item prop="yz">
19 <el-input class="yz" @keyup.native="login('user')" v-model="user.yz"
20 placeholder="请输入验证码"></el-input>
21 </el-form-item>
22 <el-form-item class="login-btn">
23 <el-button type="primary" style="width: 100%" @click="login('user')">登录</el-button>
24 </el-form-item>
25 </el-form>
26 </div>
27 </div>
28 </div>
29 </template>
30
31 <script>
32 import { loginIn } from "@/api/login.js";
33 import { api, getAction } from "@/api/manageApi";
34 export default {
35 name: "Login",
36 data () {
37 return {
38 user: {
39 account: "",
40 password: "",
41 yz: "",
42 checkStatus: false,
43 },
44 productName: "",
45 rules: {
46 account: [{ required: true, message: "请填写帐号", trigger: "blur" }],
47 password: [{ required: true, message: "请填写密码", trigger: "blur" }],
48 },
49 };
50 },
51 created () {
52 const params = {};
53 const queryOptions = {
54 conditionGroup: {
55 conditions: [
56 {
57 property: "code",
58 value: "BDCSBPT",
59 operator: "EQ",
60 },
61 ],
62 queryRelation: "AND",
63 },
64 };
65 params.queryOptions = JSON.stringify(queryOptions);
66 //根据子系统code获取子系统详细信息
67 getAction(api.subsystem, params).then((res) => {
68 if (res.status === 1) {
69 this.productName = res.content[0].name;
70 // console.log(" res.contentSSSSSBBBBB", res.content);
71 this.$store.dispatch("products/setData", res.content[0].code);
72
73 sessionStorage.setItem("products", res.content[0].code)
74 } else {
75 this.$message.error({ message: res.message, showClose: true });
76 }
77 });
78 },
79 mounted () {
80 // this.checkUserName();
81 },
82 methods: {
83 //记住用户名
84 checkUserName: function (flag) {
85 this.user.checkStatus = flag;
86 if (this.user.checkStatus) {
87 localStorage.setItem("accountId", this.user.account);
88 let name = localStorage.getItem("accountId");
89 if (name === "") {
90 return;
91 } else {
92 this.user.account = name;
93 }
94 } else {
95 this.user.account = localStorage.getItem("accountId");
96 }
97 },
98 login (user) {
99 var self = this;
100 this.$refs[user].validate((valid) => {
101 if (valid) {
102 loginIn(self.user.account, self.user.password)
103 .then((res) => {
104 if (res.status === 1) {
105 this.$store.dispatch('business/setInitRules', "layout1")
106 //存储token
107 sessionStorage.setItem("token", `Bearer ${res.content}`);
108 //登录成功后需判断有无重定向,没有重定向则跳转首页
109 this.$router.replace(this.$route.query.redirect || "/");
110 } else {
111 console.log(res);
112 this.$message.error({ message: res.message })
113 }
114 })
115 .catch((error) => {
116 // console.dir(error);
117 });
118 }
119 });
120 },
121 },
122 components: {},
123 };
124 </script>
125 <style scoped lang="scss">
126 .username,
127 .password,
128 .yz {
129 position: relative;
130
131 &:before {
132 content: "";
133 display: block;
134 width: 16px;
135 height: 16px;
136 position: absolute;
137 left: 10px;
138 top: 7px;
139 background-size: 100% 100%;
140 }
141
142 /deep/ .el-input__inner {
143 color: #000 !important;
144 text-indent: 24px;
145 // border: 1px solid rgba(11, 161, 248, 0.4);
146 // background-color: rgba(6, 135, 205, 0.3) !important;
147 }
148 }
149
150 .username::before {
151 background-image: url(../../image/userlogo.png);
152 }
153
154 .password::before {
155 background-image: url(../../image/passlogo.png);
156 }
157 .yz::before {
158 background-image: url(../../image/yzlogo.png);
159 }
160
161 .bg {
162 width: 100%;
163 height: 100%;
164 min-width: 1440px;
165 min-height: 560px;
166 background: url(../../image/loginBoxsb.png) no-repeat;
167 background-size: 100% 100%;
168 overflow: hidden;
169 position: relative;
170 }
171 .title {
172 width: 24%;
173 height: 6%;
174 top: 20%;
175 right: 38%;
176 position: absolute;
177 img {
178 width: 60px;
179 height: 60px;
180 top: 0%;
181 left: 2%;
182 position: absolute;
183 }
184 h2 {
185 top: 25%;
186 left: 22%;
187 position: absolute;
188 width: 383px;
189 height: 42px;
190 font-size: 28px;
191 font-weight: 600;
192 color: #ffffff;
193 text-shadow: 0px 4px 4px #002c95;
194 }
195 }
196 .login-inner-bg {
197 background: white;
198 width: 24.6%;
199 height: 47%;
200 min-width: 360px;
201 min-height: 380px;
202 top: 30%;
203 right: 38%;
204 position: absolute;
205 background-size: 100% 100%;
206 box-sizing: border-box;
207 padding: 56px;
208 }
209
210 .login {
211 .user_style {
212 h3 {
213 font-weight: normal;
214 text-align: center;
215 margin: -10px auto 28px;
216 font-weight: 400;
217 width: 125px;
218 height: 29px;
219 font-size: 20px;
220 font-family: Source Han Sans CN;
221 font-weight: 400;
222 color: #333333;
223 }
224 }
225
226 .btn {
227 width: 100%;
228 height: 6vh;
229 background-color: #00c2de;
230 border-radius: 5px;
231 font-size: 1.4vw;
232 color: #000;
233 }
234
235 .btn:hover {
236 cursor: pointer;
237 background-color: #2d8cf0;
238 }
239 }
240
241 .login #loginform {
242 .el-form-item {
243 margin-bottom: 24px !important;
244 }
245
246 .login-btn {
247 margin-top: 30px !important;
248 }
249
250 .el-button {
251 font-size: 18px;
252 border-radius: 0;
253 background: #4162d8 !important;
254 color: #ffffff !important;
255 cursor: pointer !important;
256 }
257
258 .el-input__inner {
259 width: 100% !important;
260 }
261
262 .el-checkbox__label {
263 color: #fff;
264 }
265 }
266
267 .inputUser .ivu-input {
268 padding: 6px 24px !important;
269 border: 1px solid #9f9f9f !important;
270 }
271 </style>
1 /deep/.el-table--border th.el-table__cell {
2 border-bottom: 1px solid #458ACF !important;
3 }
4
5 /deep/.el-table--border .el-table__cell {
6 border-right: 1px solid #458ACF !important;
7 }
8
9 /deep/.el-table thead.is-group th.el-table__cell {
10 background-color: transparent !important;
11 }
12
13 /deep/.el-table--group::after,
14 .el-table--border::after {
15 width: 0 !important;
16 }
17
18 .export-excel-wrapper {
19 display: inline-block;
20 }
...\ No newline at end of file ...\ No newline at end of file
1 import filter from '@/utils/filter.js'
2 class data extends filter {
3 constructor() {
4 super()
5 }
6 columns () {
7 return [
8 {
9 prop: "recType",
10 label: "行政区",
11 width: '90'
12 },
13 {
14 label: '增量数据接入情况',
15 children: [
16 {
17 prop: 'busniessCount',
18 label: '本期接入业务量(笔)',
19 },
20 {
21 prop: 'receiveCount',
22 label: '本期接入业务量(次)',
23 },
24 {
25 prop: 'recordTotal',
26 label: '本期登簿日志反映出的登簿量(条)',
27 },
28 {
29 label: '本期接入质量评价',
30 children: [
31 {
32 prop: 'noReportLog',
33 label: '未上报登簿日志县区数(个)',
34 },
35 {
36 prop: 'noReportArea',
37 label: '未上报数据县区数(个)',
38 },
39 {
40 label: '本期未成功接入登簿量及在登簿日志量中的占比',
41 width: '120',
42 children: [
43 {
44 prop: 'failReportCount',
45 label: '未成功接入登簿量(条)',
46
47 },
48 {
49 prop: 'failReportRatio',
50 label: '占比',
51 render: (h, scope) => {
52 return (
53 <span>{(scope.row.failReportRatio * 100).toFixed(2)}%</span>
54 );
55 },
56 }
57 ]
58 },
59 {
60 label: '分时段接入登簿量及与本期接入登簿量的占比',
61 children: [
62 {
63 label: '24小时内接入登簿量(占比%)',
64 width: '120',
65 children: [
66 {
67 prop: 'failReportCount24h',
68 },
69 {
70 prop: 'failReportRatio24h',
71 render: (h, scope) => {
72 return (
73 <span>{(scope.row.failReportRatio24h * 100).toFixed(2)}%</span>
74 );
75 },
76 }
77 ]
78 },
79 {
80 label: '48小时内接入登簿量(占比%)',
81 width: '120',
82 children: [
83 {
84 prop: 'failReportCount24To48h',
85 },
86 {
87 prop: 'failReportRatio24To48h',
88 render: (h, scope) => {
89 return (
90 <span>{(scope.row.failReportRatio24To48h * 100).toFixed(2)}%</span>
91 );
92 },
93 }
94 ]
95 },
96 {
97 label: '超过48小时接入登簿量(占比%)',
98 width: '120',
99 children: [
100 {
101 prop: 'failReportCount48h',
102 },
103 {
104 prop: 'failReportRatio48h',
105 render: (h, scope) => {
106 return (
107 <span>{(scope.row.failReportRatio48h * 100).toFixed(2)}%</span>
108 );
109 },
110 }
111 ]
112 }
113 ]
114 },
115 {
116 prop: 'xxx',
117 label: '网络环境异常情况',
118 },
119 {
120 prop: 'xxx',
121 label: '非登簿环节接入的区县数',
122 },
123 {
124 prop: 'xxx',
125 label: '非自动方式接入的区县数',
126 },
127 {
128 prop: 'rate',
129 label: '综合评分'
130 }
131 ]
132 }
133 ]
134 }
135 ]
136 }
137 }
138 export default new data()
1 <!-- 登簿日志查询 -->
...\ No newline at end of file ...\ No newline at end of file
1 <!-- 接入质量评价表 -->
2 <template>
3 <div class="from-clues">
4 <!-- 头部搜索 -->
5 <div class="from-clues-header">
6 <el-form ref="ruleForm" :model="form" label-width="100px">
7 <el-form-item>
8 <Breadcrumb />
9 </el-form-item>
10 <el-row class="mb-5">
11 <el-col :span="6">
12 <el-form-item label="接收日期" prop="startTime">
13 <el-date-picker type="date" class="width100" placeholder="开始日期" :picker-options="pickerOptionsStart"
14 clearable v-model="form.startTime" value-format="yyyy-MM-dd"></el-date-picker>
15 </el-form-item>
16 </el-col>
17 <el-col :span="6">
18 <el-form-item label="至" prop="endTime" label-width="35px">
19 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd" clearable
20 v-model="form.endTime" value-format="yyyy-MM-dd"></el-date-picker>
21 </el-form-item>
22 </el-col>
23 <!-- 按钮操作 -->
24 <el-col :span="12" class="btnColRight">
25 <el-form-item>
26 <btn nativeType="cz" @click="handleResetForm">重置</btn>
27 <btn nativeType="cx" @click="featchDataSelf">查询</btn>
28 <btn nativeType="cx" @click="handlesetExport2Excel(downTitle)">导出</btn>
29 </el-form-item>
30 </el-col>
31 </el-row>
32 </el-form>
33 </div>
34 <!-- 列表区域 -->
35 <div class="from-clues-content">
36 <lb-table ref="table" :header-cell-style="headerStyle1" :pagination="false" :column="tableData.columns"
37 :data="tableData.data">
38 </lb-table>
39
40 <down-lb-table ref="table" v-show="false" :id="'mytable'" :downExcel="true" :header-cell-style="headerStyle"
41 :pagination="false" :column="tableData.columns" :data="tableData.data" :downTitle="downTitle">
42 </down-lb-table>
43 </div>
44 </div>
45 </template>
46
47 <script>
48 // 接入质量评价表
49 // 引入表格头部数据
50 import data from "./data";
51 // 引入table混入方法
52 import tableMixin from "@/mixins/tableMixin.js";
53 // 导出excel表格
54 import downLbTable from '@/components/DownLbTable'
55 // 获取时间
56 import { getCurrentDate, setExport2Excel } from "@/utils/tools";
57 import { dataReceiveQuality } from "@/api/statistics.js";
58 export default {
59 name: "jsbwcx",
60 components: {
61 downLbTable
62 },
63 mixins: [tableMixin],
64 data () {
65 return {
66 pickerOptionsStart: {
67 disabledDate: (time) => {
68 let endDateVal = this.form.endTime;
69 if (endDateVal) {
70 return (
71 time.getTime() >=
72 new Date(endDateVal).getTime()
73 );
74 }
75 },
76 },
77 pickerOptionsEnd: {
78 disabledDate: (time) => {
79 let beginDateVal = this.form.startTime;
80 if (beginDateVal) {
81 return (
82 time.getTime() <
83 new Date(beginDateVal).getTime()
84 );
85 }
86 },
87 },
88 // 表格数据
89 form: {
90 startTime: "", // 开始日期
91 endTime: "" // 结束日期
92 },
93 // 校验规则
94 rules: {
95 startTime: [
96 { required: true, message: "请选择开始日期", trigger: "change" },
97 ],
98 endTime: [
99 { required: true, message: "请选择结束日期", trigger: "change" },
100 ]
101 },
102 // 表格数据
103 tableData: {
104 // 表格头部
105 columns: [
106 {
107 label: "序号",
108 type: "index",
109 width: "50",
110 // index: this.indexMethod,
111 }
112 ]
113 .concat(data.columns()),
114 data: []
115 },
116 // 导出表格标题
117 downTitle: ''
118 }
119 },
120 watch: {
121 form: {
122 handler (newVal, oldVal) {
123 this.generateFileName()
124 },
125 deep: true
126 }
127 },
128 created () {
129 this.handleResetForm()
130 this.generateFileName()
131 },
132 methods: {
133 handleSearch () { },
134 // 生成文件名
135 generateFileName () {
136 var reg = /(\d{4})\-(\d{2})\-(\d{2})/;
137 this.downTitle = `汉中市不动产登记增量数据接入质量评价表(${this.form.startTime.replace(reg, "$1年$2月$3日")}${this.form.endTime.replace(reg, "$1年$2月$3日")})`
138 },
139 headerStyle ({ row, rowIndex }) {
140 if (rowIndex == 4) {
141 row[2].rowSpan = 2;
142 row[3].rowSpan = 2;
143 row[4].rowSpan = 2;
144 }
145 },
146 headerStyle1 ({ row, rowIndex }) {
147 if (rowIndex == 3) {
148 row[2].rowSpan = 2;
149 row[3].rowSpan = 2;
150 row[4].rowSpan = 2;
151 }
152 },
153 handlesetExport2Excel (val) {
154 setExport2Excel(val)
155 },
156 // 初始化数据
157 featchDataSelf () {
158 dataReceiveQuality(this.form.startTime, this.form.endTime).then(res => {
159 let records = res.result
160 this.tableData.data = records ? records : []
161 })
162 },
163 // 重置
164 handleResetForm () {
165 this.form.startTime = getCurrentDate()
166 this.form.endTime = getCurrentDate('time')
167 this.featchDataSelf()
168 }
169 }
170 }
171 </script>
172 <style scoped lang="scss">
173 // 引入表单整体样式
174 // @import "~@/styles/public.scss";
175 @import "../css/index.scss";
176 </style>
177
......
1 import filter from '@/utils/filter.js'
2 class data extends filter {
3 constructor() {
4 super()
5 }
6 columns () {
7 return [
8 {
9 label: "行政区划",
10 prop: "areaName",
11 width: '80'
12 },
13 {
14 label: '国有建设用地使用权',
15 prop: "",
16 children: [
17 {
18 label: '用途',
19 prop: "",
20 children: [
21 {
22 label: '空项率',
23 prop: "yt",
24 render: (h, scope) => {
25 return (
26 <span>{(scope.row.yt * 100).toFixed(2)}%</span>
27 );
28 },
29 },
30 /*{
31 label: '分值',
32 prop: "xx",
33 }*/
34 ]
35 },
36 {
37 label: '权利性质',
38 prop: "",
39 children: [
40 {
41 label: '空项率',
42 prop: "qlxz",
43 render: (h, scope) => {
44 return (
45 <span>{(scope.row.qlxz * 100).toFixed(2)}%</span>
46 );
47 },
48 },
49 /*{
50 label: '分值',
51 prop: "xx",
52 }*/
53 ]
54 },
55 {
56 label: '权利设定方式',
57 prop: "",
58 children: [
59 {
60 label: '空项率',
61 prop: "qlsdfs",
62 render: (h, scope) => {
63 return (
64 <span>{(scope.row.qlsdfs * 100).toFixed(2)}%</span>
65 );
66 },
67 },
68 /*{
69 label: '分值',
70 prop: "xx",
71 }*/
72 ]
73 },
74 {
75 label: ' 共有情况(建设用地)',
76 prop: "",
77 children: [
78 {
79 label: '空项率',
80 prop: "gyjsydgyqk",
81 render: (h, scope) => {
82 return (
83 <span>{(scope.row.gyjsydgyqk * 100).toFixed(2)}%</span>
84 );
85 },
86 },
87 /*{
88 label: '分值',
89 prop: "xx",
90 }*/
91 ]
92 },
93 {
94 label: '等别',
95 prop: "",
96 children: [
97 {
98 label: '空项率',
99 prop: "dj",
100 render: (h, scope) => {
101 return (
102 <span>{(scope.row.dj * 100).toFixed(2)}%</span>
103 );
104 },
105 },
106 /*{
107 label: '分值',
108 prop: "xx",
109 }*/
110 ]
111 },
112 {
113 label: ' 容积率',
114 prop: "",
115 children: [
116 {
117 label: '空项率',
118 prop: "rjl",
119 render: (h, scope) => {
120 return (
121 <span>{(scope.row.rjl * 100).toFixed(2)}%</span>
122 );
123 },
124 },
125 /*{
126 label: '分值',
127 prop: "xx",
128 }*/
129 ]
130 },
131 ]
132 },
133 {
134 label: '房屋所有权',
135 prop: "",
136 children: [
137 {
138 label: '房屋共有情况',
139 prop: "",
140 children: [
141 {
142 label: '空项率',
143 prop: "fwgyqk",
144 render: (h, scope) => {
145 return (
146 <span>{(scope.row.fwgyqk * 100).toFixed(2)}%</span>
147 );
148 },
149 },
150 /*{
151 label: '分值',
152 prop: "xx",
153 }*/
154 ]
155 },
156 {
157 label: '房屋性质',
158 prop: "",
159 children: [
160 {
161 label: '空项率',
162 prop: "fwxz",
163 render: (h, scope) => {
164 return (
165 <span>{(scope.row.fwxz * 100).toFixed(2)}%</span>
166 );
167 },
168 },
169 /*{
170 label: '分值',
171 prop: "xx",
172 }*/
173 ]
174 },
175 {
176 label: '房屋结构',
177 prop: "",
178 children: [
179 {
180 label: '空项率',
181 prop: "fwjg",
182 render: (h, scope) => {
183 return (
184 <span>{(scope.row.fwjg * 100).toFixed(2)}%</span>
185 );
186 },
187 },
188 /*{
189 label: '分值',
190 prop: "xx",
191 }*/
192 ]
193 },
194 {
195 label: '竣工时间',
196 prop: "",
197 children: [
198 {
199 label: '空项率',
200 prop: "jgsj",
201 render: (h, scope) => {
202 return (
203 <span>{(scope.row.jgsj * 100).toFixed(2)}%</span>
204 );
205 },
206 },
207 /*{
208 label: '分值',
209 prop: "xx",
210 }*/
211 ]
212 }
213 ]
214 },
215 {
216 label: '抵押权',
217 prop: "",
218 children: [
219 {
220 label: '债务履行期限(债权确定时间)',
221 prop: "",
222 children: [
223 {
224 prop: 'dyqx',
225 label: '空项率',
226 render: (h, scope) => {
227 return (
228 <span>{(scope.row.dyqx * 100).toFixed(2)}%</span>
229 );
230 },
231 },
232 /*{
233 label: '分值',
234 prop: "xx",
235 }*/
236 ]
237 }
238 ]
239 },
240 {
241 label: '最高额抵押',
242 prop: "",
243 children: [
244 {
245 label: '最高债权确定事实和数额',
246 prop: "",
247 children: [
248 {
249 prop: 'zgzqse',
250 label: '空项率',
251 render: (h, scope) => {
252 return (
253 <span>{(scope.row.zgzqse * 100).toFixed(2)}%</span>
254 );
255 },
256 },
257 /*{
258 label: '分值',
259 prop: "xx",
260 }*/
261 ]
262 }
263 ]
264 },
265 {
266 label: '在建建筑物坐落(一般)',
267 prop: "",
268 children: [
269 {
270 label: '在建建筑物坐落',
271 prop: "",
272 children: [
273 {
274 prop: 'ybzjzjwzl',
275 label: '空项率',
276 render: (h, scope) => {
277 return (
278 <span>{(scope.row.ybzjzjwzl * 100).toFixed(2)}%</span>
279 );
280 },
281 },
282 /*{
283 label: '分值',
284 prop: "xx",
285 }*/
286 ]
287 },
288 {
289 label: '在建建筑物抵押范围',
290 prop: "",
291 children: [
292 {
293 prop: 'ybzjzjwdyfw',
294 label: '空项率',
295 render: (h, scope) => {
296 return (
297 <span>{(scope.row.ybzjzjwdyfw * 100).toFixed(2)}%</span>
298 );
299 },
300 },
301 /*{
302 label: '分值',
303 prop: "xx",
304 }*/
305 ]
306 }
307 ]
308 },
309 {
310 label: '在建建筑物坐落(最高额)',
311 prop: "",
312 children: [
313 {
314 label: '在建建筑物坐落',
315 prop: "",
316 children: [
317 {
318 prop: 'zgezjzjwzl',
319 label: '空项率',
320 render: (h, scope) => {
321 return (
322 <span>{(scope.row.zgezjzjwzl * 100).toFixed(2)}%</span>
323 );
324 },
325 },
326 /*{
327 label: '分值',
328 prop: "xx",
329 }*/
330 ]
331 },
332 {
333 label: '在建建筑物抵押范围',
334 prop: "",
335 children: [
336 {
337 prop: 'zgezjzjwdyfw',
338 label: '空项率',
339 render: (h, scope) => {
340 return (
341 <span>{(scope.row.zgezjzjwdyfw * 100).toFixed(2)}%</span>
342 );
343 },
344 },
345 /*{
346 label: '分值',
347 prop: "xx",
348 }*/
349 ]
350 }
351 ]
352 },
353 {
354 label: '抵押注销',
355 prop: "",
356 children: [
357 {
358 label: '注销抵押原因',
359 prop: "",
360 children: [
361 {
362 prop: 'dyzxyy',
363 label: '空项率',
364 render: (h, scope) => {
365 return (
366 <span>{(scope.row.dyzxyy * 100).toFixed(2)}%</span>
367 );
368 },
369 },
370 /*{
371 label: '分值',
372 prop: "xx",
373 }*/
374 ]
375 },
376 {
377 label: '注销时间',
378 prop: "",
379 children: [
380 {
381 prop: 'zxsj',
382 label: '空项率',
383 render: (h, scope) => {
384 return (
385 <span>{(scope.row.zxsj * 100).toFixed(2)}%</span>
386 );
387 },
388 },
389 /*{
390 label: '分值',
391 prop: "xx",
392 }*/
393 ]
394 }
395 ]
396 },
397 {
398 label: '预告登记',
399 prop: "",
400 children: [
401 {
402 label: '义务人证件种类',
403 prop: "",
404 children: [
405 {
406 prop: 'ywrzjzl',
407 label: '空项率',
408 render: (h, scope) => {
409 return (
410 <span>{(scope.row.ywrzjzl * 100).toFixed(2)}%</span>
411 );
412 },
413 },
414 /*{
415 label: '分值',
416 prop: "xx",
417 }*/
418 ]
419 },
420 {
421 label: '义务人证件号',
422 prop: "",
423 children: [
424 {
425 prop: 'ywrzjh',
426 label: '空项率',
427 render: (h, scope) => {
428 return (
429 <span>{(scope.row.ywrzjh * 100).toFixed(2)}%</span>
430 );
431 },
432 },
433 /*{
434 label: '分值',
435 prop: "xx",
436 }*/
437 ]
438 },
439 {
440 label: '规划用途',
441 prop: "",
442 children: [
443 {
444 prop: 'ghyt',
445 label: '空项率',
446 render: (h, scope) => {
447 return (
448 <span>{(scope.row.ghyt * 100).toFixed(2)}%</span>
449 );
450 },
451 },
452 /*{
453 label: '分值',
454 prop: "xx",
455 }*/
456 ]
457 },
458 {
459 label: '房屋性质',
460 prop: "",
461 children: [
462 {
463 prop: 'ygdjfwxz',
464 label: '空项率',
465 render: (h, scope) => {
466 return (
467 <span>{(scope.row.ygdjfwxz * 100).toFixed(2)}%</span>
468 );
469 },
470 },
471 /*{
472 label: '分值',
473 prop: "xx",
474 }*/
475 ]
476 }
477 ]
478 },
479 {
480 label: '查封登记',
481 prop: "",
482 children: [
483 {
484 label: '解封机关',
485 prop: "",
486 children: [
487 {
488 prop: 'jfjg',
489 label: '空项率',
490 render: (h, scope) => {
491 return (
492 <span>{(scope.row.jfjg * 100).toFixed(2)}%</span>
493 );
494 },
495 },
496 /*{
497 label: '分值',
498 prop: "xx",
499 }*/
500 ]
501 },
502 {
503 label: '解封文件',
504 prop: "",
505 children: [
506 {
507 prop: 'jfwj',
508 label: '空项率',
509 render: (h, scope) => {
510 return (
511 <span>{(scope.row.jfwj * 100).toFixed(2)}%</span>
512 );
513 },
514 },
515 /*{
516 label: '分值',
517 prop: "xx",
518 }*/
519 ]
520 },
521 {
522 label: '解封登记时间',
523 prop: "",
524 children: [
525 {
526 prop: 'jfdjsj',
527 label: '空项率',
528 render: (h, scope) => {
529 return (
530 <span>{(scope.row.jfdjsj * 100).toFixed(2)}%</span>
531 );
532 },
533 },
534 /*{
535 label: '分值',
536 prop: "xx",
537 }*/
538 ]
539 },
540 {
541 label: '解封登簿人',
542 prop: "",
543 children: [
544 {
545 prop: 'jfdbr',
546 label: '空项率',
547 render: (h, scope) => {
548 return (
549 <span>{(scope.row.jfdbr * 100).toFixed(2)}%</span>
550 );
551 },
552 },
553 /*{
554 label: '分值',
555 prop: "xx",
556 }*/
557 ]
558 },
559 {
560 label: '解封业务号',
561 prop: "",
562 children: [
563 {
564 prop: 'jfywh',
565 label: '空项率',
566 render: (h, scope) => {
567 return (
568 <span>{(scope.row.jfywh * 100).toFixed(2)}%</span>
569 );
570 },
571 },
572 /*{
573 label: '分值',
574 prop: "xx",
575 }*/
576 ]
577 }
578 ]
579 }
580 ]
581 }
582 }
583 export default new data()
1 <!-- 相关字段空置率统计 -->
2 <template>
3 <div class="from-clues">
4 <!-- 头部搜索 -->
5 <div class="from-clues-header">
6 <el-form ref="ruleForm" :model="form" label-width="100px">
7 <el-form-item>
8 <Breadcrumb />
9 </el-form-item>
10 <el-row class="mb-5">
11 <el-col :span="6">
12 <el-form-item label="接收日期" prop="startTime">
13 <el-date-picker type="date" class="width100" placeholder="开始日期" :picker-options="pickerOptionsStart"
14 v-model="form.startTime" value-format="yyyy-MM-dd"></el-date-picker>
15 </el-form-item>
16 </el-col>
17 <el-col :span="6">
18 <el-form-item label="至" prop="endTime" label-width="35px">
19 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd"
20 v-model="form.endTime" value-format="yyyy-MM-dd"></el-date-picker>
21 </el-form-item>
22 </el-col>
23 <!-- 按钮操作 -->
24 <el-col :span="12" class="btnColRight">
25 <el-form-item>
26 <btn nativeType="cz" @click="handleResetForm">重置</btn>
27 <!-- 导出excel -->
28 <btn nativeType="cx" @click="featchDataSelf">查询</btn>
29 <btn nativeType="cx" @click="handlesetExport2Excel(downTitle)">导出</btn>
30 </el-form-item>
31 </el-col>
32 </el-row>
33 </el-form>
34 </div>
35 <!-- 列表区域 -->
36 <div class="from-clues-content">
37 <lb-table ref="table" :pagination="false" :column="tableData.columns" :data="tableData.data">
38 </lb-table>
39
40 <down-lb-table ref="table" v-show="false" :id="'mytable'" :downExcel="true" :pagination="false"
41 :column="tableData.columns" :data="tableData.data" :downTitle="downTitle">
42 </down-lb-table>
43 </div>
44 </div>
45 </template>
46
47 <script>
48 // 相关字段空置率统计
49 // 引入表格头部数据
50 import data from "./data";
51 // 引入table混入方法
52 import tableMixin from "@/mixins/tableMixin.js";
53 // 导出excel表格
54 import downLbTable from '@/components/DownLbTable'
55 // 获取时间
56 import { getCurrentDate, setExport2Excel } from "@/utils/tools";
57 import { nonNullSta } from "@/api/statistics.js";
58 export default {
59 name: "jsbwcx",
60 components: {
61 downLbTable
62 },
63 mixins: [tableMixin],
64 data () {
65 return {
66 pickerOptionsStart: {
67 disabledDate: (time) => {
68 let endDateVal = this.form.endTime;
69 if (endDateVal) {
70 return (
71 time.getTime() >=
72 new Date(endDateVal).getTime()
73 );
74 }
75 },
76 },
77 pickerOptionsEnd: {
78 disabledDate: (time) => {
79 let beginDateVal = this.form.startTime;
80 if (beginDateVal) {
81 return (
82 time.getTime() <
83 new Date(beginDateVal).getTime()
84 );
85 }
86 },
87 },
88 // 表格数据
89 form: {
90 startTime: "", // 开始日期
91 endTime: "" // 结束日期
92 },
93 // 校验规则
94 rules: {
95 startTime: [
96 { required: true, message: "请选择开始日期", trigger: "change" },
97 ],
98 endTime: [
99 { required: true, message: "请选择结束日期", trigger: "change" },
100 ]
101 },
102 // 表格数据
103 tableData: {
104 // 表格头部
105 columns: [
106 {
107 label: "序号",
108 type: "index",
109 width: "50"
110 // index: this.indexMethod,
111 }
112 ]
113 .concat(data.columns()),
114 data: [],
115 },
116 downTitle: ''
117 }
118 },
119 watch: {
120 form: {
121 handler (newVal, oldVal) {
122 this.generateFileName()
123 },
124 deep: true
125 }
126 },
127 created () {
128 this.handleResetForm()
129 this.generateFileName()
130 },
131 methods: {
132 // 生成文件名
133 generateFileName () {
134 var reg = /(\d{4})\-(\d{2})\-(\d{2})/;
135 this.downTitle = `汉中市不动产登记增量数据相关字段空项率统计(${this.form.startTime.replace(reg, "$1年$2月$3日")}${this.form.endTime.replace(reg, "$1年$2月$3日")})`
136 },
137 handlesetExport2Excel (val) {
138 setExport2Excel(val)
139 },
140 // 初始化数据
141 featchDataSelf () {
142 nonNullSta(this.form.startTime, this.form.endTime).then(res => {
143 let records = res.result
144 this.tableData.data = records ? records : []
145 })
146 },
147 // 重置
148 handleResetForm () {
149 this.form.startTime = getCurrentDate()
150 this.form.endTime = getCurrentDate('time')
151 this.featchDataSelf()
152 }
153 }
154 }
155 </script>
156 <style scoped lang="scss">
157 // 引入表单整体样式
158 // @import "~@/styles/public.scss";
159 @import "../css/index.scss";
160 </style>
161
......
1 import filter from '@/utils/filter.js'
2 class data extends filter {
3 constructor() {
4 super()
5 }
6 columns () {
7 return [
8 {
9 prop: "areaName",
10 label: "行政区划",
11 width: '90'
12 },
13 {
14 label: '分项',
15 children: [
16 {
17 width:1
18 },
19 {
20 label: '国有建设用地使用权登记得分及空项率',
21 children: [
22 {
23 prop: 'gyjsydsyqRate',
24 render: (h, scope) => {
25 return (
26 <span>{scope.row.gyjsydsyqRate.toFixed(2)}</span>
27 );
28 },
29 },
30 {
31 prop: 'gyjsydsyqRadio',
32 render: (h, scope) => {
33 return (
34 <span>{(scope.row.gyjsydsyqRadio * 100).toFixed(2)}%</span>
35 );
36 },
37 }
38 ]
39 },
40 {
41 label: '国有建设用地使用权和房屋所有权登记得分及空项率',
42 children: [
43 {
44 prop: 'fwsyqRate',
45 width: 176,
46 render: (h, scope) => {
47 return (
48 <span>{scope.row.fwsyqRate.toFixed(2)}</span>
49 );
50 },
51 },
52 {
53 prop: 'fwsyqRadio',
54 width: 176,
55 render: (h, scope) => {
56 return (
57 <span>{(scope.row.fwsyqRadio * 100).toFixed(2)}%</span>
58 );
59 },
60 }
61 ]
62 },
63 {
64 label: '抵押权登记得分及空项率',
65 children: [
66 {
67 prop: 'dyqRate',
68 render: (h, scope) => {
69 return (
70 <span>{scope.row.dyqRate.toFixed(2)}</span>
71 );
72 },
73 },
74 {
75 prop: 'dyqRadio',
76 render: (h, scope) => {
77 return (
78 <span>{(scope.row.dyqRadio * 100).toFixed(2)}%</span>
79 );
80 },
81 }
82 ]
83 },
84 {
85 label: '预告登记得分及空项率',
86 children: [
87 {
88 prop: 'ygdjRate',
89 render: (h, scope) => {
90 return (
91 <span>{scope.row.ygdjRate.toFixed(2)}</span>
92 );
93 },
94 },
95 {
96 prop: 'ygdjRadio',
97 render: (h, scope) => {
98 return (
99 <span>{(scope.row.ygdjRadio * 100).toFixed(2)}%</span>
100 );
101 },
102 }
103 ]
104 },
105 {
106 label: '查封登记得分及空项率',
107 children: [
108 {
109 prop: 'cfdjRate',
110 render: (h, scope) => {
111 return (
112 <span>{scope.row.cfdjRate.toFixed(2)}</span>
113 );
114 },
115 },
116 {
117 prop: 'cfdjRadio',
118 render: (h, scope) => {
119 return (
120 <span>{(scope.row.cfdjRadio * 100).toFixed(2)}%</span>
121 );
122 },
123 }
124 ]
125 }
126 ]
127 },
128 {
129 prop: "rate",
130 width: '90',
131 label: "综合评分",
132 },
133 ]
134 }
135 }
136 export default new data()
1 <!--
2 * @Author: yangwei
3 * @Date: 2023-02-17 16:32:50
4 * @LastEditors: yangwei
5 * @LastEditTime: 2023-03-09 11:19:43
6 * @FilePath: \bdcjg-web\src\views\statistics\registerBookQuality\index.vue
7 * @Description:
8 *
9 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
10 -->
11 <!-- 接入质量评价表 -->
12 <template>
13 <div class="from-clues">
14 <!-- 头部搜索 -->
15 <div class="from-clues-header">
16 <el-form ref="ruleForm" :model="form" label-width="100px">
17 <el-form-item>
18 <Breadcrumb />
19 </el-form-item>
20 <el-row class="mb-5">
21 <el-col :span="6">
22 <el-form-item label="接收日期" prop="startTime">
23 <el-date-picker type="date" class="width100" placeholder="开始日期" :picker-options="pickerOptionsStart"
24 v-model="form.startTime" value-format="yyyy-MM-dd"></el-date-picker>
25 </el-form-item>
26 </el-col>
27 <el-col :span="6">
28 <el-form-item label="至" prop="endTime" label-width="35px">
29 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd"
30 v-model="form.endTime" value-format="yyyy-MM-dd"></el-date-picker>
31 </el-form-item>
32 </el-col>
33 <!-- 按钮操作 -->
34 <el-col :span="12" class="btnColRight">
35 <el-form-item>
36 <btn nativeType="cz" @click="handleResetForm">重置</btn>
37 <btn nativeType="cx" @click="featchDataSelf">查询</btn>
38 <btn nativeType="cx" @click="handlesetExport2Excel(downTitle)">导出</btn>
39 </el-form-item>
40 </el-col>
41 </el-row>
42 </el-form>
43 </div>
44 <!-- 列表区域 -->
45 <div class="from-clues-content">
46 <lb-table ref="table" :pagination="false" :header-cell-style="headerStyle" :column="tableData.columns" :data="tableData.data">
47 </lb-table>
48 <down-lb-table ref="table" v-show="false" :id="'mytable'" :downExcel="true" :pagination="false"
49 :column="tableData.columns" :data="tableData.data" :downTitle="downTitle">
50 </down-lb-table>
51 </div>
52 </div>
53 </template>
54
55 <script>
56 // 登簿质量评价表
57 // 引入表格头部数据
58 import data from "./data";
59 // 引入table混入方法
60 import tableMixin from "@/mixins/tableMixin.js";
61 // 导出excel表格
62 import downLbTable from '@/components/DownLbTable'
63 // 获取时间
64 import { getCurrentDate, setExport2Excel } from "@/utils/tools";
65 import { registerBookQuality } from "@/api/statistics.js";
66
67 export default {
68 name: "jsbwcx",
69 components: {
70 downLbTable
71 },
72 mixins: [tableMixin],
73 data () {
74 return {
75 pickerOptionsStart: {
76 disabledDate: (time) => {
77 let endDateVal = this.form.endTime;
78 if (endDateVal) {
79 return (
80 time.getTime() >=
81 new Date(endDateVal).getTime()
82 );
83 }
84 },
85 },
86 pickerOptionsEnd: {
87 disabledDate: (time) => {
88 let beginDateVal = this.form.startTime;
89 if (beginDateVal) {
90 return (
91 time.getTime() <
92 new Date(beginDateVal).getTime()
93 );
94 }
95 },
96 },
97 // 表格数据
98 form: {
99 startTime: "", // 开始日期
100 endTime: "", // 结束日期
101 currentPage: 1
102 },
103 // 校验规则
104 rules: {
105 startTime: [
106 { required: true, message: "请选择开始日期", trigger: "change" },
107 ],
108 endTime: [
109 { required: true, message: "请选择结束日期", trigger: "change" },
110 ]
111 },
112 // 表格数据
113 tableData: {
114 // 表格头部
115 columns: [
116 {
117 label: "序号",
118 type: "index",
119 width: "50",
120 index: this.indexMethod,
121 }
122 ]
123 .concat(data.columns()),
124 data: []
125 },
126 downTitle: ''
127 }
128 },
129 watch: {
130 form: {
131 handler (newVal, oldVal) {
132 this.generateFileName()
133 },
134 deep: true
135 }
136 },
137 created () {
138 this.handleResetForm()
139 this.generateFileName()
140 },
141 methods: {
142 handleSearch () { },
143 // 生成文件名
144 generateFileName () {
145 var reg = /(\d{4})\-(\d{2})\-(\d{2})/;
146 this.downTitle = `汉中市不动产登记增量数据登簿质量评价表(${this.form.startTime.replace(reg, "$1年$2月$3日")}${this.form.endTime.replace(reg, "$1年$2月$3日")})`
147 },
148 handlesetExport2Excel (val) {
149 setExport2Excel(val)
150 },
151 headerStyle ({ row, rowIndex }) {
152 if (rowIndex == 1) {
153 row[0].colSpan = 2
154 row.forEach(item=>{
155 item.rowSpan = 2
156 })
157 // row[0].rowSpan = 2;
158 // row[1].rowSpan = 2;
159 // row[2].rowSpan = 2;
160 // row[3].rowSpan = 2;
161 // row[4].rowSpan = 2;
162 }
163 },
164 // 初始化数据
165 featchDataSelf () {
166 registerBookQuality(this.form.startTime, this.form.endTime).then(res => {
167 let records = res.result
168 this.tableData.data = records ? records : []
169 })
170 },
171 // 重置
172 handleResetForm () {
173 this.form.startTime = getCurrentDate()
174 this.form.endTime = getCurrentDate('time')
175 this.featchDataSelf()
176 }
177 }
178 }
179 </script>
180 <style scoped lang="scss">
181 // 引入表单整体样式
182 // @import "~@/styles/public.scss";
183 @import "../css/index.scss";
184 </style>
185
......
1 import store from '@/store'
2 let vm = null
3 const sendThis1 = (_this) => {
4 vm = _this
5 }
6 class data {
7 columns () {
8 return [
9 {
10 width: "70",
11 renderHeader: (h, scope) => {
12 return (
13 <div>
14 <i
15 class="el-icon-plus"
16 onClick={() => {
17 vm.handleDBAdd();
18 }}
19 style="cursor:pointer;color:#409EFF"
20 ></i>
21 </div>
22 );
23 },
24 render: (h, scope) => {
25 return <i
26 class="el-icon-minus"
27 onClick={() => {
28 vm.handleDBMinus(scope.row);
29 }}
30 style="cursor:pointer;color:#409EFF"
31 ></i>
32 },
33 },
34 {
35 prop: 'YWH',
36 label: '业务号',
37 render: (h, scope) => {
38 return (
39 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
40 )
41 }
42 },
43 {
44 prop: 'DJLX',
45 label: '登记类型',
46 render: (h, scope) => {
47 return (
48 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
49 )
50 }
51 },
52 {
53 prop: 'QLLX',
54 label: '权利类型',
55 render: (h, scope) => {
56 return (
57 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
58 )
59 }
60 },
61 {
62 prop: 'BDCDYH',
63 label: '不动产单元号',
64 render: (h, scope) => {
65 return (
66 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
67 )
68 }
69 },
70 {
71 prop: 'ZSZMH',
72 label: '证书证明号',
73 render: (h, scope) => {
74 return (
75 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
76 )
77 }
78 },
79 {
80 prop: 'SFSB',
81 label: '是否上报',
82 render: (h, scope) => {
83 return (
84 <el-select class="width100" value={scope.row[scope.column.property]}
85 onChange={(val) => { scope.row[scope.column.property] = val }}>
86 {
87 store.getters.dicData['A6'].map(option => {
88 return (
89 <el-option label={option.DNAME} value={option.DCODE}></el-option>
90 )
91 })
92 }
93 </el-select>
94 )
95 }
96 },
97 {
98 prop: 'BWID',
99 label: '报文ID',
100 render: (h, scope) => {
101 return (
102 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
103 )
104 }
105 }
106 ]
107 }
108 }
109 let dbdata = new data()
110 export {
111 dbdata,
112 sendThis1
113 }
114
115
116
1 let vm = null
2 const sendThis = (_this) => {
3 vm = _this
4 }
5 class data {
6 columns () {
7 return [
8 {
9 width: "70",
10 renderHeader: (h, scope) => {
11 return (
12 <div>
13 <i
14 class="el-icon-plus"
15 onClick={() => {
16 vm.handleSBAdd();
17 }}
18 style="cursor:pointer;color:#409EFF"
19 ></i>
20 </div>
21 );
22 },
23 render: (h, scope) => {
24 return <i
25 class="el-icon-minus"
26 onClick={() => {
27 vm.handleSBMinus(scope.row);
28 }}
29 style="cursor:pointer;color:#409EFF"
30 ></i>
31 },
32 },
33 {
34 prop: 'YWH',
35 label: '业务号',
36 render: (h, scope) => {
37 return (
38 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
39 )
40 }
41 },
42 {
43 prop: 'BDCDYH',
44 label: '不动产单元号',
45 render: (h, scope) => {
46 return (
47 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
48 )
49 }
50 },
51 {
52 prop: 'BWID',
53 label: '报文ID',
54 render: (h, scope) => {
55 return (
56 <el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
57 )
58 }
59 }
60 ]
61 }
62 }
63 let sbdata = new data()
64 export {
65 sbdata,
66 sendThis
67 }
68
69
70
1 <template>
2 <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" custom-class="dialogBox editDialogBox mainCenter"
3 :visible.sync="dialogVisible" width="90%">
4 <div slot="title" class="dialog_title" ref="dialogTitle">
5 {{ title || '登薄日志' }}
6 </div>
7 <div class="regularHeight">
8 <div class="editDialogBox-box">
9 <el-tabs v-model="titleName" type="card">
10 <el-tab-pane label="登薄详情" name="sjmx"></el-tab-pane>
11 <el-tab-pane label="xml报文" name="xml"></el-tab-pane>
12 </el-tabs>
13 <div class="dialog-from" v-if="titleName == 'sjmx'">
14 <el-row class="dialog-from_header item-content-input">
15 <el-col :span="8">
16 <span>行政编码:</span>
17 <el-input v-model="accessLog.AREACODE" maxlength="10" disabled></el-input>
18 </el-col>
19 <el-col :span="8">
20 <span>行政名称:</span>
21 <el-input v-model="accessLog.AREANAME" maxlength="20" disabled></el-input>
22 </el-col>
23 <el-col :span="8">
24 <span>日期:</span>
25 <el-input v-model="accessLog.ACCESSDATE" disabled></el-input>
26 </el-col>
27 </el-row>
28 <el-row class="dialog-from_header item-content-input">
29 <el-col :span="24">
30 <span class="bz">备注:</span>
31 <el-input placeholder="请输入内容" maxlength="1000" v-model="accessLog.REMARK">
32 </el-input>
33 </el-col>
34 </el-row>
35 <!-- 当日登薄信息记录数 -->
36 <P class="dialog-from_title">当日登薄信息记录数</P>
37 <div>
38 <el-row class="dialog-from_header item-content-input">
39 <el-col :span="4">
40 <span>当日登薄量:</span>
41 <el-input v-model="registerInfo.TOTALNUM" disabled type="number"></el-input>
42 </el-col>
43 <el-col :span="4">
44 <span>首次登记量:</span>
45 <el-input v-model="registerInfo.FIRSTREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
46 type="number"></el-input>
47 </el-col>
48 <el-col :span="4">
49 <span>转移登记量:</span>
50 <el-input v-model="registerInfo.TRANSFERREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
51 type="number"></el-input>
52 </el-col>
53 <el-col :span="4">
54 <span>变更登记量:</span>
55 <el-input v-model="registerInfo.CHANGEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
56 type="number"></el-input>
57 </el-col>
58 <el-col :span="4">
59 <span>注销登记量:</span>
60 <el-input v-model="registerInfo.LOGOUTREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
61 type="number"></el-input>
62 </el-col>
63 <el-col :span="4">
64 <span>更正登记量:</span>
65 <el-input v-model="registerInfo.RIVISEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
66 type="number"></el-input>
67 </el-col>
68 </el-row>
69 <el-row class="dialog-from_header item-content-input">
70 <el-col :span="4">
71 <span>异议登记量:</span>
72 <el-input v-model="registerInfo.DISSENTINGREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
73 type="number"></el-input>
74 </el-col>
75 <el-col :span="4">
76 <span>预告登记量:</span>
77 <el-input v-model="registerInfo.ADVANCEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
78 type="number"></el-input>
79 </el-col>
80 <el-col :span="4">
81 <span>查封登记量:</span>
82 <el-input v-model="registerInfo.SEIZEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
83 type="number"></el-input>
84 </el-col>
85 <el-col :span="4">
86 <span>其他登记:</span>
87 <el-input v-model="registerInfo.otherReg" oninput="if(value.length > 6) value=value.slice(0, 6)"
88 type="number"></el-input>
89 </el-col>
90 <el-col :span="4">
91 <span>业务类型量:</span>
92 <el-input v-model="registerInfo.BUSINESSTYPECOUNT" oninput="if(value.length > 6) value=value.slice(0, 6)"
93 type="number"></el-input>
94 </el-col>
95 <el-col :span="4" style="border:none">
96 </el-col>
97 </el-row>
98 </div>
99 <!-- 当日上报记录数 -->
100 <P class="dialog-from_title">当日上报记录数</P>
101 <div>
102 <el-row class="dialog-from_header item-content-input">
103 <el-col :span="4">
104 <span>当日上报量:</span>
105 <el-input v-model="accessInfo.TOTALNUM" disabled type="number"></el-input>
106 </el-col>
107 <el-col :span="4">
108 <span>首次登记量:</span>
109 <el-input v-model="accessInfo.FIRSTREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
110 type="number"></el-input>
111 </el-col>
112 <el-col :span="4">
113 <span>转移登记量:</span>
114 <el-input v-model="accessInfo.TRANSFERREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
115 type="number"></el-input>
116 </el-col>
117 <el-col :span="4">
118 <span>变更登记量:</span>
119 <el-input v-model="accessInfo.CHANGEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
120 type="number"></el-input>
121 </el-col>
122 <el-col :span="4">
123 <span>注销登记量:</span>
124 <el-input v-model="accessInfo.LOGOUTREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
125 type="number"></el-input>
126 </el-col>
127 <el-col :span="4">
128 <span>更正登记量:</span>
129 <el-input v-model="accessInfo.RIVISEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
130 type="number"></el-input>
131 </el-col>
132 </el-row>
133 <el-row class="dialog-from_header item-content-input">
134 <el-col :span="4">
135 <span>异议登记量:</span>
136 <el-input v-model="accessInfo.DISSENTINGREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
137 type="number"></el-input>
138 </el-col>
139 <el-col :span="4">
140 <span>预告登记量:</span>
141 <el-input v-model="accessInfo.ADVANCEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
142 type="number"></el-input>
143 </el-col>
144 <el-col :span="4">
145 <span>查封登记量:</span>
146 <el-input v-model="accessInfo.SEIZEREG" oninput="if(value.length > 6) value=value.slice(0, 6)"
147 type="number"></el-input>
148 </el-col>
149 <el-col :span="4">
150 <span>其他登记:</span>
151 <el-input v-model="accessInfo.otherReg" oninput="if(value.length > 6) value=value.slice(0, 6)"
152 type="number"></el-input>
153 </el-col>
154 <el-col :span="4">
155 <span>业务类型量:</span>
156 <el-input v-model="accessInfo.BUSINESSTYPECOUNT" oninput="if(value.length > 6) value=value.slice(0, 6)"
157 type="number"></el-input>
158 </el-col>
159 <el-col :span="4" style="border:none">
160 </el-col>
161 </el-row>
162 </div>
163 <el-tabs v-model="titleName2" type="card">
164 <el-tab-pane label="当日登薄详单" name="drdbxd"></el-tab-pane>
165 <el-tab-pane label="当日上报详单" name="sbslxd"></el-tab-pane>
166 </el-tabs>
167 <!-- 当日登薄详单 -->
168 <div class="from-clues-content" v-show="titleName2 == 'drdbxd'">
169 <lb-table :column="tableDBData.column" :pagination="false" :heightNumSetting="true" :heightNum="180"
170 :data="tableDBData.data">
171 </lb-table>
172 </div>
173 <!-- 当日上报详单 -->
174 <div class="from-clues-content" v-show="titleName2 == 'sbslxd'">
175 <lb-table :column="tableSBData.column" :pagination="false" :heightNumSetting="true" :heightNum="180"
176 :data="tableSBData.data">
177 </lb-table>
178 </div>
179 </div>
180 </div>
181 <div class="editDialogBox-box" v-if="titleName == 'xml'">
182 <JsonEditor :resultInfo="resultInfo" :key="key" />
183 </div>
184 </div>
185 <div class="d-center" v-if="titleName == 'sjmx'">
186 <btn nativeType="cz" @click="dialogVisible = false">取 消</btn>
187 <btn nativeType="cx" @click="submitForm">保 存</btn>
188 </div>
189 <div class="d-center" v-if="!$store.state.business.Edit && titleName == 'xml'">
190 <btn nativeType="cx" @click="handleResubmit">重新上报</btn>
191 </div>
192 </el-dialog>
193 </template>
194
195 <script>
196 import { sbdata, sendThis } from './data/sbdata'
197 import { dbdata, sendThis1 } from './data/dbdata'
198 import { getDetail, edit, regenerateDbXml } from "@/api/recordLog.js"
199 import JsonEditor from "@/components/JsonEditor.vue";
200 import { judgeListComplete } from "@/utils/tools.js"
201 export default {
202 components: { JsonEditor },
203 data () {
204 return {
205 key: 0,
206 title: '',
207 dialogVisible: false,
208 titleName: 'sjmx',
209 titleName2: 'drdbxd',
210 dbBsm: '',
211 // 头部信息
212 accessLog: {
213 AREACODE: '',
214 AREANAME: '',
215 ACCESSDATE: '',
216 REMARK: ''
217 },
218 // 当日登薄信息记录数
219 registerInfo: {
220 TOTALNUM: '', // 总数量
221 FIRSTREG: '', // 首次登记数量
222 TRANSFERREG: '', // 转移登记数量
223 CHANGEREG: '', // 变更登记数量
224 LOGOUTREG: '', // 注销登记数量
225 RIVISEREG: '', // 更正登记数量
226 DISSENTINGREG: '', // 异议登记数量
227 ADVANCEREG: '', // 预告登记数量
228 SEIZEREG: '', // 查封登记数量
229 EASEMENTREG: '', // 地役权登记数量
230 otherReg: '', // 其他登记数量
231 BUSINESSTYPECOUNT: '', // 业务类型总数
232 },
233 // 当日上报记录数
234 accessInfo: {
235 TOTALNUM: '', // 总数量
236 FIRSTREG: '', // 首次登记数量
237 TRANSFERREG: '', // 转移登记数量
238 CHANGEREG: '', // 变更登记数量
239 LOGOUTREG: '', // 注销登记数量
240 RIVISEREG: '', // 更正登记数量
241 DISSENTINGREG: '', // 异议登记数量
242 ADVANCEREG: '', // 预告登记数量
243 SEIZEREG: '', // 查封登记数量
244 EASEMENTREG: '', // 地役权登记数量
245 otherReg: '', // 其他登记数量
246 BUSINESSTYPECOUNT: '', // 业务类型总数
247 },
248 // 当日登薄详单
249 tableDBData: {
250 data: [],
251 column: dbdata.columns()
252 },
253 // 当日上报详单
254 tableSBData: {
255 data: [],
256 column: sbdata.columns()
257 },
258 // XML详情
259 resultInfo: '',
260 dataReport: {}
261 }
262 },
263 mounted () {
264 sendThis(this);
265 sendThis1(this);
266 },
267 watch: {
268 registerInfo: {
269 handler: function (newVal, oldVal) {
270 this.registerInfo.TOTALNUM = (newVal.FIRSTREG - 0) + (newVal.TRANSFERREG - 0) +
271 (newVal.CHANGEREG - 0) + (newVal.LOGOUTREG - 0) + (newVal.RIVISEREG - 0) + (newVal.DISSENTINGREG - 0)
272 + (newVal.ADVANCEREG - 0) + (newVal.SEIZEREG - 0) + (newVal.otherReg - 0)
273 },
274 deep: true
275 },
276 accessInfo: {
277 handler: function (newVal, oldVal) {
278 this.accessInfo.TOTALNUM = (newVal.FIRSTREG - 0) + (newVal.TRANSFERREG - 0) +
279 (newVal.CHANGEREG - 0) + (newVal.LOGOUTREG - 0) + (newVal.RIVISEREG - 0) + (newVal.DISSENTINGREG - 0)
280 + (newVal.ADVANCEREG - 0) + (newVal.SEIZEREG - 0) + (newVal.otherReg - 0)
281 },
282 deep: true
283 }
284 },
285 methods: {
286 closeDialog () {
287 this.dialogVisible = false;
288 },
289 isShow (item) {
290 this.title = '登薄日志(' + item.ACCESSDATE + ')'
291 this.titleName = 'sjmx'
292 this.dialogVisible = true
293 this.dbBsm = item.dbBsm
294 this._getDetails(item.dbBsm)
295 },
296 /**
297 * @description: 获取列表接口
298 * @author: renchao
299 */
300 _getDetails (data) {
301 getDetail(data).then(res => {
302 let { accessLog, registerInfo, accessInfo, accessList, registerList
303 } = res.result
304 this.accessLog = accessLog
305 this.resultInfo = accessLog.LOGSXML
306 this.registerInfo = registerInfo
307 this.accessInfo = accessInfo
308 this.tableDBData.data = _.cloneDeep(registerList)
309 this.tableSBData.data = _.cloneDeep(accessList)
310 this.tableDBData.data.forEach((item, index) => {
311 this.$set(item, 'index', index)
312 })
313 this.tableSBData.data.forEach((item, index) => {
314 this.$set(item, 'index', index)
315 })
316 })
317 },
318 // 当日登薄详单
319 handleDBAdd () {
320 this.tableDBData.data.push({
321 YWH: '',
322 DJLX: '',
323 QLLX: '',
324 BDCDYH: '',
325 ZSZMH: '',
326 SFSB: '',
327 BWID: '',
328 BSM_DBLOG: this.accessLog.bsmDblog
329 })
330 this.tableDBData.data.forEach((item, index) => {
331 this.$set(item, 'index', index)
332 })
333 },
334 handleDBMinus (row) {
335 this.$confirm('此操作将删除列表, 是否继续?', '提示', {
336 confirmButtonText: '确定',
337 cancelButtonText: '取消',
338 type: 'warning'
339 }).then(() => {
340 this.tableDBData.data.splice(row.index, 1)
341 this.$message({
342 type: 'success',
343 message: '删除成功!'
344 })
345 this.tableDBData.data.forEach((item, index) => {
346 this.$set(item, 'index', index)
347 })
348 }).catch(() => {
349 this.$message({
350 type: 'info',
351 message: '已取消删除'
352 })
353 })
354 },
355 // 当日上报详单
356 handleSBAdd () {
357 this.tableSBData.data.push({
358 YWH: '',
359 BDCDYH: '',
360 BWID: '',
361 BSM_DBLOG: this.accessLog.bsmDblog
362 })
363 this.tableSBData.data.forEach((item, index) => {
364 this.$set(item, 'index', index)
365 })
366 },
367 handleSBMinus (row) {
368 this.$confirm('此操作将删除列表, 是否继续?', '提示', {
369 confirmButtonText: '确定',
370 cancelButtonText: '取消',
371 type: 'warning'
372 }).then(() => {
373 this.tableSBData.data.splice(row.index, 1)
374 this.$message({
375 type: 'success',
376 message: '删除成功!'
377 })
378 this.tableSBData.data.forEach((item, index) => {
379 this.$set(item, 'index', index)
380 })
381 }).catch(() => {
382 this.$message({
383 type: 'info',
384 message: '已取消删除'
385 })
386 })
387 },
388 /**
389 * @description: 确定修改详情
390 * @param {*} function
391 * @author: renchao
392 */
393 submitForm: _.debounce(function () {
394 let _this = this
395 if (_verify(this.tableDBData.data, '当日登薄详单列表必填') && _verify(this.tableSBData.data, '当日上报详单列表必填')) {
396 _editDetail()
397 }
398 function _verify (data, msg) {
399 let flag = true
400 if (!judgeListComplete(data)) {
401 _this.$message({
402 message: msg,
403 type: 'warning'
404 })
405 flag = false
406 }
407 return flag
408 }
409 function _editDetail () {
410 edit({
411 accessLog: _this.accessLog, registerInfo: _this.registerInfo,
412 accessInfo: _this.accessInfo,
413 accessList: _this.tableSBData.data,
414 registerList: _this.tableDBData.data
415 }).then(res => {
416 if (res.code == 200) {
417 _this.$message({
418 message: '保存成功',
419 type: 'success'
420 })
421 _this._getDetails(_this.dbBsm)
422 }
423 })
424 }
425 }, 600),
426 /**
427 * @description: 登薄日志重新生成报文
428 * @param {*} function
429 * @author: renchao
430 */
431 handleResubmit () {
432 let _this = this
433 this.$confirm('重新生成报文,是否上报省厅?', '提示', {
434 confirmButtonText: '确定',
435 cancelButtonText: '取消',
436 type: 'warning'
437 }).then(() => {
438 createXml()
439 }).catch(() => {
440 this.$message({
441 type: 'info',
442 message: '已取消删除'
443 })
444 })
445 function createXml () {
446 regenerateDbXml(_this.dbBsm).then(res => {
447 if (res.code == 200) {
448 _this.$message({
449 message: '生成成功',
450 type: 'success'
451 })
452 _this.resultInfo = res.message
453 }
454 })
455 }
456 }
457 }
458 }
459 </script>
460 <style scoped lang="scss">
461 @import "~@/styles/mixin.scss";
462 // @import "~@/styles/public.scss";
463 @import "~@/styles/dialogBox.scss";
464
465
466 /deep/.el-tabs__header {
467 margin: 0;
468 }
469
470 /deep/.el-dialog {
471 display: flex;
472 flex-direction: column;
473 }
474
475 /deep/.el-dialog__body {
476 display: flex;
477 flex-direction: column;
478 padding-bottom: 30px;
479 height: 100%;
480 flex: 1;
481 position: relative;
482 }
483
484 .regularHeight {
485 display: flex;
486 flex-direction: column;
487 flex: 1;
488 height: 100%;
489 margin-bottom: 5px;
490
491 .editDialogBox-con,
492 .JsonEditor {
493 flex: 1;
494 }
495 }
496
497 .d-center {}
498
499 .dialog_title {
500 top: -13px
501 }
502
503 /deep/.el-tabs__item {
504 color: #CEF8FF !important;
505
506 display: flex;
507 flex-direction: row;
508 justify-content: center;
509 background: url("~@/image/tabitem.png") no-repeat;
510 background-size: 100% 100%;
511 border: none !important;
512 }
513
514 /deep/.el-tabs__nav {
515 display: flex;
516 border: none !important;
517 }
518
519 /deep/.el-tabs__item.is-top:not(:last-child) {
520 margin-right: 5px;
521 }
522
523 /deep/.el-icon-circle-close {
524 display: none;
525 }
526
527 /deep/.el-tabs__item.is-active {
528 background: url("~@/image/tabitemse.png") no-repeat;
529 background-size: 100% 100%;
530 }
531
532 .from-clues-content {
533 margin-top: 0;
534 background: none;
535 padding: 0;
536 }
537
538 .editDialogBox-box {
539 position: relative;
540 top: 10px;
541 height: 100%;
542 }
543
544 .dialog-from {
545 padding-top: 0;
546
547 .el-col {
548 justify-content: space-between;
549 }
550
551 .bz {
552 height: 100%;
553 position: relative;
554 top: 3px;
555 }
556
557 /deep/.el-input {
558 flex: 1;
559 width: 100%;
560 }
561
562 /deep/.el-textarea__inner {
563 border: none !important;
564 margin: 0;
565 }
566
567 &_header {
568 margin: 0 -5px !important;
569 }
570
571 &_title {
572 font-size: 14px;
573 color: #d7eaee;
574 margin: 3px 0;
575 }
576 }
577 </style>
578
...@@ -22,7 +22,7 @@ class data { ...@@ -22,7 +22,7 @@ class data {
22 { 22 {
23 prop: "UPLOADTIME", 23 prop: "UPLOADTIME",
24 label: "汇交日期", 24 label: "汇交日期",
25 width: '150', 25 width: '140',
26 }, 26 },
27 { 27 {
28 prop: "AREANAME", 28 prop: "AREANAME",
...@@ -31,7 +31,7 @@ class data { ...@@ -31,7 +31,7 @@ class data {
31 { 31 {
32 prop: "ACCESSDATE", 32 prop: "ACCESSDATE",
33 label: "日期", 33 label: "日期",
34 width: '150', 34 width: '140',
35 }, 35 },
36 { 36 {
37 prop: "type", 37 prop: "type",
...@@ -183,6 +183,27 @@ class data { ...@@ -183,6 +183,27 @@ class data {
183 </div> 183 </div>
184 ) 184 )
185 }, 185 },
186 },
187 {
188 label: "操作",
189 width: "80",
190 fixed: "right",
191 render: (h, scope) => {
192 return (
193 <div>
194 <el-button
195 type="text"
196 style="color:#67C23A"
197 onClick={() => {
198 vm.handleEdit(scope.row);
199 }}
200 >
201 修改
202 <i class="el-icon-d-arrow-right"></i>
203 </el-button>
204 </div>
205 );
206 },
186 } 207 }
187 ] 208 ]
188 } 209 }
......
...@@ -24,9 +24,8 @@ ...@@ -24,9 +24,8 @@
24 </el-col> 24 </el-col>
25 <el-col :span="6"> 25 <el-col :span="6">
26 <el-form-item label="结束日期" prop="endTime"> 26 <el-form-item label="结束日期" prop="endTime">
27 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd" 27 <el-date-picker type="date" class="width100" placeholder="结束日期" :picker-options="pickerOptionsEnd" clearable
28 clearable v-model="form.endTime" value-format="yyyy-MM-dd HH:mm:ss" 28 v-model="form.endTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
29 @change="endTimeChange"></el-date-picker>
30 </el-form-item> 29 </el-form-item>
31 </el-col> 30 </el-col>
32 <!-- 操作按钮 --> 31 <!-- 操作按钮 -->
...@@ -45,6 +44,8 @@ ...@@ -45,6 +44,8 @@
45 :data="tableData.data"> 44 :data="tableData.data">
46 </lb-table> 45 </lb-table>
47 </div> 46 </div>
47 <!-- 详情弹框 -->
48 <editDialog ref="editLog" />
48 </div> 49 </div>
49 </template> 50 </template>
50 <script> 51 <script>
...@@ -57,7 +58,12 @@ import { getRecordLogPage } from "@/api/recordLog.js"; ...@@ -57,7 +58,12 @@ import { getRecordLogPage } from "@/api/recordLog.js";
57 import { mapGetters } from 'vuex' 58 import { mapGetters } from 'vuex'
58 //引入日期处理方法 59 //引入日期处理方法
59 import { timeFormat } from "@/utils/operation"; 60 import { timeFormat } from "@/utils/operation";
61 // 引入弹框组件
62 import editDialog from '../components/editDialog.vue'
60 export default { 63 export default {
64 components: {
65 editDialog
66 },
61 name: "dbrzcx", 67 name: "dbrzcx",
62 mixins: [tableMixin], 68 mixins: [tableMixin],
63 computed: { 69 computed: {
...@@ -135,11 +141,18 @@ export default { ...@@ -135,11 +141,18 @@ export default {
135 this.$refs.ruleForm.resetFields(); 141 this.$refs.ruleForm.resetFields();
136 this.form.currentPage = 1 142 this.form.currentPage = 1
137 this.featchData(); 143 this.featchData();
144 },
145 // 编辑
146 handleEdit (row) {
147 this.$refs.editLog.isShow(row);
148 this.$store.dispatch('business/setReportLogEdit')
138 } 149 }
150 },
151 destroyed () {
152 this.$store.dispatch('business/setEdit')
139 } 153 }
140 } 154 }
141 </script> 155 </script>
142 <style scoped lang="scss"> 156 <style scoped lang="scss">
143 @import "~@/styles/public.scss";
144 @import "./index.scss"; 157 @import "./index.scss";
145 </style> 158 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-13 14:39:14
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 let vm = null 7 let vm = null
3 const sendThis = (_this) => { 8 const sendThis = (_this) => {
...@@ -51,6 +56,7 @@ class data extends filter { ...@@ -51,6 +56,7 @@ class data extends filter {
51 { 56 {
52 prop: "estatenum", 57 prop: "estatenum",
53 label: "不动产单元号", 58 label: "不动产单元号",
59 width: 150,
54 }, 60 },
55 { 61 {
56 prop: "rectype", 62 prop: "rectype",
...@@ -60,6 +66,7 @@ class data extends filter { ...@@ -60,6 +66,7 @@ class data extends filter {
60 { 66 {
61 prop: "rectypeName", 67 prop: "rectypeName",
62 label: "业务名称", 68 label: "业务名称",
69 minWidth: 240,
63 }, 70 },
64 { 71 {
65 prop: "exchangeDate", 72 prop: "exchangeDate",
......
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
79 <!-- 引入详情组件 --> 79 <!-- 引入详情组件 -->
80 <!-- 编辑 --> 80 <!-- 编辑 -->
81 <dataDetails ref="editLog" :title="title" :visiableXml="true" /> 81 <dataDetails ref="editLog" :title="title" :visiableXml="true" />
82 </div> 82 </div>
83 </template> 83 </template>
84 <script> 84 <script>
85 // 上报报文查询 85 // 上报报文查询
...@@ -156,15 +156,31 @@ export default { ...@@ -156,15 +156,31 @@ export default {
156 render: (h, scope) => { 156 render: (h, scope) => {
157 return ( 157 return (
158 <div> 158 <div>
159 <el-button 159 {
160 size="mini" 160 scope.row.exchangeState == 2 ?
161 type="primary" 161 <el-button
162 onClick={() => { 162 size="mini"
163 this.handleDetail(scope.row); 163 type="text"
164 }} 164 style="color:#67C23A"
165 > 165 onClick={() => {
166 详情 166 this.handleDetail(scope.row);
167 </el-button> 167 }}
168 >
169 修改
170 <i class="el-icon-d-arrow-right"></i>
171 </el-button> :
172 <el-button
173 size="mini"
174 type="text"
175 onClick={() => {
176 this.handleDetail(scope.row);
177 }}
178 >
179 详情
180 <i class="el-icon-d-arrow-right"></i>
181 </el-button>
182 }
183
168 </div> 184 </div>
169 ); 185 );
170 }, 186 },
...@@ -201,6 +217,11 @@ export default { ...@@ -201,6 +217,11 @@ export default {
201 handleDetail (row) { 217 handleDetail (row) {
202 this.title = row.rectypeName; 218 this.title = row.rectypeName;
203 this.$refs.editLog.isShow(row); 219 this.$refs.editLog.isShow(row);
220 if (row.exchangeState == 2) {
221 this.$store.dispatch('business/setReportLogEdit')
222 } else {
223 this.$store.dispatch('business/setEdit')
224 }
204 }, 225 },
205 // 重置 226 // 重置
206 resetForm () { 227 resetForm () {
...@@ -214,7 +235,6 @@ export default { ...@@ -214,7 +235,6 @@ export default {
214 </script> 235 </script>
215 <style scoped lang="scss"> 236 <style scoped lang="scss">
216 // 引入页面公共样式 237 // 引入页面公共样式
217 @import "~@/styles/public.scss";
218 @import "./index.scss"; 238 @import "./index.scss";
219 </style> 239 </style>
220 240
......
...@@ -146,8 +146,7 @@ export default { ...@@ -146,8 +146,7 @@ export default {
146 } 146 }
147 </script> 147 </script>
148 <style rel="stylesheet/scss" lang="scss" scoped> 148 <style rel="stylesheet/scss" lang="scss" scoped>
149 @import "~@/styles/public.scss"; 149 // @import "~@/styles/public.scss";
150
151 .editDialogBox-box { 150 .editDialogBox-box {
152 margin: 14px 18px 30px 18px !important 151 margin: 14px 18px 30px 18px !important
153 } 152 }
......
1 <template> 1 <template>
2 <!-- 编辑 --> 2 <!-- 编辑 -->
3 <dialogBox submitForm="submitForm" class="tableClass" @closeDialog="closeDialog" @submitForm="handleSubmit" 3 <dialogBox submitForm="submitForm" class="tableClass" @closeDialog="closeDialog" @submitForm="handleSubmit" width="60%"
4 width="60%" v-model="myValue" :isMain="true" title="字典信息"> 4 v-model="myValue" :isMain="true" title="字典信息">
5 <div class="editDialogBox-box "> 5 <div class="editDialogBox-box ">
6 <el-form :model="ruleForm" ref="ruleForm" label-width="100px"> 6 <el-form :model="ruleForm" ref="ruleForm" label-width="100px">
7 <el-row :gutter="20"> 7 <el-row :gutter="20">
...@@ -17,9 +17,8 @@ ...@@ -17,9 +17,8 @@
17 </el-col> 17 </el-col>
18 </el-row> 18 </el-row>
19 </el-form> 19 </el-form>
20 <lb-table :column="column" class="loadingtext opacity-input" :heightNum="600" :key="key" 20 <lb-table :column="column" class="loadingtext opacity-input" :heightNum="600" :key="key" :expand-row-keys="keyList"
21 :expand-row-keys="keyList" row-key="dictid" :tree-props="{ children: 'children' }" :pagination="false" 21 row-key="dictid" :tree-props="{ children: 'children' }" :pagination="false" :data="tableData">
22 :data="tableData">
23 </lb-table> 22 </lb-table>
24 </div> 23 </div>
25 </dialogBox> 24 </dialogBox>
...@@ -359,7 +358,7 @@ export default { ...@@ -359,7 +358,7 @@ export default {
359 }; 358 };
360 </script> 359 </script>
361 <style rel="stylesheet/scss" lang="scss" scoped> 360 <style rel="stylesheet/scss" lang="scss" scoped>
362 @import "~@/styles/public.scss"; 361 // @import "~@/styles/public.scss";
363 362
364 /deep/.el-radio { 363 /deep/.el-radio {
365 margin-right: 5px !important; 364 margin-right: 5px !important;
......
...@@ -127,5 +127,5 @@ export default { ...@@ -127,5 +127,5 @@ export default {
127 }; 127 };
128 </script> 128 </script>
129 <style scoped lang="scss"> 129 <style scoped lang="scss">
130 @import "~@/styles/public.scss"; 130 // @import "~@/styles/public.scss";
131 </style> 131 </style>
......
...@@ -6,8 +6,7 @@ ...@@ -6,8 +6,7 @@
6 label-width="100px" 6 label-width="100px"
7 :model="form" 7 :model="form"
8 class="form-wrapper" 8 class="form-wrapper"
9 :rules="rules" 9 :rules="rules">
10 >
11 <el-form-item label="用户名:" required> 10 <el-form-item label="用户名:" required>
12 <el-input v-model="form.loginName" clearable disabled /> 11 <el-input v-model="form.loginName" clearable disabled />
13 </el-form-item> 12 </el-form-item>
...@@ -19,9 +18,7 @@ ...@@ -19,9 +18,7 @@
19 <el-radio 18 <el-radio
20 v-for="(item, index) in sexList" 19 v-for="(item, index) in sexList"
21 :key="index" 20 :key="index"
22 :label="item.value" 21 :label="item.value">{{ item.name }}</el-radio>
23 >{{ item.name }}</el-radio
24 >
25 </el-radio-group> 22 </el-radio-group>
26 </el-form-item> 23 </el-form-item>
27 <el-form-item label="身份证号:" prop="idCard"> 24 <el-form-item label="身份证号:" prop="idCard">
...@@ -30,7 +27,7 @@ ...@@ -30,7 +27,7 @@
30 <el-form-item label="手机号码:" prop="mobilePhone"> 27 <el-form-item label="手机号码:" prop="mobilePhone">
31 <el-input v-model="form.mobilePhone" clearable /> 28 <el-input v-model="form.mobilePhone" clearable />
32 </el-form-item> 29 </el-form-item>
33 <el-form-item label="办公电话:" prop="telephone"> 30 <el-form-item label="办公电话:">
34 <el-input v-model="form.telephone" clearable /> 31 <el-input v-model="form.telephone" clearable />
35 </el-form-item> 32 </el-form-item>
36 <el-form-item label="办公地址:"> 33 <el-form-item label="办公地址:">
...@@ -45,200 +42,121 @@ ...@@ -45,200 +42,121 @@
45 </template> 42 </template>
46 43
47 <script> 44 <script>
48 // import { api, getAction, putAction, getDictItems } from '@api/manageApi' 45 import { api, getAction, putAction, getDictItems } from '@/api/manageApi'
49 export default { 46 export default {
50 props: { 47 props: {
51 // userInfo: { 48 userInfo: {
52 // type: Object, 49 type: Object,
53 // default: null 50 default: null
54 // } 51 }
55 }, 52 },
56 data() { 53 data () {
57 return { 54 return {
58 form: { 55 form: {},
59 id: "3127e455-43ba-45ff-9326-0e02ef89485e", 56 sexList: [],
60 name: "超级管理员", 57 rules: {
61 sort: 1, 58 mobilePhone: [
62 loginName: "admin", 59 {
63 email: null, 60 pattern:
64 lastLoginTime: null, 61 /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
65 mobilePhone: "18291003568", 62 message: '手机号码格式有误',
66 isLocked: false, 63 trigger: 'blur'
67 status: "ACTIVE", 64 }
68 passwordChangeTime: "2021-12-10T08:01:01.569+0000", 65 ],
69 idCard: "612725202111021521", 66 idCard: [
70 departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b", 67 {
71 departmentName: null, 68 pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
72 organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa", 69 message: '身份证号格式有误',
73 sex: "0", 70 trigger: 'blur'
74 isDuty: true, 71 }
75 code: "123324", 72 ]
76 jobLevel: null, 73 }
77 telephone: "028-87720898", 74 }
78 address: "办公地点修改测试", 75 },
79 }, 76 watch: {
80 sexList: [], 77 userInfo: {
81 rules: { 78 handler: function (val) {
82 mobilePhone: [ 79 if (val) {
83 { 80 this.getUserdata(val.id)
84 pattern: 81 }
85 /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, 82 }
86 message: "手机号码格式有误", 83 }
87 trigger: "blur", 84 },
88 }, 85 mounted () {
89 ], 86 if (this.userInfo) {
90 idCard: [ 87 this.getUserdata(this.userInfo)
91 { 88 }
92 pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, 89 this.sexList = [
93 message: "身份证号格式有误", 90 {
94 trigger: "blur", 91 "name": "男",
95 }, 92 "value": "0",
96 ], 93 },
97 telephone: [ 94 {
98 { 95
99 pattern: /\d{3}-\d{8}|\d{4}-\d{7}/, 96 "name": "女",
100 message: "办公电话格式有误", 97 "value": "1",
101 trigger: "blur", 98 },
102 },
103 ],
104 },
105 };
106 },
107 watch: {
108 // userInfo: {
109 // handler: function(val) {
110 // if (val) {
111 // this.getUserInfo(val.id)
112 // }
113 // }
114 // }
115 },
116 mounted() {
117 // getDictItems('XB').then((res) => {
118 // if (res.status === 1) {
119 this.sexList = [
120 {
121 id: "079c72b2-f3de-4a4f-b2a1-e5c8f085cc5f",
122 createdAt: "2021-06-11T02:42:02.000+0000",
123 updatedAt: "2021-09-03T09:21:46.000+0000",
124 createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
125 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
126 sort: 2,
127 name: "男",
128 description: "",
129 code: "N362",
130 value: "0",
131 parentId: null,
132 baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019",
133 version: 1,
134 valid: true,
135 standard: false,
136 standardName: null,
137 standardValue: null,
138 children: [],
139 commonName: "男(N362)",
140 },
141 {
142 id: "4d6f845d-6f6a-4848-8fc2-a3760764c196",
143 createdAt: "2021-06-11T02:42:12.000+0000",
144 updatedAt: "2021-09-03T09:21:46.000+0000",
145 createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
146 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
147 sort: 1,
148 name: "女",
149 description: "",
150 code: "N922",
151 value: "1",
152 parentId: null,
153 baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019",
154 version: 1,
155 valid: true,
156 standard: false,
157 standardName: null,
158 standardValue: null,
159 children: [],
160 commonName: "女(N922)",
161 },
162 {
163 id: "637c360b-d4e2-4afb-aa18-33624cf3abcb",
164 createdAt: "2021-06-11T02:42:29.000+0000",
165 updatedAt: "2021-09-03T09:21:43.000+0000",
166 createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
167 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
168 sort: 0,
169 name: "保密",
170 description: "",
171 code: "BM816",
172 value: "2",
173 parentId: null,
174 baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019",
175 version: 1,
176 valid: true,
177 standard: false,
178 standardName: null,
179 standardValue: null,
180 children: [],
181 commonName: "保密(BM816)",
182 },
183 ];
184 // } else {
185 // this.$message.error({ message: res.message, showClose: true })
186 // }
187 // })
188 },
189 methods: {
190 // getUserInfo(id) {
191 // getAction(`${api.users}/${id}`).then((res) => {
192 // if (res.status === 1) {
193 99
194 // } else { 100 {
195 // this.$message.error({ message: res.message, showClose: true }) 101 "name": "保密",
196 // } 102 "value": "2",
197 // }) 103
198 // }, 104 }
199 // 更新信息 105 ]
200 updateInfo() {
201 // this.$refs.form.validate((valid) => {
202 // if (valid) {
203 // putAction(`${api.users}/${this.form.id}`, this.form).then((res) => {
204 // if (res.status === 1) {
205 // this.$message.success({ message: res.message, showClose: true })
206 // this.getUserInfo(this.form.id)
207 // } else {
208 // this.$message.error({ message: res.message, showClose: true })
209 // }
210 // })
211 // }
212 // })
213 }, 106 },
214 }, 107 methods: {
215 }; 108 getUserdata (p) {
109 getAction(`${api.users}/${p.id}`).then((res) => {
110 if (res.status === 1) {
111 this.form = res.content
112 } else {
113 this.$message.error({ message: res.message, showClose: true })
114 }
115 })
116 },
117 updateInfo () {
118 this.$refs.form.validate((valid) => {
119 if (valid) {
120 putAction(`${api.users}/${this.form.id}`, this.form).then((res) => {
121 if (res.status === 1) {
122 this.$message.success({ message: res.message, showClose: true })
123 this.getUserdata(this.form.id)
124 } else {
125 this.$message.error({ message: res.message, showClose: true })
126 }
127 })
128 }
129 })
130 }
131 }
132 }
216 </script> 133 </script>
217 134
218 <style scoped lang="scss"> 135 <style scoped lang="scss">
219 .user-info { 136 .user-info {
220 margin: 0.1875rem 1.0417rem; 137 margin: 0.1875rem 1.0417rem;
221 background: #ffffff; 138 background: #ffffff;
222 max-height: 90%; 139 overflow-y: auto;
223 overflow-y: auto; 140 .form-wrapper {
224 .form-wrapper { 141 padding: 0px 120px 0px;
225 padding: 24px 120px 0px; 142 .el-form-item {
226 .el-form-item { 143 /deep/.el-form-item__label {
227 margin-bottom: 24px; 144 color: #ffffff;
228 .el-form-item__label { 145 }
229 color: #747e8c; 146 ::v-deep .el-input .el-input__inner {
147 padding: 0 8px;
148 height: 40px;
149 line-height: 40px;
150 border: 1px solid #6bc1fc;
151 }
230 } 152 }
231 ::v-deep .el-input .el-input__inner { 153 .el-form-item--small.el-form-item {
232 padding: 0 8px; 154 margin-bottom: 16px;
233 height: 40px;
234 line-height: 40px;
235 border: 1px solid #6BC1FC;
236 } 155 }
237 } 156 }
157 .bottom-wrapper {
158 padding: 0px 120px 0px;
159 text-align: right;
160 }
238 } 161 }
239 .bottom-wrapper {
240 padding: 32px 120px 24px;
241 text-align: right;
242 }
243 }
244 </style> 162 </style>
......
1 <!--
2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-03-08 15:30:43
4 * @LastEditors: xiaomiao 1158771342@qq.com
5 * @LastEditTime: 2023-03-08 16:33:50
6 * @FilePath: \监管系统\js-web-jianguan\src\views\system\information copy\index.vue
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 -->
1 <template> 9 <template>
2 <div class="information from-clues"> 10 <div class="information from-clues">
3 <div class="from-clues-header"> 11 <div class="from-clues-header">
...@@ -13,71 +21,65 @@ ...@@ -13,71 +21,65 @@
13 </el-row> 21 </el-row>
14 </el-form> 22 </el-form>
15 </div> 23 </div>
16 <div class="from-clues-content"> 24 <div class="from-clues-content boxin">
17 <div class="contentbox"> 25 <div class="contentbox">
18 <base-set v-show="isshow" /> 26 <base-set v-if="isshow" :userInfo="userData" />
19 <password-edit v-show="!isshow" /> 27 <password-edit v-if="!isshow" :userInfo="userData" />
20 </div> 28 </div>
21 </div> 29 </div>
22 </div> 30 </div>
23 </template> 31 </template>
24 <script> 32 <script>
25 import "@/utils/flexible.js"; 33 import "@/utils/flexible.js";
26 import BaseSet from "./base-set.vue"; 34 import BaseSet from "./base-set.vue";
27 import PasswordEdit from "./password-edit.vue"; 35 import PasswordEdit from "./password-edit.vue";
28 export default { 36 export default {
29 components: { 37 components: {
30 BaseSet, 38 BaseSet,
31 PasswordEdit, 39 PasswordEdit,
32 },
33 data() {
34 return {
35 active: "baseSet",
36 isshow: true,
37 };
38 },
39 computed: {},
40 watch: {},
41 created() {},
42 mounted() {},
43 methods: {
44 information() {
45 this.isshow = true;
46 }, 40 },
47 password() { 41 data () {
48 this.isshow = false; 42 return {
43 isshow: true,
44 };
49 }, 45 },
50 }, 46 computed: {
51 }; 47 userData () {
48 return this.$store.state.user.userInfo;
49 },
50 },
51 watch: {},
52 created () { },
53 mounted () {
54
55
56 },
57 methods: {
58 information () {
59 this.isshow = true;
60 },
61 password () {
62 this.isshow = false;
63 },
64 },
65 };
52 </script> 66 </script>
53 67
54 <style scoped lang="scss"> 68 <style scoped lang="scss">
55 @import "~@/styles/mixin.scss"; 69 @import "~@/styles/mixin.scss";
56 @import "~@/styles/public.scss"; 70 @import "~@/styles/public.scss";
57 .information{ 71 .information {
58 .btnColRight{ 72 /deep/.content {
59 margin-top: 20px; 73 .el-input__inner {
60 } 74 background: none;
61 /deep/.content { 75 }
62 .el-input__inner{
63 background: none;
64 }
65 .user-info { 76 .user-info {
66 background: none; 77 background: none;
67 } 78 }
68 }
69 /deep/.el-tabs {
70
71 .el-tabs__content {
72 height: 100%;
73 width: 100%;
74
75 79
80 .boxin {
81 height: 79%;
82 }
83 }
76 } 84 }
77 }
78 .contentbox{
79 height: 3.0854rem;
80 }
81 }
82
83 </style> 85 </style>
......
...@@ -6,31 +6,27 @@ ...@@ -6,31 +6,27 @@
6 label-width="100px" 6 label-width="100px"
7 :model="form" 7 :model="form"
8 class="form-wrapper" 8 class="form-wrapper"
9 :rules="rules" 9 :rules="rules">
10 > 10 <el-form-item label="旧密码:" prop="oldPassword">
11 <el-form-item label="旧密码:" required prop="oldPassword">
12 <el-input 11 <el-input
13 v-model="form.oldPassword" 12 v-model="form.oldPassword"
14 clearable 13 clearable
15 type="password" 14 type="password"
16 show-password 15 show-password />
17 />
18 </el-form-item> 16 </el-form-item>
19 <el-form-item label="新密码:" required prop="newPassword"> 17 <el-form-item label="新密码:" prop="newPassword">
20 <el-input 18 <el-input
21 v-model="form.newPassword" 19 v-model="form.newPassword"
22 clearable 20 clearable
23 type="password" 21 type="password"
24 show-password 22 show-password />
25 />
26 </el-form-item> 23 </el-form-item>
27 <el-form-item label="确认密码:" required prop="confirmPassword"> 24 <el-form-item label="确认密码:" prop="confirmPassword">
28 <el-input 25 <el-input
29 v-model="form.confirmPassword" 26 v-model="form.confirmPassword"
30 clearable 27 clearable
31 type="password" 28 type="password"
32 show-password 29 show-password />
33 />
34 </el-form-item> 30 </el-form-item>
35 </el-form> 31 </el-form>
36 <div class="bottom-wrapper"> 32 <div class="bottom-wrapper">
...@@ -41,96 +37,102 @@ ...@@ -41,96 +37,102 @@
41 </template> 37 </template>
42 38
43 <script> 39 <script>
44 // import { updateUserPassword } from '@api/organizationManage' 40 import { updateUserPassword } from "@/api/personnelManage";
45 export default { 41 export default {
46 props: { 42 props: {
47 // userInfo: { 43 userInfo: {
48 // type: Object, 44 type: Object,
49 // default: null 45 default: null
50 // }
51 },
52 data() {
53 return {
54 form: {},
55 sexList: [],
56 userId: '',
57 rules: {
58 oldPassword: [
59 { required: true, message: '旧密码不能为空', trigger: 'blur' }
60 ],
61 newPassword: [
62 { required: true, message: '新密码不能为空', trigger: 'blur' }
63 ],
64 confirmPassword: [
65 { required: true, message: '确认密码不能为空', trigger: 'blur' },
66 { validator: this.validatorConfirmPassword, trigger: 'blur' }
67 ]
68 } 46 }
69 } 47 },
70 }, 48 data () {
71 computed: {}, 49 return {
72 watch: { 50 form: {},
73 // userInfo: { 51 sexList: [],
74 // handler: function(val) { 52 userId: '',
75 // if (val) { 53 rules: {
76 // this.userId = val.id 54 oldPassword: [
77 // } 55 { required: true, message: '旧密码不能为空', trigger: 'blur' }
78 // } 56 ],
79 // } 57 newPassword: [
80 }, 58 { required: true, message: '新密码不能为空', trigger: 'blur' }
81 mounted() {}, 59 ],
82 methods: { 60 confirmPassword: [
83 validatorConfirmPassword(rule, value, callback) { 61 { required: true, message: '确认密码不能为空', trigger: 'blur' },
84 const { newPassword } = this.form 62 { validator: this.validatorConfirmPassword, trigger: 'blur' }
85 if (value !== newPassword) { 63 ]
86 callback('两次输入密码不一致') 64 }
87 } else { 65 }
88 callback() 66 },
67 computed: {},
68 watch: {
69 userInfo: {
70 handler: function (val) {
71 if (val) {
72 this.getid(val)
73 }
74 }
89 } 75 }
76
90 }, 77 },
91 // 确认修改 78 mounted () {
92 updatePassword() { 79 if (this.userInfo) {
93 // this.$refs.form.validate((valid) => { 80 this.getid(this.userInfo)
94 // if (valid) { 81 }
95 // const params = Object.assign({}, this.form, { id: this.userId }) 82 },
96 // updateUserPassword(params).then((res) => { 83 methods: {
97 // if (res.status === 1) { 84 getid (val) {
98 // this.$message.success({ message: res.message, showClose: true }) 85 this.userId = val.id
99 // } else { 86 },
100 // this.$message.error({ message: res.message, showClose: true }) 87 validatorConfirmPassword (rule, value, callback) {
101 // } 88 const { newPassword } = this.form
102 // }) 89 if (value !== newPassword) {
103 // } 90 callback('两次输入密码不一致')
104 // }) 91 } else {
92 callback()
93 }
94 },
95 updatePassword () {
96 this.$refs.form.validate((valid) => {
97 if (valid) {
98 const params = Object.assign({}, this.form, { id: this.userId })
99 updateUserPassword(params).then((res) => {
100 if (res.status === 1) {
101 this.$message.success({ message: res.message, showClose: true })
102 } else {
103 this.$message.error({ message: res.message, showClose: true })
104 }
105 })
106 }
107 })
108 }
105 } 109 }
106 } 110 }
107 }
108 </script> 111 </script>
109 112
110 <style scoped lang="scss"> 113 <style scoped lang="scss">
111 .user-info { 114 .user-info {
112 margin: 36px 200px; 115 margin: 36px 200px;
113 background: #ffffff; 116 background: #ffffff;
114 max-height: 90%; 117 overflow-y: auto;
115 overflow-y: auto; 118 .form-wrapper {
116 .form-wrapper { 119 padding: 24px 120px 0px;
117 padding: 24px 120px 0px; 120 /deep/.el-form-item {
118 .el-form-item { 121 margin-bottom: 24px;
119 margin-bottom: 24px; 122 .el-form-item__label {
120 .el-form-item__label { 123 color: #ffffff;
121 color: #747e8c; 124 }
122 } 125 .el-input .el-input__inner {
123 ::v-deep .el-input .el-input__inner { 126 padding: 0 8px;
124 padding: 0 8px; 127 height: 40px;
125 height: 40px; 128 line-height: 40px;
126 line-height: 40px; 129 border: 1px solid #6bc1fc;
127 border: 1px solid #6BC1FC; 130 }
128 } 131 }
129 } 132 }
133 .bottom-wrapper {
134 padding: 32px 120px 24px;
135 text-align: right;
136 }
130 } 137 }
131 .bottom-wrapper {
132 padding: 32px 120px 24px;
133 text-align: right;
134 }
135 }
136 </style> 138 </style>
......
1 <template>
2 <div class="content">
3 <div class="user-info">
4 <el-form
5 ref="form"
6 label-width="100px"
7 :model="form"
8 class="form-wrapper"
9 :rules="rules"
10 >
11 <el-form-item label="用户名:" required>
12 <el-input v-model="form.loginName" clearable disabled />
13 </el-form-item>
14 <el-form-item label="姓名:">
15 <el-input v-model="form.name" clearable />
16 </el-form-item>
17 <el-form-item label="性别:">
18 <el-radio-group v-model="form.sex">
19 <el-radio
20 v-for="(item, index) in sexList"
21 :key="index"
22 :label="item.value"
23 >{{ item.name }}</el-radio
24 >
25 </el-radio-group>
26 </el-form-item>
27 <el-form-item label="身份证号:" prop="idCard">
28 <el-input v-model="form.idCard" clearable />
29 </el-form-item>
30 <el-form-item label="手机号码:" prop="mobilePhone">
31 <el-input v-model="form.mobilePhone" clearable />
32 </el-form-item>
33 <el-form-item label="办公电话:" prop="telephone">
34 <el-input v-model="form.telephone" clearable />
35 </el-form-item>
36 <el-form-item label="办公地址:">
37 <el-input v-model="form.address" clearable />
38 </el-form-item>
39 </el-form>
40 <div class="bottom-wrapper">
41 <el-button type="primary" @click="updateInfo">更新信息</el-button>
42 </div>
43 </div>
44 </div>
45 </template>
46
47 <script>
48 // import { api, getAction, putAction, getDictItems } from '@api/manageApi'
49 export default {
50 props: {
51 // userInfo: {
52 // type: Object,
53 // default: null
54 // }
55 },
56 data() {
57 return {
58 form: {
59 id: "3127e455-43ba-45ff-9326-0e02ef89485e",
60 name: "超级管理员",
61 sort: 1,
62 loginName: "admin",
63 email: null,
64 lastLoginTime: null,
65 mobilePhone: "18291003568",
66 isLocked: false,
67 status: "ACTIVE",
68 passwordChangeTime: "2021-12-10T08:01:01.569+0000",
69 idCard: "612725202111021521",
70 departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b",
71 departmentName: null,
72 organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa",
73 sex: "0",
74 isDuty: true,
75 code: "123324",
76 jobLevel: null,
77 telephone: "028-87720898",
78 address: "办公地点修改测试",
79 },
80 sexList: [],
81 rules: {
82 mobilePhone: [
83 {
84 pattern:
85 /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
86 message: "手机号码格式有误",
87 trigger: "blur",
88 },
89 ],
90 idCard: [
91 {
92 pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
93 message: "身份证号格式有误",
94 trigger: "blur",
95 },
96 ],
97 telephone: [
98 {
99 pattern: /\d{3}-\d{8}|\d{4}-\d{7}/,
100 message: "办公电话格式有误",
101 trigger: "blur",
102 },
103 ],
104 },
105 };
106 },
107 watch: {
108 // userInfo: {
109 // handler: function(val) {
110 // if (val) {
111 // this.getUserInfo(val.id)
112 // }
113 // }
114 // }
115 },
116 mounted() {
117 // getDictItems('XB').then((res) => {
118 // if (res.status === 1) {
119 this.sexList = [
120 {
121 id: "079c72b2-f3de-4a4f-b2a1-e5c8f085cc5f",
122 createdAt: "2021-06-11T02:42:02.000+0000",
123 updatedAt: "2021-09-03T09:21:46.000+0000",
124 createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
125 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
126 sort: 2,
127 name: "男",
128 description: "",
129 code: "N362",
130 value: "0",
131 parentId: null,
132 baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019",
133 version: 1,
134 valid: true,
135 standard: false,
136 standardName: null,
137 standardValue: null,
138 children: [],
139 commonName: "男(N362)",
140 },
141 {
142 id: "4d6f845d-6f6a-4848-8fc2-a3760764c196",
143 createdAt: "2021-06-11T02:42:12.000+0000",
144 updatedAt: "2021-09-03T09:21:46.000+0000",
145 createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
146 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
147 sort: 1,
148 name: "女",
149 description: "",
150 code: "N922",
151 value: "1",
152 parentId: null,
153 baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019",
154 version: 1,
155 valid: true,
156 standard: false,
157 standardName: null,
158 standardValue: null,
159 children: [],
160 commonName: "女(N922)",
161 },
162 {
163 id: "637c360b-d4e2-4afb-aa18-33624cf3abcb",
164 createdAt: "2021-06-11T02:42:29.000+0000",
165 updatedAt: "2021-09-03T09:21:43.000+0000",
166 createdBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
167 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
168 sort: 0,
169 name: "保密",
170 description: "",
171 code: "BM816",
172 value: "2",
173 parentId: null,
174 baseDataCategoryId: "11441374-5e2a-4635-bfa5-d1a430222019",
175 version: 1,
176 valid: true,
177 standard: false,
178 standardName: null,
179 standardValue: null,
180 children: [],
181 commonName: "保密(BM816)",
182 },
183 ];
184 // } else {
185 // this.$message.error({ message: res.message, showClose: true })
186 // }
187 // })
188 },
189 methods: {
190 // getUserInfo(id) {
191 // getAction(`${api.users}/${id}`).then((res) => {
192 // if (res.status === 1) {
193
194 // } else {
195 // this.$message.error({ message: res.message, showClose: true })
196 // }
197 // })
198 // },
199 // 更新信息
200 updateInfo() {
201 // this.$refs.form.validate((valid) => {
202 // if (valid) {
203 // putAction(`${api.users}/${this.form.id}`, this.form).then((res) => {
204 // if (res.status === 1) {
205 // this.$message.success({ message: res.message, showClose: true })
206 // this.getUserInfo(this.form.id)
207 // } else {
208 // this.$message.error({ message: res.message, showClose: true })
209 // }
210 // })
211 // }
212 // })
213 },
214 },
215 };
216 </script>
217
218 <style scoped lang="scss">
219 .user-info {
220 margin: 0.1875rem 1.0417rem;
221 background: #ffffff;
222 max-height: 90%;
223 overflow-y: auto;
224 .form-wrapper {
225 padding: 24px 120px 0px;
226 .el-form-item {
227 margin-bottom: 24px;
228 .el-form-item__label {
229 color: #747e8c;
230 }
231 ::v-deep .el-input .el-input__inner {
232 padding: 0 8px;
233 height: 40px;
234 line-height: 40px;
235 border: 1px solid #6BC1FC;
236 }
237 }
238 }
239 .bottom-wrapper {
240 padding: 32px 120px 24px;
241 text-align: right;
242 }
243 }
244 </style>
1 <template>
2 <div class="information from-clues">
3 <div class="from-clues-header">
4 <el-form ref="ruleForm" label-width="100px">
5 <el-form-item>
6 <Breadcrumb />
7 </el-form-item>
8 <el-row class="mb-5">
9 <el-col :span="3" class="btnColRight">
10 <btn nativeType="cx" @click="information">基本信息</btn>
11 <btn nativeType="cx" @click="password">修改密码</btn>
12 </el-col>
13 </el-row>
14 </el-form>
15 </div>
16 <div class="from-clues-content">
17 <div class="contentbox">
18 <base-set v-show="isshow" />
19 <password-edit v-show="!isshow" />
20 </div>
21 </div>
22 </div>
23 </template>
24 <script>
25 import "@/utils/flexible.js";
26 import BaseSet from "./base-set.vue";
27 import PasswordEdit from "./password-edit.vue";
28 export default {
29 components: {
30 BaseSet,
31 PasswordEdit,
32 },
33 data() {
34 return {
35 active: "baseSet",
36 isshow: true,
37 };
38 },
39 computed: {},
40 watch: {},
41 created() {},
42 mounted() {},
43 methods: {
44 information() {
45 this.isshow = true;
46 },
47 password() {
48 this.isshow = false;
49 },
50 },
51 };
52 </script>
53
54 <style scoped lang="scss">
55 @import "~@/styles/mixin.scss";
56 @import "~@/styles/public.scss";
57 .information{
58 .btnColRight{
59 margin-top: 20px;
60 }
61 /deep/.content {
62 .el-input__inner{
63 background: none;
64 }
65 .user-info {
66 background: none;
67 }
68 }
69 /deep/.el-tabs {
70
71 .el-tabs__content {
72 height: 100%;
73 width: 100%;
74
75
76 }
77 }
78 .contentbox{
79 height: 3.0854rem;
80 }
81 }
82
83 </style>
1 <template>
2 <div class="content">
3 <div class="user-info">
4 <el-form
5 ref="form"
6 label-width="100px"
7 :model="form"
8 class="form-wrapper"
9 :rules="rules"
10 >
11 <el-form-item label="旧密码:" required prop="oldPassword">
12 <el-input
13 v-model="form.oldPassword"
14 clearable
15 type="password"
16 show-password
17 />
18 </el-form-item>
19 <el-form-item label="新密码:" required prop="newPassword">
20 <el-input
21 v-model="form.newPassword"
22 clearable
23 type="password"
24 show-password
25 />
26 </el-form-item>
27 <el-form-item label="确认密码:" required prop="confirmPassword">
28 <el-input
29 v-model="form.confirmPassword"
30 clearable
31 type="password"
32 show-password
33 />
34 </el-form-item>
35 </el-form>
36 <div class="bottom-wrapper">
37 <el-button type="primary" @click="updatePassword">确认修改</el-button>
38 </div>
39 </div>
40 </div>
41 </template>
42
43 <script>
44 // import { updateUserPassword } from '@api/organizationManage'
45 export default {
46 props: {
47 // userInfo: {
48 // type: Object,
49 // default: null
50 // }
51 },
52 data() {
53 return {
54 form: {},
55 sexList: [],
56 userId: '',
57 rules: {
58 oldPassword: [
59 { required: true, message: '旧密码不能为空', trigger: 'blur' }
60 ],
61 newPassword: [
62 { required: true, message: '新密码不能为空', trigger: 'blur' }
63 ],
64 confirmPassword: [
65 { required: true, message: '确认密码不能为空', trigger: 'blur' },
66 { validator: this.validatorConfirmPassword, trigger: 'blur' }
67 ]
68 }
69 }
70 },
71 computed: {},
72 watch: {
73 // userInfo: {
74 // handler: function(val) {
75 // if (val) {
76 // this.userId = val.id
77 // }
78 // }
79 // }
80 },
81 mounted() {},
82 methods: {
83 validatorConfirmPassword(rule, value, callback) {
84 const { newPassword } = this.form
85 if (value !== newPassword) {
86 callback('两次输入密码不一致')
87 } else {
88 callback()
89 }
90 },
91 // 确认修改
92 updatePassword() {
93 // this.$refs.form.validate((valid) => {
94 // if (valid) {
95 // const params = Object.assign({}, this.form, { id: this.userId })
96 // updateUserPassword(params).then((res) => {
97 // if (res.status === 1) {
98 // this.$message.success({ message: res.message, showClose: true })
99 // } else {
100 // this.$message.error({ message: res.message, showClose: true })
101 // }
102 // })
103 // }
104 // })
105 }
106 }
107 }
108 </script>
109
110 <style scoped lang="scss">
111 .user-info {
112 margin: 36px 200px;
113 background: #ffffff;
114 max-height: 90%;
115 overflow-y: auto;
116 .form-wrapper {
117 padding: 24px 120px 0px;
118 .el-form-item {
119 margin-bottom: 24px;
120 .el-form-item__label {
121 color: #747e8c;
122 }
123 ::v-deep .el-input .el-input__inner {
124 padding: 0 8px;
125 height: 40px;
126 line-height: 40px;
127 border: 1px solid #6BC1FC;
128 }
129 }
130 }
131 .bottom-wrapper {
132 padding: 32px 120px 24px;
133 text-align: right;
134 }
135 }
136 </style>
1 <template>
2 <Dialog :title="title" class="tableClass" :show.sync="visible" :width="'715px'" @close="close()">
3 <template slot="content">
4 <lb-table ref="multipleTable"
5 :pagination="false"
6 :column="tableData.column"
7 :data="tableData.data"
8 @selection-change="handleSelectionChange">
9 </lb-table>
10 </template>
11 <template slot="footer">
12 <el-button type="primary" class="save" @click="handleSaveMember()"
13 >保存</el-button
14 >
15 <el-button class="cancel-button" @click="close()">取消</el-button>
16 </template>
17 </Dialog>
18 </template>
19
20 <script>
21 import Dialog from "@/components/Dialog/";
22 export default {
23 name: "",
24 components: { Dialog },
25 props: {},
26 data() {
27 return {
28 title: "人员配置",
29 visible: false,
30 tableData: {
31 column: [
32 {
33 type: 'selection'
34 },
35 {
36 prop: 'name',
37 label: '角色名称'
38 },
39 {
40 prop: 'type',
41 label: '角色类型'
42 },
43 {
44 prop: 'departmentName',
45 label: '角色描述'
46 },
47 ],
48 data: [
49 {
50 id: "3127e455-43ba-45ff-9326-0e02ef89485e",
51 createdAt: null,
52 updatedAt: "2022-08-04T03:38:27.626+0000",
53 createdBy: null,
54 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
55 sort: 1,
56 name: "超级管理员",
57 loginName: "admin",
58 password: "05eb15777e8fd1d61c840472e7267f61d432f63340d86b59",
59 passwordSalt: "5178114777136485",
60 email: null,
61 lastLoginTime: null,
62 mobilePhone: "18291003568",
63 status: "ACTIVE",
64 passwordChangeTime: "2021-12-10T08:01:01.569+0000",
65 idCard: "612725202111021521",
66 departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b",
67 organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa",
68 sex: "0",
69 isDuty: true,
70 type:"",
71 code: "123324",
72 jobLevel: null,
73 telephone: "028-87720898",
74 address: "办公地点修改测试",
75 isLocked: false,
76 departmentName: "研发部",
77 _X_ROW_KEY: "row_276",
78 },
79 {
80 name: '数据管理员',
81 type:"1",
82 },
83 {
84 name: '数据管理员2',
85 type:"d",
86 }
87 ]
88 },
89 multipleSelection: []
90
91 }
92 },
93 computed: {},
94 watch: {},
95 created() {},
96 mounted() {},
97 methods: {
98 authorization() {
99 this.visible = true;
100 },
101 close() {
102 // this.resetForm()
103 this.visible = false;
104 },
105 // 保存事件
106 handleSaveMember() {
107 // if (this.memberList.length === 0) {
108 // this.$message.warning("请添加待选人员");
109 // return false;
110 // }
111 // const idList = this.memberList.map(item => item.id)
112 // updateUser(this.roleId, idList).then(res => {
113 // if (res.status === 1) {
114 // this.$message.success({ message: '保存成功', showClose: true })
115 // this.showMemberConfigDialog = false
116 // this.$emit('setUsers', this.roleId)
117 // this.resetMemberConfig()
118 // } else this.$message.error({ message: res.message, showClose: true })
119 // })
120 },
121 handleSelectionChange (val) {
122 this.multipleSelection = val
123 }
124 }
125 };
126 </script>
127 <style scoped lang="scss">
128 /deep/.el-dialog__header{
129 text-align: center;
130 margin-bottom: 10px;
131 .el-dialog__title{
132 color: white;
133 }
134 }
135 </style>
...@@ -8,6 +8,7 @@ class data extends filter { ...@@ -8,6 +8,7 @@ class data extends filter {
8 { 8 {
9 prop: "name", 9 prop: "name",
10 label: "菜单名称", 10 label: "菜单名称",
11 align: 'left',
11 width: 300 12 width: 300
12 }, 13 },
13 { 14 {
......
1 <template> 1 <template>
2 <div> 2 <div>
3 <Dialog 3 <Dialog class="modifydialog" :title="title" :show.sync="visible" :width="'767px'" @close="close()">
4 :title="title"
5 :show.sync="visible"
6 :width="'767px'"
7 @close="close()"
8 >
9 <template slot="content"> 4 <template slot="content">
10 <el-form ref="form" :model="form" :rules="rules"> 5 <el-form ref="form" :model="form" :rules="rules">
11 <el-row :gutter="24"> 6 <el-row :gutter="24">
...@@ -18,27 +13,16 @@ ...@@ -18,27 +13,16 @@
18 <el-row :gutter="24"> 13 <el-row :gutter="24">
19 <el-col :span="12"> 14 <el-col :span="12">
20 <el-form-item label="上级菜单:" label-width="124px"> 15 <el-form-item label="上级菜单:" label-width="124px">
21 <el-cascader 16 <el-cascader :key="menuKey" v-model="form.parentId" :options="parentMenuList" :props="setProps"
22 :key="menuKey" 17 placeholder="请选择上级菜单" clearable @change="handleChange" />
23 v-model="form.parentId"
24 :options="parentMenuList"
25 :props="setProps"
26 placeholder="请选择上级菜单"
27 clearable
28 @change="handleChange"
29 />
30 </el-form-item> 18 </el-form-item>
31 </el-col> 19 </el-col>
32 20
33 </el-row> 21 </el-row>
34 <el-row :gutter="24"> 22 <el-row :gutter="24">
35 <el-col :span="12"> 23 <el-col :span="24">
36 <el-form-item label="代码:" prop="code" label-width="54px"> 24 <el-form-item label="代码:" prop="code" label-width="124px">
37 <el-input 25 <el-input v-model="codeComputed" placeholder="请输入菜单代码" :disabled="type === 1" />
38 v-model="codeComputed"
39 placeholder="请输入菜单代码"
40 :disabled="type === 1"
41 />
42 </el-form-item> 26 </el-form-item>
43 </el-col> 27 </el-col>
44 </el-row> 28 </el-row>
...@@ -52,32 +36,17 @@ ...@@ -52,32 +36,17 @@
52 <el-row :gutter="24"> 36 <el-row :gutter="24">
53 <el-col :span="24"> 37 <el-col :span="24">
54 <el-form-item label="浏览器跳转模式:" label-width="124px"> 38 <el-form-item label="浏览器跳转模式:" label-width="124px">
55 <el-select 39 <el-select v-model="form.jumpMode" placeholder="请选择浏览器跳转模式">
56 v-model="form.jumpMode" 40 <el-option v-for="item in jumpModeList" :key="item.value" :label="item.name" :value="item.value" />
57 placeholder="请选择浏览器跳转模式"
58 >
59 <el-option
60 v-for="item in jumpModeList"
61 :key="item.value"
62 :label="item.name"
63 :value="item.value"
64 />
65 </el-select> 41 </el-select>
66 </el-form-item> 42 </el-form-item>
67 </el-col> 43 </el-col>
68 </el-row> 44 </el-row>
69 <el-row :gutter="24"> 45 <el-row :gutter="24">
70 <el-col :span="24"> 46 <el-col :span="24">
71 <el-form-item 47 <el-form-item label="配置参数:" label-width="124px" class="form-item-mb0">
72 label="配置参数:"
73 label-width="124px"
74 class="form-item-mb0"
75 >
76 <!-- 配置参数 --> 48 <!-- 配置参数 -->
77 <JsonEditor 49 <JsonEditor :result-infos="form.metadata" @getJsonString="getJsonString" />
78 :result-infos="form.metadata"
79 @getJsonString="getJsonString"
80 />
81 </el-form-item> 50 </el-form-item>
82 </el-col> 51 </el-col>
83 </el-row> 52 </el-row>
...@@ -86,11 +55,7 @@ ...@@ -86,11 +55,7 @@
86 <template slot="footer"> 55 <template slot="footer">
87 <el-button class="cancel-button" @click="close()">取消</el-button> 56 <el-button class="cancel-button" @click="close()">取消</el-button>
88 57
89 58 <el-button type="primary" @click="submitForm()">保存</el-button>
90 <el-button
91 type="primary"
92 @click="submitForm()"
93 >保存</el-button>
94 </template> 59 </template>
95 </Dialog> 60 </Dialog>
96 <!-- 图标列表 --> 61 <!-- 图标列表 -->
...@@ -99,185 +64,174 @@ ...@@ -99,185 +64,174 @@
99 </template> 64 </template>
100 65
101 <script> 66 <script>
102 import Dialog from "@/components/Dialog/"; 67 import Dialog from "@/components/Dialog/";
103 import { getParentMenuListAction } from '@/api/quanxianmanagement' 68 import { getParentMenuListAction } from '@/api/authorityManage'
104 import JsonEditor from '@/components/JsonEditors' 69 import JsonEditor from '@/components/JsonEditors'
105 import IconList from '@/components/IconList' 70 import IconList from '@/components/IconList'
106 import { validateCode } from '@/utils/validate'; 71 import { validateCode } from '@/utils/validate';
107 import { api, httpAction } from '@/api/manageApi' 72 import { api, httpAction } from '@/api/manageApi'
108 export default { 73 export default {
109 name: 'MenuModal', 74 name: 'MenuModal',
110 components: { 75 components: {
111 IconList, 76 IconList,
112 JsonEditor, 77 JsonEditor,
113 Dialog 78 Dialog
114 },
115 props: {
116 productId: {
117 type: String,
118 default: ''
119 }
120 },
121 data() {
122 return {
123 form: {
124 icon: '',
125 code: ''
126 },
127 rules: {
128 name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }],
129 code: [
130 { required: true, message: '必填', trigger: 'blur' },
131 { validator: validateCode, trigger: 'blur' }
132 ]
133 },
134 title: '',
135 type: '',
136 visible: false,
137 parentMenuList: [],
138 menuKey: 0,
139 jumpModeList: [
140 { name: '在当前页面显示', value: 1 },
141 { name: '跳转到新页面', value: 2 }
142 ],
143 setProps: {
144 value: 'id',
145 label: 'name',
146 children: 'children',
147 expandTrigger: 'hover',
148 checkStrictly: true, // 可取消关联,选择任意一级选项
149 emitPath: false
150 },
151 dataUrl: api.menus
152 }
153 },
154 computed: {
155 codeComputed: {
156 get: function() {
157 return this.form.code
158 },
159 set: function(val) {
160 this.form.code = val.toUpperCase()
161 }
162 }
163 },
164 created() {},
165 mounted() {},
166 methods: {
167 // 获取父级菜单
168 getParentMenuList(id) {
169 getParentMenuListAction(id).then((res) => {
170 if (res.status === 1) {
171 const list = this.$dealArrChildren(res.content)
172 if (id) {
173 this.parentMenuList = this.$dealArrDisabled(
174 this.$deepCopy(list),
175 id
176 )
177 this.menuKey++
178 } else {
179 this.parentMenuList = list
180 }
181 } else {
182 this.$message.error({ message: res.message, showClose: true })
183 }
184 })
185 }, 79 },
186 getIconList() { 80 props: {
187 this.$refs.iconList.show(true) 81 productId: {
188 }, 82 type: String,
189 getIconName(data) { 83 default: ''
190 this.form.icon = data 84 }
191 },
192 // 配置参数
193 getJsonString(data) {
194 this.form.metadata = data
195 },
196 // 新增菜单
197 add() {
198 this.getParentMenuList(this.productId)
199 this.visible = true
200 this.type = 0
201 this.form.jumpMode = 1
202 }, 85 },
203 // 编辑菜单 86 data () {
204 edit(record) { 87 return {
205 this.type = 1 88 form: {
206 // 若有id为编辑 89 icon: '',
207 if (record.id) { 90 code: ''
208 this.$nextTick(() => { 91 },
209 this.form = Object.assign({}, record) 92 rules: {
210 this.getParentMenuList(this.productId) 93 name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }],
211 }) 94 code: [
95 { required: true, message: '必填', trigger: 'blur' },
96 { validator: validateCode, trigger: 'blur' }
97 ]
98 },
99 title: '',
100 type: '',
101 visible: false,
102 parentMenuList: [],
103 menuKey: 0,
104 jumpModeList: [
105 { name: '在当前页面显示', value: 1 },
106 { name: '跳转到新页面', value: 2 }
107 ],
108 setProps: {
109 value: 'id',
110 label: 'name',
111 children: 'children',
112 expandTrigger: 'hover',
113 checkStrictly: true, // 可取消关联,选择任意一级选项
114 emitPath: false
115 },
116 dataUrl: api.menus
212 } 117 }
213 this.visible = true
214 }, 118 },
215 // 选择上级菜单 119 computed: {
216 handleChange(value) { 120 codeComputed: {
217 this.form.parentId = value 121 get: function () {
122 return this.form.code
123 },
124 set: function (val) {
125 this.form.code = val.toUpperCase()
126 }
127 }
218 }, 128 },
219 // 保存 129 created () { },
220 submitForm(submitType) { 130 mounted () { },
221 this.$refs.form.validate((valid) => { 131 methods: {
222 if (valid) { 132 // 获取父级菜单
223 let method = '' 133 getParentMenuList (id) {
224 let url = '' 134
225 const formData = this.form 135 getParentMenuListAction(id).then((res) => {
226 formData.productId = this.productId 136 if (res.status === 1) {
227 if (!formData.id) { 137 const list = this.$dealArrChildren(res.content)
228 method = 'post' 138 if (id) {
229 url = this.dataUrl 139 this.parentMenuList = this.$dealArrDisabled(
140 this.$deepCopy(list),
141 id
142 )
143 this.menuKey++
144 } else {
145 this.parentMenuList = list
146 }
230 } else { 147 } else {
231 method = 'put' 148 this.$message.error({ message: res.message, showClose: true })
232 url = `${this.dataUrl}/${formData.id}`
233 } 149 }
234 httpAction(url, formData, method) 150 })
235 .then((res) => { 151 },
236 if (res.status === 1) { 152 getIconList () {
237 this.$message.success({ 153 this.$refs.iconList.show(true)
238 message: res.message, 154 },
239 showClose: true 155 getIconName (data) {
240 }) 156 this.form.icon = data
157 },
158 // 配置参数
159 getJsonString (data) {
160 this.form.metadata = data
161 },
162 // 新增菜单
163 add () {
164 this.getParentMenuList(this.productId)
165 this.visible = true
166 this.type = 0
167 this.form.jumpMode = 1
168 },
169 // 编辑菜单
170 edit (record) {
171 this.type = 1
172 // 若有id为编辑
173 if (record.id) {
174 this.$nextTick(() => {
175 this.form = Object.assign({}, record)
176 this.getParentMenuList(this.productId)
177 })
178 }
179 this.visible = true
180 },
181 // 选择上级菜单
182 handleChange (value) {
183 this.form.parentId = value
184 },
185 // 保存
186 submitForm (submitType) {
187 this.$refs.form.validate((valid) => {
188 if (valid) {
189 let method = ''
190 let url = ''
191 const formData = this.form
192 formData.productId = this.productId
193 if (!formData.id) {
194 method = 'post'
195 url = this.dataUrl
196 } else {
197 method = 'put'
198 url = `${this.dataUrl}/${formData.id}`
199 }
200 debugger
201 httpAction(url, formData, method)
202 .then((res) => {
203 if (res.status === 1) {
204 this.$message.success({
205 message: res.message,
206 showClose: true
207 })
241 208
242 this.resetForm() 209 this.resetForm()
243 this.$emit('ok') 210 this.$emit('ok')
244 } else { 211 } else {
245 this.$message.error({ message: res.message, showClose: true }) 212 this.$message.error({ message: res.message, showClose: true })
246 } 213 }
247 }) 214 })
248 .catch((err) => { 215 .catch((err) => {
249 console.log(err) 216 console.log(err)
250 }) 217 })
218 }
219 })
220 },
221 resetForm () {
222 this.$refs.form.resetFields()
223 this.form = {
224 icon: '',
225 code: ''
251 } 226 }
252 }) 227 },
253 }, 228 close () {
254 resetForm() { 229 this.resetForm()
255 this.$refs.form.resetFields() 230 this.visible = false
256 this.form = {
257 icon: '',
258 code: ''
259 } 231 }
260 },
261 close() {
262 this.resetForm()
263 this.visible = false
264 } 232 }
265 } 233 }
266 }
267 </script> 234 </script>
268 <style scoped lang="scss"> 235 <style scoped lang="scss">
269 /deep/.el-dialog__header { 236 // @import "~@/styles/public.scss";
270 text-align: center;
271 margin-bottom: 10px;
272 .el-dialog__title {
273 color: white;
274 }
275 }
276
277 /deep/.el-form-item__label{
278 color: white;
279 }
280 /deep/.el-input__inner{
281 background-color: #07388B;
282 }
283 </style> 237 </style>
......
...@@ -13,184 +13,254 @@ ...@@ -13,184 +13,254 @@
13 </el-form> 13 </el-form>
14 </div> 14 </div>
15 <div class="from-clues-content"> 15 <div class="from-clues-content">
16 <lb-table 16 <lb-table :pagination="false" :column="tableData.columns" :data="tablelistData" row-key="id" default-expand-all
17 :pagination="false" 17 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
18 :column="tableData.columns"
19 :data="tablelistData"
20 row-key="id"
21 default-expand-all
22 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
23 >
24 </lb-table> 18 </lb-table>
25 </div> 19 </div>
26 <edit-dialog ref="dialogForm" 20 <edit-dialog ref="dialogForm" :product-id="productId" :resource-category-id="resourceCategoryId"
27 :product-id="productId" 21 @ok="reloadTableData" />
28 :resource-category-id="resourceCategoryId"
29 @ok="reloadTableData"/>
30 <!-- <authorizationdiglog ref="rolesForm" /> --> 22 <!-- <authorizationdiglog ref="rolesForm" /> -->
31 </div> 23 </div>
32 </template> 24 </template>
33 <script> 25 <script>
34 // 定时任务 26 // 定时任务
35 import data from "./data"; 27 import data from "./data";
36 import { deleteAction, getAction, api } from "@/api/manageApi"; 28 import { deleteAction, getAction, api } from "@/api/manageApi";
37 import EditDialog from "./edit-dialog.vue"; 29 import EditDialog from "./edit-dialog.vue";
38 // import authorizationdiglog from "./authorizationdiglog.vue"; 30 import { mapGetters } from "vuex";
39 export default { 31 import { getMenuInfo } from "@/api/user";
40 name: "menus", 32 import {
41 components: { 33 getUuid,
42 EditDialog, 34 judgeSort,
43 // authorizationdiglog, 35 realMove,
44 }, 36 findParents,
45 data() { 37 removeTreeListItem,
46 return { 38 } from "@/utils/operation";
47 tablelistData: [], 39 // import authorizationdiglog from "./authorizationdiglog.vue";
48 resourceCategoryId:"", 40 export default {
49 taskData: null, 41 name: "menus",
50 form: { 42 components: {
51 job_name: "", 43 EditDialog,
52 currentPage: 1, 44 // authorizationdiglog,
53 }, 45 },
54 title: "", 46 data () {
55 queryParam: {}, 47 return {
56 selectType: "0", 48 tablelistData: [],
57 queryName: "", 49 resourceCategoryId: "",
58 organizationId: "", // 组织机构ID 50 taskData: null,
59 departmentId: "", // 部门ID 51 form: {
60 departmentList: [], // 部门列表 52 job_name: "",
61 levelList: [], // 职务级别 53 currentPage: 1,
62 sexList: [], 54 },
63 55 title: "",
64 selectionList: [], 56 queryParam: {},
65 tableData: { 57 selectType: "0",
66 columns: [].concat(data.columns()).concat([ 58 queryName: "",
67 { 59 organizationId: "", // 组织机构ID
68 label: "操作", 60 departmentId: "", // 部门ID
69 width: 380, 61 departmentList: [], // 部门列表
70 render: (h, scope) => { 62 levelList: [], // 职务级别
71 return ( 63 sexList: [],
72 <div>
73 <el-button
74 type="text"
75 size="mini"
76 icon="el-icon-edit"
77 onClick={() => {
78 this.handleEdit(scope.row);
79 }}
80 >
81 修改
82 </el-button>
83
84 <el-button
85 type="text"
86 size="mini"
87 icon="el-icon-delete"
88 style="color:#F56C6C"
89 onClick={() => {
90 this.handleDelete(scope.row.id, scope.row.name);
91 }}
92 >
93 删除
94 </el-button>
95 </div>
96 );
97 },
98 },
99 ]),
100 data: [],
101 },
102 pageData: {
103 total: 5,
104 pageSize: 15,
105 current: 1,
106 },
107 tableUrl: api.menus, // 菜单接口地址
108 meumurlid: api.subsystem,// 项目id接口地址
109 productId:""//项目id
110 };
111 },
112 created() {
113 this.getTableList();
114 },
115 methods: {
116 // 加载表格数据
117 getTableList() {
118 64
119 const queryOptionsid = { 65 selectionList: [],
120 conditionGroup: { 66 tableData: {
121 queryRelation: "AND", 67 columns: [].concat(data.columns()).concat([
122 conditions: [
123 { 68 {
124 property: "code", 69 label: "操作",
125 value: "BDCJGPT", 70 width: 380,
126 operator: "EQ", 71 render: (h, scope) => {
72 return (
73 <div>
74 <el-button
75 type="text"
76 size="mini"
77 icon="el-icon-edit"
78 onClick={() => {
79 this.handleEdit(scope.row);
80 }}
81 >
82 修改
83 </el-button>
84
85 <el-button
86 type="text"
87 size="mini"
88 icon="el-icon-delete"
89 style="color:#F56C6C"
90 onClick={() => {
91 this.handleDelete(scope.row.id, scope.row.name);
92 }}
93 >
94 删除
95 </el-button>
96 </div>
97 );
98 },
127 }, 99 },
128 ], 100 ]),
101 data: [],
129 }, 102 },
103 pageData: {
104 total: 5,
105 pageSize: 15,
106 current: 1,
107 },
108 tableUrl: api.menus, // 菜单接口地址
109 meumurlid: api.subsystem,// 项目id接口地址
110 productId: ""//项目id
130 }; 111 };
131 const params = {
132 queryOptions: queryOptionsid,
133 };
134 // 获取系统id
135 getAction(this.meumurlid, params)
136 .then((res) => {
137 this.productId=res.content[0].id;
138 let queryOptions = {
139 conditionGroup: {
140 conditions: [
141 {
142 property: "productId",
143 value: this.productId,
144 operator: "EQ",
145 },
146 ],
147 queryRelation: "AND",
148 },
149 orderBys: [{ property: "sort", direction: "desc" }],
150 };
151 if (!this.tableUrl) {
152 console.log("请设置tableUrl属性为接口地址!");
153 return;
154 }
155 if (this.queryOptions !== "") {
156 this.queryParam.queryOptions = JSON.stringify(queryOptions);
157 }
158 // 查询系统菜单
159 getAction(this.tableUrl, this.queryParam)
160 .then((res) => {
161 if (res.status === 1) {
162 this.loading = false;
163 this.tablelistData = res.content;
164 console.log("this.tablelistData", this.tablelistData);
165 } else {
166 this.$message.error({ message: res.message, showClose: true });
167 this.loading = false;
168 }
169 })
170 .catch((error) => {
171 console.log("errrrrrorrrrr", error);
172 this.loading = false;
173 });
174 })
175 .catch((error) => {
176 console.log("errrrrrorrrrr", error);
177 });
178 }, 112 },
179 // 新增菜单 113 created () {
180 handleAdd() { 114 this.getTableList();
181 this.$refs.dialogForm.add();
182 this.$refs.dialogForm.title = "添加";
183 }, 115 },
184 116 computed: {
185 // 修改 117 ...mapGetters(["products"])
186 handleEdit(record) {
187 this.$refs.dialogForm.edit(record);
188 this.$refs.dialogForm.title = "修改";
189 }, 118 },
190 // 删除 119 methods: {
191 handleDelete(id,content) { 120 // 加载表格数据
192 this.$confirm( 121 getTableList () {
193 `<div class="customer-message-wrapper"> 122 getMenuInfo(sessionStorage.getItem("products")).then((res) => {
123 if (res.code === 200) {
124 this.tablelistData = judgeSort(res.result)
125 } else {
126 this.$message.error({ message: res.message, showClose: true })
127 }
128 })
129 const queryOptionsid = {
130 conditionGroup: {
131 queryRelation: "AND",
132 conditions: [
133 {
134 property: "code",
135 value: this.products,
136 operator: "EQ",
137 },
138 ],
139 },
140 };
141 const params = {
142 queryOptions: queryOptionsid,
143 };
144 // 获取系统id
145 getAction(this.meumurlid, params)
146 .then((res) => {
147 this.productId = res.content[0].id;
148 this.getAuthorityList(res.content[0].id, res.content[0].code)
149 this.selectedSubsystemCode = res.content[0].code
150 // let queryOptions = {
151 // conditionGroup: {
152 // conditions: [
153 // {
154 // property: "productId",
155 // value: this.productId,
156 // operator: "EQ",
157 // },
158 // ],
159 // queryRelation: "AND",
160 // },
161 // orderBys: [{ property: "sort", direction: "desc" }],
162 // };
163 // if (!this.tableUrl) {
164 // console.log("请设置tableUrl属性为接口地址!");
165 // return;
166 // }
167 // if (this.queryOptions !== "") {
168 // this.queryParam.queryOptions = JSON.stringify(queryOptions);
169 // }
170 // 查询系统菜单
171 // getAction(this.tableUrl, this.queryParam)
172 // .then((res) => {
173 // if (res.status === 1) {
174 // this.loading = false;
175 // // this.menutablelistData = res.content;
176 // console.log("res.content菜单", res.content);
177 // } else {
178 // this.$message.error({ message: res.message, showClose: true });
179 // this.loading = false;
180 // }
181 // })
182 // .catch((error) => {
183 // console.log("er", error);
184 // this.loading = false;
185 // });
186 })
187 .catch((error) => {
188 console.log("er", error);
189 });
190 // const queryOptionsid = {
191 // conditionGroup: {
192 // queryRelation: "AND",
193 // conditions: [
194 // {
195 // property: "code",
196 // value: sessionStorage.getItem("products"),
197 // operator: "EQ",
198 // },
199 // ],
200 // },
201 // };
202 // const params = {
203 // queryOptions: queryOptionsid,
204 // };
205 // // 获取系统id
206 // getAction(this.meumurlid, params)
207 // .then((res) => {
208 // this.productId = res.content[0].id;
209 // let queryOptions = {
210 // conditionGroup: {
211 // conditions: [
212 // {
213 // property: "productId",
214 // value: this.productId,
215 // operator: "EQ",
216 // },
217 // ],
218 // queryRelation: "AND",
219 // },
220 // orderBys: [{ property: "sort", direction: "desc" }],
221 // };
222 // if (!this.tableUrl) {
223 // console.log("请设置tableUrl属性为接口地址!");
224 // return;
225 // }
226 // if (this.queryOptions !== "") {
227 // this.queryParam.queryOptions = JSON.stringify(queryOptions);
228 // }
229 // // 查询系统菜单
230 // getAction(this.tableUrl, this.queryParam)
231 // .then((res) => {
232 // if (res.status === 1) {
233 // this.loading = false;
234 // this.tablelistData = res.content;
235 // } else {
236 // this.$message.error({ message: res.message, showClose: true });
237 // this.loading = false;
238 // }
239 // })
240 // .catch((error) => {
241 // console.log("er", error);
242 // this.loading = false;
243 // });
244 // })
245 // .catch((error) => {
246 // console.log("er", error);
247 // });
248 },
249 // 新增菜单
250 handleAdd () {
251 this.$refs.dialogForm.add();
252 this.$refs.dialogForm.title = "添加";
253 },
254
255 // 修改
256 handleEdit (record) {
257 this.$refs.dialogForm.edit(record);
258 this.$refs.dialogForm.title = "修改";
259 },
260 // 删除
261 handleDelete (id, content) {
262 this.$confirm(
263 `<div class="customer-message-wrapper">
194 <h5 class="title">您确认要执行该操作用于以下信息:</h5> 264 <h5 class="title">您确认要执行该操作用于以下信息:</h5>
195 <p class="content" aria-controls="${content}">${content} 265 <p class="content" aria-controls="${content}">${content}
196 </p> 266 </p>
...@@ -198,49 +268,51 @@ export default { ...@@ -198,49 +268,51 @@ export default {
198 <span >无法恢复</span> 268 <span >无法恢复</span>
199 </p> 269 </p>
200 </div>`, 270 </div>`,
201 '执行确认', 271 '执行确认',
202 { 272 {
203 dangerouslyUseHTMLString: true, 273 dangerouslyUseHTMLString: true,
204 customClass: 'customer-delete', 274 customClass: 'customer-delete',
205 confirmButtonText: '确定', 275 confirmButtonText: '确定',
206 cancelButtonText: '取消', 276 cancelButtonText: '取消',
207 type: 'warning' 277 type: 'warning'
208 }
209 )
210 .then(() => {
211 if (!this.tableUrl) {
212 this.$message.error({
213 message: '请设置tableUrl属性为接口地址!',
214 showClose: true
215 })
216 return
217 } 278 }
218 const url = this.tableUrl + '/' + id 279 )
219 deleteAction(url).then(res => { 280 .then(() => {
220 if (res.status === 1) { 281 if (!this.tableUrl) {
221 this.$message.success({ message: res.message, showClose: true }) 282 this.$message.error({
222 this.reloadTableData() 283 message: '请设置tableUrl属性为接口地址!',
223 } else { 284 showClose: true
224 this.$message.error({ message: res.message, showClose: true }) 285 })
286 return
225 } 287 }
288 const url = this.tableUrl + '/' + id
289 deleteAction(url).then(res => {
290 if (res.status === 1) {
291 this.$message.success({ message: res.message, showClose: true })
292 this.reloadTableData()
293 } else {
294 this.$message.error({ message: res.message, showClose: true })
295 }
296 })
226 }) 297 })
227 }) 298 .catch(() => { })
228 .catch(() => {}) 299 },
229 }, 300 // 新增、编辑回显
230 // 新增、编辑回显 301 reloadTableData () {
231 reloadTableData() { 302 this.getTableList()
232 this.getTableList() 303 },
233 }, 304 },
234 }, 305 };
235 };
236 </script> 306 </script>
237 <style scoped lang="scss"> 307 <style scoped lang="scss">
238 @import "~@/styles/mixin.scss"; 308 @import "~@/styles/mixin.scss";
239 @import "~@/styles/public.scss"; 309
240 .btnColRight { 310 // @import "~@/styles/public.scss";
241 margin-top: 20px; 311 .btnColRight {
242 } 312 margin-top: 20px;
243 /deep/.el-table__expand-icon { 313 }
244 color: #fff; 314
245 } 315 /deep/.el-table__expand-icon {
316 color: #fff;
317 }
246 </style> 318 </style>
......
...@@ -8,12 +8,7 @@ class data extends filter { ...@@ -8,12 +8,7 @@ class data extends filter {
8 { 8 {
9 prop: "name", 9 prop: "name",
10 label: "角色名称", 10 label: "角色名称",
11 width: 330 11 width: 130
12 },
13 {
14 prop: "type",
15 label: "类别",
16 width: 400
17 }, 12 },
18 { 13 {
19 prop: "description", 14 prop: "description",
......
1 import filter from '@/utils/filter.js'
2 class data extends filter {
3 constructor() {
4 super()
5 }
6 columns () {
7 return [
8 {
9 prop: "name",
10 label: "角色名称",
11 width: 330
12 },
13 {
14 prop: "type",
15 label: "类别",
16 width: 400
17 },
18 {
19 prop: "address",
20 label: "备注"
21 }
22 ]
23 }
24 }
25 export default new data()
1 <!-- 新增 & 修改角色 --> 1 <!-- 新增 & 修改角色 -->
2 <template> 2 <template>
3 <Dialog 3 <Dialog
4 class="modifydialog"
4 :title="dialogTitle" 5 :title="dialogTitle"
5 :show.sync="showAddEditDialog" 6 :show.sync="showAddEditDialog"
6 :width="'767px'" 7 :width="'767px'"
7 @close="handleCloseDialog()" 8 @close="handleCloseDialog()">
8 >
9 <template slot="content"> 9 <template slot="content">
10 <el-form ref="form" :model="dialogForm" :rules="rules" label-width="82px"> 10 <el-form ref="form" :model="dialogForm" :rules="rules" label-width="82px">
11 <el-row :gutter="24"> 11 <el-row :gutter="24">
12 <el-col :span="12"> 12 <el-col :span="15">
13 <el-form-item label="角色名称:" prop="roleName"> 13 <el-form-item label="角色名称:" prop="roleName">
14 <el-input 14 <el-input
15 v-model="dialogForm.roleName" 15 v-model="dialogForm.roleName"
16 clearable 16 clearable
17 placeholder="角色名称" 17 placeholder="角色名称" />
18 />
19 </el-form-item>
20 </el-col>
21 <el-col :span="12">
22 <el-form-item label="角色类型:" prop="roleType">
23 <el-input
24 v-model="dialogForm.roleType"
25 clearable
26 placeholder="角色类型"
27 />
28 </el-form-item> 18 </el-form-item>
29 </el-col> 19 </el-col>
30 </el-row> 20 </el-row>
31 <br>
32 <el-row> 21 <el-row>
33 <el-col :span="24"> 22 <el-col :span="24">
34 <el-form-item label="备注:" class="form-item-mb0"> 23 <el-form-item label="备注:" class="form-item-mb0">
35 <el-input 24 <el-input
36 v-model="dialogForm.roleTextArea" 25 v-model="dialogForm.roleTextArea"
37 type="textarea" 26 type="textarea"
38 placeholder="备注" 27 placeholder="备注" />
39 />
40 </el-form-item> 28 </el-form-item>
41 </el-col> 29 </el-col>
42 </el-row> 30 </el-row>
...@@ -45,77 +33,89 @@ ...@@ -45,77 +33,89 @@
45 <template slot="footer"> 33 <template slot="footer">
46 <el-button 34 <el-button
47 class="cancel-button" 35 class="cancel-button"
48 @click="handleCloseDialog" 36 @click="handleCloseDialog">取消</el-button>
49 >取消</el-button>
50 37
51 <el-button 38 <el-button
52 type="primary" 39 type="primary"
53 @click="handleSaveRole()" 40 @click="handleSaveRole()">保存</el-button>
54 >保存</el-button>
55 </template> 41 </template>
56 </Dialog> 42 </Dialog>
57 </template> 43 </template>
58 44
59 <script> 45 <script>
60 import Dialog from "@/components/Dialog/"; 46 import Dialog from "@/components/Dialog/";
61 import { api, httpAction } from '@/api/manageApi' 47 import { api, httpAction } from '@/api/manageApi'
62 export default { 48 export default {
63 components: { 49 components: {
64 Dialog 50 Dialog
65 }, 51 },
66 data() { 52 data () {
67 return { 53 return {
68 dialogTitle: '', 54 dialogTitle: '',
69 showAddEditDialog: false, 55 showAddEditDialog: false,
70 menuType: '', 56 menuType: '',
71 roleId: '', 57 roleId: '',
72 sort: 0, 58 sort: 0,
73 dialogForm: { 59 dialogForm: {
74 roleName: '', 60 roleName: '',
75 roleType: '', 61 roleType: '',
76 roleTextArea: '' 62 roleTextArea: ''
77 }, 63 },
78 rules: { 64 rules: {
79 roleName: [ 65 roleName: [
80 { required: true, message: '请输入角色名称', trigger: 'blur' } 66 { required: true, message: '请输入角色名称', trigger: 'blur' }
81 ], 67 ],
82 roleType: [ 68 },
83 { required: true, message: '请输入角色类型', trigger: 'blur' } 69 roleTypeOptions: [
70 { name: '定制', value: '定制' },
71 { name: '其他', value: '其他' }
84 ] 72 ]
85 }, 73 }
86 roleTypeOptions: [ 74 },
87 { name: '定制', value: '定制' }, 75 methods: {
88 { name: '其他', value: '其他' } 76 // 保存新增或关闭事件
89 ] 77 handleSaveRole (val) {
90 } 78 this.$refs.form.validate((valid) => {
91 }, 79 if (valid) {
92 methods: { 80 try {
93 // 保存新增或关闭事件 81 const params = {
94 handleSaveRole(val) { 82 category: 2,
95 this.$refs.form.validate((valid) => { 83 description: this.dialogForm.roleTextArea,
96 if (valid) { 84 name: this.dialogForm.roleName,
97 try { 85 sort: this.sort,
98 const params = { 86 type: this.dialogForm.roleType
99 category: 2, 87 }
100 description: this.dialogForm.roleTextArea, 88 if (this.roleId) {
101 name: this.dialogForm.roleName, 89 params.id = this.roleId
102 sort: this.sort, 90 httpAction(`${api.roles}/${params.id}`, params, 'post').then(
103 type: this.dialogForm.roleType 91 (res) => {
104 } 92 if (res.status === 1) {
105 console.log("this.roleId",this.roleId); 93 this.$message.success({
106 if (this.roleId) { 94 message: '修改成功',
107 params.id = this.roleId 95 showClose: true
108 console.log("修改",params.id,params); 96 })
109 httpAction(`${api.roles}/${params.id}`, params, 'post').then( 97 this.dialogForm = {
110 (res) => { 98 roleName: '',
99 }
100 this.showAddEditDialog = val
101 this.$emit('ok', this.menuType)
102 } else {
103 this.$message.error({
104 message: res.message,
105 showClose: true
106 })
107 }
108 }
109 )
110 } else {
111 httpAction(api.roles, params, 'post').then((res) => {
111 if (res.status === 1) { 112 if (res.status === 1) {
112 this.$message.success({ 113 this.$message.success({
113 message: '修改成功', 114 message: '新增成功',
114 showClose: true 115 showClose: true
115 }) 116 })
116 this.dialogForm = { 117 this.dialogForm = {
117 roleName: '', 118 roleName: '',
118 roleType: ''
119 } 119 }
120 this.showAddEditDialog = val 120 this.showAddEditDialog = val
121 this.$emit('ok', this.menuType) 121 this.$emit('ok', this.menuType)
...@@ -125,58 +125,24 @@ export default { ...@@ -125,58 +125,24 @@ export default {
125 showClose: true 125 showClose: true
126 }) 126 })
127 } 127 }
128 } 128 })
129 ) 129 }
130 } else { 130 } catch (e) {
131 httpAction(api.roles, params, 'post').then((res) => { 131 console.error(e)
132 if (res.status === 1) {
133 this.$message.success({
134 message: '新增成功',
135 showClose: true
136 })
137 this.dialogForm = {
138 roleName: '',
139 roleType: ''
140 }
141 this.showAddEditDialog = val
142 this.$emit('ok', this.menuType)
143 } else {
144 this.$message.error({
145 message: res.message,
146 showClose: true
147 })
148 }
149 })
150 } 132 }
151 } catch (e) {
152 console.error(e)
153 } 133 }
134 })
135 },
136 // 取消事件
137 handleCloseDialog () {
138 this.$refs.form.resetFields()
139 this.dialogForm = {
140 roleName: '',
154 } 141 }
155 }) 142 this.showAddEditDialog = false
156 },
157 // 取消事件
158 handleCloseDialog() {
159 this.$refs.form.resetFields()
160 this.dialogForm = {
161 roleName: '',
162 roleType: ''
163 } 143 }
164 this.showAddEditDialog = false
165 } 144 }
166 } 145 }
167 }
168 </script> 146 </script>
169 <style scoped lang="scss"> 147 <style scoped lang="scss">
170 /deep/.el-input__inner {
171 background: #07388B;
172 border-radius: 2px;
173 border: 1px solid #6BC1FC;
174 }
175 /deep/.el-textarea__inner{
176 background: #07388B;
177 color: #fff;
178 }
179 /deep/.el-form-item__label{
180 color:#fff;
181 }
182 </style> 148 </style>
......
...@@ -13,17 +13,8 @@ ...@@ -13,17 +13,8 @@
13 </el-form> 13 </el-form>
14 </div> 14 </div>
15 <div class="from-clues-content"> 15 <div class="from-clues-content">
16 <lb-table 16 <lb-table :pagination="false" @size-change="handleSizeChange" @p-current-change="handleCurrentChange"
17 :page-size="pageData.size" 17 :column="tableData.columns" :data="listdata" :expand-row-keys="keyList" row-key="dictid">
18 :current-page.sync="pageData.current"
19 :total="pageData.total"
20 @size-change="handleSizeChange"
21 @p-current-change="handleCurrentChange"
22 :column="tableData.columns"
23 :data="listdata"
24 :expand-row-keys="keyList"
25 row-key="id"
26 >
27 </lb-table> 18 </lb-table>
28 </div> 19 </div>
29 <EditDialog ref="addEditDialog" @ok="reloadTableData" /> 20 <EditDialog ref="addEditDialog" @ok="reloadTableData" />
...@@ -31,281 +22,399 @@ ...@@ -31,281 +22,399 @@
31 </div> 22 </div>
32 </template> 23 </template>
33 <script> 24 <script>
34 import { 25 import {
35 getUuid, 26 getUuid,
36 judgeSort, 27 judgeSort,
37 realMove, 28 realMove,
38 findParents, 29 findParents,
39 removeTreeListItem, 30 removeTreeListItem,
40 } from "@/utils/operation"; 31 } from "@/utils/operation";
41 import { getRolesById, getUserRoles } from "@/api/quanxianmanagement"; 32 import { getRolesById, getAuthorityListAction } from "@/api/authorityManage";
42 import data from "./data"; 33 import { getUserRoles } from "@/api/personnelManage";
43 import sjsbTask from "@/api/sjsbTask.js"; 34 import data from "./data";
44 import { api, getAction,deleteAction } from "@/api/manageApi"; 35 import { getMenuInfo } from "@/api/user";
45 import tableMixin from "@/mixins/tableMixin.js"; 36 import { api, getAction, deleteAction } from "@/api/manageApi";
46 import EditDialog from "./edit-dialog.vue"; 37 import tableMixin from "@/mixins/tableMixin.js";
47 import Roleslistdiglog from "./roleslistdiglog.vue"; 38 import EditDialog from "./edit-dialog.vue";
48 export default { 39 import Roleslistdiglog from "./roleslistdiglog.vue";
49 name: "menus", 40 import { mapGetters } from "vuex";
50 mixins: [tableMixin], 41 export default {
51 components: { 42 name: "menus",
52 EditDialog, 43 mixins: [tableMixin],
53 Roleslistdiglog, 44 components: {
54 }, 45 EditDialog,
55 data() { 46 Roleslistdiglog,
56 return { 47 },
57 personlist: null, 48 data () {
58 waitMemberList: [], 49 return {
59 keyList: [], 50 personlist: null,
60 listdata: [], 51 waitMemberList: [],
61 tableUrl: api.roles, 52 keyList: [],
62 form: { 53 listdata: [],
63 job_name: "", 54 tableUrlroles: api.roles,
64 currentPage: 1, 55 form: {
65 }, 56 job_name: "",
66 // 当前所选角色id 57 currentPage: 1,
67 roleId: "",
68 title: "",
69 queryParam: {},
70 selectType: "0",
71 queryName: "",
72 organizationId: "", // 组织机构ID
73 departmentId: "", // 部门ID
74 departmentList: [], // 部门列表
75 levelList: [], // 职务级别
76 sexList: [],
77 typeOptions: [
78 {
79 value: "0",
80 label: "姓名",
81 },
82 {
83 value: "1",
84 label: "工号",
85 },
86 {
87 value: "2",
88 label: "部门",
89 },
90 {
91 value: "3",
92 label: "机构",
93 }, 58 },
94 ], 59 // 当前所选角色id
95 60 roleId: "",
96 selectionList: [], 61 title: "",
97 tableData: { 62 queryParam: {},
98 columns: [ 63 multipleSelection: [],
64 // 菜单列表
65 menutablelistData: [],
66 tableUrl: api.menus, // 菜单接口地址
67 meumurlid: api.subsystem, // 项目id接口地址
68 selectType: "0",
69 queryName: "",
70 organizationId: "", // 组织机构ID
71 departmentId: "", // 部门ID
72 departmentList: [], // 部门列表
73 levelList: [], // 职务级别
74 sexList: [],
75 operationCodes: null, // 操作符对象
76 operationList: [], // 获取授权列表需要提交的操作符数组
77 typeOptions: [
78 {
79 value: "0",
80 label: "姓名",
81 },
82 {
83 value: "1",
84 label: "工号",
85 },
99 { 86 {
100 label: "序号", 87 value: "2",
101 type: "index", 88 label: "部门",
102 width: "50",
103 index: this.indexMethod,
104 }, 89 },
105 ] 90 {
106 .concat(data.columns()) 91 value: "3",
107 .concat([ 92 label: "机构",
93 },
94 ],
95
96 selectionList: [],
97 tableData: {
98 columns: [
108 { 99 {
109 label: "排序", 100 label: "序号",
110 width: 380, 101 type: "index",
111 render: (h, scope) => { 102 width: "50",
112 return ( 103 index: this.indexMethod,
113 <div>
114 <el-button
115 type="text"
116 disabled={scope.row.isTop}
117 onClick={() => {
118 this.moveUpward(scope.$index, scope.row);
119 }}
120 >
121 上移
122 </el-button>
123 <el-button
124 type="text"
125 disabled={scope.row.isBottom}
126 onClick={() => {
127 this.moveDown(scope.$index, scope.row);
128 }}
129 >
130 下移
131 </el-button>
132 </div>
133 );
134 },
135 }, 104 },
136 ]) 105 ]
137 .concat([ 106 .concat(data.columns())
138 { 107 .concat([
139 label: "操作", 108 {
140 width: 380, 109 label: "排序",
141 render: (h, scope) => { 110 width: 100,
142 return ( 111 render: (h, scope) => {
143 <div> 112 return (
144 <el-tooltip class="item" effect="dark" disabled={scope.row.type !== 'Everyone'} content="没有点击的权限" placement="top"> 113 <div>
145 <span> 114 <el-button
146 <el-button 115 type="text"
147 disabled={scope.row.type === 'Everyone'} 116 disabled={scope.row.isTop}
148 type="text" 117 onClick={() => {
149 size="mini" 118 this.moveUpward(scope.$index, scope.row);
150 icon="el-icon-video-pause" 119 }}
151 onClick={() => { 120 >
152 this.getUserList(scope.row); 121 上移
153 }} 122 </el-button>
154 > 123 <el-button
155 人员 124 type="text"
156 </el-button> 125 disabled={scope.row.isBottom}
157 </span> 126 onClick={() => {
158 </el-tooltip> 127 this.moveDown(scope.$index, scope.row);
159 <el-tooltip class="item" effect="dark" disabled={scope.row.category !== 1} content="系统内置角色 不允许修改" placement="top"> 128 }}
160 <span> 129 >
161 <el-button 130 下移
162 disabled={scope.row.category === 1} 131 </el-button>
163 type="text" 132 </div>
164 size="mini" 133 );
165 icon="el-icon-edit" 134 },
166 onClick={() => {
167 this.handleAddEdit(scope.row);
168 }}
169 >
170 修改
171 </el-button>
172 </span>
173 </el-tooltip>
174 <el-tooltip class="item" effect="dark" disabled={scope.row.category !== 1} content="系统内置角色 不允许删除" placement="top">
175 <span>
176 <el-button
177 type="text"
178 disabled={scope.row.category === 1}
179 size="mini"
180 icon="el-icon-delete"
181 // style="color:#F56C6C"
182 onClick={() => {
183 this.handleDelete(scope.row.id, scope.row.name);
184 }}
185 >
186 删除
187 </el-button>
188 </span>
189 </el-tooltip>
190 </div>
191 );
192 }, 135 },
193 }, 136 ])
194 ]), 137 .concat([
138 {
139 label: "操作",
140 width: 280,
141 render: (h, scope) => {
142 return (
143 <div>
144 <el-tooltip
145 class="item"
146 effect="dark"
147 disabled={scope.row.type !== "Everyone"}
148 content="没有点击的权限"
149 placement="top"
150 >
151 <span>
152 <el-button
153 disabled={scope.row.type === "Everyone"}
154 type="text"
155 size="mini"
156 icon="el-icon-video-pause"
157 onClick={() => {
158 this.getUserList(scope.row);
159 }}
160 >
161 配置
162 </el-button>
163 </span>
164 </el-tooltip>
165 <el-tooltip
166 class="item"
167 effect="dark"
168 disabled={scope.row.category !== 1}
169 content="系统内置角色 不允许修改"
170 placement="top"
171 >
172 <span>
173 <el-button
174 disabled={scope.row.category === 1}
175 type="text"
176 size="mini"
177 icon="el-icon-edit"
178 onClick={() => {
179 this.handleAddEdit(scope.row);
180 }}
181 >
182 修改
183 </el-button>
184 </span>
185 </el-tooltip>
186 <el-tooltip
187 class="item"
188 effect="dark"
189 disabled={scope.row.category !== 1}
190 content="系统内置角色 不允许删除"
191 placement="top"
192 >
193 <span>
194 <el-button
195 type="text"
196 disabled={scope.row.category === 1}
197 size="mini"
198 icon="el-icon-delete"
199 // style="color:#F56C6C"
200 onClick={() => {
201 this.handleDelete(scope.row.id, scope.row.name);
202 }}
203 >
204 删除
205 </el-button>
206 </span>
207 </el-tooltip>
208 </div>
209 );
210 },
211
212 }]),
213 },
195 data: [], 214 data: [],
196 }, 215 }
197 pageData: { 216 },
198 total: 5, 217 created () {
199 pageSize: 15, 218 this.getTableData();
200 current: 1, 219 this.getTableList()
201 }, 220 },
202 }; 221 computed: {
203 }, 222 ...mapGetters(["products"])
204 created() { 223 },
205 this.getTableData(); 224 mounted () { },
206 }, 225 methods: {
207 mounted() {}, 226 // 获取角色列表
208 methods: { 227 getTableData () {
209 // 获取角色列表 228 let Builtinrole = [];
210 getTableData() { 229 let Publicrole = [];
211 let Builtinrole=[]
212 let Publicrole=[]
213 230
214 getRolesById(1) 231 getRolesById(1)
215 .then((res) => { 232 .then((res) => {
216 Builtinrole = res.content; 233 Builtinrole = res.content;
217 getRolesById(2) 234 getRolesById(2)
218 .then((res) => { 235 .then((res) => {
219 Publicrole = res.content; 236 Publicrole = res.content;
220 237
221 this.listdata = Builtinrole.concat(Publicrole); 238 this.listdata = Builtinrole.concat(Publicrole);
239 this.listdata = judgeSort(this.listdata);
240 })
241 .catch((e) => console.error(e));
242 })
243 .catch((e) => console.error(e));
244 },
222 245
223 this.listdata = judgeSort(this.listdata); 246 // 获取菜单列表
247 getTableList () {
248 getMenuInfo(sessionStorage.getItem("products")).then((res) => {
249 if (res.code === 200) {
250 this.menutablelistData = judgeSort(res.result)
251 } else {
252 this.$message.error({ message: res.message, showClose: true })
253 }
224 }) 254 })
225 .catch((e) => console.error(e)); 255 const queryOptionsid = {
226 }) 256 conditionGroup: {
227 .catch((e) => console.error(e)); 257 queryRelation: "AND",
258 conditions: [
259 {
260 property: "code",
261 value: this.products,
262 operator: "EQ",
263 },
264 ],
265 },
266 };
267 const params = {
268 queryOptions: queryOptionsid,
269 };
270 // 获取系统id
271 getAction(this.meumurlid, params)
272 .then((res) => {
273 this.productId = res.content[0].id;
274 this.getAuthorityList(res.content[0].id, res.content[0].code)
275 this.selectedSubsystemCode = res.content[0].code
276 // let queryOptions = {
277 // conditionGroup: {
278 // conditions: [
279 // {
280 // property: "productId",
281 // value: this.productId,
282 // operator: "EQ",
283 // },
284 // ],
285 // queryRelation: "AND",
286 // },
287 // orderBys: [{ property: "sort", direction: "desc" }],
288 // };
289 // if (!this.tableUrl) {
290 // console.log("请设置tableUrl属性为接口地址!");
291 // return;
292 // }
293 // if (this.queryOptions !== "") {
294 // this.queryParam.queryOptions = JSON.stringify(queryOptions);
295 // }
296 // 查询系统菜单
297 // getAction(this.tableUrl, this.queryParam)
298 // .then((res) => {
299 // if (res.status === 1) {
300 // this.loading = false;
301 // // this.menutablelistData = res.content;
302 // console.log("res.content菜单", res.content);
303 // } else {
304 // this.$message.error({ message: res.message, showClose: true });
305 // this.loading = false;
306 // }
307 // })
308 // .catch((error) => {
309 // console.log("er", error);
310 // this.loading = false;
311 // });
312 })
313 .catch((error) => {
314 console.log("er", error);
315 });
316 },
317 // 获取权限列表
318 getAuthorityList (productId, code) {
319 getAuthorityListAction(productId, code).then(
320 res => {
321 if (res.status === 1) {
322 if (res.content.length !== 0) {
323 this.operationCodes = res.content[0].operations
324 this.operationList = []
325 for (var k in this.operationCodes) {
326 this.operationList.push(k)
327 }
328 }
329 } else {
330 this.$message.error({ message: res.message, showClose: true })
331 }
332 }
333 )
334 },
228 335
336 // 配置
337 getUserList (row) {
338 this.getTableList()
339 const params = {};
340 const queryOptions = {
341 conditionGroup: {
342 conditions: [
343 {
344 property: "organizationId",
345 value: row.organizationId,
346 operator: "EQ",
347 },
348 {
349 property: "departmentId",
350 value: row.departmentId,
351 operator: "EQ",
352 },
353 ],
354 queryRelation: "AND",
355 },
356 orderBys: [{ property: "sort", direction: "desc" }],
357 };
358 params.queryOptions = JSON.stringify(queryOptions);
229 359
230 }, 360 getUserRoles(row.id).then((res) => {
231 // 人员配置 361 if (res.status === 1) {
232 getUserList(row) { 362 this.personlist = res.content;
233 const params = {}; 363 getAction(api.users, params).then((res) => {
234 const queryOptions = { 364 if (res.status === 1) {
235 conditionGroup: { 365 this.waitMemberList = res.content;
236 conditions: [ 366 if (this.personlist) {
237 { 367 this.waitMemberList.forEach((item, i) => {
238 property: "organizationId", 368 this.personlist.forEach((val) => {
239 value: row.organizationId, 369 if (item.id === val.id) {
240 operator: "EQ", 370 this.waitMemberList[i].selectStatus = 0;
241 }, 371 }
242 { 372 });
243 property: "departmentId",
244 value: row.departmentId,
245 operator: "EQ",
246 },
247 ],
248 queryRelation: "AND",
249 },
250 orderBys: [{ property: "sort", direction: "desc" }],
251 };
252 params.queryOptions = JSON.stringify(queryOptions);
253 getUserRoles(row.id).then((res) => {
254 if (res.status === 1) {
255 this.personlist = res.content;
256 getAction(api.users, params).then((res) => {
257 if (res.status === 1) {
258 this.waitMemberList = res.content;
259 if (this.personlist) {
260 this.waitMemberList.forEach((item, i) => {
261 this.personlist.forEach((val) => {
262 if (item.id === val.id) {
263 this.waitMemberList[i].selectStatus = 0;
264 }
265 }); 373 });
266 }); 374 }
375
376 this.$refs.rolesForm.personlist(this.waitMemberList, row.id);
377 this.$refs.rolesForm.menulist(this.operationList, row.id, this.selectedSubsystemCode, this.menutablelistData, this.operationCodes);
378 } else {
379 this.$message.error({ message: res.message, showClose: true });
267 } 380 }
381 });
382 this.$refs.rolesForm.title = "人员配置";
383 } else this.$message.error({ message: res.message, showClose: true });
384 });
385 },
386 // 新增、修改角色
387 handleAddEdit (value) {
388 this.$refs.addEditDialog.menuType = this.menuType;
389 this.$refs.addEditDialog.roleId = value.id;
390 this.roleSort = value.sort ? value.sort : 0;
391 this.$refs.addEditDialog.dialogForm.roleType = sessionStorage.getItem("products");
392 if (value.id) {
393 this.$refs.addEditDialog.dialogForm.roleName = value.name;
268 394
269 this.$refs.rolesForm.adds(this.waitMemberList, row.id); 395 this.$refs.addEditDialog.dialogForm.roleTextArea = value.description;
270 } else { 396 }
271 this.$message.error({ message: res.message, showClose: true }); 397 this.$refs.addEditDialog.showAddEditDialog = true;
272 } 398 this.$refs.addEditDialog.dialogTitle = value.id ? "修改" : "新增";
273 }); 399 },
274 this.$refs.rolesForm.title = "人员配置"; 400 // 上移下移
275 } else this.$message.error({ message: res.message, showClose: true }); 401 moveUpward (index, row) {
276 }); 402 realMove(row.dictid, "UP", this.listdata);
277 }, 403 this.key++;
278 // 新增、修改角色 404 let id = findParents(this.listdata, row.dictid);
279 handleAddEdit(value) { 405 this.keyList = id;
280 this.$refs.addEditDialog.menuType = this.menuType; 406 },
281 this.$refs.addEditDialog.roleId = value.id; 407 moveDown (index, row) {
282 this.roleSort = value.sort ? value.sort : 0; 408 realMove(row.dictid, "DOWN", this.listdata);
283 if (value.id) { 409 this.key++;
284 this.$refs.addEditDialog.dialogForm.roleName = value.name; 410 let id = findParents(this.listdata, row.dictid);
285 this.$refs.addEditDialog.dialogForm.roleType = value.type; 411 this.keyList = id;
286 this.$refs.addEditDialog.dialogForm.roleTextArea = value.description; 412 },
287 }
288 this.$refs.addEditDialog.showAddEditDialog = true;
289 this.$refs.addEditDialog.dialogTitle = value.id ? "修改" : "新增";
290 },
291 // 上移下移
292 moveUpward(index, row) {
293 realMove(row.id, "UP", this.listdata);
294 this.key++;
295 let id = findParents(this.listdata, row.id);
296 this.keyList = id;
297 },
298 moveDown(index, row) {
299 realMove(row.id, "DOWN", this.listdata);
300 this.key++;
301 let id = findParents(this.listdata, row.id);
302 this.keyList = id;
303 },
304 413
305 // 删除 414 // 删除
306 handleDelete: function(id, content = '') { 415 handleDelete: function (id, content = "") {
307 this.$confirm( 416 this.$confirm(
308 `<div class="customer-message-wrapper"> 417 `<div class="customer-message-wrapper">
309 <h5 class="title">您确认要执行该操作用于以下信息:</h5> 418 <h5 class="title">您确认要执行该操作用于以下信息:</h5>
310 <p class="content" aria-controls="${content}">${content} 419 <p class="content" aria-controls="${content}">${content}
311 </p> 420 </p>
...@@ -313,47 +422,48 @@ export default { ...@@ -313,47 +422,48 @@ export default {
313 <span >无法恢复</span> 422 <span >无法恢复</span>
314 </p> 423 </p>
315 </div>`, 424 </div>`,
316 '执行确认', 425 "执行确认",
317 { 426 {
318 dangerouslyUseHTMLString: true, 427 dangerouslyUseHTMLString: true,
319 customClass: 'customer-delete', 428 customClass: "customer-delete",
320 confirmButtonText: '确定', 429 confirmButtonText: "确定",
321 cancelButtonText: '取消', 430 cancelButtonText: "取消",
322 type: 'warning' 431 type: "warning",
323 }
324 )
325 .then(() => {
326 if (!this.tableUrl) {
327 this.$message.error({
328 message: '请设置tableUrl属性为接口地址!',
329 showClose: true
330 })
331 return
332 } 432 }
333 const url = this.tableUrl + '/' + id 433 )
334 deleteAction(url).then(res => { 434 .then(() => {
335 if (res.status === 1) { 435 if (!this.tableUrlroles) {
336 this.$message.success({ message: res.message, showClose: true }) 436 this.$message.error({
337 this.getTableData() 437 message: "请设置tableUrl属性为接口地址!",
338 } else { 438 showClose: true,
339 this.$message.error({ message: res.message, showClose: true }) 439 });
440 return;
340 } 441 }
442 const url = this.tableUrlroles + "/" + id;
443 deleteAction(url).then((res) => {
444 if (res.status === 1) {
445 this.$message.success({ message: res.message, showClose: true });
446 this.getTableData();
447 } else {
448 this.$message.error({ message: res.message, showClose: true });
449 }
450 });
341 }) 451 })
342 }) 452 .catch(() => { });
343 .catch(() => {}) 453 },
344 },
345 // 新增回显 454 // 新增回显
346 reloadTableData() { 455 reloadTableData () {
347 this.getTableData() 456 this.getTableData();
457 },
348 }, 458 },
349 }, 459 };
350 };
351 </script> 460 </script>
352 <style scoped lang="scss"> 461 <style scoped lang="scss">
353 @import "~@/styles/mixin.scss"; 462 @import "~@/styles/mixin.scss";
354 @import "~@/styles/public.scss"; 463
355 .btnColRight { 464 // @import "~@/styles/public.scss";
356 margin-left: -30px; 465 .btnColRight {
357 margin-top: 20px; 466 margin-left: -30px;
358 } 467 margin-top: 20px;
468 }
359 </style> 469 </style>
......
1 <template> 1 <template>
2 <Dialog 2 <el-dialog
3 :title="title" 3 :close-on-click-modal="false"
4 class="tableClass" 4 top="0"
5 :show.sync="visible" 5 @click="close()"
6 :width="'715px'" 6 class="roleconfiguration"
7 @close="close()" 7 custom-class="dialogBox editDialogBox mainCenter"
8 > 8 :visible.sync="visible"
9 <template slot="content"> 9 width="85%">
10 <div slot="title" class="dialog_title" ref="dialogTitle">
11 {{ title || "标题" }}
12 </div>
13 <div class="editDialogBox-box">
14 <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
15 <el-tab-pane label="人员配置" name="first"></el-tab-pane>
16 <el-tab-pane label="菜单配置" name="second"></el-tab-pane>
17 </el-tabs>
10 <lb-table 18 <lb-table
19 v-if="activeName == 'first'"
11 ref="multipleTable" 20 ref="multipleTable"
12 :pagination="false" 21 :pagination="false"
13 :column="tableData.column" 22 :column="usertableData.column"
14 :data="tableData.data" 23 :data="lastuserList"
15 @selection-change="handleSelectionChange" 24 @selection-change="handleSelectionChange"
16 > 25 @row-click="handleClickTableRow">
26 >
17 </lb-table> 27 </lb-table>
18 </template> 28 <lb-table
29 :key="menukey"
30 v-if="activeName == 'second'"
31 :pagination="false"
32 :column="menutableData.column"
33 :data="lastMenuList"
34 row-key="id"
35 default-expand-all
36 :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
37 </lb-table>
38 </div>
19 <template slot="footer"> 39 <template slot="footer">
20 <el-button type="primary" class="save" @click="handleSaveMember()" 40 <el-button type="primary" class="save" @click="handleSaveMember()">保存</el-button>
21 >保存</el-button
22 >
23 <el-button class="cancel-button" @click="close()">取消</el-button> 41 <el-button class="cancel-button" @click="close()">取消</el-button>
24 </template> 42 </template>
25 </Dialog> 43 </el-dialog>
26 </template> 44 </template>
27 45
28 <script> 46 <script>
29 import Dialog from "@/components/Dialog/"; 47 import { api } from "@/api/manageApi";
30 import { updateUser } from "@/api/quanxianmanagement"; 48 import { getRoleAuthorityList, roleAuthority } from "@/api/authorityManage";
31 export default { 49 import { updateUser } from "@/api/personnelManage";
32 name: "", 50 export default {
33 components: { Dialog }, 51 name: "",
34 data() { 52 data () {
35 return { 53 return {
36 title: "人员配置", 54 title: "人员配置",
37 visible: false, 55 visible: false,
38 hasSelectList: [ 56 menutableData: {
39 // { 57 column: [
40 // name: "管理员", 58 {
41 // loginName: "admin1", 59 prop: "name",
42 // departmentName: "研发部", 60 width: 830,
43 // jobLevel: null, 61 label: "菜单名称",
44 // }, 62 }
45 // { 63 ].concat([
46 // name: "测试账号", 64 {
47 // loginName: "admin2", 65 label: "权限",
48 // departmentName: "研发部", 66 render: (h, scope) => {
49 // jobLevel: null, 67 return (
50 // }, 68 <div>
51 ], //已经选择的id组成的数组 69 <el-checkbox v-model={scope.row.checkArr[0].value}
52 tableData: { 70 disabled={scope.row.checkArr[0].disabled}
53 column: [ 71 label={scope.row.checkArr[0].name} onChange={(checked) => {
54 { 72 this.changeCheck(checked, scope.row.checkArr[0].id, scope);
55 type: "selection", 73 }} />
56 }, 74 <el-checkbox v-model={scope.row.checkArr[1].value}
57 { 75 disabled={scope.row.checkArr[0].disabled}
58 prop: "name", 76 label={scope.row.checkArr[1].name}
59 label: "姓名", 77 onChange={(checked) => {
60 }, 78 this.changeCheck(checked, scope.row.checkArr[1].id, scope);
61 { 79 }} />
62 prop: "loginName", 80 </div>
63 label: "用户名", 81 );
64 }, 82 },
65 { 83 },
66 prop: "departmentName", 84 ]),
67 label: "部门", 85 },
68 }, 86 usertableData: {
69 { 87 column: [
70 prop: "jobLevel", 88 {
71 label: "职务", 89 type: "selection",
72 }, 90 width: 330,
73 ], 91 },
74 data: [], 92 {
93 prop: "name",
94 width: 330,
95 label: "姓名",
96 },
97 {
98 prop: "loginName",
99 label: "用户名",
100 },
101 ],
102 },
75 // 角色id 103 // 角色id
76 roleId: "", 104 roleId: "",
77 }, 105 menuList: [], // 菜单列表
78 multipleSelection: [], 106 menukey: 0,
79 }; 107 activeName: "first",
80 }, 108 lastuserList: [], // 人员表格数据
81 computed: {}, 109 lastMenuList: [], // 重构完成的菜单表格数据
82 110 usermultipleSelection: [],
83 created() {}, 111 // 选中菜单列表
84 mounted() {}, 112 checkArr: [], // 重构操作符列表
85 methods: { 113 authorityList: [], // 授权回显数组
86 // 人员配置根据selectStatus字段确定已选人员 114 checklistbor: [],
87 adds(a, rid) { 115 // 授权对象数据
88 this.roleId = rid; 116 menuprams: {},
89 this.visible = true; 117 // 系统code
90 this.tableData.data = a; 118 selectedSubsystemCode: ""
91 this.tableData.data.forEach((item, index) => { 119 };
92 if (item.selectStatus === 0) {
93 this.$nextTick(() => {
94 this.$refs.multipleTable.toggleRowSelection(
95 this.tableData.data[index],
96 true
97 );
98 });
99 }
100 });
101 }, 120 },
102 close() { 121 computed: {},
103 this.visible = false; 122
123 created () {
104 }, 124 },
105 // 保存 125 mounted () {
106 handleSaveMember() {
107 const idList = this.multipleSelection.map((item) => {
108 return item.id;
109 });
110 updateUser(this.roleId, idList).then((res) => {
111 if (res.status === 1) {
112 this.$message.success({ message: "保存成功", showClose: true });
113 this.visible = false;
114 // this.$emit("setUsers", this.roleId);
115 // this.resetMemberConfig();
116 } else this.$message.error({ message: res.message, showClose: true });
117 });
118 }, 126 },
119 handleSelectionChange(val) { 127 methods: {
120 this.multipleSelection = val; 128
129 // 人员配置点击行勾选数据
130 handleClickTableRow (row, event) {
131 this.checkNum = 0;
132 this.isCheck = false;
133 if (event.label == "操作") {
134 return;
135 } else {
136 if (row.status == "0") {
137 return;
138 } else {
139 if (this.usermultipleSelection.length > 0) {
140 if (
141 JSON.stringify(this.usermultipleSelection).indexOf(
142 JSON.stringify(row)
143 ) == -1
144 ) {
145 this.usermultipleSelection.push(row);
146 this.$refs.multipleTable.toggleRowSelection(row, true);
147 } else {
148 this.usermultipleSelection.map((item, index) => {
149 if (item.id == row.id) {
150 this.usermultipleSelection.splice(index, 1);
151 this.$refs.multipleTable.toggleRowSelection(row, false);
152 }
153 });
154 }
155 } else {
156 this.usermultipleSelection.push(row);
157 this.$refs.multipleTable.toggleRowSelection(row, true);
158 }
159 }
160 }
161 if (this.usermultipleSelection.length > 0) {
162 this.checkNum = this.usermultipleSelection.length;
163 this.isCheck = true;
164 } else {
165 this.isCheck = false;
166 }
167 },
168 // 获取授权主体的菜单权限
169 // getMenuAuthorityList
170 menulist (operationList, id, Code, menutablelistData, operationCodes) {
171 console.log("Code", Code);
172 this.selectedSubsystemCode = Code
173 this.menuList = menutablelistData;
174 getRoleAuthorityList(
175 id,
176 operationList.toString(),
177 Code + '_MENU'
178 ).then(res => {
179 if (res.status === 1) {
180 this.authorityList = res.content
181 this.getRecursionTreeData(this.menuList, this.authorityList, operationCodes)
182 this.getAuthorizedInfo()
183 // this.setCheckAllArr()
184 // this.getAuthorizedInfo()
185 } else {
186 this.$message.error({ message: res.message, showClose: true })
187 }
188 })
189
190
191 },
192 /**
193 * 递归渲染列表数据
194 * list:原始数组
195 * authorityList:已授权数组
196 */
197 getRecursionTreeData (list, authorityList, operationCodes) {
198 ++this.menukey
199 this.checkArr = []
200 for (const k in operationCodes) {
201 const obj = {}
202 obj.name = operationCodes[k]
203 obj.id = k
204 obj.value = false
205 obj.disabled = false
206 // obj.isAll = false;
207 this.checkArr.push(obj)
208 }
209 for (const [index, item] of Object.entries(list)) {
210 this.setAuthorizedConditions(
211 authorityList,
212 this.$deepCopy(this.checkArr),
213 item
214 )
215 if (
216 item.children &&
217 item.children !== null &&
218 item.children.length !== 0
219 ) {
220 item.children.forEach((child, j) => {
221 this.setAuthorizedConditions(
222 authorityList,
223 this.$deepCopy(this.checkArr),
224 child
225 )
226 })
227 this.getRecursionTreeData(item.children, authorityList, operationCodes)
228 }
229 }
230 this.lastMenuList = list
231 // this.setCheckAllArr(list)
232 },
233 // 授权条件
234 setAuthorizedConditions (authorityList, checkArr, item) {
235 if (this.roleId === '') {
236 checkArr.forEach(ele => {
237 ele.disabled = true
238 ele.value = false
239 })
240 } else {
241 if (authorityList.length !== 0) {
242 if (authorityList[0].superPermission === true) {
243 checkArr.forEach(ele => {
244 ele.value = true
245 ele.disabled = true
246 })
247 } else {
248 const repeatArr = authorityList.filter(authorityItem => {
249 return authorityItem.resourceUri === item.id
250 })
251 repeatArr.forEach(element => {
252 checkArr.forEach(ele => {
253 if (element.operationCode === ele.id) {
254 ele.value = true
255 if (this.roleId !== element.subjectId) {
256 ele.disabled = true
257 }
258 }
259 })
260 })
261 }
262 }
263 }
264 this.$set(item, 'checkArr', this.$deepCopy(checkArr))
265 },
266 // 获取拼接授权信息
267 getAuthorizedInfo () {
268 const lastArr = []
269 const authorizedList = []
270 const wholeArr = this.$deepCopy(this.lastMenuList)
271 const arr = this.$treeConvertToArr(wholeArr)
272 arr.forEach(ele => {
273 ele.checkArr.forEach(val => {
274 if (val.value === true && val.disabled === false) {
275 const obj = {
276 operationCode: val.id,
277 name: ele.name,
278 id: ele.id
279 }
280 lastArr.push(obj)
281 }
282 })
283 })
284 lastArr.forEach(element => {
285 authorizedList.push({
286 operationCode: element.operationCode, // 标识符
287 productCode: this.selectedSubsystemCode, // 子系统code
288 resourceCategoryCode: this.selectedSubsystemCode + '_MENU', // 资源类别code默认为MENU
289 resourceName: element.name,
290 resourceUri: element.id, // 授权菜单id
291 subjectId: this.roleId, // 授权对象id
292 subjectType: 'ROLE' // 授权对象类别
293 })
294 })
295 this.menuprams = {
296 subjectId: this.roleId,
297 authorizedList: authorizedList
298 }
299 },
300 // 获取人员列表做筛选
301 personlist (a, rid) {
302 this.roleId = rid;
303 this.visible = true;
304 this.lastuserList = a;
305 this.lastuserList.forEach((item, index) => {
306 if (item.selectStatus === 0) {
307 this.$nextTick(async () => {
308 await this.$refs.multipleTable
309 if (this.$refs.multipleTable) {
310 this.$refs.multipleTable.toggleRowSelection(
311 this.lastuserList[index],
312 true
313 );
314 }
315
316 });
317 }
318 });
319 },
320 // 关闭事件
321 close () {
322 this.visible = false;
323 },
324 // 保存事件
325 handleSaveMember () {
326 // 人员授权
327 const idList = this.usermultipleSelection.map((item) => {
328 return item.id;
329 })
330 updateUser(this.roleId, idList).then((res) => {
331 if (res.status === 1) {
332 this.$message.success({ message: "保存成功", showClose: true });
333 this.visible = false;
334 } else this.$message.error({ message: res.message, showClose: true });
335 });
336 // 菜单授权
337 roleAuthority(
338 this.menuprams.subjectId,
339 this.menuprams.authorizedList
340 ).then((res) => {
341 if (res.status === 1) {
342 this.$message.success({
343 message: res.message,
344 })
345 // this.authorizedContChange()
346 } else {
347 this.$message.error({ message: res.message, showClose: true })
348 }
349 })
350 },
351 // 勾选人员事件
352 handleSelectionChange (val) {
353 this.lastuserList.forEach((element, index) => {
354 delete this.lastuserList[index].selectStatus
355 });
356 this.usermultipleSelection = val;
357 this.lastuserList.forEach((element, index) => {
358 this.usermultipleSelection.forEach(element1 => {
359 if (element.id == element1.id) {
360 this.lastuserList[index].selectStatus = 0
361 }
362 });
363 });
364 },
365 // 数据筛选
366 setarrdata (scope, arr) {
367
368 arr.forEach((item, index, arr) => {
369 if (item.id == scope.row.id) {
370 this.checklistbor = [...arr]
371 } else if (item.id !== scope.row.id && item.children) {
372 this.setarrdata(scope, item.children)
373 }
374
375 })
376
377 },
378 // 勾选菜单事件
379 changeCheck (flag, checkId, scope) {
380 this.checklistbor = []
381 this.setarrdata(scope, this.lastMenuList)
382 const parents = this.$findParent(this.lastMenuList, scope.row.parentId)
383 const childs = this.$findChildren(this.lastMenuList, scope.row.id)
384 this.$setChildArr(
385 this.lastMenuList,
386 scope.row.id,
387 checkId,
388 flag,
389 this.checklistbor,
390 parents,
391 childs
392 )
393 this.getAuthorizedInfo()
394 },
395 handleClick (tab, event) {
396 this.lastuserList.forEach((item, index) => {
397 if (item.selectStatus === 0) {
398 this.$nextTick(async () => {
399 await this.$refs.multipleTable
400 if (this.$refs.multipleTable) {
401 this.$refs.multipleTable.toggleRowSelection(
402 this.lastuserList[index],
403 true
404 );
405 }
406
407 });
408 }
409 });
410 }
411
121 }, 412 },
122 }, 413 };
123 };
124 </script> 414 </script>
125 <style scoped lang="scss"> 415 <style scoped lang="scss">
126 /deep/.el-dialog__header { 416 @import "~@/styles/mixin.scss";
127 text-align: center; 417 @import "~@/styles/dialogBox.scss";
128 margin-bottom: 10px;
129 .el-dialog__title {
130 color: white;
131 }
132 }
133 </style> 418 </style>
......
...@@ -249,5 +249,5 @@ export default { ...@@ -249,5 +249,5 @@ export default {
249 </script> 249 </script>
250 <style scoped lang="scss"> 250 <style scoped lang="scss">
251 @import "~@/styles/mixin.scss"; 251 @import "~@/styles/mixin.scss";
252 @import "~@/styles/public.scss"; 252 // @import "~@/styles/public.scss";
253 </style> 253 </style>
......
1 /*
2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-01-30 17:59:51
4 * @LastEditors: xiaomiao 1158771342@qq.com
5 * @LastEditTime: 2023-03-08 15:09:15
6 * @FilePath: \监管系统\js-web-jianguan\src\views\system\users\data\index.js
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 */
1 import filter from '@/utils/filter.js' 9 import filter from '@/utils/filter.js'
2 class data extends filter { 10 class data extends filter {
3 constructor() { 11 constructor() {
...@@ -13,7 +21,7 @@ class data extends filter { ...@@ -13,7 +21,7 @@ class data extends filter {
13 { 21 {
14 prop: "name", 22 prop: "name",
15 label: "姓名", 23 label: "姓名",
16 width: 300 24 width: 100
17 }, 25 },
18 { 26 {
19 prop: "loginName", 27 prop: "loginName",
......
1 <template> 1 <template>
2 <Dialog :title="title" :show.sync="visible" :width="'715px'" @close="close()"> 2 <Dialog :title="title" class="modifydialog" :show.sync="visible" :width="'715px'" @close="close()">
3 <template slot="content"> 3 <template slot="content">
4 <el-form ref="form" :model="form" :rules="rules"> 4 <el-form ref="form" :model="form" :rules="rules">
5 <el-row :gutter="24"> 5 <el-row :gutter="24">
...@@ -15,9 +15,7 @@ ...@@ -15,9 +15,7 @@
15 v-for="(item, index) in sexList" 15 v-for="(item, index) in sexList"
16 :key="index" 16 :key="index"
17 v-model="form.sex" 17 v-model="form.sex"
18 :label="item.value" 18 :label="item.value">{{ item.name }}</el-radio>
19 >{{ item.name }}</el-radio
20 >
21 </el-form-item> 19 </el-form-item>
22 </el-col> 20 </el-col>
23 <el-col :span="6"> 21 <el-col :span="6">
...@@ -36,8 +34,7 @@ ...@@ -36,8 +34,7 @@
36 <el-input 34 <el-input
37 v-model="form.loginName" 35 v-model="form.loginName"
38 :disabled="showLoginName" 36 :disabled="showLoginName"
39 placeholder="用户名" 37 placeholder="用户名" />
40 />
41 </el-form-item> 38 </el-form-item>
42 </el-col> 39 </el-col>
43 </el-row> 40 </el-row>
...@@ -51,12 +48,10 @@ ...@@ -51,12 +48,10 @@
51 <el-form-item 48 <el-form-item
52 label="手机号码:" 49 label="手机号码:"
53 prop="mobilePhone" 50 prop="mobilePhone"
54 label-width="72px" 51 label-width="72px">
55 >
56 <el-input 52 <el-input
57 v-model="form.mobilePhone" 53 v-model="form.mobilePhone"
58 placeholder="手机号码" 54 placeholder="手机号码" />
59 />
60 </el-form-item> 55 </el-form-item>
61 </el-col> 56 </el-col>
62 </el-row> 57 </el-row>
...@@ -65,14 +60,12 @@ ...@@ -65,14 +60,12 @@
65 <el-form-item label="最高职务级别:" label-width="100px"> 60 <el-form-item label="最高职务级别:" label-width="100px">
66 <el-select 61 <el-select
67 v-model="form.jobLevel" 62 v-model="form.jobLevel"
68 placeholder="最高职务级别" 63 placeholder="最高职务级别">
69 >
70 <el-option 64 <el-option
71 v-for="item in levelList" 65 v-for="item in levelList"
72 :key="item.value" 66 :key="item.value"
73 :label="item.name" 67 :label="item.name"
74 :value="item.value" 68 :value="item.value" />
75 />
76 </el-select> 69 </el-select>
77 </el-form-item> 70 </el-form-item>
78 </el-col> 71 </el-col>
...@@ -87,8 +80,7 @@ ...@@ -87,8 +80,7 @@
87 <el-form-item 80 <el-form-item
88 label="办公地点:" 81 label="办公地点:"
89 label-width="100px" 82 label-width="100px"
90 class="form-item-mb0" 83 class="form-item-mb0">
91 >
92 <el-input v-model="form.address" placeholder="办公地点" /> 84 <el-input v-model="form.address" placeholder="办公地点" />
93 </el-form-item> 85 </el-form-item>
94 </el-col> 86 </el-col>
...@@ -103,87 +95,87 @@ ...@@ -103,87 +95,87 @@
103 </template> 95 </template>
104 96
105 <script> 97 <script>
106 import { api, httpAction } from '@/api/manageApi' 98 import { api, httpAction } from '@/api/manageApi'
107 import Dialog from "@/components/Dialog/"; 99 import Dialog from "@/components/Dialog/";
108 export default { 100 export default {
109 name: "", 101 name: "",
110 components: { Dialog }, 102 components: { Dialog },
111 props: {}, 103 props: {},
112 data() { 104 data () {
113 return { 105 return {
114 form: { 106 form: {
115 sex: "0", 107 sex: "0",
116 }, 108 },
117 rules: { 109 rules: {
118 name: [{ required: true, message: "请输入姓名", trigger: "blur" }], 110 name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
119 code: [{ required: true, message: "请输入工号", trigger: "blur" }], 111 code: [{ required: true, message: "请输入工号", trigger: "blur" }],
120 mobilePhone: [{ validator: "sddd", trigger: "blur" }], 112 mobilePhone: [{ validator: "sddd", trigger: "blur" }],
121 loginName: [ 113 loginName: [
122 { required: true, message: "请输入用户名", trigger: "blur" }, 114 { required: true, message: "请输入用户名", trigger: "blur" },
123 ], 115 ],
124 }, 116 },
125 title: "", 117 title: "修改",
126 visible: false, 118 visible: false,
127 showLoginName: false, 119 showLoginName: false,
128 sexList: [{lable:"0",value:"0",name:"男"},{lable:"1",value:"1",name:"女"}], 120 sexList: [{ lable: "0", value: "0", name: "男" }, { lable: "1", value: "1", name: "女" }],
129 levelList: [{lable:"0",value:"0",name:"干事"},{lable:"1",value:"1",name:"经理"}], 121 levelList: [{ lable: "0", value: "0", name: "干事" }, { lable: "1", value: "1", name: "经理" }],
130 dataUrl: api.users 122 dataUrl: api.users
131 }; 123 };
132 },
133 computed: {
134 departmentid() {
135 return this.$store.state.user.userInfo;
136 },
137 },
138 watch: {},
139 created() {},
140 mounted() {},
141 methods: {
142 // initDictConfig() {
143 // getDictItems('XB').then((res) => {
144 // if (res.status === 1) {
145 // this.sexList = res.content
146 // } else {
147 // this.$message.error({ message: res.message, showClose: true })
148 // }
149 // })
150 // getDictItems('ZWJB').then((res) => {
151 // if (res.status === 1) {
152 // this.levelList = res.content
153 // } else {
154 // this.$message.error({ message: res.message, showClose: true })
155 // }
156 // })
157 // },
158 // 添加人员
159 add() {
160 this.visible = true;
161 // this.type = 0
162 this.showLoginName = false
163 }, 124 },
164 // 编辑 125 computed: {
165 edit(record) { 126 departmentid () {
166 // this.initDictConfig() 127 return this.$store.state.user.userInfo;
167 this.showLoginName = true 128 },
168 // 若有id为编辑
169 if (record) {
170 this.$nextTick(() => {
171 this.form = Object.assign({}, record)
172 })
173 }
174 this.visible = true
175 },
176 handleChange(value) {
177 this.form.departmentId = value;
178 }, 129 },
179 // 保存 130 watch: {},
180 submitForm(submitType) { 131 created () { },
132 mounted () { },
133 methods: {
134 // initDictConfig() {
135 // getDictItems('XB').then((res) => {
136 // if (res.status === 1) {
137 // this.sexList = res.content
138 // } else {
139 // this.$message.error({ message: res.message, showClose: true })
140 // }
141 // })
142 // getDictItems('ZWJB').then((res) => {
143 // if (res.status === 1) {
144 // this.levelList = res.content
145 // } else {
146 // this.$message.error({ message: res.message, showClose: true })
147 // }
148 // })
149 // },
150 // 添加人员
151 adds () {
152 this.visible = true;
153 // this.type = 0
154 this.showLoginName = false
155 },
156 // 编辑
157 edit (record) {
158 // this.initDictConfig()
159 this.showLoginName = true
160 // 若有id为编辑
161 if (record) {
162 this.$nextTick(() => {
163 this.form = Object.assign({}, record)
164 })
165 }
166 this.visible = true
167 },
168 handleChange (value) {
169 this.form.departmentId = value;
170 },
171 // 保存
172 submitForm (submitType) {
181 this.$refs.form.validate((valid) => { 173 this.$refs.form.validate((valid) => {
182 if (valid) { 174 if (valid) {
183 let method = '' 175 let method = ''
184 let url = '' 176 let url = ''
185 this.form.organizationId=this.departmentid.organizationId; 177 this.form.organizationId = this.departmentid.organizationId;
186 this.form.departmentId=this.departmentid.departmentId; 178 this.form.departmentId = this.departmentid.departmentId;
187 const formData = this.form 179 const formData = this.form
188 if (!formData.id) { 180 if (!formData.id) {
189 method = 'post' 181 method = 'post'
...@@ -197,11 +189,11 @@ export default { ...@@ -197,11 +189,11 @@ export default {
197 if (res.status === 1) { 189 if (res.status === 1) {
198 this.$message.success({ message: res.message, showClose: true }) 190 this.$message.success({ message: res.message, showClose: true })
199 191
200 this.resetForm() 192 this.resetForm()
201 193
202 this.close() 194 this.close()
203 195
204 this.$emit('ok') 196 this.$emit('ok')
205 } else { 197 } else {
206 this.$message.error({ message: res.message, showClose: true }) 198 this.$message.error({ message: res.message, showClose: true })
207 } 199 }
...@@ -212,30 +204,18 @@ export default { ...@@ -212,30 +204,18 @@ export default {
212 } 204 }
213 }) 205 })
214 }, 206 },
215 resetForm() { 207 resetForm () {
216 this.form = { 208 this.form = {
217 sex: '0' 209 sex: '0'
210 }
211 this.$refs.form.resetFields()
212 },
213 close () {
214 this.resetForm()
215 this.visible = false
218 } 216 }
219 this.$refs.form.resetFields()
220 }, 217 },
221 close() { 218 };
222 this.resetForm()
223 this.visible = false
224 }
225 },
226 };
227 </script> 219 </script>
228 <style scoped lang="scss"> 220 <style scoped lang="scss">
229 /deep/.el-input__inner {
230 background: #07388B;
231 border-radius: 2px;
232 border: 1px solid #6BC1FC;
233 }
234 /deep/.el-textarea__inner{
235 background: #07388B;
236 color: #fff;
237 }
238 /deep/.el-form-item__label{
239 color:#fff;
240 }
241 </style> 221 </style>
......
1 .btnColRight {
2 margin-top: 20px;
3 }
...@@ -17,304 +17,294 @@ ...@@ -17,304 +17,294 @@
17 </div> 17 </div>
18 <div class="from-clues-content"> 18 <div class="from-clues-content">
19 <lb-table 19 <lb-table
20 :page-size="pageData.size" 20 :pagination="false"
21 :current-page.sync="pageData.current"
22 :total="pageData.total"
23 @size-change="handleSizeChange" 21 @size-change="handleSizeChange"
24 @p-current-change="handleCurrentChange" 22 @p-current-change="handleCurrentChange"
25 :column="tableData.columns" 23 :column="tableData.columns"
26 :data="tableData.data" 24 :data="tableData.data"
27 :expand-row-keys="keyList" 25 :expand-row-keys="keyList"
28 row-key="dictid" 26 row-key="dictid">
29 >
30 </lb-table> 27 </lb-table>
31 </div> 28 </div>
32 <edit-dialog ref="dialogForm" @ok="reloadTableData"/> 29 <EditDialog ref="dialogForm" @ok="reloadTableData" />
33 </div> 30 </div>
34 </template> 31 </template>
35 <script> 32 <script>
36 import { 33 import {
37 getUuid, 34 getUuid,
38 judgeSort, 35 judgeSort,
39 realMove, 36 realMove,
40 findParents, 37 findParents,
41 removeTreeListItem, 38 removeTreeListItem,
42 } from "@/utils/operation"; 39 } from "@/utils/operation";
43 import { 40 import {
44 resetPassword, 41 resetPassword,
45 getUserList, 42 getUserList,
46 } from "@/api/quanxianmanagement"; 43 } from "@/api/personnelManage";
47 import { api, deleteAction } from '@/api/manageApi' 44 import { api, deleteAction } from '@/api/manageApi'
48 import data from "./data"; 45 import data from "./data";
49 import { deleteDomStr } from '@/utils/proDomStr' 46 import { deleteDomStr } from '@/utils/proDomStr'
50 import sjsbTask from "@/api/sjsbTask.js"; 47 import tableMixin from "@/mixins/tableMixin.js";
51 import tableMixin from "@/mixins/tableMixin.js"; 48 import EditDialog from "./edit-dialog.vue";
52 import EditDialog from "./edit-dialog.vue"; 49 export default {
53 export default { 50 name: "menus",
54 name: "menus", 51 mixins: [tableMixin],
55 mixins: [tableMixin], 52 components: {
56 components: { 53 EditDialog,
57 EditDialog, 54 },
58 }, 55 data () {
59 data() { 56 return {
60 return { 57 taskData: null,
61 taskData: null, 58 keyList: [],
62 keyList: [], 59 form: {
63 form: { 60 job_name: "",
64 job_name: "", 61 currentPage: 1,
65 currentPage: 1,
66 },
67 queryParam: {},
68 selectType: "0",
69 queryName: "",
70 organizationId: "", // 组织机构ID
71 departmentId: "", // 部门ID
72 departmentList: [], // 部门列表
73 levelList: [], // 职务级别
74 sexList: [],
75 typeOptions: [
76 {
77 value: "0",
78 label: "姓名",
79 },
80 {
81 value: "1",
82 label: "工号",
83 },
84 {
85 value: "2",
86 label: "部门",
87 },
88 {
89 value: "3",
90 label: "机构",
91 }, 62 },
92 ], 63 queryParam: {},
93 64 selectType: "0",
94 selectionList: [], 65 queryName: "",
95 tableData: { 66 organizationId: "", // 组织机构ID
96 columns: [ 67 departmentId: "", // 部门ID
68 departmentList: [], // 部门列表
69 levelList: [], // 职务级别
70 sexList: [],
71 typeOptions: [
97 { 72 {
98 label: "序号", 73 value: "0",
99 type: "index", 74 label: "姓名",
100 width: "50",
101 index: this.indexMethod,
102 }, 75 },
103 ] 76 {
104 .concat(data.columns()) 77 value: "1",
105 .concat([ 78 label: "工号",
106 {
107 label: "负责人",
108 render: (h, scope) => {
109 return (
110 <i v-show={scope.row.isDuty!==null} class="el-icon-check" />
111 )
112 }
113 }, 79 },
80 {
81 value: "2",
82 label: "部门",
83 },
84 {
85 value: "3",
86 label: "机构",
87 },
88 ],
89
90 selectionList: [],
91 tableData: {
92 columns: [
114 { 93 {
115 label: "排序", 94 label: "序号",
116 width: 280, 95 type: "index",
117 render: (h, scope) => { 96 width: "50",
118 return ( 97 index: this.indexMethod,
119 <div>
120 <el-button
121 type="text"
122 disabled={scope.row.isTop}
123 onClick={() => {
124 this.moveUpward(scope.$index, scope.row);
125 }}
126 >
127 上移
128 </el-button>
129 <el-button
130 type="text"
131 disabled={scope.row.isBottom}
132 onClick={() => {
133 this.moveDown(scope.$index, scope.row);
134 }}
135 >
136 下移
137 </el-button>
138 </div>
139 );
140 },
141 }, 98 },
142 { 99 ]
143 label: "操作", 100 .concat(data.columns())
144 width: 380, 101 .concat([
145 render: (h, scope) => { 102 {
146 return ( 103 label: "负责人",
147 <div> 104 render: (h, scope) => {
148 <el-button 105 return (
149 type="text" 106 <i v-show={scope.row.isDuty !== null} class="el-icon-check" />
150 size="mini" 107 )
151 icon="el-icon-video-pause" 108 }
152 onClick={() => {
153 this.resetPassword(scope.row.id);
154 }}
155 >
156 重置
157 </el-button>
158 <el-button
159 type="text"
160 size="mini"
161 icon="el-icon-edit"
162 onClick={() => {
163 this.handleEdit(scope.row);
164 }}
165 >
166 修改
167 </el-button>
168 <el-button
169 type="text"
170 size="mini"
171 icon="el-icon-delete"
172 style="color:#F56C6C"
173 onClick={() => {
174 this.handleDelete(scope.row.id, scope.row.name);
175 }}
176 >
177 删除
178 </el-button>
179 </div>
180 );
181 }, 109 },
182 }, 110 {
183 ]), 111 label: "排序",
184 data: [], 112 width: 100,
185 }, 113 render: (h, scope) => {
186 pageData: { 114 return (
187 total: 5, 115 <div>
188 pageSize: 15, 116 <el-button
189 current: 1, 117 type="text"
190 }, 118 disabled={scope.row.isTop}
191 }; 119 onClick={() => {
192 }, 120 this.moveUpward(scope.$index, scope.row);
193 created() { 121 }}
194 this.getTableList(); 122 >
195 }, 123 上移
196 computed: { 124 </el-button>
197 departmentid() { 125 <el-button
198 return this.$store.state.user.userInfo; 126 type="text"
127 disabled={scope.row.isBottom}
128 onClick={() => {
129 this.moveDown(scope.$index, scope.row);
130 }}
131 >
132 下移
133 </el-button>
134 </div>
135 );
136 },
137 },
138 {
139 label: "操作",
140 width: 380,
141 render: (h, scope) => {
142 return (
143 <div>
144 <el-button
145 type="text"
146 size="mini"
147 icon="el-icon-video-pause"
148 onClick={() => {
149 this.resetPassword(scope.row.id);
150 }}
151 >
152 重置
153 </el-button>
154 <el-button
155 type="text"
156 size="mini"
157 icon="el-icon-edit"
158 onClick={() => {
159 this.handleEdit(scope.row);
160 }}
161 >
162 修改
163 </el-button>
164 <el-button
165 type="text"
166 size="mini"
167 icon="el-icon-delete"
168 style="color:#F56C6C"
169 onClick={() => {
170 this.handleDelete(scope.row.id, scope.row.name);
171 }}
172 >
173 删除
174 </el-button>
175 </div>
176 );
177 },
178 },
179 ]),
180 data: [],
181 },
182 };
199 }, 183 },
200 }, 184 created () {
201 methods: { 185 this.getTableList();
202 handleAdd() {
203 this.$refs.dialogForm.add();
204 this.$refs.dialogForm.title = "添加";
205 }, 186 },
206 getTableList() { 187 computed: {
207 this.loading = true; 188 departmentid () {
208 this.queryParam = { 189 return this.$store.state.user.userInfo;
209 organizationId: this.departmentid.organizationId, 190 },
210 departmentId: this.departmentid.departmentId,
211 };
212 getUserList(this.queryParam).then((res) => {
213 if (res.status === 1) {
214 this.loading = false;
215 this.tableData.data = res.content;
216 this.tableData.data = judgeSort(this.tableData.data);
217 } else {
218 this.$message.error({ message: res.message, showClose: true });
219 }
220 });
221 }, 191 },
192 methods: {
193 handleAdd () {
194 this.$refs.dialogForm.adds();
195 this.$refs.dialogForm.title = "添加";
196 },
197 getTableList () {
198 this.loading = true;
199 this.queryParam = {
200 organizationId: this.departmentid.organizationId,
201 departmentId: this.departmentid.departmentId,
202 };
203 getUserList(this.queryParam).then((res) => {
204 console.log("人员列表", res);
205 if (res.status === 1) {
206 this.loading = false;
207 this.tableData.data = res.content;
208 this.tableData.data = judgeSort(this.tableData.data);
209 } else {
210 this.$message.error({ message: res.message, showClose: true });
211 }
212 });
213 },
222 214
223 // 重置用户密码 215 // 重置用户密码
224 resetPassword(data) { 216 resetPassword (data) {
225 const ids = [] 217 const ids = []
226 if (data instanceof Array) { 218 if (data instanceof Array) {
227 data.forEach((item) => { 219 data.forEach((item) => {
228 ids.push(item.id) 220 ids.push(item.id)
229 }) 221 })
230 } else { 222 } else {
231 ids.push(data) 223 ids.push(data)
232 } 224 }
233 if (ids.length === 0) { 225 if (ids.length === 0) {
234 this.$message({ 226 this.$message({
235 message: '请选择需要重置密码的用户!', 227 message: '请选择需要重置密码的用户!',
236 showClose: true 228 showClose: true
237 }) 229 })
238 return 230 return
239 } 231 }
240 this.$confirm( 232 this.$confirm(
241 `<div class="customer-message-wrapper"> 233 `<div class="customer-message-wrapper">
242 <h5 class="title">确定要重置密码吗</h5> 234 <h5 class="title">确定要重置密码吗</h5>
243 <p class="result">执行后,数据将 235 <p class="result">执行后,数据将
244 <span >无法恢复</span> 236 <span >无法恢复</span>
245 </p> 237 </p>
246 </div>`, 238 </div>`,
247 '执行确认', 239 '执行确认',
248 { 240 {
241 dangerouslyUseHTMLString: true,
242 customClass: 'customer-delete',
243 confirmButtonText: '确定',
244 cancelButtonText: '取消',
245 type: 'warning'
246 }
247 )
248 .then(() => {
249 resetPassword(ids).then((res) => {
250 if (res.status === 1) {
251 this.$message.success({ message: res.message, showClose: true })
252 this.getTableList()
253 } else {
254 this.$message.error({ message: res.message, showClose: true })
255 }
256 })
257 })
258 .catch(() => { })
259 },
260 // 上移下移
261 moveUpward (index, row) {
262 realMove(row.dictid, "UP", this.tableData.data);
263 this.key++;
264 let id = findParents(this.tableData.data, row.dictid);
265 this.keyList = id;
266 },
267 moveDown (index, row) {
268 realMove(row.dictid, "DOWN", this.tableData.data);
269 this.key++;
270 let id = findParents(this.tableData.data, row.dictid);
271 this.keyList = id;
272 },
273 // 修改人员信息
274 handleEdit (row) {
275 this.$refs.dialogForm.edit(row);
276 this.$refs.dialogForm.title = "修改";
277 },
278 // 删除
279 handleDelete (id, content) {
280 this.$confirm(deleteDomStr(content), '执行确认', {
249 dangerouslyUseHTMLString: true, 281 dangerouslyUseHTMLString: true,
250 customClass: 'customer-delete', 282 customClass: 'customer-delete',
251 confirmButtonText: '确定', 283 confirmButtonText: '确定',
252 cancelButtonText: '取消', 284 cancelButtonText: '取消',
253 type: 'warning' 285 type: 'warning'
254 }
255 )
256 .then(() => {
257 resetPassword(ids).then((res) => {
258 if (res.status === 1) {
259 this.$message.success({ message: res.message, showClose: true })
260 this.getTableList()
261 } else {
262 this.$message.error({ message: res.message, showClose: true })
263 }
264 })
265 }) 286 })
266 .catch(() => {}) 287 .then(() => {
267 }, 288 deleteAction(`${api.users}/${id}`).then((res) => {
268 // 上移下移 289 if (res.status === 1) {
269 moveUpward(index, row) { 290 this.$message.success({ message: res.message, showClose: true })
270 realMove(row.dictid, "UP", this.tableData.data); 291 } else {
271 this.key++; 292 this.$message.error({ message: res.message, showClose: true })
272 let id = findParents(this.tableData.data, row.dictid); 293 }
273 this.keyList = id; 294 this.getTableList()
274 }, 295 })
275 moveDown(index, row) {
276 realMove(row.dictid, "DOWN", this.tableData.data);
277 this.key++;
278 let id = findParents(this.tableData.data, row.dictid);
279 this.keyList = id;
280 },
281 // 修改人员信息
282 handleEdit(row) {
283 this.$refs.dialogForm.edit(row);
284 this.$refs.dialogForm.title = "修改";
285 },
286 // 删除
287 handleDelete(id, content) {
288 this.$confirm(deleteDomStr(content), '执行确认', {
289 dangerouslyUseHTMLString: true,
290 customClass: 'customer-delete',
291 confirmButtonText: '确定',
292 cancelButtonText: '取消',
293 type: 'warning'
294 })
295 .then(() => {
296 deleteAction(`${api.users}/${id}`).then((res) => {
297 if (res.status === 1) {
298 this.$message.success({ message: res.message, showClose: true })
299 } else {
300 this.$message.error({ message: res.message, showClose: true })
301 }
302 this.getTableList()
303 }) 296 })
304 }) 297 .catch(() => { })
305 .catch(() => {}) 298 },
306 }, 299 // 新增回显
307 // 新增回显 300 reloadTableData () {
308 reloadTableData() { 301 this.getTableList()
309 this.getTableList() 302 },
310 }, 303 },
311 }, 304 };
312 };
313 </script> 305 </script>
314 <style scoped lang="scss"> 306 <style scoped lang="scss">
315 @import "~@/styles/mixin.scss"; 307 @import "~@/styles/mixin.scss";
316 @import "~@/styles/public.scss"; 308 @import "~@/styles/public.scss";
317 .btnColRight { 309 @import "./index.scss";
318 margin-top: 20px;
319 }
320 </style> 310 </style>
......
...@@ -199,6 +199,6 @@ export default { ...@@ -199,6 +199,6 @@ export default {
199 }; 199 };
200 </script> 200 </script>
201 <style scoped lang="scss"> 201 <style scoped lang="scss">
202 @import "~@/styles/public.scss"; 202 // @import "~@/styles/public.scss";
203 @import "./index.scss"; 203 @import "./index.scss";
204 </style> 204 </style>
......
...@@ -60,6 +60,9 @@ module.exports = { ...@@ -60,6 +60,9 @@ module.exports = {
60 // configureWebpack通过操作对象的形式,来修改默认的webpack配置 60 // configureWebpack通过操作对象的形式,来修改默认的webpack配置
61 configureWebpack: { 61 configureWebpack: {
62 name: name, 62 name: name,
63 externals: [{
64 './cptable': 'var cptable'
65 }],
63 resolve: { 66 resolve: {
64 alias: { 67 alias: {
65 '@': resolve('src') 68 '@': resolve('src')
......