Merge branch 'dev'
Showing
25 changed files
with
3008 additions
and
789 deletions
... | @@ -17,6 +17,7 @@ | ... | @@ -17,6 +17,7 @@ |
17 | "bpmn-js-token-simulation": "^0.10.0", | 17 | "bpmn-js-token-simulation": "^0.10.0", |
18 | "core-js": "^3.6.5", | 18 | "core-js": "^3.6.5", |
19 | "diagram-js": "^6.8.2", | 19 | "diagram-js": "^6.8.2", |
20 | "echarts": "^5.4.3", | ||
20 | "js-cookie": "2.2.0", | 21 | "js-cookie": "2.2.0", |
21 | "lodash": "^4.17.21", | 22 | "lodash": "^4.17.21", |
22 | "mxdraw": "^0.1.157", | 23 | "mxdraw": "^0.1.157", | ... | ... |
1 | { | 1 | { |
2 | "TITLE": "不动产登记系统", | 2 | "TITLE": "不动产登记系统", |
3 | "SERVERAPI": "/bdcdj", | 3 | "SERVERAPI": "/bdcdj", |
4 | "IDCARDURL": "http://127.0.0.1:33088/function=get_idcard&readnew=0" | 4 | "IDCARDURL": "http://127.0.0.1:33088/function=get_idcard&readnew=0", |
5 | "adapter": "dysqs-630222" | ||
5 | } | 6 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -294,16 +294,22 @@ export const asyncRoutes = [ | ... | @@ -294,16 +294,22 @@ export const asyncRoutes = [ |
294 | name: 'tjfx', | 294 | name: 'tjfx', |
295 | children: [ | 295 | children: [ |
296 | { | 296 | { |
297 | path: 'ywltj', | 297 | path: 'bdcdjtjfx', |
298 | component: () => import('@/views/tjfx/ywltj/index.vue'), | 298 | component: () => import('@/views/tjfx/bdcdjtjfx/index.vue'), |
299 | name: 'qyxxba', | 299 | name: 'bdcdjtjfx', |
300 | meta: { title: '业务量统计' } | 300 | meta: { title: '不动产登记统计分析' } |
301 | }, | ||
302 | { | ||
303 | path: 'tjltj', | ||
304 | component: () => import('@/views/tjfx/tjltj/index.vue'), | ||
305 | name: 'tjltj', | ||
306 | meta: { title: '退件率统计' } | ||
301 | }, | 307 | }, |
302 | { | 308 | { |
303 | path: 'gzltj', | 309 | path: 'cstj', |
304 | component: () => import('@/views/tjfx/gzltj/index.vue'), | 310 | component: () => import('@/views/tjfx/cstj/index.vue'), |
305 | name: 'gzltj', | 311 | name: 'cstj', |
306 | meta: { title: '工作量统计' } | 312 | meta: { title: '超时统计' } |
307 | } | 313 | } |
308 | ] | 314 | ] |
309 | }, | 315 | }, | ... | ... |
1 | /* | 1 | /* |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-11-16 13:58:50 | 4 | * @LastEditTime: 2023-11-22 13:42:26 |
5 | */ | 5 | */ |
6 | import { mapGetters } from 'vuex' | 6 | import { mapGetters } from 'vuex' |
7 | import { defaultParameters } from "../../views/ywbl/ywsq/javascript/publicDefaultPar"; | 7 | import { defaultParameters } from "../../views/ywbl/ywsq/javascript/publicDefaultPar"; |
... | @@ -19,7 +19,7 @@ export default { | ... | @@ -19,7 +19,7 @@ export default { |
19 | }, | 19 | }, |
20 | mounted () { | 20 | mounted () { |
21 | window.addEventListener('keydown', this.handkeyCode, true)//开启监听键盘按下事件 | 21 | window.addEventListener('keydown', this.handkeyCode, true)//开启监听键盘按下事件 |
22 | // this.handleSearch() | 22 | this.handleSearch() |
23 | }, | 23 | }, |
24 | methods: { | 24 | methods: { |
25 | /** | 25 | /** | ... | ... |
src/utils/sqs/adapter.js
0 → 100644
1 | /* | ||
2 | * @Description: 申请书 | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-11-20 15:42:45 | ||
5 | */ | ||
6 | import Vue from 'vue' | ||
7 | // 创建不同的适配器策略 | ||
8 | const strategies = { | ||
9 | dysqs: function (data) { | ||
10 | return data.name; | ||
11 | }, | ||
12 | default: function (data) { | ||
13 | return data; | ||
14 | } | ||
15 | }; | ||
16 | |||
17 | // 创建适配器函数,并使用策略模式进行数据处理 | ||
18 | export default function adapter (data) { | ||
19 | const type = Vue.prototype.BASE_API.adapter; | ||
20 | const selectedStrategy = strategies[type] || strategies['default']; | ||
21 | |||
22 | return selectedStrategy(data); | ||
23 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -4,57 +4,57 @@ import cookies from './util.cookies' | ... | @@ -4,57 +4,57 @@ import cookies from './util.cookies' |
4 | * @param {*} paraName | 4 | * @param {*} paraName |
5 | * @author: renchao | 5 | * @author: renchao |
6 | */ | 6 | */ |
7 | export function getUrlParam (paraName) { | 7 | export function getUrlParam(paraName) { |
8 | let url = document.location.toString(); | 8 | let url = document.location.toString(); |
9 | let arrObj = url.split('?'); | 9 | let arrObj = url.split('?'); |
10 | 10 | ||
11 | if (arrObj.length > 1) { | 11 | if (arrObj.length > 1) { |
12 | let arrPara = arrObj[1].split('&'); | 12 | let arrPara = arrObj[1].split('&'); |
13 | let arr; | 13 | let arr; |
14 | 14 | ||
15 | for (let i = 0; i < arrPara.length; i++) { | 15 | for (let i = 0; i < arrPara.length; i++) { |
16 | arr = arrPara[i].split('='); | 16 | arr = arrPara[i].split('='); |
17 | 17 | ||
18 | if (arr != null && arr[0] === paraName) { | 18 | if (arr != null && arr[0] === paraName) { |
19 | // 截取#之前的内容 | 19 | // 截取#之前的内容 |
20 | let result = arr[1].endsWith('#/') ? arr[1].substr(0, arr[1].indexOf('#')) : arr[1]; | 20 | let result = arr[1].endsWith('#/') ? arr[1].substr(0, arr[1].indexOf('#')) : arr[1]; |
21 | return result; | 21 | return result; |
22 | } | 22 | } |
23 | } | ||
24 | return ''; | ||
25 | } else { | ||
26 | return ''; | ||
27 | } | 23 | } |
24 | return ''; | ||
25 | } else { | ||
26 | return ''; | ||
27 | } | ||
28 | } | 28 | } |
29 | /** | 29 | /** |
30 | * @description: setToken | 30 | * @description: setToken |
31 | * @param {*} token | 31 | * @param {*} token |
32 | * @author: renchao | 32 | * @author: renchao |
33 | */ | 33 | */ |
34 | export function setToken (token) { | 34 | export function setToken(token) { |
35 | if (token === undefined) { | 35 | if (token === undefined) { |
36 | if (process.env.NODE_ENV === 'development') { | 36 | if (process.env.NODE_ENV === 'development') { |
37 | sessionStorage.removeItem('token') | 37 | sessionStorage.removeItem('token') |
38 | } else { | 38 | } else { |
39 | cookies.remove('ACCESS_TOKEN') | 39 | cookies.remove('ACCESS_TOKEN') |
40 | } | 40 | } |
41 | } else { | ||
42 | if (process.env.NODE_ENV === 'development') { | ||
43 | sessionStorage.setItem('token', token); | ||
41 | } else { | 44 | } else { |
42 | if (process.env.NODE_ENV === 'development') { | 45 | cookies.set('ACCESS_TOKEN', token) |
43 | sessionStorage.setItem('token', token); | ||
44 | } else { | ||
45 | cookies.set('ACCESS_TOKEN', token) | ||
46 | } | ||
47 | } | 46 | } |
47 | } | ||
48 | } | 48 | } |
49 | /** | 49 | /** |
50 | * @description: getToken | 50 | * @description: getToken |
51 | * @author: renchao | 51 | * @author: renchao |
52 | */ | 52 | */ |
53 | export function getToken () { | 53 | export function getToken() { |
54 | if (process.env.NODE_ENV === 'development') { | 54 | if (process.env.NODE_ENV === 'development') { |
55 | return sessionStorage.getItem('token') | 55 | return sessionStorage.getItem('token') |
56 | } | 56 | } |
57 | return cookies.get('ACCESS_TOKEN') | 57 | return cookies.get('ACCESS_TOKEN') |
58 | } | 58 | } |
59 | 59 | ||
60 | // 获取当前时间 | 60 | // 获取当前时间 |
... | @@ -63,22 +63,22 @@ export function getToken () { | ... | @@ -63,22 +63,22 @@ export function getToken () { |
63 | * @param {*} type | 63 | * @param {*} type |
64 | * @author: renchao | 64 | * @author: renchao |
65 | */ | 65 | */ |
66 | export function getNewDate (type = 1) { | 66 | export function getNewDate(type = 1) { |
67 | const now = new Date(); | 67 | const now = new Date(); |
68 | const year = now.getFullYear(); | 68 | const year = now.getFullYear(); |
69 | const month = String(now.getMonth() + 1).padStart(2, '0'); | 69 | const month = String(now.getMonth() + 1).padStart(2, '0'); |
70 | const day = String(now.getDate()).padStart(2, '0'); | 70 | const day = String(now.getDate()).padStart(2, '0'); |
71 | const hours = String(now.getHours()).padStart(2, '0'); | 71 | const hours = String(now.getHours()).padStart(2, '0'); |
72 | const minutes = String(now.getMinutes()).padStart(2, '0'); | 72 | const minutes = String(now.getMinutes()).padStart(2, '0'); |
73 | const seconds = String(now.getSeconds()).padStart(2, '0'); | 73 | const seconds = String(now.getSeconds()).padStart(2, '0'); |
74 | if (type == 1) { | 74 | if (type == 1) { |
75 | return `${year}年${month}月${day}日` | 75 | return `${year}年${month}月${day}日` |
76 | } else { | 76 | } else { |
77 | return `${year}年${month}月${day}日 ${hours}时${minutes}分${seconds}秒` | 77 | return `${year}年${month}月${day}日 ${hours}时${minutes}分${seconds}秒` |
78 | } | 78 | } |
79 | } | 79 | } |
80 | 80 | ||
81 | export function getNewDatesh () { | 81 | export function getNewDatesh() { |
82 | const now = new Date(); | 82 | const now = new Date(); |
83 | const year = now.getFullYear(); | 83 | const year = now.getFullYear(); |
84 | const month = String(now.getMonth() + 1).padStart(2, '0'); | 84 | const month = String(now.getMonth() + 1).padStart(2, '0'); |
... | @@ -88,3 +88,31 @@ export function getNewDatesh () { | ... | @@ -88,3 +88,31 @@ export function getNewDatesh () { |
88 | const seconds = String(now.getSeconds()).padStart(2, '0'); | 88 | const seconds = String(now.getSeconds()).padStart(2, '0'); |
89 | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` | 89 | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` |
90 | } | 90 | } |
91 | |||
92 | // 近一个月时间 | ||
93 | export function getdatamonth() { | ||
94 | var tempDate = new Date(); | ||
95 | var year = tempDate.getFullYear(); | ||
96 | var month = tempDate.getMonth(); | ||
97 | var arr = [] | ||
98 | arr.push( | ||
99 | formatDate(new Date(year, month, 1)), | ||
100 | formatDate(tempDate) | ||
101 | ); | ||
102 | return arr | ||
103 | } | ||
104 | // 格式化日期 | ||
105 | export function formatDate(date) { | ||
106 | var year = date.getFullYear(); | ||
107 | var month = changeNum(date.getMonth() + 1); | ||
108 | var day = changeNum(date.getDate()); | ||
109 | return `${year}-${month}-${day}`; | ||
110 | } | ||
111 | // 数字转换 | ||
112 | export function changeNum(num) { | ||
113 | if (num >= 10) { | ||
114 | return num; | ||
115 | } else { | ||
116 | return "0" + num; | ||
117 | } | ||
118 | } | ... | ... |
1 | <template> | 1 | <template> |
2 | <div class="jtfccx-edit"> | 2 | <div class="jtfccx-edit-con"> |
3 | <div class="jtfccx-edit-con"> | 3 | <b class="title"></b> |
4 | <b class="title"></b> | 4 | <b class="title">房屋状况</b> |
5 | <b class="title">房屋状况</b> | 5 | <lb-table :column="fwColumns" key="fwzk" :data="resultData.hdetailList" :maxHeight="200" heightNumSetting |
6 | <lb-table :column="fwColumns" key="fwzk" :data="resultData.hdetailList" :maxHeight="200" heightNumSetting | 6 | :pagination="false"> |
7 | :pagination="false"> | 7 | </lb-table> |
8 | </lb-table> | 8 | <b class="title">土地状况</b> |
9 | <b class="title">土地状况</b> | 9 | <lb-table :column="tdColumns" key="tdzk" :data="resultData.zdjbxxDetail" :maxHeight="200" heightNumSetting |
10 | <lb-table :column="tdColumns" key="tdzk" :data="resultData.zdjbxxDetail" :maxHeight="200" heightNumSetting | 10 | :pagination="false"> |
11 | :pagination="false"> | 11 | </lb-table> |
12 | </lb-table> | 12 | <b class="title">权属状况</b> |
13 | <b class="title">权属状况</b> | 13 | <lb-table :column="qszkColumns" key="qszk" :data="resultData.qsxxDetail" :maxHeight="200" heightNumSetting |
14 | <lb-table :column="qszkColumns" key="qszk" :data="resultData.qsxxDetail" :maxHeight="200" heightNumSetting | 14 | :pagination="false"> |
15 | :pagination="false"> | 15 | </lb-table> |
16 | </lb-table> | 16 | <b class="title">抵押登记</b> |
17 | <b class="title">抵押登记</b> | 17 | <lb-table :column="diyaColumns" key="dydj" :data="resultData.dyaqDetail" :maxHeight="200" heightNumSetting |
18 | <lb-table :column="diyaColumns" key="dydj" :data="resultData.dyaqDetail" :maxHeight="200" heightNumSetting | 18 | :pagination="false"> |
19 | :pagination="false"> | 19 | </lb-table> |
20 | </lb-table> | 20 | <b class="title">预告登记</b> |
21 | <b class="title">预告登记</b> | 21 | <lb-table :column="ygdjColumns" key="ygdj" :data="resultData.ygdjDetail" :maxHeight="200" heightNumSetting |
22 | <lb-table :column="ygdjColumns" key="ygdj" :data="resultData.ygdjDetail" :maxHeight="200" heightNumSetting | 22 | :pagination="false"> |
23 | :pagination="false"> | 23 | </lb-table> |
24 | </lb-table> | 24 | <b class="title">查封状况</b> |
25 | <b class="title">查封状况</b> | 25 | <lb-table :column="cfdjColumns" key="cfdj" :data="resultData.cfdjDetail" :maxHeight="200" heightNumSetting |
26 | <lb-table :column="cfdjColumns" key="cfdj" :data="resultData.cfdjDetail" :maxHeight="200" heightNumSetting | 26 | :pagination="false"> |
27 | :pagination="false"> | 27 | </lb-table> |
28 | </lb-table> | 28 | <b class="title">异议登记</b> |
29 | <b class="title">异议登记</b> | 29 | <lb-table :column="yydjColumns" key="yydj" :data="resultData.yydjDetail" :maxHeight="200" heightNumSetting |
30 | <lb-table :column="yydjColumns" key="yydj" :data="resultData.yydjDetail" :maxHeight="200" heightNumSetting | 30 | :pagination="false"> |
31 | :pagination="false"> | 31 | </lb-table> |
32 | </lb-table> | 32 | </div> |
33 | </div> | ||
34 | </div> | ||
35 | </template> | 33 | </template> |
36 | 34 | ||
37 | <script> | 35 | <script> |
38 | import { datas, sendThis } from "./infodata"; | 36 | import { datas, sendThis } from "./infodata"; |
39 | import { getFwmxInfo } from "@/api/jtfc.js"; | 37 | import { getFwmxInfo } from "@/api/jtfc.js"; |
40 | export default { | 38 | export default { |
41 | props: { | 39 | props: { |
42 | formData: { | 40 | formData: { |
43 | type: Object, | 41 | type: Object, |
44 | default: () => {}, | 42 | default: () => { }, |
45 | }, | ||
46 | }, | ||
47 | data () { | ||
48 | return { | ||
49 | ruleForm: { | ||
50 | cxsj: "", | ||
51 | bdcdyh: "", | ||
52 | }, | 43 | }, |
53 | //房屋列表字段 | ||
54 | fwColumns: datas.fwCol(), | ||
55 | //土地列表字段 | ||
56 | tdColumns: datas.tdCol(), | ||
57 | //权属状况列表字段 | ||
58 | qszkColumns: datas.columns(), | ||
59 | //抵押登记列表字段 | ||
60 | diyaColumns: datas.diyaCol(), | ||
61 | //预告登记列表字段 | ||
62 | ygdjColumns: datas.ygdjCol(), | ||
63 | //查封登记列表字段 | ||
64 | cfdjColumns: datas.cfdjCol(), | ||
65 | //异议登记列表字段 | ||
66 | yydjColumns: datas.yydjCol(), | ||
67 | form: {}, | ||
68 | resultData: {}, | ||
69 | }; | ||
70 | }, | ||
71 | mounted () { | ||
72 | if(this.formData){ | ||
73 | this.getDetailInfo() | ||
74 | } | ||
75 | }, | ||
76 | methods: { | ||
77 | /** | ||
78 | * @description: setResult | ||
79 | * @param {*} data | ||
80 | * @author: renchao | ||
81 | */ | ||
82 | setResult(data){ | ||
83 | this.resultData = data | ||
84 | }, | 44 | }, |
85 | /** | 45 | data () { |
86 | * @description: getDetailInfo | 46 | return { |
87 | * @author: renchao | 47 | ruleForm: { |
88 | */ | 48 | cxsj: "", |
89 | getDetailInfo(){ | 49 | bdcdyh: "", |
90 | this.$startLoading(); | 50 | }, |
91 | getFwmxInfo({ sqcxBsm: this.formData.bsmSqcx }).then((res) => { | 51 | //房屋列表字段 |
92 | this.$endLoading(); | 52 | fwColumns: datas.fwCol(), |
93 | if (res.code == 200) { | 53 | //土地列表字段 |
54 | tdColumns: datas.tdCol(), | ||
55 | //权属状况列表字段 | ||
56 | qszkColumns: datas.columns(), | ||
57 | //抵押登记列表字段 | ||
58 | diyaColumns: datas.diyaCol(), | ||
59 | //预告登记列表字段 | ||
60 | ygdjColumns: datas.ygdjCol(), | ||
61 | //查封登记列表字段 | ||
62 | cfdjColumns: datas.cfdjCol(), | ||
63 | //异议登记列表字段 | ||
64 | yydjColumns: datas.yydjCol(), | ||
65 | form: {}, | ||
66 | resultData: {}, | ||
67 | }; | ||
68 | }, | ||
69 | mounted () { | ||
70 | if (this.formData) { | ||
71 | this.getDetailInfo() | ||
72 | } | ||
73 | }, | ||
74 | methods: { | ||
75 | /** | ||
76 | * @description: setResult | ||
77 | * @param {*} data | ||
78 | * @author: renchao | ||
79 | */ | ||
80 | setResult (data) { | ||
81 | this.resultData = data | ||
82 | }, | ||
83 | /** | ||
84 | * @description: getDetailInfo | ||
85 | * @author: renchao | ||
86 | */ | ||
87 | getDetailInfo () { | ||
88 | this.$startLoading(); | ||
89 | getFwmxInfo({ sqcxBsm: this.formData.bsmSqcx }).then((res) => { | ||
90 | this.$endLoading(); | ||
91 | if (res.code == 200) { | ||
94 | this.resultData = res.result | 92 | this.resultData = res.result |
95 | } | 93 | } |
96 | }) | 94 | }) |
95 | } | ||
97 | } | 96 | } |
98 | } | 97 | }; |
99 | }; | ||
100 | </script> | 98 | </script> |
101 | <style scoped lang="scss"> | 99 | <style scoped lang="scss"> |
102 | @import "~@/styles/mixin.scss"; | 100 | @import "~@/styles/mixin.scss"; |
103 | 101 | .jtfccx-edit-con { | |
104 | .table1 { | 102 | max-height: 85vh; |
105 | border-spacing: 0; | 103 | overflow-y: scroll; |
106 | border-collapse: collapse; | 104 | } |
107 | width: 100%; | 105 | .table1 { |
108 | } | 106 | border-spacing: 0; |
107 | border-collapse: collapse; | ||
108 | width: 100%; | ||
109 | } | ||
109 | 110 | ||
110 | .table1 td { | 111 | .table1 td { |
111 | border: 1px solid #acbed1; | 112 | border: 1px solid #acbed1; |
112 | height: 30px; | 113 | height: 30px; |
113 | } | 114 | } |
114 | </style> | 115 | </style> | ... | ... |
... | @@ -345,7 +345,6 @@ | ... | @@ -345,7 +345,6 @@ |
345 | dyjlList: [], | 345 | dyjlList: [], |
346 | } | 346 | } |
347 | }, | 347 | }, |
348 | //加载详细信息 | ||
349 | /** | 348 | /** |
350 | * @description: 加载详细信息 | 349 | * @description: 加载详细信息 |
351 | * @author: renchao | 350 | * @author: renchao |
... | @@ -416,7 +415,6 @@ | ... | @@ -416,7 +415,6 @@ |
416 | } | 415 | } |
417 | }) | 416 | }) |
418 | }, | 417 | }, |
419 | //添加申请人 | ||
420 | /** | 418 | /** |
421 | * @description: 添加申请人 | 419 | * @description: 添加申请人 |
422 | * @author: renchao | 420 | * @author: renchao |
... | @@ -440,14 +438,12 @@ | ... | @@ -440,14 +438,12 @@ |
440 | * @author: renchao | 438 | * @author: renchao |
441 | */ | 439 | */ |
442 | remove (index, row, type) { | 440 | remove (index, row, type) { |
443 | console.log(type, 'type'); | ||
444 | if (type == "sqr") { | 441 | if (type == "sqr") { |
445 | this.form.sqrList.splice(index, 1); | 442 | this.form.sqrList.splice(index, 1); |
446 | } else { | 443 | } else { |
447 | this.form.qlrList.splice(index, 1); | 444 | this.form.qlrList.splice(index, 1); |
448 | } | 445 | } |
449 | }, | 446 | }, |
450 | //电话号码校验 | ||
451 | /** | 447 | /** |
452 | * @description: 电话号码校验 | 448 | * @description: 电话号码校验 |
453 | * @param {*} row | 449 | * @param {*} row |
... | @@ -463,7 +459,6 @@ | ... | @@ -463,7 +459,6 @@ |
463 | return true; | 459 | return true; |
464 | } | 460 | } |
465 | }, | 461 | }, |
466 | //打印 | ||
467 | /** | 462 | /** |
468 | * @description: 打印 | 463 | * @description: 打印 |
469 | * @author: renchao | 464 | * @author: renchao |
... | @@ -479,7 +474,6 @@ | ... | @@ -479,7 +474,6 @@ |
479 | } | 474 | } |
480 | }); | 475 | }); |
481 | }, | 476 | }, |
482 | //打开打印预览 | ||
483 | /** | 477 | /** |
484 | * @description: 打开打印预览 | 478 | * @description: 打开打印预览 |
485 | * @author: renchao | 479 | * @author: renchao | ... | ... |
... | @@ -104,7 +104,7 @@ | ... | @@ -104,7 +104,7 @@ |
104 | * @author: renchao | 104 | * @author: renchao |
105 | */ | 105 | */ |
106 | handleAdd () { | 106 | handleAdd () { |
107 | this.$popupDialog("家庭房产查询", "sqcx/jtfc/components/addjtfc", { | 107 | this.$popupDialog("登记情况", "sqcx/jtfc/components/addjtfc", { |
108 | sqcxBsm: '' | 108 | sqcxBsm: '' |
109 | }, '80%') | 109 | }, '80%') |
110 | }, | 110 | }, |
... | @@ -114,7 +114,7 @@ | ... | @@ -114,7 +114,7 @@ |
114 | * @author: renchao | 114 | * @author: renchao |
115 | */ | 115 | */ |
116 | handleViewClick (row) { | 116 | handleViewClick (row) { |
117 | this.$popupDialog("家庭房产查询", "sqcx/jtfc/components/addjtfc", { | 117 | this.$popupDialog("登记情况", "sqcx/jtfc/components/addjtfc", { |
118 | sqcxBsm: row.bsmSqcx | 118 | sqcxBsm: row.bsmSqcx |
119 | }, '80%') | 119 | }, '80%') |
120 | } | 120 | } | ... | ... |
1 | <!-- | 1 | <!-- |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-09-01 08:20:51 | 4 | * @LastEditTime: 2023-11-21 16:30:43 |
5 | --> | 5 | --> |
6 | <template> | 6 | <template> |
7 | <el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules"> | 7 | <el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules"> |
... | @@ -67,7 +67,8 @@ | ... | @@ -67,7 +67,8 @@ |
67 | tmpname: '', | 67 | tmpname: '', |
68 | tmpfont: '', | 68 | tmpfont: '', |
69 | tmpfontsize: '', | 69 | tmpfontsize: '', |
70 | tmpcontent: '' | 70 | tmpcontent: '', //模板1 |
71 | tmpcontent2: '', //模板2 | ||
71 | }, | 72 | }, |
72 | rules: { | 73 | rules: { |
73 | tmpno: [ | 74 | tmpno: [ |
... | @@ -83,7 +84,6 @@ | ... | @@ -83,7 +84,6 @@ |
83 | if (JSON.stringify(this.formData) != "{}") this.getDetailInfo(this.formData) | 84 | if (JSON.stringify(this.formData) != "{}") this.getDetailInfo(this.formData) |
84 | }, | 85 | }, |
85 | methods: { | 86 | methods: { |
86 | //表单提交 | ||
87 | /** | 87 | /** |
88 | * @description: 表单提交 | 88 | * @description: 表单提交 |
89 | * @author: renchao | 89 | * @author: renchao |
... | @@ -104,7 +104,6 @@ | ... | @@ -104,7 +104,6 @@ |
104 | } | 104 | } |
105 | }); | 105 | }); |
106 | }, | 106 | }, |
107 | //新增 | ||
108 | /** | 107 | /** |
109 | * @description: 新增 | 108 | * @description: 新增 |
110 | * @author: renchao | 109 | * @author: renchao | ... | ... |
src/views/tjfx/bdcdjtjfx/components/djlx.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="djlx"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row :gutter="24"> | ||
11 | <el-col :span="12"> | ||
12 | <el-form-item label="收件时间" class="width100"> | ||
13 | <el-date-picker | ||
14 | v-model="queryForm.sj" | ||
15 | type="daterange" | ||
16 | class="width100" | ||
17 | range-separator="至" | ||
18 | :clearable="false" | ||
19 | value-format="yyyy-MM-dd" | ||
20 | start-placeholder="开始日期" | ||
21 | end-placeholder="结束日期" | ||
22 | > | ||
23 | </el-date-picker> | ||
24 | </el-form-item> | ||
25 | </el-col> | ||
26 | <el-col :span="7"> | ||
27 | <el-form-item label="区域" class="width100"> | ||
28 | <el-select | ||
29 | v-model="queryForm.qy" | ||
30 | class="width100" | ||
31 | clearable | ||
32 | placeholder="请选择区域" | ||
33 | > | ||
34 | <el-option | ||
35 | v-for="item in dictData['A20']" | ||
36 | :key="item.dcode" | ||
37 | :label="item.dname" | ||
38 | :value="item.dcode" | ||
39 | > | ||
40 | </el-option> | ||
41 | </el-select> | ||
42 | </el-form-item> | ||
43 | </el-col> | ||
44 | <el-col :span="4" class="btnColRight"> | ||
45 | <el-form-item> | ||
46 | <el-button | ||
47 | type="primary" | ||
48 | native-type="submit" | ||
49 | @click="handleSearch" | ||
50 | >查询</el-button | ||
51 | > | ||
52 | </el-form-item> | ||
53 | </el-col> | ||
54 | </el-row> | ||
55 | </el-form> | ||
56 | </div> | ||
57 | <div class="concent"> | ||
58 | <div class="left"> | ||
59 | <el-table | ||
60 | class="tableBox" | ||
61 | height="187" | ||
62 | stripe | ||
63 | :data="tableList" | ||
64 | show-summary | ||
65 | size="mini" | ||
66 | border | ||
67 | header-cell-class-name="table-header-gray" | ||
68 | > | ||
69 | <el-table-column | ||
70 | label="登记类型" | ||
71 | prop="name" | ||
72 | minWidth="100" | ||
73 | align="center" /> | ||
74 | <el-table-column | ||
75 | label="收件数量" | ||
76 | prop="value" | ||
77 | minWidth="120" | ||
78 | align="center" | ||
79 | /></el-table> | ||
80 | </div> | ||
81 | <div class="right"> | ||
82 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
83 | </div> | ||
84 | </div> | ||
85 | </div> | ||
86 | </template> | ||
87 | <script> | ||
88 | import * as echarts from "echarts"; | ||
89 | import { mapGetters } from "vuex"; | ||
90 | import { getdatamonth } from "@/utils/util"; | ||
91 | export default { | ||
92 | components: {}, | ||
93 | computed: { | ||
94 | ...mapGetters(["dictData", "transfer"]), | ||
95 | }, | ||
96 | data() { | ||
97 | return { | ||
98 | queryForm: { | ||
99 | sj: [], | ||
100 | }, | ||
101 | tableList: [ | ||
102 | { name: "首次登记", value: "2" }, | ||
103 | { name: "变更登记", value: "12" }, | ||
104 | { name: "抵押登记", value: "23" }, | ||
105 | { name: "转移登记", value: "33" }, | ||
106 | { name: "预告登记", value: "13" }, | ||
107 | { name: "注销登记", value: "3" }, | ||
108 | { name: "查封登记", value: "4" }, | ||
109 | { name: "其他登记", value: "26" }, | ||
110 | ], | ||
111 | }; | ||
112 | }, | ||
113 | mounted() { | ||
114 | this.setdata(); | ||
115 | // 创建一个 ECharts 实例 | ||
116 | this.chart = echarts.init(this.$refs.chart); | ||
117 | // 在 ECharts 实例中配置图表 | ||
118 | this.chart.setOption(this.getOption()); | ||
119 | }, | ||
120 | methods: { | ||
121 | getOption() { | ||
122 | return { | ||
123 | title: { | ||
124 | text: "登记类型统计", | ||
125 | x: "center", | ||
126 | textStyle: { | ||
127 | //主标题文本设置 | ||
128 | fontSize: 12, //大小 | ||
129 | }, | ||
130 | }, | ||
131 | tooltip: { | ||
132 | trigger: "item", | ||
133 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", | ||
134 | }, | ||
135 | grid: { | ||
136 | top: "4%", | ||
137 | left: "2%", | ||
138 | right: "3%", | ||
139 | bottom: "20%", | ||
140 | containLabel: true, | ||
141 | }, | ||
142 | series: [ | ||
143 | { | ||
144 | name: "统计分析图", | ||
145 | type: "pie", | ||
146 | radius: "70%", | ||
147 | center: ["50%", "100%"], | ||
148 | data: this.tableList, | ||
149 | itemStyle: { | ||
150 | emphasis: { | ||
151 | shadowBlur: 10, | ||
152 | shadowOffsetX: 0, | ||
153 | shadowColor: "rgba(0, 0, 0, 0.5)", | ||
154 | }, | ||
155 | }, | ||
156 | label: { | ||
157 | normal: { | ||
158 | formatter: "{c}/个", | ||
159 | position: "inside", //让文字显示在饼状图里面 | ||
160 | textStyle: { | ||
161 | fontSize: 10, | ||
162 | color: "#fff", | ||
163 | }, | ||
164 | }, | ||
165 | }, | ||
166 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! | ||
167 | }, | ||
168 | ], | ||
169 | }; | ||
170 | }, | ||
171 | setdata() { | ||
172 | this.queryForm.sj = getdatamonth(); | ||
173 | console.log("this.queryForm", this.queryForm); | ||
174 | }, | ||
175 | |||
176 | handleSearch() { | ||
177 | console.log(" this.queryForm", this.queryForm); | ||
178 | }, | ||
179 | }, | ||
180 | }; | ||
181 | </script> | ||
182 | <style scoped lang="scss"> | ||
183 | /deep/.el-card__header { | ||
184 | padding: 8px 10px; | ||
185 | } | ||
186 | |||
187 | /deep/.el-card__body { | ||
188 | padding: 3px 10px 5px 10px; | ||
189 | overflow: hidden; | ||
190 | } | ||
191 | .djlx { | ||
192 | .el-col { | ||
193 | padding: 4px; | ||
194 | margin-right: 4px; | ||
195 | } | ||
196 | .inquire { | ||
197 | width: 100%; | ||
198 | height: 40px; | ||
199 | background-color: #f4f7fd; | ||
200 | /deep/ .el-form { | ||
201 | .el-form-item--small.el-form-item { | ||
202 | margin-bottom: 5px; | ||
203 | } | ||
204 | } | ||
205 | } | ||
206 | |||
207 | .concent { | ||
208 | width: 100%; | ||
209 | height: 300px; | ||
210 | display: flex; | ||
211 | //调整表头高度 | ||
212 | /deep/.el-table__header { | ||
213 | height: 22px !important; | ||
214 | background-color: salmon; | ||
215 | } | ||
216 | .left { | ||
217 | width: 70%; | ||
218 | height: 200px; | ||
219 | } | ||
220 | .right { | ||
221 | width: 30%; | ||
222 | height: 300px; | ||
223 | } | ||
224 | } | ||
225 | |||
226 | /deep/.el-table th { | ||
227 | height: 36px !important; | ||
228 | font-size: 14px; | ||
229 | color: #4a4a4a; | ||
230 | } | ||
231 | |||
232 | } | ||
233 | </style> |
src/views/tjfx/bdcdjtjfx/components/qytj.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="djlx"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row :gutter="20"> | ||
11 | <el-col :span="12"> | ||
12 | <el-form-item label="收件时间" class="width100"> | ||
13 | <el-date-picker | ||
14 | v-model="queryForm.sj" | ||
15 | type="daterange" | ||
16 | class="width100" | ||
17 | range-separator="至" | ||
18 | :clearable="false" | ||
19 | value-format="yyyy-MM-dd" | ||
20 | start-placeholder="开始日期" | ||
21 | end-placeholder="结束日期" | ||
22 | > | ||
23 | </el-date-picker> | ||
24 | </el-form-item> | ||
25 | </el-col> | ||
26 | <el-col :span="11" class="btnColRight"> | ||
27 | <el-form-item> | ||
28 | <el-button | ||
29 | type="primary" | ||
30 | native-type="submit" | ||
31 | @click="handleSearch" | ||
32 | >查询</el-button | ||
33 | > | ||
34 | </el-form-item> | ||
35 | </el-col> | ||
36 | </el-row> | ||
37 | </el-form> | ||
38 | </div> | ||
39 | <div class="concent"> | ||
40 | <div class="left"> | ||
41 | <el-table | ||
42 | height="187" | ||
43 | stripe | ||
44 | :data="tableList" | ||
45 | show-summary | ||
46 | size="mini" | ||
47 | border | ||
48 | header-cell-class-name="table-header-gray" | ||
49 | > | ||
50 | <el-table-column | ||
51 | label="区域" | ||
52 | prop="name" | ||
53 | minWidth="100" | ||
54 | align="center" /> | ||
55 | <el-table-column | ||
56 | label="收件数量" | ||
57 | prop="value" | ||
58 | minWidth="120" | ||
59 | align="center" | ||
60 | /></el-table> | ||
61 | </div> | ||
62 | <div class="right"> | ||
63 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
64 | </div> | ||
65 | </div> | ||
66 | </div> | ||
67 | </template> | ||
68 | <script> | ||
69 | import * as echarts from "echarts"; | ||
70 | import { getdatamonth } from "@/utils/util"; | ||
71 | export default { | ||
72 | components: {}, | ||
73 | data() { | ||
74 | return { | ||
75 | queryForm: {}, | ||
76 | tableList: [ | ||
77 | { name: "浐灞", value: "2" }, | ||
78 | { name: "长安", value: "12" }, | ||
79 | { name: "莲湖", value: "23" }, | ||
80 | { name: "高新", value: "33" }, | ||
81 | { name: "高新", value: "33" }, | ||
82 | ], | ||
83 | }; | ||
84 | }, | ||
85 | mounted() { | ||
86 | this.setdata(); | ||
87 | // 创建一个 ECharts 实例 | ||
88 | this.chart = echarts.init(this.$refs.chart); | ||
89 | // 在 ECharts 实例中配置图表 | ||
90 | this.chart.setOption(this.getOption()); | ||
91 | }, | ||
92 | methods: { | ||
93 | getOption() { | ||
94 | return { | ||
95 | title: { | ||
96 | text: "区域统计分析", | ||
97 | x: "center", | ||
98 | textStyle: { | ||
99 | //主标题文本设置 | ||
100 | fontSize: 12, //大小 | ||
101 | }, | ||
102 | }, | ||
103 | tooltip: { | ||
104 | trigger: "item", | ||
105 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", | ||
106 | }, | ||
107 | grid: { | ||
108 | top: "4%", | ||
109 | left: "2%", | ||
110 | right: "3%", | ||
111 | bottom: "20%", | ||
112 | containLabel: true, | ||
113 | }, | ||
114 | series: [ | ||
115 | { | ||
116 | name: "统计分析图", | ||
117 | type: "pie", | ||
118 | radius: "70%", | ||
119 | center: ["50%", "100%"], | ||
120 | data: this.tableList, | ||
121 | itemStyle: { | ||
122 | emphasis: { | ||
123 | shadowBlur: 10, | ||
124 | shadowOffsetX: 0, | ||
125 | shadowColor: "rgba(0, 0, 0, 0.5)", | ||
126 | }, | ||
127 | }, | ||
128 | label: { | ||
129 | normal: { | ||
130 | formatter: "{c}/个", | ||
131 | position: "inside", //让文字显示在饼状图里面 | ||
132 | textStyle: { | ||
133 | fontSize: 10, | ||
134 | color: "#fff", | ||
135 | }, | ||
136 | }, | ||
137 | }, | ||
138 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! | ||
139 | }, | ||
140 | ], | ||
141 | }; | ||
142 | }, | ||
143 | setdata() { | ||
144 | this.queryForm.sj = getdatamonth(); | ||
145 | console.log("this.queryForm", this.queryForm); | ||
146 | }, | ||
147 | handleSearch() { | ||
148 | console.log(" this.queryForm", this.queryForm); | ||
149 | }, | ||
150 | }, | ||
151 | }; | ||
152 | </script> | ||
153 | <style scoped lang="scss"> | ||
154 | /deep/.el-card__header { | ||
155 | padding: 8px 10px; | ||
156 | } | ||
157 | |||
158 | /deep/.el-card__body { | ||
159 | padding: 3px 10px 5px 10px; | ||
160 | overflow: hidden; | ||
161 | } | ||
162 | .yhjgba { | ||
163 | .el-col { | ||
164 | padding: 4px; | ||
165 | margin-right: 4px; | ||
166 | } | ||
167 | .inquire { | ||
168 | width: 100%; | ||
169 | height: 40px; | ||
170 | background-color: #f4f7fd; | ||
171 | /deep/ .el-form { | ||
172 | .el-form-item--small.el-form-item { | ||
173 | margin-bottom: 5px; | ||
174 | } | ||
175 | } | ||
176 | } | ||
177 | |||
178 | .concent { | ||
179 | width: 100%; | ||
180 | height: 300px; | ||
181 | display: flex; | ||
182 | /deep/.el-table th { | ||
183 | height: 36px !important; | ||
184 | font-size: 14px; | ||
185 | color: #4a4a4a; | ||
186 | } | ||
187 | .left { | ||
188 | width: 70%; | ||
189 | height: 200px; | ||
190 | } | ||
191 | .right { | ||
192 | width: 30%; | ||
193 | height: 300px; | ||
194 | } | ||
195 | } | ||
196 | } | ||
197 | </style> |
src/views/tjfx/bdcdjtjfx/components/sjr.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="djlx"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row :gutter="24"> | ||
11 | <el-col :span="12"> | ||
12 | <el-form-item label="收件时间" class="width100"> | ||
13 | <el-date-picker | ||
14 | v-model="queryForm.sj" | ||
15 | type="daterange" | ||
16 | class="width100" | ||
17 | range-separator="至" | ||
18 | :clearable="false" | ||
19 | value-format="yyyy-MM-dd" | ||
20 | start-placeholder="开始日期" | ||
21 | end-placeholder="结束日期" | ||
22 | > | ||
23 | </el-date-picker> | ||
24 | </el-form-item> | ||
25 | </el-col> | ||
26 | <el-col :span="7"> | ||
27 | <el-form-item label="区域" class="width100"> | ||
28 | <el-select | ||
29 | v-model="queryForm.qy" | ||
30 | class="width100" | ||
31 | clearable | ||
32 | placeholder="请选择区域" | ||
33 | > | ||
34 | <el-option | ||
35 | v-for="item in dictData['A20']" | ||
36 | :key="item.dcode" | ||
37 | :label="item.dname" | ||
38 | :value="item.dcode" | ||
39 | > | ||
40 | </el-option> | ||
41 | </el-select> | ||
42 | </el-form-item> | ||
43 | </el-col> | ||
44 | <el-col :span="4" class="btnColRight"> | ||
45 | <el-form-item> | ||
46 | <el-button | ||
47 | type="primary" | ||
48 | native-type="submit" | ||
49 | @click="handleSearch" | ||
50 | >查询</el-button | ||
51 | > | ||
52 | </el-form-item> | ||
53 | </el-col> | ||
54 | </el-row> | ||
55 | </el-form> | ||
56 | </div> | ||
57 | <div class="concent"> | ||
58 | <div class="left"> | ||
59 | <el-table | ||
60 | height="187" | ||
61 | stripe | ||
62 | show-summary | ||
63 | :data="tableList" | ||
64 | size="mini" | ||
65 | border | ||
66 | header-cell-class-name="table-header-gray" | ||
67 | > | ||
68 | <el-table-column | ||
69 | label="收件人" | ||
70 | prop="name" | ||
71 | minWidth="100" | ||
72 | align="center" /> | ||
73 | <el-table-column | ||
74 | label="收件数量" | ||
75 | prop="value" | ||
76 | minWidth="120" | ||
77 | align="center" | ||
78 | /></el-table> | ||
79 | </div> | ||
80 | <div class="right"> | ||
81 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
82 | </div> | ||
83 | </div> | ||
84 | </div> | ||
85 | </template> | ||
86 | <script> | ||
87 | import * as echarts from "echarts"; | ||
88 | import { mapGetters } from "vuex"; | ||
89 | import { getdatamonth } from "@/utils/util"; | ||
90 | export default { | ||
91 | components: {}, | ||
92 | computed: { | ||
93 | ...mapGetters(["dictData", "transfer"]), | ||
94 | }, | ||
95 | data() { | ||
96 | return { | ||
97 | queryForm: {}, | ||
98 | tableList: [ | ||
99 | { name: "小红", value: "2" }, | ||
100 | { name: "小张", value: "12" }, | ||
101 | { name: "小王", value: "23" }, | ||
102 | ], | ||
103 | }; | ||
104 | }, | ||
105 | mounted() { | ||
106 | this.setdata(); | ||
107 | // 创建一个 ECharts 实例 | ||
108 | this.chart = echarts.init(this.$refs.chart); | ||
109 | // 在 ECharts 实例中配置图表 | ||
110 | this.chart.setOption(this.getOption()); | ||
111 | }, | ||
112 | methods: { | ||
113 | getOption() { | ||
114 | return { | ||
115 | title: { | ||
116 | text: "登记类型统计", | ||
117 | x: "center", | ||
118 | textStyle: { | ||
119 | //主标题文本设置 | ||
120 | fontSize: 12, //大小 | ||
121 | }, | ||
122 | }, | ||
123 | tooltip: { | ||
124 | trigger: "item", | ||
125 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", | ||
126 | }, | ||
127 | grid: { | ||
128 | top: "4%", | ||
129 | left: "2%", | ||
130 | right: "3%", | ||
131 | bottom: "20%", | ||
132 | containLabel: true, | ||
133 | }, | ||
134 | series: [ | ||
135 | { | ||
136 | name: "统计分析图", | ||
137 | type: "pie", | ||
138 | radius: "70%", | ||
139 | center: ["50%", "100%"], | ||
140 | data: this.tableList, | ||
141 | itemStyle: { | ||
142 | emphasis: { | ||
143 | shadowBlur: 10, | ||
144 | shadowOffsetX: 0, | ||
145 | shadowColor: "rgba(0, 0, 0, 0.5)", | ||
146 | }, | ||
147 | }, | ||
148 | label: { | ||
149 | normal: { | ||
150 | formatter: "{c}/个", | ||
151 | position: "inside", //让文字显示在饼状图里面 | ||
152 | textStyle: { | ||
153 | fontSize: 10, | ||
154 | color: "#fff", | ||
155 | }, | ||
156 | }, | ||
157 | }, | ||
158 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! | ||
159 | }, | ||
160 | ], | ||
161 | }; | ||
162 | }, | ||
163 | setdata() { | ||
164 | this.queryForm.sj = getdatamonth(); | ||
165 | console.log("this.queryForm", this.queryForm); | ||
166 | }, | ||
167 | handleSearch() { | ||
168 | console.log(" this.queryForm", this.queryForm); | ||
169 | }, | ||
170 | }, | ||
171 | }; | ||
172 | </script> | ||
173 | <style scoped lang="scss"> | ||
174 | /deep/.el-card__header { | ||
175 | padding: 8px 10px; | ||
176 | } | ||
177 | |||
178 | /deep/.el-card__body { | ||
179 | padding: 3px 10px 5px 10px; | ||
180 | overflow: hidden; | ||
181 | } | ||
182 | .yhjgba { | ||
183 | .el-col { | ||
184 | padding: 4px; | ||
185 | margin-right: 4px; | ||
186 | } | ||
187 | .inquire { | ||
188 | width: 100%; | ||
189 | height: 40px; | ||
190 | background-color: #f4f7fd; | ||
191 | /deep/ .el-form { | ||
192 | .el-form-item--small.el-form-item { | ||
193 | margin-bottom: 5px; | ||
194 | } | ||
195 | } | ||
196 | } | ||
197 | |||
198 | .concent { | ||
199 | width: 100%; | ||
200 | height: 300px; | ||
201 | display: flex; | ||
202 | /deep/.el-table th { | ||
203 | height: 36px !important; | ||
204 | font-size: 14px; | ||
205 | color: #4a4a4a; | ||
206 | } | ||
207 | .left { | ||
208 | width: 70%; | ||
209 | height: 200px; | ||
210 | } | ||
211 | .right { | ||
212 | width: 30%; | ||
213 | height: 300px; | ||
214 | } | ||
215 | } | ||
216 | } | ||
217 | </style> |
src/views/tjfx/bdcdjtjfx/components/sjri.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="djlx"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row> | ||
11 | <el-col :span="6"> | ||
12 | <el-form-item label="统计时间" class="width100"> | ||
13 | <el-date-picker | ||
14 | v-model="queryForm.monthValue" | ||
15 | class="width100" | ||
16 | type="month" | ||
17 | placeholder="选择月" | ||
18 | > | ||
19 | </el-date-picker> | ||
20 | </el-form-item> | ||
21 | </el-col> | ||
22 | <el-col :span="6"> | ||
23 | <el-form-item label="区域" class="width100"> | ||
24 | <el-select | ||
25 | v-model="queryForm.qy" | ||
26 | class="width100" | ||
27 | clearable | ||
28 | placeholder="请选择权利类型" | ||
29 | > | ||
30 | <el-option | ||
31 | v-for="item in dictData['A20']" | ||
32 | :key="item.dcode" | ||
33 | :label="item.dname" | ||
34 | :value="item.dcode" | ||
35 | > | ||
36 | </el-option> | ||
37 | </el-select> | ||
38 | </el-form-item> | ||
39 | </el-col> | ||
40 | <el-col :span="11" class="btnColRight"> | ||
41 | <el-form-item> | ||
42 | <el-button | ||
43 | type="primary" | ||
44 | native-type="submit" | ||
45 | @click="handleSearch" | ||
46 | >查询</el-button | ||
47 | > | ||
48 | </el-form-item> | ||
49 | </el-col> | ||
50 | </el-row> | ||
51 | </el-form> | ||
52 | </div> | ||
53 | <div class="concent"> | ||
54 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
55 | </div> | ||
56 | </div> | ||
57 | </template> | ||
58 | <script> | ||
59 | import * as echarts from "echarts"; | ||
60 | import { mapGetters } from "vuex"; | ||
61 | export default { | ||
62 | components: {}, | ||
63 | computed: { | ||
64 | ...mapGetters(["dictData", "transfer"]), | ||
65 | }, | ||
66 | data() { | ||
67 | return { | ||
68 | queryForm: { | ||
69 | monthValue:"" | ||
70 | }, | ||
71 | datas: [12, 23, 15, 28, 37, 11, 13, 32, 34, 56, 12, 15], | ||
72 | datatime: [ | ||
73 | "1日", | ||
74 | "2日", | ||
75 | "4日", | ||
76 | "5日", | ||
77 | "7日", | ||
78 | "10日", | ||
79 | "14日", | ||
80 | "15日", | ||
81 | "17日", | ||
82 | "19日", | ||
83 | "20日", | ||
84 | "21日", | ||
85 | ], | ||
86 | |||
87 | }; | ||
88 | }, | ||
89 | created() { | ||
90 | // 默认当月 | ||
91 | var nowDate = new Date(); | ||
92 | var date = { | ||
93 | year: nowDate.getFullYear(), | ||
94 | month: nowDate.getMonth() + 1, | ||
95 | day: nowDate.getDate() | ||
96 | }; | ||
97 | const dayDate = | ||
98 | date.year + "-" + (date.month >= 10 ? date.month : "0" + date.month); | ||
99 | var date = new Date(); | ||
100 | this.$set(this.queryForm, "monthValue", dayDate.toString()); | ||
101 | console.log("this.queryForm",this.queryForm); | ||
102 | }, | ||
103 | mounted() { | ||
104 | // 创建一个 ECharts 实例 | ||
105 | this.chart = echarts.init(this.$refs.chart); | ||
106 | // 在 ECharts 实例中配置图表 | ||
107 | this.chart.setOption(this.getOption()); | ||
108 | }, | ||
109 | methods: { | ||
110 | getOption() { | ||
111 | return { | ||
112 | title: { | ||
113 | text: "2023年11月收件情况 ", // 主标题名称 | ||
114 | |||
115 | textStyle: { | ||
116 | //主标题文本设置 | ||
117 | fontSize: 18, //大小 | ||
118 | }, | ||
119 | |||
120 | itemGap: 3, //主副标题间距 | ||
121 | x: "center", //主副标题的水平位置 | ||
122 | y: "top", //主副标题的垂直位置 | ||
123 | }, | ||
124 | legend: { | ||
125 | data: ["转诊量"], | ||
126 | top: "6%", | ||
127 | right: "4%", | ||
128 | textStyle: { | ||
129 | color: "#747474", | ||
130 | }, | ||
131 | }, | ||
132 | tooltip: { | ||
133 | // trigger: "item", //默认效果 | ||
134 | //柱状图加阴影 | ||
135 | trigger: "axis", | ||
136 | axisPointer: { | ||
137 | type: "shadow", | ||
138 | label: { | ||
139 | show: true, | ||
140 | }, | ||
141 | }, | ||
142 | }, | ||
143 | grid: { | ||
144 | top: "20%", | ||
145 | left: "2%", | ||
146 | right: "3%", | ||
147 | bottom: "20%", | ||
148 | containLabel: true, | ||
149 | }, | ||
150 | xAxis: { | ||
151 | type: "category", | ||
152 | data: this.datatime, | ||
153 | }, | ||
154 | yAxis: { | ||
155 | type: "value", | ||
156 | }, | ||
157 | series: [ | ||
158 | { | ||
159 | data: this.datas, | ||
160 | type: "bar", | ||
161 | barWidth: 15, | ||
162 | showBackground: true, | ||
163 | backgroundStyle: { | ||
164 | color: "rgba(220, 220, 220, 0.8)", | ||
165 | }, | ||
166 | }, | ||
167 | ], | ||
168 | }; | ||
169 | }, | ||
170 | |||
171 | handleSearch() {}, | ||
172 | }, | ||
173 | }; | ||
174 | </script> | ||
175 | <style scoped lang="scss"> | ||
176 | /deep/.el-card__header { | ||
177 | padding: 8px 10px; | ||
178 | } | ||
179 | |||
180 | /deep/.el-card__body { | ||
181 | padding: 3px 10px 5px 10px; | ||
182 | overflow: hidden; | ||
183 | } | ||
184 | .yhjgba { | ||
185 | .el-col { | ||
186 | padding: 4px; | ||
187 | margin-right: 4px; | ||
188 | } | ||
189 | .inquire { | ||
190 | width: 100%; | ||
191 | height: 40px; | ||
192 | background-color: #f4f7fd; | ||
193 | /deep/ .el-form { | ||
194 | .el-form-item--small.el-form-item { | ||
195 | margin-bottom: 5px; | ||
196 | } | ||
197 | } | ||
198 | } | ||
199 | .concent { | ||
200 | width: 100%; | ||
201 | height: 300px; | ||
202 | display: flex; | ||
203 | } | ||
204 | } | ||
205 | </style> |
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="djlx"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row> | ||
11 | <el-col :span="6"> | ||
12 | <el-form-item label="统计年份" class="width100"> | ||
13 | <el-date-picker | ||
14 | class="width100" | ||
15 | v-model="queryForm.sj" | ||
16 | type="year" | ||
17 | placeholder="选择年" | ||
18 | > | ||
19 | </el-date-picker> | ||
20 | </el-form-item> | ||
21 | </el-col> | ||
22 | <el-col :span="6"> | ||
23 | <el-form-item label="区域" class="width100"> | ||
24 | <el-select | ||
25 | v-model="queryForm.qy" | ||
26 | class="width100" | ||
27 | clearable | ||
28 | placeholder="请选择权利类型" | ||
29 | > | ||
30 | <el-option | ||
31 | v-for="item in dictData['A20']" | ||
32 | :key="item.dcode" | ||
33 | :label="item.dname" | ||
34 | :value="item.dcode" | ||
35 | > | ||
36 | </el-option> | ||
37 | </el-select> | ||
38 | </el-form-item> | ||
39 | </el-col> | ||
40 | <el-col :span="11" class="btnColRight"> | ||
41 | <el-form-item> | ||
42 | <el-button | ||
43 | type="primary" | ||
44 | native-type="submit" | ||
45 | @click="handleSearch" | ||
46 | >查询</el-button | ||
47 | > | ||
48 | </el-form-item> | ||
49 | </el-col> | ||
50 | </el-row> | ||
51 | </el-form> | ||
52 | </div> | ||
53 | <div class="concent"> | ||
54 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
55 | </div> | ||
56 | </div> | ||
57 | </template> | ||
58 | <script> | ||
59 | import * as echarts from "echarts"; | ||
60 | import { mapGetters } from "vuex"; | ||
61 | |||
62 | export default { | ||
63 | components: {}, | ||
64 | computed: { | ||
65 | ...mapGetters(["dictData", "transfer"]), | ||
66 | }, | ||
67 | data() { | ||
68 | return { | ||
69 | queryForm: { | ||
70 | sj:"" | ||
71 | }, | ||
72 | }; | ||
73 | }, | ||
74 | created() { | ||
75 | var tempDate = new Date(); | ||
76 | var year = tempDate.getFullYear(); | ||
77 | console.log("year", year); | ||
78 | // 默认当月 | ||
79 | |||
80 | this.$set(this.queryForm, "sj", year.toString()); | ||
81 | console.log("this.queryForm",this.queryForm); | ||
82 | }, | ||
83 | mounted() { | ||
84 | // 创建一个 ECharts 实例 | ||
85 | this.chart = echarts.init(this.$refs.chart); | ||
86 | // 在 ECharts 实例中配置图表 | ||
87 | this.chart.setOption(this.getOption()); | ||
88 | }, | ||
89 | methods: { | ||
90 | getOption() { | ||
91 | return { | ||
92 | xAxis: { | ||
93 | type: "category", | ||
94 | data: [ | ||
95 | "1月", | ||
96 | "2月", | ||
97 | "3月", | ||
98 | "4月", | ||
99 | "5月", | ||
100 | "6月", | ||
101 | "7月", | ||
102 | "8月", | ||
103 | "9月", | ||
104 | "10月", | ||
105 | "11月", | ||
106 | "12月", | ||
107 | ], | ||
108 | }, | ||
109 | yAxis: { | ||
110 | type: "value", | ||
111 | }, | ||
112 | title: { | ||
113 | text: "2023年收件情况 ", // 主标题名称 | ||
114 | |||
115 | textStyle: { | ||
116 | //主标题文本设置 | ||
117 | fontSize: 18, //大小 | ||
118 | }, | ||
119 | |||
120 | itemGap: 3, //主副标题间距 | ||
121 | x: "center", //主副标题的水平位置 | ||
122 | y: "top", //主副标题的垂直位置 | ||
123 | }, | ||
124 | legend: { | ||
125 | data: ["转诊量"], | ||
126 | top: "6%", | ||
127 | right: "4%", | ||
128 | textStyle: { | ||
129 | color: "#747474", | ||
130 | }, | ||
131 | }, | ||
132 | tooltip: { | ||
133 | // trigger: "item", //默认效果 | ||
134 | //柱状图加阴影 | ||
135 | trigger: "axis", | ||
136 | axisPointer: { | ||
137 | type: "shadow", | ||
138 | label: { | ||
139 | show: true, | ||
140 | }, | ||
141 | }, | ||
142 | }, | ||
143 | grid: { | ||
144 | top: "20%", | ||
145 | left: "2%", | ||
146 | right: "3%", | ||
147 | bottom: "20%", | ||
148 | containLabel: true, | ||
149 | }, | ||
150 | series: [ | ||
151 | { | ||
152 | data: [38, 42, 50, 157, 40, 45, 60, 140, 36, 47, 54, 143], | ||
153 | barWidth: 40, | ||
154 | type: "bar", | ||
155 | }, | ||
156 | ], | ||
157 | }; | ||
158 | }, | ||
159 | |||
160 | handleSearch() {}, | ||
161 | }, | ||
162 | }; | ||
163 | </script> | ||
164 | <style scoped lang="scss"> | ||
165 | /deep/.el-card__header { | ||
166 | padding: 8px 10px; | ||
167 | } | ||
168 | |||
169 | /deep/.el-card__body { | ||
170 | padding: 3px 10px 5px 10px; | ||
171 | overflow: hidden; | ||
172 | } | ||
173 | .yhjgba { | ||
174 | .el-col { | ||
175 | padding: 4px; | ||
176 | margin-right: 4px; | ||
177 | } | ||
178 | .inquire { | ||
179 | width: 100%; | ||
180 | height: 40px; | ||
181 | background-color: #f4f7fd; | ||
182 | /deep/ .el-form { | ||
183 | .el-form-item--small.el-form-item { | ||
184 | margin-bottom: 5px; | ||
185 | } | ||
186 | } | ||
187 | } | ||
188 | .concent { | ||
189 | width: 100%; | ||
190 | height: 300px; | ||
191 | display: flex; | ||
192 | } | ||
193 | } | ||
194 | </style> |
src/views/tjfx/bdcdjtjfx/components/zszl.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="djlx"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row :gutter="20"> | ||
11 | <el-col :span="12"> | ||
12 | <el-form-item label="缮证日期" class="width100"> | ||
13 | <el-date-picker | ||
14 | v-model="queryForm.sj" | ||
15 | type="daterange" | ||
16 | class="width100" | ||
17 | range-separator="至" | ||
18 | :clearable="false" | ||
19 | value-format="yyyy-MM-dd" | ||
20 | start-placeholder="开始日期" | ||
21 | end-placeholder="结束日期" | ||
22 | > | ||
23 | </el-date-picker> | ||
24 | </el-form-item> | ||
25 | </el-col> | ||
26 | <el-col :span="7"> | ||
27 | <el-form-item label="区域" class="width100"> | ||
28 | <el-select | ||
29 | v-model="queryForm.qy" | ||
30 | class="width100" | ||
31 | clearable | ||
32 | placeholder="请选择区域" | ||
33 | > | ||
34 | <el-option | ||
35 | v-for="item in dictData['A20']" | ||
36 | :key="item.dcode" | ||
37 | :label="item.dname" | ||
38 | :value="item.dcode" | ||
39 | > | ||
40 | </el-option> | ||
41 | </el-select> | ||
42 | </el-form-item> | ||
43 | </el-col> | ||
44 | <el-col :span="4" class="btnColRight"> | ||
45 | <el-form-item> | ||
46 | <el-button | ||
47 | type="primary" | ||
48 | native-type="submit" | ||
49 | @click="handleSearch" | ||
50 | >查询</el-button | ||
51 | > | ||
52 | </el-form-item> | ||
53 | </el-col> | ||
54 | </el-row> | ||
55 | </el-form> | ||
56 | </div> | ||
57 | <div class="concent"> | ||
58 | <div class="left"> | ||
59 | <el-table | ||
60 | height="187" | ||
61 | stripe | ||
62 | :data="tableList" | ||
63 | show-summary | ||
64 | size="mini" | ||
65 | border | ||
66 | header-cell-class-name="table-header-gray" | ||
67 | > | ||
68 | <el-table-column | ||
69 | label="证书种类" | ||
70 | prop="name" | ||
71 | minWidth="100" | ||
72 | align="center" /> | ||
73 | <el-table-column | ||
74 | label="收件数量" | ||
75 | prop="value" | ||
76 | minWidth="120" | ||
77 | align="center" | ||
78 | /></el-table> | ||
79 | </div> | ||
80 | <div class="right"> | ||
81 | <div ref="chart" style="width: 100%; height: 200px"></div> | ||
82 | </div> | ||
83 | </div> | ||
84 | </div> | ||
85 | </template> | ||
86 | <script> | ||
87 | import * as echarts from "echarts"; | ||
88 | import { mapGetters } from "vuex"; | ||
89 | import { getdatamonth } from "@/utils/util"; | ||
90 | export default { | ||
91 | components: {}, | ||
92 | computed: { | ||
93 | ...mapGetters(["dictData", "transfer"]), | ||
94 | }, | ||
95 | data() { | ||
96 | return { | ||
97 | queryForm: {}, | ||
98 | tableList: [ | ||
99 | { name: "单一版不动产权证书", value: "459" }, | ||
100 | { name: "不动产登记证明", value: "164" }, | ||
101 | |||
102 | ], | ||
103 | }; | ||
104 | }, | ||
105 | mounted() { | ||
106 | this.setdata(); | ||
107 | // 创建一个 ECharts 实例 | ||
108 | this.chart = echarts.init(this.$refs.chart); | ||
109 | // 在 ECharts 实例中配置图表 | ||
110 | this.chart.setOption(this.getOption()); | ||
111 | }, | ||
112 | methods: { | ||
113 | getOption() { | ||
114 | return { | ||
115 | title: { | ||
116 | text: "证书种类统计分析发证", | ||
117 | x: "center", | ||
118 | textStyle: { | ||
119 | //主标题文本设置 | ||
120 | fontSize: 12, //大小 | ||
121 | }, | ||
122 | }, | ||
123 | tooltip: { | ||
124 | trigger: "item", | ||
125 | formatter: "{a} <br/>{b} : {c}个 ({d}%)", | ||
126 | }, | ||
127 | grid: { | ||
128 | top: "4%", | ||
129 | left: "2%", | ||
130 | right: "3%", | ||
131 | bottom: "20%", | ||
132 | containLabel: true, | ||
133 | }, | ||
134 | series: [ | ||
135 | { | ||
136 | name: "统计分析图", | ||
137 | type: "pie", | ||
138 | radius: "70%", | ||
139 | center: ["50%", "100%"], | ||
140 | data: this.tableList, | ||
141 | itemStyle: { | ||
142 | emphasis: { | ||
143 | shadowBlur: 10, | ||
144 | shadowOffsetX: 0, | ||
145 | shadowColor: "rgba(0, 0, 0, 0.5)", | ||
146 | }, | ||
147 | }, | ||
148 | label: { | ||
149 | normal: { | ||
150 | formatter: "{c}/个", | ||
151 | position: "inside", //让文字显示在饼状图里面 | ||
152 | textStyle: { | ||
153 | fontSize: 10, | ||
154 | color: "#fff", | ||
155 | }, | ||
156 | }, | ||
157 | }, | ||
158 | center: ["50%", "50%"], // 这个属性调整图像的位置!!!!! | ||
159 | }, | ||
160 | ], | ||
161 | }; | ||
162 | }, | ||
163 | setdata() { | ||
164 | this.queryForm.sj = getdatamonth(); | ||
165 | console.log("this.queryForm", this.queryForm); | ||
166 | }, | ||
167 | handleSearch() { | ||
168 | console.log(" this.queryForm", this.queryForm); | ||
169 | }, | ||
170 | }, | ||
171 | }; | ||
172 | </script> | ||
173 | <style scoped lang="scss"> | ||
174 | /deep/.el-card__header { | ||
175 | padding: 8px 10px; | ||
176 | } | ||
177 | |||
178 | /deep/.el-card__body { | ||
179 | padding: 3px 10px 5px 10px; | ||
180 | overflow: hidden; | ||
181 | } | ||
182 | .yhjgba { | ||
183 | .el-col { | ||
184 | padding: 4px; | ||
185 | margin-right: 4px; | ||
186 | } | ||
187 | .inquire { | ||
188 | width: 100%; | ||
189 | height: 40px; | ||
190 | background-color: #f4f7fd; | ||
191 | /deep/ .el-form { | ||
192 | .el-form-item--small.el-form-item { | ||
193 | margin-bottom: 5px; | ||
194 | } | ||
195 | } | ||
196 | } | ||
197 | |||
198 | .concent { | ||
199 | width: 100%; | ||
200 | height: 300px; | ||
201 | display: flex; | ||
202 | //调整表头高度 | ||
203 | /deep/.el-table th { | ||
204 | height: 36px !important; | ||
205 | font-size: 14px; | ||
206 | color: #4a4a4a; | ||
207 | } | ||
208 | .left { | ||
209 | width: 70%; | ||
210 | height: 200px; | ||
211 | } | ||
212 | .right { | ||
213 | width: 30%; | ||
214 | height: 300px; | ||
215 | } | ||
216 | } | ||
217 | } | ||
218 | </style> |
src/views/tjfx/bdcdjtjfx/index.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="yhjgba"> | ||
8 | <el-row :gutter="8"> | ||
9 | <el-col :span="12"> | ||
10 | <el-card | ||
11 | shadow="hover" | ||
12 | :body-style="{ padding: '0' }" | ||
13 | style="height: 260px" | ||
14 | > | ||
15 | <div slot="header" class="flexst"> | ||
16 | <h5 class="title">根据登记类型统计分析收件</h5> | ||
17 | </div> | ||
18 | <djlx/> | ||
19 | </el-card> | ||
20 | </el-col> | ||
21 | <el-col :span="12"> | ||
22 | <el-card | ||
23 | shadow="hover" | ||
24 | :body-style="{ padding: '0' }" | ||
25 | style="height: 260px" | ||
26 | > | ||
27 | <div slot="header" class="flexst"> | ||
28 | <h5 class="title">根据证书种类统计分析发证情况</h5> | ||
29 | </div> | ||
30 | <zszl/> | ||
31 | </el-card> | ||
32 | </el-col> | ||
33 | </el-row> | ||
34 | <el-row :gutter="8" class="marginTop10"> | ||
35 | <el-col :span="12"> | ||
36 | <el-card | ||
37 | shadow="hover" | ||
38 | :body-style="{ padding: '0' }" | ||
39 | style="height: 260px" | ||
40 | > | ||
41 | <div slot="header" class="flexst"> | ||
42 | <h5 class="title">根据收件人统计分析收件</h5> | ||
43 | </div> | ||
44 | <psjr/> | ||
45 | </el-card> | ||
46 | </el-col> | ||
47 | |||
48 | <el-col :span="12"> | ||
49 | <el-card | ||
50 | shadow="hover" | ||
51 | :body-style="{ padding: '0' }" | ||
52 | style="height: 260px" | ||
53 | > | ||
54 | <div slot="header" class="flexst"> | ||
55 | <h5 class="title">收件日统计</h5> | ||
56 | </div> | ||
57 | <sjri/> | ||
58 | </el-card> | ||
59 | </el-col> | ||
60 | </el-row> | ||
61 | <el-row :gutter="8" class="marginTop10"> | ||
62 | <el-col :span="12"> | ||
63 | <el-card | ||
64 | shadow="hover" | ||
65 | :body-style="{ padding: '0' }" | ||
66 | style="height: 260px" | ||
67 | > | ||
68 | <div slot="header" class="flexst"> | ||
69 | <h5 class="title">根据区域统计分析收件</h5> | ||
70 | </div> | ||
71 | <qytj/> | ||
72 | </el-card> | ||
73 | </el-col> | ||
74 | <el-col :span="12"> | ||
75 | <el-card | ||
76 | shadow="hover" | ||
77 | :body-style="{ padding: '0' }" | ||
78 | style="height: 260px" | ||
79 | > | ||
80 | <div slot="header" class="flexst"> | ||
81 | <h5 class="title">收件月统计</h5> | ||
82 | </div> | ||
83 | <sjyue/> | ||
84 | </el-card> | ||
85 | </el-col> | ||
86 | </el-row> | ||
87 | </div> | ||
88 | </template> | ||
89 | <script> | ||
90 | import * as echarts from "echarts"; | ||
91 | import { mapGetters } from "vuex"; | ||
92 | import djlx from "./components/djlx.vue"; | ||
93 | import zszl from "./components/zszl.vue"; | ||
94 | import qytj from "./components/qytj.vue"; | ||
95 | import sjri from "./components/sjri.vue"; | ||
96 | import sjyue from "./components/sjyue.vue"; | ||
97 | import psjr from "./components/sjr.vue"; | ||
98 | |||
99 | export default { | ||
100 | components: {djlx,zszl,qytj,sjri,sjyue,psjr}, | ||
101 | computed: { | ||
102 | ...mapGetters(["dictData", "transfer"]), | ||
103 | }, | ||
104 | data() { | ||
105 | return { | ||
106 | queryForm: {}, | ||
107 | tableList: [{ name: "111" }, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23], | ||
108 | }; | ||
109 | }, | ||
110 | mounted() { | ||
111 | |||
112 | }, | ||
113 | methods: { | ||
114 | getOption() { | ||
115 | return { | ||
116 | |||
117 | |||
118 | }; | ||
119 | }, | ||
120 | |||
121 | handleSearch() {}, | ||
122 | }, | ||
123 | }; | ||
124 | </script> | ||
125 | <style scoped lang="scss"> | ||
126 | /deep/.el-card__header { | ||
127 | padding: 8px 10px; | ||
128 | } | ||
129 | |||
130 | /deep/.el-card__body { | ||
131 | padding: 3px 10px 5px 10px; | ||
132 | overflow: hidden; | ||
133 | } | ||
134 | .yhjgba { | ||
135 | .el-col { | ||
136 | padding: 4px; | ||
137 | } | ||
138 | .inquire { | ||
139 | width: 100%; | ||
140 | height: 40px; | ||
141 | border: 1px solid rgb(184, 217, 243); | ||
142 | // background-color: rebeccapurple; | ||
143 | } | ||
144 | .concent { | ||
145 | width: 100%; | ||
146 | height: 300px; | ||
147 | display: flex; | ||
148 | .left { | ||
149 | width: 70%; | ||
150 | height: 200px; | ||
151 | } | ||
152 | .right { | ||
153 | width: 30%; | ||
154 | height: 200px; | ||
155 | } | ||
156 | } | ||
157 | } | ||
158 | </style> |
src/views/tjfx/cstj/index.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="tjltj"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row> | ||
11 | <el-col :span="19"> | ||
12 | <div class="rowAc"> | ||
13 | <div | ||
14 | v-for="(item, index) in dateQuickSelection" | ||
15 | :key="index" | ||
16 | class="rowAc dateQuickItem" | ||
17 | @click="chooseDateQuick(index)" | ||
18 | > | ||
19 | {{ item.name }} | ||
20 | </div> | ||
21 | <el-date-picker | ||
22 | v-model="dateRange" | ||
23 | type="daterange" | ||
24 | value-format="yyyy-MM-dd" | ||
25 | end-placeholder="结束日期" | ||
26 | start-placeholder="开始日期" | ||
27 | :clearable="false" | ||
28 | range-separator="-" | ||
29 | class="dataRangePicker" | ||
30 | @change="chooseDateRange" | ||
31 | ></el-date-picker> | ||
32 | </div> | ||
33 | </el-col> | ||
34 | |||
35 | <el-col :span="5" class="btnColRight"> | ||
36 | <el-form-item> | ||
37 | <el-button | ||
38 | type="primary" | ||
39 | native-type="submit" | ||
40 | @click="handleSearch" | ||
41 | >查询</el-button | ||
42 | > | ||
43 | <el-button type="primary" native-type="submit" @click="derive" | ||
44 | >导出</el-button | ||
45 | > | ||
46 | </el-form-item> | ||
47 | </el-col> | ||
48 | </el-row> | ||
49 | </el-form> | ||
50 | </div> | ||
51 | <div ref="chart" style="width: 100%; height: 92%"></div> | ||
52 | </div> | ||
53 | </template> | ||
54 | <script> | ||
55 | import * as echarts from "echarts"; | ||
56 | export default { | ||
57 | components: {}, | ||
58 | data() { | ||
59 | return { | ||
60 | dateQuickSelection: [ | ||
61 | // 日期快捷选择列表 | ||
62 | { code: "1", name: "今日" }, | ||
63 | { code: "2", name: "昨日" }, | ||
64 | { code: "3", name: "本周" }, | ||
65 | { code: "4", name: "上周" }, | ||
66 | { code: "5", name: "本月" }, | ||
67 | { code: "6", name: "上月" }, | ||
68 | { code: "7", name: "今年" }, | ||
69 | { code: "8", name: "去年" }, | ||
70 | ], | ||
71 | chooseIndex: 0, // 日期快捷选择项索引 | ||
72 | dateRange: [], // 自定义列表 - 日期范围 | ||
73 | queryForm: {}, | ||
74 | data1: [12, 10, 15, 12, 15, 19, 15], | ||
75 | data2: [1, 2, 2, 3, 2, 3, 2], | ||
76 | data3: [], | ||
77 | xAxisData: [ | ||
78 | "赵龙龙", | ||
79 | "刘龙龙", | ||
80 | "田龙龙", | ||
81 | "任龙龙", | ||
82 | "孙龙龙", | ||
83 | "李龙龙", | ||
84 | "周龙龙", | ||
85 | ], | ||
86 | }; | ||
87 | }, | ||
88 | mounted() { | ||
89 | this.setdata(); | ||
90 | // 创建一个 ECharts 实例 | ||
91 | this.chart = echarts.init(this.$refs.chart); | ||
92 | // 在 ECharts 实例中配置图表 | ||
93 | this.chart.setOption(this.getOption()); | ||
94 | this.chooseDateQuick(0); | ||
95 | |||
96 | }, | ||
97 | methods: { | ||
98 | setdata() { | ||
99 | for (let i = 0; i < this.data1.length; i++) { | ||
100 | let sum = (this.data2[i] / this.data1[i]) * 100; | ||
101 | this.data3.push(Number(sum).toFixed(0)); | ||
102 | } | ||
103 | }, | ||
104 | // 导出 | ||
105 | derive() {}, | ||
106 | // 查询 | ||
107 | handleSearch() { | ||
108 | console.log("dateRange", this.dateRange); | ||
109 | }, | ||
110 | getOption() { | ||
111 | return { | ||
112 | title: { | ||
113 | text: "收件与超时统计情况 ", // 主标题名称 | ||
114 | |||
115 | textStyle: { | ||
116 | //主标题文本设置 | ||
117 | fontSize: 26, //大小 | ||
118 | }, | ||
119 | |||
120 | itemGap: 3, //主副标题间距 | ||
121 | x: "center", //主副标题的水平位置 | ||
122 | y: "top", //主副标题的垂直位置 | ||
123 | }, | ||
124 | tooltip: { | ||
125 | trigger: "item", | ||
126 | textStyle: { | ||
127 | fontSize: 14, | ||
128 | lineHeight: 22, | ||
129 | }, | ||
130 | // 如果需要自定义 tooltip样式,需要使用formatter | ||
131 | formatter: (params) => { | ||
132 | console.log("paramsssssssssssssssssss", params); | ||
133 | return `<div font-size: 14px;line-height: 24px> | ||
134 | ${params.seriesName} | ||
135 | <br> | ||
136 | <span font-size: 16px; font-weight: 600;"> ${params.name}: ${ | ||
137 | Number(params.value).toFixed(2) + "%" | ||
138 | } </span> | ||
139 | |||
140 | |||
141 | </div>`; | ||
142 | }, | ||
143 | }, | ||
144 | |||
145 | legend: { | ||
146 | data: ["办件数", "超时数", "超时时间"], | ||
147 | bottom: "3%", | ||
148 | itemWidth: 20, | ||
149 | itemHeight: 20, | ||
150 | //文字样式 | ||
151 | textStyle: { | ||
152 | fontSize: 17, //设置文字大小 | ||
153 | }, | ||
154 | }, | ||
155 | grid: [{ right: "3%", top: "10%", bottom: "15%", left: "3%" }], | ||
156 | color: ["#94ae0a", "#115fa6", "#a61120"], | ||
157 | xAxis: { | ||
158 | data: this.xAxisData, | ||
159 | axisLabel: { | ||
160 | // 轴文字 | ||
161 | fontSize: 18, | ||
162 | }, | ||
163 | }, | ||
164 | yAxis: { | ||
165 | axisLabel: { | ||
166 | // 轴文字 | ||
167 | fontSize: 18, | ||
168 | }, | ||
169 | }, | ||
170 | series: [ | ||
171 | { | ||
172 | name: "办件数", | ||
173 | type: "bar", | ||
174 | data: this.data1, | ||
175 | label: { | ||
176 | normal: { | ||
177 | show: true, | ||
178 | fontSize: 13, | ||
179 | position: "top", | ||
180 | }, | ||
181 | }, | ||
182 | }, | ||
183 | { | ||
184 | name: "超时数", | ||
185 | type: "bar", | ||
186 | data: this.data2, | ||
187 | label: { | ||
188 | normal: { | ||
189 | show: true, | ||
190 | fontSize: 13, | ||
191 | position: "top", | ||
192 | }, | ||
193 | }, | ||
194 | }, | ||
195 | { | ||
196 | name: "超时时间", | ||
197 | type: "bar", | ||
198 | data: this.data3, | ||
199 | label: { | ||
200 | normal: { | ||
201 | show: true, | ||
202 | fontSize: 13, | ||
203 | position: "top", | ||
204 | }, | ||
205 | }, | ||
206 | }, | ||
207 | ], | ||
208 | }; | ||
209 | }, | ||
210 | // 日期快捷选择事件 | ||
211 | chooseDateQuick(index) { | ||
212 | this.chooseIndex = index; | ||
213 | var tempCode = this.dateQuickSelection.find( | ||
214 | (ele) => this.chooseIndex === Number(ele.code) - 1 | ||
215 | ).code; | ||
216 | var tempDate = new Date(); | ||
217 | var year = tempDate.getFullYear(); | ||
218 | var month = tempDate.getMonth(); | ||
219 | var day = tempDate.getDate(); | ||
220 | var week = tempDate.getDay(); | ||
221 | this.dateRange = []; | ||
222 | if (tempCode === "1") { | ||
223 | // 今日 | ||
224 | this.dateRange.push( | ||
225 | this.formatDate(tempDate), | ||
226 | this.formatDate(tempDate) | ||
227 | ); | ||
228 | } else if (tempCode === "2") { | ||
229 | // 昨日 | ||
230 | this.dateRange.push( | ||
231 | this.jumpNumDay(tempDate, -1, "-"), | ||
232 | this.jumpNumDay(tempDate, -1, "-") | ||
233 | ); | ||
234 | } else if (tempCode === "3") { | ||
235 | // 本周 | ||
236 | this.dateRange.push( | ||
237 | this.formatDate(new Date(year, month, day - week + 1)), | ||
238 | this.formatDate(tempDate) | ||
239 | ); | ||
240 | } else if (tempCode === "4") { | ||
241 | // 上周 | ||
242 | this.dateRange.push( | ||
243 | this.formatDate(new Date(year, month, day - week - 6)), | ||
244 | this.formatDate(new Date(year, month, day - week)) | ||
245 | ); | ||
246 | } else if (tempCode === "5") { | ||
247 | // 本月 | ||
248 | this.dateRange.push( | ||
249 | this.formatDate(new Date(year, month, 1)), | ||
250 | this.formatDate(tempDate) | ||
251 | ); | ||
252 | } else if (tempCode === "6") { | ||
253 | // 上月 | ||
254 | this.dateRange.push( | ||
255 | this.formatDate(new Date(year, month - 1, 1)), | ||
256 | this.formatDate(new Date(year, month, 0)) | ||
257 | ); | ||
258 | } else if (tempCode === "7") { | ||
259 | // 今年 | ||
260 | this.dateRange.push( | ||
261 | this.formatDate(new Date(year, 0, 1)), | ||
262 | this.formatDate(tempDate) | ||
263 | ); | ||
264 | } else if (tempCode === "8") { | ||
265 | // 去年 | ||
266 | this.dateRange.push( | ||
267 | this.formatDate(new Date(year - 1, 0, 1)), | ||
268 | this.formatDate(new Date(year - 1, 11, 31)) | ||
269 | ); | ||
270 | } | ||
271 | }, | ||
272 | // 日期范围选择器事件 | ||
273 | chooseDateRange() { | ||
274 | this.chooseIndex = null; | ||
275 | }, | ||
276 | // 数字转换 | ||
277 | changeNum(num) { | ||
278 | if (num >= 10) { | ||
279 | return num; | ||
280 | } else { | ||
281 | return "0" + num; | ||
282 | } | ||
283 | }, | ||
284 | // 格式化日期 | ||
285 | formatDate(date) { | ||
286 | var year = date.getFullYear(); | ||
287 | var month = this.changeNum(date.getMonth() + 1); | ||
288 | var day = this.changeNum(date.getDate()); | ||
289 | return `${year}-${month}-${day}`; | ||
290 | }, | ||
291 | // 某日期向前/向后num天 | ||
292 | jumpNumDay(date, num, linkStr = '-') { | ||
293 | date = new Date(date.getTime() + (num * 24 * 60 * 60 * 1000)) | ||
294 | return date.getFullYear() + linkStr + this.changeNum(date.getMonth() + 1) + linkStr + this.changeNum(date.getDate()) | ||
295 | }, | ||
296 | }, | ||
297 | }; | ||
298 | </script> | ||
299 | <style scoped lang="scss"> | ||
300 | .tjltj { | ||
301 | width: 100%; | ||
302 | height: 100%; | ||
303 | .inquire { | ||
304 | width: 100%; | ||
305 | height: 40px; | ||
306 | padding-top: 3px; | ||
307 | background-color: #ffffff; | ||
308 | margin-bottom: 10px; | ||
309 | |||
310 | |||
311 | } | ||
312 | .rowAc { | ||
313 | margin-left: 10px; | ||
314 | display: flex; | ||
315 | justify-content: flex-start; | ||
316 | align-items: center; | ||
317 | } | ||
318 | .dateQuickItem { | ||
319 | padding: 1px 8px; | ||
320 | margin-right: 16px; | ||
321 | color: #3c4353; | ||
322 | font-size: 14px; | ||
323 | line-height: 22px; | ||
324 | font-weight: 400; | ||
325 | border: 1px solid #dcdee0; | ||
326 | border-radius: 16px; | ||
327 | background: #ffffff; | ||
328 | cursor: pointer; | ||
329 | box-sizing: border-box; | ||
330 | } | ||
331 | .dateQuickItem:hover, | ||
332 | .dateQuickItem.active { | ||
333 | color: #1b58f4; | ||
334 | border: 1px solid #1b58f4; | ||
335 | } | ||
336 | .dateQuickItem.disabled { | ||
337 | color: #c8c9cc; | ||
338 | border: 1px solid #dcdee0; | ||
339 | background: #f7f8f9; | ||
340 | cursor: not-allowed; // 禁止鼠标事件 | ||
341 | } | ||
342 | .dataRangePicker { | ||
343 | width: 240px !important; | ||
344 | height: 32px !important; | ||
345 | } | ||
346 | .dataRangePicker.el-date-editor .el-range-separator { | ||
347 | line-height: 24px; | ||
348 | } | ||
349 | .dataRangePicker.el-date-editor .el-range__icon { | ||
350 | margin-left: 0px; | ||
351 | line-height: 24px; | ||
352 | } | ||
353 | .dataRangePicker.el-date-editor .el-range-input { | ||
354 | width: 95px; | ||
355 | } | ||
356 | } | ||
357 | </style> |
src/views/tjfx/gzltj/index.vue
deleted
100644 → 0
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class='yhjgba'> | ||
8 | <el-empty description="正在开发"></el-empty> | ||
9 | </div> | ||
10 | </template> | ||
11 | <script> | ||
12 | |||
13 | export default { | ||
14 | components: {}, | ||
15 | data () { | ||
16 | return { | ||
17 | } | ||
18 | } | ||
19 | } | ||
20 | </script> | ||
21 | <style scoped lang='scss'> | ||
22 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/tjfx/tjltj/index.vue
0 → 100644
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="tjltj"> | ||
8 | <div class="inquire"> | ||
9 | <el-form :model="queryForm" ref="queryForm" label-width="100px"> | ||
10 | <el-row> | ||
11 | <el-col :span="19"> | ||
12 | <div class="rowAc"> | ||
13 | <div | ||
14 | v-for="(item, index) in dateQuickSelection" | ||
15 | :key="index" | ||
16 | class="rowAc dateQuickItem" | ||
17 | @click="chooseDateQuick(index)" | ||
18 | > | ||
19 | {{ item.name }} | ||
20 | </div> | ||
21 | <el-date-picker | ||
22 | v-model="dateRange" | ||
23 | type="daterange" | ||
24 | value-format="yyyy-MM-dd" | ||
25 | end-placeholder="结束日期" | ||
26 | start-placeholder="开始日期" | ||
27 | :clearable="false" | ||
28 | range-separator="-" | ||
29 | class="dataRangePicker" | ||
30 | @change="chooseDateRange" | ||
31 | ></el-date-picker> | ||
32 | </div> | ||
33 | </el-col> | ||
34 | |||
35 | <el-col :span="5" class="btnColRight"> | ||
36 | <el-form-item> | ||
37 | <el-button | ||
38 | type="primary" | ||
39 | native-type="submit" | ||
40 | @click="handleSearch" | ||
41 | >查询</el-button | ||
42 | > | ||
43 | <el-button type="primary" native-type="submit" @click="derive" | ||
44 | >导出</el-button | ||
45 | > | ||
46 | </el-form-item> | ||
47 | </el-col> | ||
48 | </el-row> | ||
49 | </el-form> | ||
50 | </div> | ||
51 | <div ref="chart" style="width: 100%; height: 92%"></div> | ||
52 | </div> | ||
53 | </template> | ||
54 | <script> | ||
55 | import * as echarts from "echarts"; | ||
56 | export default { | ||
57 | components: {}, | ||
58 | data() { | ||
59 | return { | ||
60 | dateQuickSelection: [ | ||
61 | // 日期快捷选择列表 | ||
62 | { code: "1", name: "今日" }, | ||
63 | { code: "2", name: "昨日" }, | ||
64 | { code: "3", name: "本周" }, | ||
65 | { code: "4", name: "上周" }, | ||
66 | { code: "5", name: "本月" }, | ||
67 | { code: "6", name: "上月" }, | ||
68 | { code: "7", name: "今年" }, | ||
69 | { code: "8", name: "去年" }, | ||
70 | ], | ||
71 | chooseIndex: 0, // 日期快捷选择项索引 | ||
72 | dateRange: [], // 自定义列表 - 日期范围 | ||
73 | queryForm: {}, | ||
74 | data1: [23, 45, 23, 11, 15, 19, 35], | ||
75 | data2: [1, 4, 1, 3, 2, 3, 4], | ||
76 | data3: [], | ||
77 | xAxisData: [ | ||
78 | "赵红红", | ||
79 | "刘红红", | ||
80 | "田红红", | ||
81 | "任红红", | ||
82 | "孙红红", | ||
83 | "李红红", | ||
84 | "周红红", | ||
85 | ], | ||
86 | }; | ||
87 | }, | ||
88 | mounted() { | ||
89 | this.setdata(); | ||
90 | // 创建一个 ECharts 实例 | ||
91 | this.chart = echarts.init(this.$refs.chart); | ||
92 | // 在 ECharts 实例中配置图表 | ||
93 | this.chart.setOption(this.getOption()); | ||
94 | this.chooseDateQuick(0); | ||
95 | |||
96 | }, | ||
97 | methods: { | ||
98 | setdata() { | ||
99 | for (let i = 0; i < this.data1.length; i++) { | ||
100 | let sum = (this.data2[i] / this.data1[i]) * 100; | ||
101 | this.data3.push(Number(sum).toFixed(0)); | ||
102 | } | ||
103 | }, | ||
104 | // 导出 | ||
105 | derive() {}, | ||
106 | // 查询 | ||
107 | handleSearch() { | ||
108 | console.log("dateRange", this.dateRange); | ||
109 | }, | ||
110 | getOption() { | ||
111 | return { | ||
112 | title: { | ||
113 | text: "收件与退件统计情况 ", // 主标题名称 | ||
114 | |||
115 | textStyle: { | ||
116 | //主标题文本设置 | ||
117 | fontSize: 26, //大小 | ||
118 | }, | ||
119 | |||
120 | itemGap: 3, //主副标题间距 | ||
121 | x: "center", //主副标题的水平位置 | ||
122 | y: "top", //主副标题的垂直位置 | ||
123 | }, | ||
124 | tooltip: { | ||
125 | trigger: "item", | ||
126 | textStyle: { | ||
127 | fontSize: 14, | ||
128 | lineHeight: 22, | ||
129 | }, | ||
130 | // 如果需要自定义 tooltip样式,需要使用formatter | ||
131 | formatter: (params) => { | ||
132 | return `<div font-size: 14px;line-height: 24px> | ||
133 | ${params.seriesName} | ||
134 | <br> | ||
135 | <span font-size: 16px; font-weight: 600;"> ${params.name}: ${ | ||
136 | Number(params.value).toFixed(2) + "%" | ||
137 | } </span> | ||
138 | |||
139 | |||
140 | </div>`; | ||
141 | }, | ||
142 | }, | ||
143 | |||
144 | legend: { | ||
145 | data: ["收件", "退件", "退件率"], | ||
146 | bottom: "3%", | ||
147 | itemWidth: 20, | ||
148 | itemHeight: 20, | ||
149 | //文字样式 | ||
150 | textStyle: { | ||
151 | fontSize: 17, //设置文字大小 | ||
152 | }, | ||
153 | }, | ||
154 | grid: [{ right: "3%", top: "10%", bottom: "15%", left: "3%" }], | ||
155 | color: ["#94ae0a", "#115fa6", "#a61120"], | ||
156 | xAxis: { | ||
157 | data: this.xAxisData, | ||
158 | axisLabel: { | ||
159 | // 轴文字 | ||
160 | fontSize: 18, | ||
161 | }, | ||
162 | }, | ||
163 | yAxis: { | ||
164 | axisLabel: { | ||
165 | // 轴文字 | ||
166 | fontSize: 18, | ||
167 | }, | ||
168 | }, | ||
169 | series: [ | ||
170 | { | ||
171 | name: "收件", | ||
172 | type: "bar", | ||
173 | data: this.data1, | ||
174 | label: { | ||
175 | normal: { | ||
176 | show: true, | ||
177 | fontSize: 13, | ||
178 | position: "top", | ||
179 | }, | ||
180 | }, | ||
181 | }, | ||
182 | { | ||
183 | name: "退件", | ||
184 | type: "bar", | ||
185 | data: this.data2, | ||
186 | label: { | ||
187 | normal: { | ||
188 | show: true, | ||
189 | fontSize: 13, | ||
190 | position: "top", | ||
191 | }, | ||
192 | }, | ||
193 | }, | ||
194 | { | ||
195 | name: "退件率", | ||
196 | type: "bar", | ||
197 | data: this.data3, | ||
198 | label: { | ||
199 | normal: { | ||
200 | show: true, | ||
201 | fontSize: 13, | ||
202 | position: "top", | ||
203 | }, | ||
204 | }, | ||
205 | }, | ||
206 | ], | ||
207 | }; | ||
208 | }, | ||
209 | // 日期快捷选择事件 | ||
210 | chooseDateQuick(index) { | ||
211 | this.chooseIndex = index; | ||
212 | var tempCode = this.dateQuickSelection.find( | ||
213 | (ele) => this.chooseIndex === Number(ele.code) - 1 | ||
214 | ).code; | ||
215 | var tempDate = new Date(); | ||
216 | var year = tempDate.getFullYear(); | ||
217 | var month = tempDate.getMonth(); | ||
218 | var day = tempDate.getDate(); | ||
219 | var week = tempDate.getDay(); | ||
220 | this.dateRange = []; | ||
221 | if (tempCode === "1") { | ||
222 | // 今日 | ||
223 | this.dateRange.push( | ||
224 | this.formatDate(tempDate), | ||
225 | this.formatDate(tempDate) | ||
226 | ); | ||
227 | } else if (tempCode === "2") { | ||
228 | // 昨日 | ||
229 | this.dateRange.push( | ||
230 | this.jumpNumDay(tempDate, -1, "-"), | ||
231 | this.jumpNumDay(tempDate, -1, "-") | ||
232 | ); | ||
233 | } else if (tempCode === "3") { | ||
234 | // 本周 | ||
235 | this.dateRange.push( | ||
236 | this.formatDate(new Date(year, month, day - week + 1)), | ||
237 | this.formatDate(tempDate) | ||
238 | ); | ||
239 | } else if (tempCode === "4") { | ||
240 | // 上周 | ||
241 | this.dateRange.push( | ||
242 | this.formatDate(new Date(year, month, day - week - 6)), | ||
243 | this.formatDate(new Date(year, month, day - week)) | ||
244 | ); | ||
245 | } else if (tempCode === "5") { | ||
246 | // 本月 | ||
247 | this.dateRange.push( | ||
248 | this.formatDate(new Date(year, month, 1)), | ||
249 | this.formatDate(tempDate) | ||
250 | ); | ||
251 | } else if (tempCode === "6") { | ||
252 | // 上月 | ||
253 | this.dateRange.push( | ||
254 | this.formatDate(new Date(year, month - 1, 1)), | ||
255 | this.formatDate(new Date(year, month, 0)) | ||
256 | ); | ||
257 | } else if (tempCode === "7") { | ||
258 | // 今年 | ||
259 | this.dateRange.push( | ||
260 | this.formatDate(new Date(year, 0, 1)), | ||
261 | this.formatDate(tempDate) | ||
262 | ); | ||
263 | } else if (tempCode === "8") { | ||
264 | // 去年 | ||
265 | this.dateRange.push( | ||
266 | this.formatDate(new Date(year - 1, 0, 1)), | ||
267 | this.formatDate(new Date(year - 1, 11, 31)) | ||
268 | ); | ||
269 | } | ||
270 | }, | ||
271 | // 日期范围选择器事件 | ||
272 | chooseDateRange() { | ||
273 | this.chooseIndex = null; | ||
274 | }, | ||
275 | // 数字转换 | ||
276 | changeNum(num) { | ||
277 | if (num >= 10) { | ||
278 | return num; | ||
279 | } else { | ||
280 | return "0" + num; | ||
281 | } | ||
282 | }, | ||
283 | // 格式化日期 | ||
284 | formatDate(date) { | ||
285 | var year = date.getFullYear(); | ||
286 | var month = this.changeNum(date.getMonth() + 1); | ||
287 | var day = this.changeNum(date.getDate()); | ||
288 | return `${year}-${month}-${day}`; | ||
289 | }, | ||
290 | // 某日期向前/向后num天 | ||
291 | jumpNumDay(date, num, linkStr = '-') { | ||
292 | date = new Date(date.getTime() + (num * 24 * 60 * 60 * 1000)) | ||
293 | return date.getFullYear() + linkStr + this.changeNum(date.getMonth() + 1) + linkStr + this.changeNum(date.getDate()) | ||
294 | }, | ||
295 | }, | ||
296 | }; | ||
297 | </script> | ||
298 | <style scoped lang="scss"> | ||
299 | .tjltj { | ||
300 | width: 100%; | ||
301 | height: 100%; | ||
302 | .inquire { | ||
303 | width: 100%; | ||
304 | height: 40px; | ||
305 | padding-top: 3px; | ||
306 | background-color: #ffffff; | ||
307 | margin-bottom: 10px; | ||
308 | } | ||
309 | .rowAc { | ||
310 | margin-left: 10px; | ||
311 | display: flex; | ||
312 | justify-content: flex-start; | ||
313 | align-items: center; | ||
314 | } | ||
315 | .dateQuickItem { | ||
316 | padding: 1px 8px; | ||
317 | margin-right: 16px; | ||
318 | color: #3c4353; | ||
319 | font-size: 14px; | ||
320 | line-height: 22px; | ||
321 | font-weight: 400; | ||
322 | border: 1px solid #dcdee0; | ||
323 | border-radius: 16px; | ||
324 | background: #ffffff; | ||
325 | cursor: pointer; | ||
326 | box-sizing: border-box; | ||
327 | } | ||
328 | .dateQuickItem:hover, | ||
329 | .dateQuickItem.active { | ||
330 | color: #1b58f4; | ||
331 | border: 1px solid #1b58f4; | ||
332 | } | ||
333 | .dateQuickItem.disabled { | ||
334 | color: #c8c9cc; | ||
335 | border: 1px solid #dcdee0; | ||
336 | background: #f7f8f9; | ||
337 | cursor: not-allowed; // 禁止鼠标事件 | ||
338 | } | ||
339 | .dataRangePicker { | ||
340 | width: 240px !important; | ||
341 | height: 32px !important; | ||
342 | } | ||
343 | .dataRangePicker.el-date-editor .el-range-separator { | ||
344 | line-height: 24px; | ||
345 | } | ||
346 | .dataRangePicker.el-date-editor .el-range__icon { | ||
347 | margin-left: 0px; | ||
348 | line-height: 24px; | ||
349 | } | ||
350 | .dataRangePicker.el-date-editor .el-range-input { | ||
351 | width: 95px; | ||
352 | } | ||
353 | } | ||
354 | </style> |
src/views/tjfx/ywltj/index.vue
deleted
100644 → 0
1 | <!-- | ||
2 | * @Description: | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-25 08:59:04 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class='yhjgba'> | ||
8 | <el-empty description="正在开发"></el-empty> | ||
9 | </div> | ||
10 | </template> | ||
11 | <script> | ||
12 | |||
13 | export default { | ||
14 | components: {}, | ||
15 | data () { | ||
16 | return { | ||
17 | } | ||
18 | } | ||
19 | } | ||
20 | </script> | ||
21 | <style scoped lang='scss'> | ||
22 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -12,148 +12,150 @@ | ... | @@ -12,148 +12,150 @@ |
12 | </el-tab-pane> | 12 | </el-tab-pane> |
13 | </el-tabs> | 13 | </el-tabs> |
14 | <el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty> | 14 | <el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty> |
15 | <div style="height:540px"> | 15 | <div v-else> |
16 | <el-form class="zs" :model="bdcqz" v-if="this.bdcqz.bdcqzlx==1" ref="ruleForm" label-width="100px"> | 16 | <div style="height:540px"> |
17 | <el-row> | 17 | <el-form class="zs" :model="bdcqz" v-if="this.bdcqz.bdcqzlx==1" ref="ruleForm" label-width="100px"> |
18 | <el-col :span="24"> | 18 | <el-row> |
19 | <el-form-item label="权利人"> | 19 | <el-col :span="24"> |
20 | <el-input v-model="bdcqz.qlr"></el-input> | 20 | <el-form-item label="权利人"> |
21 | </el-form-item> | 21 | <el-input v-model="bdcqz.qlr"></el-input> |
22 | </el-col> | 22 | </el-form-item> |
23 | </el-row> | 23 | </el-col> |
24 | <el-row> | 24 | </el-row> |
25 | <el-col :span="24"> | 25 | <el-row> |
26 | <el-form-item label="共有情况"> | 26 | <el-col :span="24"> |
27 | <el-select v-model="bdcqz.gyqk" class="width100" placeholder="请选择"> | 27 | <el-form-item label="共有情况"> |
28 | <el-option | 28 | <el-select v-model="bdcqz.gyqk" class="width100" placeholder="请选择"> |
29 | v-for="item in gyqkList" | 29 | <el-option |
30 | :key="item.dcode" | 30 | v-for="item in gyqkList" |
31 | :label="item.dname" | 31 | :key="item.dcode" |
32 | :value="item.dcode"> | 32 | :label="item.dname" |
33 | </el-option> | 33 | :value="item.dcode"> |
34 | </el-select> | 34 | </el-option> |
35 | </el-form-item> | 35 | </el-select> |
36 | </el-col> | 36 | </el-form-item> |
37 | </el-row> | 37 | </el-col> |
38 | <el-row> | 38 | </el-row> |
39 | <el-col :span="24"> | 39 | <el-row> |
40 | <el-form-item label="坐落"> | 40 | <el-col :span="24"> |
41 | <el-input v-model="bdcqz.zl"></el-input> | 41 | <el-form-item label="坐落"> |
42 | </el-form-item> | 42 | <el-input v-model="bdcqz.zl"></el-input> |
43 | </el-col> | 43 | </el-form-item> |
44 | </el-row> | 44 | </el-col> |
45 | <el-row> | 45 | </el-row> |
46 | <el-col :span="24"> | 46 | <el-row> |
47 | <el-form-item label="不动产单元号"> | 47 | <el-col :span="24"> |
48 | <el-input v-model="bdcqz.bdcdyh"></el-input> | 48 | <el-form-item label="不动产单元号"> |
49 | </el-form-item> | 49 | <el-input v-model="bdcqz.bdcdyh"></el-input> |
50 | </el-col> | 50 | </el-form-item> |
51 | </el-row> | 51 | </el-col> |
52 | <el-row> | 52 | </el-row> |
53 | <el-col :span="24"> | 53 | <el-row> |
54 | <el-form-item label="权利类型"> | 54 | <el-col :span="24"> |
55 | <el-input v-model="bdcqz.qllx"></el-input> | 55 | <el-form-item label="权利类型"> |
56 | </el-form-item> | 56 | <el-input v-model="bdcqz.qllx"></el-input> |
57 | </el-col> | 57 | </el-form-item> |
58 | </el-row> | 58 | </el-col> |
59 | <el-row> | 59 | </el-row> |
60 | <el-col :span="24"> | 60 | <el-row> |
61 | <el-form-item label="权利性质 "> | 61 | <el-col :span="24"> |
62 | <el-input v-model="bdcqz.qlxz"></el-input> | 62 | <el-form-item label="权利性质 "> |
63 | </el-form-item> | 63 | <el-input v-model="bdcqz.qlxz"></el-input> |
64 | </el-col> | 64 | </el-form-item> |
65 | </el-row> | 65 | </el-col> |
66 | <el-row> | 66 | </el-row> |
67 | <el-col :span="24"> | 67 | <el-row> |
68 | <el-form-item label="用途"> | 68 | <el-col :span="24"> |
69 | <el-input v-model="bdcqz.yt"></el-input> | 69 | <el-form-item label="用途"> |
70 | </el-form-item> | 70 | <el-input v-model="bdcqz.yt"></el-input> |
71 | </el-col> | 71 | </el-form-item> |
72 | </el-row> | 72 | </el-col> |
73 | <el-row> | 73 | </el-row> |
74 | <el-col :span="24"> | 74 | <el-row> |
75 | <el-form-item label="面积"> | 75 | <el-col :span="24"> |
76 | <el-input v-model="bdcqz.mj"></el-input> | 76 | <el-form-item label="面积"> |
77 | </el-form-item> | 77 | <el-input v-model="bdcqz.mj"></el-input> |
78 | </el-col> | 78 | </el-form-item> |
79 | </el-row> | 79 | </el-col> |
80 | <el-row> | 80 | </el-row> |
81 | <el-col :span="24"> | 81 | <el-row> |
82 | <el-form-item label="使用期限 "> | 82 | <el-col :span="24"> |
83 | <el-input v-model="bdcqz.syqx"></el-input> | 83 | <el-form-item label="使用期限 "> |
84 | </el-form-item> | 84 | <el-input v-model="bdcqz.syqx"></el-input> |
85 | </el-col> | 85 | </el-form-item> |
86 | </el-row> | 86 | </el-col> |
87 | <el-row> | 87 | </el-row> |
88 | <el-col :span="24"> | 88 | <el-row> |
89 | <el-form-item label="权利其他状况"> | 89 | <el-col :span="24"> |
90 | <el-input v-model="bdcqz.qlqtzk" :rows="4" type="textarea"></el-input> | 90 | <el-form-item label="权利其他状况"> |
91 | </el-form-item> | 91 | <el-input v-model="bdcqz.qlqtzk" :rows="4" type="textarea"></el-input> |
92 | </el-col> | 92 | </el-form-item> |
93 | </el-row> | 93 | </el-col> |
94 | <el-row> | 94 | </el-row> |
95 | <el-col :span="24"> | 95 | <el-row> |
96 | <el-form-item label="附记"> | 96 | <el-col :span="24"> |
97 | <el-input v-model="bdcqz.fj" :rows="4" type="textarea"></el-input> | 97 | <el-form-item label="附记"> |
98 | </el-form-item> | 98 | <el-input v-model="bdcqz.fj" :rows="4" type="textarea"></el-input> |
99 | </el-col> | 99 | </el-form-item> |
100 | </el-row> | 100 | </el-col> |
101 | </el-form> | 101 | </el-row> |
102 | <el-form :model="bdcqz" class="zm" v-else ref="ruleForm" label-width="110px"> | 102 | </el-form> |
103 | <el-row> | 103 | <el-form :model="bdcqz" class="zm" v-else ref="ruleForm" label-width="110px"> |
104 | <el-col :span="24"> | 104 | <el-row> |
105 | <el-form-item label="证明权利或事项"> | 105 | <el-col :span="24"> |
106 | <el-input v-model="bdcqz.zmqlhsx"></el-input> | 106 | <el-form-item label="证明权利或事项"> |
107 | </el-form-item> | 107 | <el-input v-model="bdcqz.zmqlhsx"></el-input> |
108 | </el-col> | 108 | </el-form-item> |
109 | </el-row> | 109 | </el-col> |
110 | <el-row> | 110 | </el-row> |
111 | <el-col :span="24"> | 111 | <el-row> |
112 | <el-form-item label="权利人(申请人)"> | 112 | <el-col :span="24"> |
113 | <el-input v-model="bdcqz.qlr"></el-input> | 113 | <el-form-item label="权利人(申请人)"> |
114 | </el-form-item> | 114 | <el-input v-model="bdcqz.qlr"></el-input> |
115 | </el-col> | 115 | </el-form-item> |
116 | </el-row> | 116 | </el-col> |
117 | <el-row> | 117 | </el-row> |
118 | <el-col :span="24"> | 118 | <el-row> |
119 | <el-form-item label="义务人"> | 119 | <el-col :span="24"> |
120 | <el-input v-model="bdcqz.ywr"></el-input> | 120 | <el-form-item label="义务人"> |
121 | </el-form-item> | 121 | <el-input v-model="bdcqz.ywr"></el-input> |
122 | </el-col> | 122 | </el-form-item> |
123 | </el-row> | 123 | </el-col> |
124 | <el-row> | 124 | </el-row> |
125 | <el-col :span="24"> | 125 | <el-row> |
126 | <el-form-item label="坐落"> | 126 | <el-col :span="24"> |
127 | <el-input v-model="bdcqz.zl"></el-input> | 127 | <el-form-item label="坐落"> |
128 | </el-form-item> | 128 | <el-input v-model="bdcqz.zl"></el-input> |
129 | </el-col> | 129 | </el-form-item> |
130 | </el-row> | 130 | </el-col> |
131 | <el-row> | 131 | </el-row> |
132 | <el-col :span="24"> | 132 | <el-row> |
133 | <el-form-item label="不动产单元号"> | 133 | <el-col :span="24"> |
134 | <el-input v-model="bdcqz.bdcdyh"></el-input> | 134 | <el-form-item label="不动产单元号"> |
135 | </el-form-item> | 135 | <el-input v-model="bdcqz.bdcdyh"></el-input> |
136 | </el-col> | 136 | </el-form-item> |
137 | </el-row> | 137 | </el-col> |
138 | <el-row> | 138 | </el-row> |
139 | <el-col :span="24"> | 139 | <el-row> |
140 | <el-form-item label="其他状况"> | 140 | <el-col :span="24"> |
141 | <el-input v-model="bdcqz.qlqtzk" :rows="6" type="textarea"></el-input> | 141 | <el-form-item label="其他状况"> |
142 | </el-form-item> | 142 | <el-input v-model="bdcqz.qlqtzk" :rows="6" type="textarea"></el-input> |
143 | </el-col> | 143 | </el-form-item> |
144 | </el-row> | 144 | </el-col> |
145 | <el-row> | 145 | </el-row> |
146 | <el-col :span="24"> | 146 | <el-row> |
147 | <el-form-item label="附记"> | 147 | <el-col :span="24"> |
148 | <el-input v-model="bdcqz.fj" :rows="6" type="textarea"></el-input> | 148 | <el-form-item label="附记"> |
149 | </el-form-item> | 149 | <el-input v-model="bdcqz.fj" :rows="6" type="textarea"></el-input> |
150 | </el-col> | 150 | </el-form-item> |
151 | </el-row> | 151 | </el-col> |
152 | </el-form> | 152 | </el-row> |
153 | </div> | 153 | </el-form> |
154 | <div style="text-align:center"> | 154 | </div> |
155 | <el-button @click="$popupCacel">取消</el-button> | 155 | <div style="text-align:center"> |
156 | <el-button type="primary" @click="handleSubmit">保存</el-button> | 156 | <el-button @click="$popupCacel">取消</el-button> |
157 | <el-button type="primary" @click="handleSubmit">保存</el-button> | ||
158 | </div> | ||
157 | </div> | 159 | </div> |
158 | </div> | 160 | </div> |
159 | </template> | 161 | </template> | ... | ... |
... | @@ -10,7 +10,8 @@ | ... | @@ -10,7 +10,8 @@ |
10 | v-show="!isLoading" | 10 | v-show="!isLoading" |
11 | ref="processCanvas" | 11 | ref="processCanvas" |
12 | class="process-canvas" | 12 | class="process-canvas" |
13 | style="height: 280px" /> | 13 | style="height: 280px" |
14 | /> | ||
14 | <!-- 自定义箭头样式,用于成功状态下流程连线箭头 --> | 15 | <!-- 自定义箭头样式,用于成功状态下流程连线箭头 --> |
15 | <defs ref="customSuccessDefs"> | 16 | <defs ref="customSuccessDefs"> |
16 | <marker | 17 | <marker |
... | @@ -20,7 +21,8 @@ | ... | @@ -20,7 +21,8 @@ |
20 | ref-y="10" | 21 | ref-y="10" |
21 | marker-width="10" | 22 | marker-width="10" |
22 | marker-height="10" | 23 | marker-height="10" |
23 | orient="auto"> | 24 | orient="auto" |
25 | > | ||
24 | <path | 26 | <path |
25 | class="success-arrow" | 27 | class="success-arrow" |
26 | d="M 1 5 L 11 10 L 1 15 Z" | 28 | d="M 1 5 L 11 10 L 1 15 Z" |
... | @@ -28,7 +30,8 @@ | ... | @@ -28,7 +30,8 @@ |
28 | stroke-width: 1px; | 30 | stroke-width: 1px; |
29 | stroke-linecap: round; | 31 | stroke-linecap: round; |
30 | stroke-dasharray: 10000, 1; | 32 | stroke-dasharray: 10000, 1; |
31 | " /> | 33 | " |
34 | /> | ||
32 | </marker> | 35 | </marker> |
33 | <marker | 36 | <marker |
34 | id="conditional-flow-marker-white-success" | 37 | id="conditional-flow-marker-white-success" |
... | @@ -37,7 +40,8 @@ | ... | @@ -37,7 +40,8 @@ |
37 | ref-y="10" | 40 | ref-y="10" |
38 | marker-width="10" | 41 | marker-width="10" |
39 | marker-height="10" | 42 | marker-height="10" |
40 | orient="auto"> | 43 | orient="auto" |
44 | > | ||
41 | <path | 45 | <path |
42 | class="success-conditional" | 46 | class="success-conditional" |
43 | d="M 0 10 L 8 6 L 16 10 L 8 14 Z" | 47 | d="M 0 10 L 8 6 L 16 10 L 8 14 Z" |
... | @@ -45,7 +49,8 @@ | ... | @@ -45,7 +49,8 @@ |
45 | stroke-width: 1px; | 49 | stroke-width: 1px; |
46 | stroke-linecap: round; | 50 | stroke-linecap: round; |
47 | stroke-dasharray: 10000, 1; | 51 | stroke-dasharray: 10000, 1; |
48 | " /> | 52 | " |
53 | /> | ||
49 | </marker> | 54 | </marker> |
50 | </defs> | 55 | </defs> |
51 | <!-- 自定义箭头样式,用于失败状态下流程连线箭头 --> | 56 | <!-- 自定义箭头样式,用于失败状态下流程连线箭头 --> |
... | @@ -57,7 +62,8 @@ | ... | @@ -57,7 +62,8 @@ |
57 | ref-y="10" | 62 | ref-y="10" |
58 | marker-width="10" | 63 | marker-width="10" |
59 | marker-height="10" | 64 | marker-height="10" |
60 | orient="auto"> | 65 | orient="auto" |
66 | > | ||
61 | <path | 67 | <path |
62 | class="fail-arrow" | 68 | class="fail-arrow" |
63 | d="M 1 5 L 11 10 L 1 15 Z" | 69 | d="M 1 5 L 11 10 L 1 15 Z" |
... | @@ -65,7 +71,8 @@ | ... | @@ -65,7 +71,8 @@ |
65 | stroke-width: 1px; | 71 | stroke-width: 1px; |
66 | stroke-linecap: round; | 72 | stroke-linecap: round; |
67 | stroke-dasharray: 10000, 1; | 73 | stroke-dasharray: 10000, 1; |
68 | " /> | 74 | " |
75 | /> | ||
69 | </marker> | 76 | </marker> |
70 | <marker | 77 | <marker |
71 | id="conditional-flow-marker-white-fail" | 78 | id="conditional-flow-marker-white-fail" |
... | @@ -74,7 +81,8 @@ | ... | @@ -74,7 +81,8 @@ |
74 | ref-y="10" | 81 | ref-y="10" |
75 | marker-width="10" | 82 | marker-width="10" |
76 | marker-height="10" | 83 | marker-height="10" |
77 | orient="auto"> | 84 | orient="auto" |
85 | > | ||
78 | <path | 86 | <path |
79 | class="fail-conditional" | 87 | class="fail-conditional" |
80 | d="M 0 10 L 8 6 L 16 10 L 8 14 Z" | 88 | d="M 0 10 L 8 6 L 16 10 L 8 14 Z" |
... | @@ -82,7 +90,8 @@ | ... | @@ -82,7 +90,8 @@ |
82 | stroke-width: 1px; | 90 | stroke-width: 1px; |
83 | stroke-linecap: round; | 91 | stroke-linecap: round; |
84 | stroke-dasharray: 10000, 1; | 92 | stroke-dasharray: 10000, 1; |
85 | " /> | 93 | " |
94 | /> | ||
86 | </marker> | 95 | </marker> |
87 | </defs> | 96 | </defs> |
88 | 97 | ||
... | @@ -95,7 +104,8 @@ | ... | @@ -95,7 +104,8 @@ |
95 | :plain="true" | 104 | :plain="true" |
96 | :disabled="defaultZoom <= 0.3" | 105 | :disabled="defaultZoom <= 0.3" |
97 | icon="el-icon-zoom-out" | 106 | icon="el-icon-zoom-out" |
98 | @click="processZoomOut()" /> | 107 | @click="processZoomOut()" |
108 | /> | ||
99 | <el-button size="medium" type="default" style="width: 90px">{{ | 109 | <el-button size="medium" type="default" style="width: 90px">{{ |
100 | Math.floor(this.defaultZoom * 10 * 10) + "%" | 110 | Math.floor(this.defaultZoom * 10 * 10) + "%" |
101 | }}</el-button> | 111 | }}</el-button> |
... | @@ -105,12 +115,14 @@ | ... | @@ -105,12 +115,14 @@ |
105 | :plain="true" | 115 | :plain="true" |
106 | :disabled="defaultZoom >= 3.9" | 116 | :disabled="defaultZoom >= 3.9" |
107 | icon="el-icon-zoom-in" | 117 | icon="el-icon-zoom-in" |
108 | @click="processZoomIn()" /> | 118 | @click="processZoomIn()" |
119 | /> | ||
109 | <el-button | 120 | <el-button |
110 | size="medium" | 121 | size="medium" |
111 | type="default" | 122 | type="default" |
112 | icon="el-icon-c-scale-to-original" | 123 | icon="el-icon-c-scale-to-original" |
113 | @click="processReZoom()" /> | 124 | @click="processReZoom()" |
125 | /> | ||
114 | <slot /> | 126 | <slot /> |
115 | </el-button-group> | 127 | </el-button-group> |
116 | </el-row> | 128 | </el-row> |
... | @@ -123,55 +135,51 @@ | ... | @@ -123,55 +135,51 @@ |
123 | v-for="item in selectOptions" | 135 | v-for="item in selectOptions" |
124 | :key="item.value" | 136 | :key="item.value" |
125 | :label="item.label" | 137 | :label="item.label" |
126 | :value="item.value"> | 138 | :value="item.value" |
139 | > | ||
127 | </el-option> | 140 | </el-option> |
128 | </el-select> | 141 | </el-select> |
142 | <div class="cutline"> | ||
143 | <p class="cutlines">图例</p> | ||
144 | <div v-for="item in cutlinelist" :key="item.value" class="concent" :style="{ backgroundColor: item.backgroundColor,borderColor:item.color }"> | ||
145 | {{item.value}} | ||
146 | </div> | ||
147 | </div> | ||
129 | <el-table | 148 | <el-table |
130 | height="190" | 149 | height="190" |
131 | :data="taskCommentList" | 150 | :data="taskCommentList" |
132 | size="mini" | 151 | size="mini" |
133 | border | 152 | border |
134 | header-cell-class-name="table-header-gray"> | 153 | header-cell-class-name="table-header-gray" |
154 | > | ||
135 | <el-table-column | 155 | <el-table-column |
136 | label="序号" | 156 | label="序号" |
137 | header-align="center" | 157 | header-align="center" |
138 | align="center" | 158 | align="center" |
139 | type="index" | 159 | type="index" |
140 | width="55px" /> | 160 | width="55px" |
141 | <el-table-column label="流程状态" header-align="center" align="center"> | 161 | /> |
142 | <template slot-scope="scope"> | ||
143 | <div v-if="scope.row.endTime">已完结</div> | ||
144 | <div v-else>正在办理</div> | ||
145 | </template> | ||
146 | </el-table-column> | ||
147 | <el-table-column | ||
148 | label="环节状态" | ||
149 | prop="name" | ||
150 | minWidth="100" | ||
151 | align="center" /> | ||
152 | <el-table-column | ||
153 | label="办理人" | ||
154 | prop="agent" | ||
155 | minWidth="120" | ||
156 | align="center" /> | ||
157 | <el-table-column | 162 | <el-table-column |
158 | label="转入时间" | 163 | label="转入时间" |
159 | prop="createTime" | 164 | prop="createTime" |
160 | :formatter="formatDate" | 165 | :formatter="formatDate" |
161 | width="160" | 166 | width="160" |
162 | align="center" /> | 167 | align="center" |
168 | /> | ||
163 | <el-table-column | 169 | <el-table-column |
164 | label="认领时间" | 170 | label="认领时间" |
165 | prop="claimTime" | 171 | prop="claimTime" |
166 | :formatter="formatDate" | 172 | :formatter="formatDate" |
167 | width="160" | 173 | width="160" |
168 | align="center" /> | 174 | align="center" |
175 | /> | ||
169 | <el-table-column | 176 | <el-table-column |
170 | label="转出时间" | 177 | label="转出时间" |
171 | prop="endTime" | 178 | prop="endTime" |
172 | :formatter="formatDate" | 179 | :formatter="formatDate" |
173 | width="160" | 180 | width="160" |
174 | align="center" /> | 181 | align="center" |
182 | /> | ||
175 | <el-table-column label="操作方式" prop="controls" align="center" /> | 183 | <el-table-column label="操作方式" prop="controls" align="center" /> |
176 | <el-table-column label="意见" prop="idea" align="center" /> | 184 | <el-table-column label="意见" prop="idea" align="center" /> |
177 | </el-table> | 185 | </el-table> |
... | @@ -179,400 +187,452 @@ | ... | @@ -179,400 +187,452 @@ |
179 | </div> | 187 | </div> |
180 | </template> | 188 | </template> |
181 | <script> | 189 | <script> |
182 | import "@/styles/package/theme/index.scss"; | 190 | import "@/styles/package/theme/index.scss"; |
183 | import BpmnViewer from "bpmn-js/lib/Viewer"; | 191 | import BpmnViewer from "bpmn-js/lib/Viewer"; |
184 | import MoveCanvasModule from "diagram-js/lib/navigation/movecanvas"; | 192 | import MoveCanvasModule from "diagram-js/lib/navigation/movecanvas"; |
185 | export default { | 193 | export default { |
186 | props: { | 194 | props: { |
187 | formData: { | 195 | formData: { |
188 | type: Object, | 196 | type: Object, |
189 | default: {}, | 197 | default: {}, |
190 | }, | ||
191 | }, | 198 | }, |
192 | data () { | 199 | }, |
193 | return { | 200 | data() { |
194 | dlgTitle: undefined, | 201 | return { |
195 | defaultZoom: 1, | 202 | dlgTitle: undefined, |
196 | // 是否正在加载流程图 | 203 | defaultZoom: 1, |
197 | isLoading: true, | 204 | // 是否正在加载流程图 |
198 | bpmnViewer: undefined, | 205 | isLoading: true, |
199 | // 已完成流程元素 | 206 | bpmnViewer: undefined, |
200 | processNodeInfo: undefined, | 207 | // 已完成流程元素 |
201 | // 当前任务id | 208 | processNodeInfo: undefined, |
202 | selectTaskId: undefined, | 209 | // 当前任务id |
203 | // 任务节点审批记录 | 210 | selectTaskId: undefined, |
204 | taskList: [], | 211 | // 任务节点审批记录 |
205 | taskCommentList: [], | 212 | taskList: [], |
206 | // 已完成任务悬浮延迟Timer | 213 | taskCommentList: [], |
207 | hoverTimer: null, | 214 | // 已完成任务悬浮延迟Timer |
208 | // 下拉 | 215 | hoverTimer: null, |
209 | selectValue: "", | 216 | // 下拉 |
210 | selectOptions: [], | 217 | selectValue: "", |
211 | }; | 218 | selectOptions: [], |
219 | cutlinelist:[ | ||
220 | { | ||
221 | value: "完成节点", | ||
222 | color: "#4eb819", | ||
223 | backgroundColor :"rgba(78, 184, 25,0.2)" | ||
224 | }, | ||
225 | { | ||
226 | value: "当前节点", | ||
227 | color: "#409EFF", | ||
228 | backgroundColor :"rgba(64, 158, 255,0.2)" | ||
229 | }, | ||
230 | { | ||
231 | value: "挂起节点", | ||
232 | color: "#E6A23C", | ||
233 | backgroundColor :"rgba(230, 162, 60,0.2)" | ||
234 | }, | ||
235 | { | ||
236 | value: "阻塞节点", | ||
237 | color: "#F56C6C", | ||
238 | backgroundColor :"rgb(245, 108, 108,0.2)" | ||
239 | }, | ||
240 | { | ||
241 | value: "未激活节点", | ||
242 | color: "#000000", | ||
243 | backgroundColor :"none", | ||
244 | } | ||
245 | ], | ||
246 | }; | ||
247 | }, | ||
248 | created() { | ||
249 | this.$nextTick(() => { | ||
250 | // 获取流程记录 | ||
251 | this.getCommentList(); | ||
252 | this.setProcessStatus(this.formData.finishedInfo); | ||
253 | this.importXML(this.formData.xml); | ||
254 | }); | ||
255 | }, | ||
256 | destroyed() { | ||
257 | this.clearViewer(); | ||
258 | }, | ||
259 | methods: { | ||
260 | /** | ||
261 | * @description: formatDate | ||
262 | * @param {*} row | ||
263 | * @param {*} column | ||
264 | * @author: renchao | ||
265 | */ | ||
266 | formatDate(row, column) { | ||
267 | let data = row[column.property]; | ||
268 | if (data == null) { | ||
269 | return null; | ||
270 | } | ||
271 | let dt = new Date(data); | ||
272 | return ( | ||
273 | dt.getFullYear() + | ||
274 | "-" + | ||
275 | (dt.getMonth() + 1) + | ||
276 | "-" + | ||
277 | dt.getDate() + | ||
278 | " " + | ||
279 | dt.getHours() + | ||
280 | ":" + | ||
281 | dt.getMinutes() + | ||
282 | ":" + | ||
283 | dt.getSeconds() | ||
284 | ); | ||
212 | }, | 285 | }, |
213 | created () { | 286 | /** |
214 | this.$nextTick(() => { | 287 | * @description: processReZoom |
215 | // 获取流程记录 | 288 | * @author: renchao |
216 | this.getCommentList(); | 289 | */ |
217 | this.setProcessStatus(this.formData.finishedInfo); | 290 | processReZoom() { |
218 | this.importXML(this.formData.xml); | 291 | this.defaultZoom = 1; |
219 | }); | 292 | this.bpmnViewer.get("canvas").zoom("fit-viewport", "auto"); |
220 | }, | 293 | }, |
221 | destroyed () { | 294 | /** |
222 | this.clearViewer(); | 295 | * @description: processZoomIn |
296 | * @param {*} zoomStep | ||
297 | * @author: renchao | ||
298 | */ | ||
299 | processZoomIn(zoomStep = 0.1) { | ||
300 | const newZoom = Math.floor(this.defaultZoom * 100 + zoomStep * 100) / 100; | ||
301 | if (newZoom > 4) { | ||
302 | throw new Error( | ||
303 | "[Process Designer Warn ]: The zoom ratio cannot be greater than 4" | ||
304 | ); | ||
305 | } | ||
306 | this.defaultZoom = newZoom; | ||
307 | this.bpmnViewer.get("canvas").zoom(this.defaultZoom); | ||
223 | }, | 308 | }, |
224 | methods: { | 309 | /** |
225 | /** | 310 | * @description: processZoomOut |
226 | * @description: formatDate | 311 | * @param {*} zoomStep |
227 | * @param {*} row | 312 | * @author: renchao |
228 | * @param {*} column | 313 | */ |
229 | * @author: renchao | 314 | processZoomOut(zoomStep = 0.1) { |
230 | */ | 315 | const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100; |
231 | formatDate (row, column) { | 316 | if (newZoom < 0.2) { |
232 | let data = row[column.property]; | 317 | throw new Error( |
233 | if (data == null) { | 318 | "[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2" |
234 | return null; | ||
235 | } | ||
236 | let dt = new Date(data); | ||
237 | return ( | ||
238 | dt.getFullYear() + | ||
239 | "-" + | ||
240 | (dt.getMonth() + 1) + | ||
241 | "-" + | ||
242 | dt.getDate() + | ||
243 | " " + | ||
244 | dt.getHours() + | ||
245 | ":" + | ||
246 | dt.getMinutes() + | ||
247 | ":" + | ||
248 | dt.getSeconds() | ||
249 | ); | 319 | ); |
250 | }, | 320 | } |
251 | /** | 321 | this.defaultZoom = newZoom; |
252 | * @description: processReZoom | 322 | this.bpmnViewer.get("canvas").zoom(this.defaultZoom); |
253 | * @author: renchao | 323 | }, |
254 | */ | 324 | /** |
255 | processReZoom () { | 325 | * @description: getOperationTagType |
256 | this.defaultZoom = 1; | 326 | * @param {*} type |
257 | this.bpmnViewer.get("canvas").zoom("fit-viewport", "auto"); | 327 | * @author: renchao |
258 | }, | 328 | */ |
259 | /** | 329 | getOperationTagType(type) { |
260 | * @description: processZoomIn | 330 | return "success"; |
261 | * @param {*} zoomStep | 331 | }, |
262 | * @author: renchao | 332 | // 流程图预览清空 |
263 | */ | 333 | /** |
264 | processZoomIn (zoomStep = 0.1) { | 334 | * @description: 流程图预览清空 |
265 | const newZoom = Math.floor(this.defaultZoom * 100 + zoomStep * 100) / 100; | 335 | * @param {*} e |
266 | if (newZoom > 4) { | 336 | * @author: renchao |
267 | throw new Error( | 337 | */ |
268 | "[Process Designer Warn ]: The zoom ratio cannot be greater than 4" | 338 | clearViewer(a) { |
269 | ); | 339 | if (this.$refs.processCanvas) { |
270 | } | 340 | this.$refs.processCanvas.innerHTML = ""; |
271 | this.defaultZoom = newZoom; | 341 | } |
272 | this.bpmnViewer.get("canvas").zoom(this.defaultZoom); | 342 | if (this.bpmnViewer) { |
273 | }, | 343 | this.bpmnViewer.destroy(); |
274 | /** | 344 | } |
275 | * @description: processZoomOut | 345 | this.bpmnViewer = null; |
276 | * @param {*} zoomStep | 346 | }, |
277 | * @author: renchao | 347 | // 添加自定义箭头 |
278 | */ | 348 | /** |
279 | processZoomOut (zoomStep = 0.1) { | 349 | * @description: 添加自定义箭头 |
280 | const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100; | 350 | * @author: renchao |
281 | if (newZoom < 0.2) { | 351 | */ |
282 | throw new Error( | 352 | addCustomDefs() { |
283 | "[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2" | 353 | const canvas = this.bpmnViewer.get("canvas"); |
284 | ); | 354 | const svg = canvas._svg; |
285 | } | 355 | const customSuccessDefs = this.$refs.customSuccessDefs; |
286 | this.defaultZoom = newZoom; | 356 | const customFailDefs = this.$refs.customFailDefs; |
287 | this.bpmnViewer.get("canvas").zoom(this.defaultZoom); | 357 | svg.appendChild(customSuccessDefs); |
288 | }, | 358 | svg.appendChild(customFailDefs); |
289 | /** | 359 | }, |
290 | * @description: getOperationTagType | 360 | // 任务悬浮弹窗 |
291 | * @param {*} type | 361 | /** |
292 | * @author: renchao | 362 | * @description: 任务悬浮弹窗 |
293 | */ | 363 | * @param {*} element |
294 | getOperationTagType (type) { | 364 | * @author: renchao |
295 | return "success"; | 365 | */ |
296 | }, | 366 | onSelectElement(element) { |
297 | // 流程图预览清空 | 367 | this.selectTaskId = undefined; |
298 | /** | 368 | this.dlgTitle = undefined; |
299 | * @description: 流程图预览清空 | 369 | let allfinishedTaskSet = [ |
300 | * @param {*} e | 370 | ...this.processNodeInfo.finishedTaskSet, |
301 | * @author: renchao | 371 | ...this.processNodeInfo.unfinishedTaskSet, |
302 | */ | 372 | ]; |
303 | clearViewer (a) { | 373 | if (this.processNodeInfo == null || allfinishedTaskSet == null) return; |
304 | if (this.$refs.processCanvas) { | 374 | if (element == null || allfinishedTaskSet.indexOf(element.id) === -1) { |
305 | this.$refs.processCanvas.innerHTML = ""; | 375 | return; |
306 | } | 376 | } |
307 | if (this.bpmnViewer) { | 377 | this.selectTaskId = element.id; |
308 | this.bpmnViewer.destroy(); | 378 | this.selectValue = element.id; |
309 | } | 379 | this.dlgTitle = element.businessObject |
310 | this.bpmnViewer = null; | 380 | ? element.businessObject.name |
311 | }, | 381 | : undefined; |
312 | // 添加自定义箭头 | 382 | // 计算当前悬浮任务审批记录,如果记录为空不显示弹窗 |
313 | /** | 383 | this.taskCommentList = (this.taskList || []).filter((item) => { |
314 | * @description: 添加自定义箭头 | 384 | return item.taskDefinitionKey === this.selectTaskId; |
315 | * @author: renchao | 385 | }); |
316 | */ | 386 | if (this.taskCommentList.length == 0) { |
317 | addCustomDefs () { | 387 | this.taskCommentList = this.taskList; |
318 | const canvas = this.bpmnViewer.get("canvas"); | 388 | } |
319 | const svg = canvas._svg; | 389 | }, |
320 | const customSuccessDefs = this.$refs.customSuccessDefs; | 390 | // 下拉列表切换 |
321 | const customFailDefs = this.$refs.customFailDefs; | 391 | /** |
322 | svg.appendChild(customSuccessDefs); | 392 | * @description: 下拉列表切换 |
323 | svg.appendChild(customFailDefs); | 393 | * @param {*} val |
324 | }, | 394 | * @author: renchao |
325 | // 任务悬浮弹窗 | 395 | */ |
326 | /** | 396 | handleSelect(val) { |
327 | * @description: 任务悬浮弹窗 | 397 | this.taskCommentList = (this.taskList || []).filter((item) => { |
328 | * @param {*} element | 398 | return item.taskDefinitionKey === val; |
329 | * @author: renchao | 399 | }); |
330 | */ | 400 | if (this.taskCommentList.length == 0) { |
331 | onSelectElement (element) { | 401 | this.taskCommentList = this.taskList; |
332 | this.selectTaskId = undefined; | 402 | } |
333 | this.dlgTitle = undefined; | 403 | }, |
334 | let allfinishedTaskSet = [ | 404 | // 显示流程图 |
335 | ...this.processNodeInfo.finishedTaskSet, | 405 | /** |
336 | ...this.processNodeInfo.unfinishedTaskSet, | 406 | * @description: 显示流程图 |
337 | ]; | 407 | * @param {*} xml |
338 | if (this.processNodeInfo == null || allfinishedTaskSet == null) return; | 408 | * @author: renchao |
339 | if (element == null || allfinishedTaskSet.indexOf(element.id) === -1) { | 409 | */ |
340 | return; | 410 | async importXML(xml) { |
411 | let xmlData = this.$x2js.xml2js(xml).definitions.process; | ||
412 | this.selectOptions = xmlData.userTask.map((item) => { | ||
413 | return { value: item._id, label: item._name }; | ||
414 | }); | ||
415 | this.selectOptions = [ | ||
416 | { value: xmlData.startEvent._id, label: "浏览记录" }, | ||
417 | ...this.selectOptions, | ||
418 | ]; | ||
419 | this.selectOptions = this.selectOptions | ||
420 | .map((item) => { | ||
421 | if (this.formData.finishedInfo.finishedTaskSet.includes(item.value)) { | ||
422 | return item; | ||
423 | } | ||
424 | if ( | ||
425 | this.formData.finishedInfo.unfinishedTaskSet.includes(item.value) | ||
426 | ) { | ||
427 | return item; | ||
428 | } | ||
429 | }) | ||
430 | .filter(Boolean); | ||
431 | this.selectValue = xmlData.startEvent._id; | ||
432 | this.clearViewer("a"); | ||
433 | if (xml != null && xml !== "") { | ||
434 | try { | ||
435 | this.bpmnViewer = new BpmnViewer({ | ||
436 | additionalModules: [ | ||
437 | // 移动整个画布 | ||
438 | MoveCanvasModule, | ||
439 | ], | ||
440 | container: this.$refs.processCanvas, | ||
441 | }); | ||
442 | // 任务节点悬浮事件 | ||
443 | this.bpmnViewer.on("element.click", ({ element }) => { | ||
444 | this.onSelectElement(element); | ||
445 | }); | ||
446 | await this.bpmnViewer.importXML(xml); | ||
447 | this.isLoading = true; | ||
448 | this.addCustomDefs(); | ||
449 | } catch (e) { | ||
450 | this.clearViewer("b"); | ||
451 | } finally { | ||
452 | this.isLoading = false; | ||
453 | this.setProcessStatus(this.processNodeInfo); | ||
454 | this.$nextTick(() => { | ||
455 | this.processReZoom(); | ||
456 | }); | ||
341 | } | 457 | } |
342 | this.selectTaskId = element.id; | 458 | } |
343 | this.selectValue = element.id; | 459 | }, |
344 | this.dlgTitle = element.businessObject | 460 | // 获取流程记录 |
345 | ? element.businessObject.name | 461 | /** |
346 | : undefined; | 462 | * @description: 获取流程记录 |
347 | // 计算当前悬浮任务审批记录,如果记录为空不显示弹窗 | 463 | * @author: renchao |
348 | this.taskCommentList = (this.taskList || []).filter((item) => { | 464 | */ |
349 | return item.taskDefinitionKey === this.selectTaskId; | 465 | getCommentList() { |
350 | }); | 466 | this.formData.allCommentList.forEach(async (item, index) => { |
351 | if (this.taskCommentList.length == 0) { | 467 | // item.comments.forEach(element => { |
352 | this.taskCommentList = this.taskList; | 468 | // if(element.type=="COMPLETE"){ |
469 | // this.formData.allCommentList[index].idea=element.message | ||
470 | // this.formData.allCommentList[index].controls="完成" | ||
471 | // } | ||
472 | // }); | ||
473 | let type = item.comments[item.comments.length - 1].type; | ||
474 | this.formData.allCommentList[index].idea = | ||
475 | item.comments[item.comments.length - 1].message; | ||
476 | // 操作方式 | ||
477 | let controls = ""; | ||
478 | // 正在办理 | ||
479 | // 已完结 | ||
480 | // 已退回 | ||
481 | switch (type) { | ||
482 | case "COMPLETE": | ||
483 | controls = "完成"; | ||
484 | break; | ||
485 | case "CLAIM": | ||
486 | controls = "完成"; | ||
487 | break; | ||
488 | case "ASSIGN": | ||
489 | controls = "转办"; | ||
490 | break; | ||
491 | case "DELEGATE": | ||
492 | controls = "委派"; | ||
493 | break; | ||
494 | case "UNCLAIM": | ||
495 | controls = "取消认领"; | ||
496 | break; | ||
497 | case "STOP": | ||
498 | controls = "终止"; | ||
499 | break; | ||
500 | case "BACK": | ||
501 | controls = "退回"; | ||
502 | break; | ||
353 | } | 503 | } |
354 | }, | 504 | this.formData.allCommentList[index].controls = controls; |
355 | // 下拉列表切换 | 505 | this.formData.allCommentList[index].agent = item.assignee.name; |
356 | /** | 506 | }); |
357 | * @description: 下拉列表切换 | 507 | this.formData.handlinglist.forEach(async (item, index) => { |
358 | * @param {*} val | 508 | if (item.assignee.name) { |
359 | * @author: renchao | 509 | this.formData.handlinglist[index].agent = item.assignee.name; |
360 | */ | 510 | } else { |
361 | handleSelect (val) { | 511 | let str = ""; |
362 | this.taskCommentList = (this.taskList || []).filter((item) => { | 512 | item.countersign.forEach((item) => { |
363 | return item.taskDefinitionKey === val; | 513 | str += item.name + ","; |
364 | }); | 514 | }); |
365 | if (this.taskCommentList.length == 0) { | 515 | str = str.slice(0, -1); |
366 | this.taskCommentList = this.taskList; | 516 | this.formData.allCommentList[index].agent = str; |
367 | } | 517 | } |
368 | }, | 518 | }); |
369 | // 显示流程图 | 519 | this.taskList = [ |
370 | /** | 520 | ...this.formData.allCommentList, |
371 | * @description: 显示流程图 | 521 | ...this.formData.handlinglist, |
372 | * @param {*} xml | 522 | ]; |
373 | * @author: renchao | 523 | // this.taskList =this.formData.allCommentList; |
374 | */ | 524 | // 处理数据之后赋值 |
375 | async importXML (xml) { | 525 | this.taskCommentList = this.taskList; |
376 | let xmlData = this.$x2js.xml2js(xml).definitions.process; | 526 | this.taskCommentList = this.taskCommentList.sort(this.sortDownDate); |
377 | this.selectOptions = xmlData.userTask.map((item) => { | 527 | }, |
378 | return { value: item._id, label: item._name }; | 528 | /** |
379 | }); | 529 | * 时间排序函数 |
380 | this.selectOptions = [ | 530 | * @description: formatDate |
381 | { value: xmlData.startEvent._id, label: "浏览记录" }, | 531 | * @param {*} row |
382 | ...this.selectOptions, | 532 | * @param {*} column |
383 | ]; | 533 | * @author: renchao |
384 | this.selectOptions = this.selectOptions | 534 | */ |
385 | .map((item) => { | 535 | |
386 | if (this.formData.finishedInfo.finishedTaskSet.includes(item.value)) { | 536 | sortDownDate(a, b) { |
387 | return item; | 537 | return Date.parse(a.createTime) - Date.parse(b.createTime); |
388 | } | 538 | }, |
389 | if ( | 539 | // 设置流程图元素状态 |
390 | this.formData.finishedInfo.unfinishedTaskSet.includes(item.value) | 540 | /** |
391 | ) { | 541 | * @description: 设置流程图元素状态 |
392 | return item; | 542 | * @param {*} processNodeInfo |
543 | * @author: renchao | ||
544 | */ | ||
545 | setProcessStatus(processNodeInfo) { | ||
546 | this.processNodeInfo = processNodeInfo; | ||
547 | if ( | ||
548 | this.isLoading || | ||
549 | this.processNodeInfo == null || | ||
550 | this.bpmnViewer == null | ||
551 | ) | ||
552 | return; | ||
553 | const { | ||
554 | finishedTaskSet, | ||
555 | rejectedTaskSet, | ||
556 | unfinishedTaskSet, | ||
557 | finishedSequenceFlowSet, | ||
558 | } = this.processNodeInfo; | ||
559 | const canvas = this.bpmnViewer.get("canvas"); | ||
560 | const elementRegistry = this.bpmnViewer.get("elementRegistry"); | ||
561 | if (Array.isArray(finishedSequenceFlowSet)) { | ||
562 | finishedSequenceFlowSet.forEach((item) => { | ||
563 | if (item != null) { | ||
564 | canvas.addMarker(item, "success"); | ||
565 | const element = elementRegistry.get(item); | ||
566 | const conditionExpression = | ||
567 | element.businessObject.conditionExpression; | ||
568 | if (conditionExpression) { | ||
569 | canvas.addMarker(item, "condition-expression"); | ||
393 | } | 570 | } |
394 | }) | ||
395 | .filter(Boolean); | ||
396 | this.selectValue = xmlData.startEvent._id; | ||
397 | this.clearViewer("a"); | ||
398 | if (xml != null && xml !== "") { | ||
399 | try { | ||
400 | this.bpmnViewer = new BpmnViewer({ | ||
401 | additionalModules: [ | ||
402 | // 移动整个画布 | ||
403 | MoveCanvasModule, | ||
404 | ], | ||
405 | container: this.$refs.processCanvas, | ||
406 | }); | ||
407 | // 任务节点悬浮事件 | ||
408 | this.bpmnViewer.on("element.click", ({ element }) => { | ||
409 | this.onSelectElement(element); | ||
410 | }); | ||
411 | await this.bpmnViewer.importXML(xml); | ||
412 | this.isLoading = true; | ||
413 | this.addCustomDefs(); | ||
414 | } catch (e) { | ||
415 | this.clearViewer("b"); | ||
416 | } finally { | ||
417 | this.isLoading = false; | ||
418 | this.setProcessStatus(this.processNodeInfo); | ||
419 | this.$nextTick(() => { | ||
420 | this.processReZoom(); | ||
421 | }); | ||
422 | } | ||
423 | } | ||
424 | }, | ||
425 | // 获取流程记录 | ||
426 | /** | ||
427 | * @description: 获取流程记录 | ||
428 | * @author: renchao | ||
429 | */ | ||
430 | getCommentList () { | ||
431 | this.formData.allCommentList.forEach(async (item, index) => { | ||
432 | // item.comments.forEach(element => { | ||
433 | // if(element.type=="COMPLETE"){ | ||
434 | // this.formData.allCommentList[index].idea=element.message | ||
435 | // this.formData.allCommentList[index].controls="完成" | ||
436 | // } | ||
437 | // }); | ||
438 | let type = item.comments[item.comments.length - 1].type; | ||
439 | this.formData.allCommentList[index].idea = | ||
440 | item.comments[item.comments.length - 1].message; | ||
441 | // 操作方式 | ||
442 | let controls = ""; | ||
443 | // 正在办理 | ||
444 | // 已完结 | ||
445 | // 已退回 | ||
446 | switch (type) { | ||
447 | case "COMPLETE": | ||
448 | controls = "完成"; | ||
449 | break; | ||
450 | case "CLAIM": | ||
451 | controls = "完成"; | ||
452 | break; | ||
453 | case "ASSIGN": | ||
454 | controls = "转办"; | ||
455 | break; | ||
456 | case "DELEGATE": | ||
457 | controls = "委派"; | ||
458 | break; | ||
459 | case "UNCLAIM": | ||
460 | controls = "取消认领"; | ||
461 | break; | ||
462 | case "STOP": | ||
463 | controls = "终止"; | ||
464 | break; | ||
465 | case "BACK": | ||
466 | controls = "退回"; | ||
467 | break; | ||
468 | } | 571 | } |
469 | this.formData.allCommentList[index].controls = controls; | ||
470 | this.formData.allCommentList[index].agent = item.assignee.name; | ||
471 | }); | 572 | }); |
472 | this.formData.handlinglist.forEach(async (item, index) => { | 573 | } |
473 | if (item.assignee.name) { | 574 | if (Array.isArray(finishedTaskSet)) { |
474 | this.formData.handlinglist[index].agent = item.assignee.name; | 575 | finishedTaskSet.forEach((item) => canvas.addMarker(item, "success")); |
475 | } else { | 576 | } |
476 | let str = ""; | 577 | if (Array.isArray(unfinishedTaskSet)) { |
477 | item.countersign.forEach((item) => { | 578 | unfinishedTaskSet.forEach((item) => canvas.addMarker(item, "primary")); |
478 | str += item.name + ","; | 579 | } |
479 | }); | 580 | if (Array.isArray(rejectedTaskSet)) { |
480 | str = str.slice(0, -1); | 581 | rejectedTaskSet.forEach((item) => { |
481 | this.formData.allCommentList[index].agent = str; | 582 | if (item != null) { |
583 | const element = elementRegistry.get(item); | ||
584 | if (element.type.includes("Task")) { | ||
585 | canvas.addMarker(item, "danger"); | ||
586 | } else { | ||
587 | canvas.addMarker(item, "warning"); | ||
588 | } | ||
482 | } | 589 | } |
483 | }); | 590 | }); |
484 | this.taskList = [ | 591 | } |
485 | ...this.formData.allCommentList, | ||
486 | ...this.formData.handlinglist, | ||
487 | ]; | ||
488 | // this.taskList =this.formData.allCommentList; | ||
489 | // 处理数据之后赋值 | ||
490 | this.taskCommentList = this.taskList; | ||
491 | this.taskCommentList=this.taskCommentList.sort(this.sortDownDate) | ||
492 | }, | ||
493 | /** | ||
494 | * 时间排序函数 | ||
495 | * @description: formatDate | ||
496 | * @param {*} row | ||
497 | * @param {*} column | ||
498 | * @author: renchao | ||
499 | */ | ||
500 | |||
501 | sortDownDate(a, b) { | ||
502 | return Date.parse(a.createTime) - Date.parse(b.createTime); | ||
503 | }, | ||
504 | // 设置流程图元素状态 | ||
505 | /** | ||
506 | * @description: 设置流程图元素状态 | ||
507 | * @param {*} processNodeInfo | ||
508 | * @author: renchao | ||
509 | */ | ||
510 | setProcessStatus (processNodeInfo) { | ||
511 | this.processNodeInfo = processNodeInfo; | ||
512 | if ( | ||
513 | this.isLoading || | ||
514 | this.processNodeInfo == null || | ||
515 | this.bpmnViewer == null | ||
516 | ) | ||
517 | return; | ||
518 | const { | ||
519 | finishedTaskSet, | ||
520 | rejectedTaskSet, | ||
521 | unfinishedTaskSet, | ||
522 | finishedSequenceFlowSet, | ||
523 | } = this.processNodeInfo; | ||
524 | const canvas = this.bpmnViewer.get("canvas"); | ||
525 | const elementRegistry = this.bpmnViewer.get("elementRegistry"); | ||
526 | if (Array.isArray(finishedSequenceFlowSet)) { | ||
527 | finishedSequenceFlowSet.forEach((item) => { | ||
528 | if (item != null) { | ||
529 | canvas.addMarker(item, "success"); | ||
530 | const element = elementRegistry.get(item); | ||
531 | const conditionExpression = | ||
532 | element.businessObject.conditionExpression; | ||
533 | if (conditionExpression) { | ||
534 | canvas.addMarker(item, "condition-expression"); | ||
535 | } | ||
536 | } | ||
537 | }); | ||
538 | } | ||
539 | if (Array.isArray(finishedTaskSet)) { | ||
540 | finishedTaskSet.forEach((item) => canvas.addMarker(item, "success")); | ||
541 | } | ||
542 | if (Array.isArray(unfinishedTaskSet)) { | ||
543 | unfinishedTaskSet.forEach((item) => canvas.addMarker(item, "primary")); | ||
544 | } | ||
545 | if (Array.isArray(rejectedTaskSet)) { | ||
546 | rejectedTaskSet.forEach((item) => { | ||
547 | if (item != null) { | ||
548 | const element = elementRegistry.get(item); | ||
549 | if (element.type.includes("Task")) { | ||
550 | canvas.addMarker(item, "danger"); | ||
551 | } else { | ||
552 | canvas.addMarker(item, "warning"); | ||
553 | } | ||
554 | } | ||
555 | }); | ||
556 | } | ||
557 | }, | ||
558 | }, | 592 | }, |
559 | }; | 593 | }, |
594 | }; | ||
560 | </script> | 595 | </script> |
561 | <style scoped lang="scss"> | 596 | <style scoped lang="scss"> |
562 | .information-list { | 597 | .information-list { |
563 | height: 220px; | 598 | height: 220px; |
564 | margin-top: 10px; | 599 | margin-top: 10px; |
565 | 600 | ||
566 | p { | 601 | p { |
567 | font-size: 16px; | 602 | font-size: 16px; |
568 | line-height: 24px; | 603 | line-height: 24px; |
569 | } | ||
570 | } | 604 | } |
571 | /deep/.bjs-powered-by { | 605 | } |
572 | display: none; | 606 | /deep/.bjs-powered-by { |
607 | display: none; | ||
608 | } | ||
609 | // /deep/.information-list { | ||
610 | // height: 170px; | ||
611 | // overflow: visible; | ||
612 | // } | ||
613 | .cutline { | ||
614 | |||
615 | float: right; | ||
616 | width: 30%; | ||
617 | height: 30px; | ||
618 | display: flex; | ||
619 | margin-right: 30px; | ||
620 | justify-content: space-between; | ||
621 | .cutlines{ | ||
622 | line-height: 30px; | ||
623 | font-weight: 600; | ||
624 | margin-right: 50px; | ||
573 | } | 625 | } |
574 | // /deep/.information-list { | 626 | .concent{ |
575 | // height: 170px; | 627 | line-height: 30px; |
576 | // overflow: visible; | 628 | line-height: 14px; |
577 | // } | 629 | text-align: center; |
630 | align-items: center; | ||
631 | margin: auto; | ||
632 | padding: 3px; | ||
633 | border-radius: 4px; | ||
634 | border:1px solid #fff; | ||
635 | } | ||
636 | |||
637 | } | ||
578 | </style> | 638 | </style> | ... | ... |
1 | /* | 1 | /* |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2023-11-15 11:29:32 | 4 | * @LastEditTime: 2023-11-22 13:18:47 |
5 | */ | 5 | */ |
6 | import Vue from 'vue' | ||
6 | import { getPrintTemplateByCode } from "@/api/print"; | 7 | import { getPrintTemplateByCode } from "@/api/print"; |
7 | import { uploadUndo } from "@/api/clxx"; | 8 | import { uploadUndo } from "@/api/clxx"; |
8 | import { getLodop } from "@/utils/LodopFuncs" | 9 | import { getLodop } from "@/utils/LodopFuncs"; |
10 | import adapter from "@/utils/sqs/adapter"; | ||
9 | import { | 11 | import { |
10 | stepExpandInfo, | 12 | stepExpandInfo, |
11 | record, | 13 | record, |
... | @@ -133,24 +135,37 @@ export default { | ... | @@ -133,24 +135,37 @@ export default { |
133 | break; | 135 | break; |
134 | case "B6": | 136 | case "B6": |
135 | //根据编号获取对应信息 | 137 | //根据编号获取对应信息 |
136 | getPrintTemplateByCode({ tmpno: 'dysqs' }).then(res => { | 138 | getPrintTemplateByCode({ tmpno: Vue.prototype.BASE_API.adapter }).then(res => { |
137 | if (res.code == 200) { | 139 | if (res.code === 200) { |
138 | getPrintApplicationForm(this.currentSelectProps.bsmSldy).then(infoRes => { | 140 | getPrintTemplateByCode({ tmpno: Vue.prototype.BASE_API.adapter + '-2' }).then(res1 => { |
139 | if (infoRes.code == 200) { | 141 | getPrintApplicationForm(this.currentSelectProps.bsmSldy).then(infoRes => { |
140 | //打开模板设计 | 142 | if (infoRes.code === 200) { |
141 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); | 143 | let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); |
142 | LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent); //装载模板 | 144 | |
143 | //todo 调取后端接口获取数据 循环set | 145 | // 装载第一个模板并设置数据 |
144 | for (let key in infoRes.result) { | 146 | LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent); |
145 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]); | 147 | for (let key in infoRes.result) { |
148 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]); | ||
149 | } | ||
150 | |||
151 | // 手动分页 | ||
152 | LODOP.NewPage(); | ||
153 | |||
154 | // 装载第二个模板并设置数据 | ||
155 | LODOP.ADD_PRINT_DATA("ProgramData", res1.result.tmpcontent); | ||
156 | for (let key in res1.result) { | ||
157 | LODOP.SET_PRINT_STYLEA(key, "CONTENT", res1.result[key]); | ||
158 | } | ||
159 | |||
160 | // 进行预览 | ||
161 | LODOP.PREVIEW(); | ||
162 | } else { | ||
163 | this.$message.error(infoRes.message); | ||
146 | } | 164 | } |
147 | LODOP.PREVIEW(); | 165 | }); |
148 | } else { | 166 | }); |
149 | this.$message.error(infoRes.message) | ||
150 | } | ||
151 | }) | ||
152 | } else { | 167 | } else { |
153 | this.$message.error(res.message) | 168 | this.$message.error(res.message); |
154 | } | 169 | } |
155 | }) | 170 | }) |
156 | break; | 171 | break; | ... | ... |
-
Please register or sign in to post a comment