19499817 by renchao@pashanhoo.com

Merge branch 'dev'

2 parents 78262da4 2d9b694d
...@@ -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 /**
......
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
......
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>
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>
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>
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>
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>
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>
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>
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
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>
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;
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-10-18 15:46:39 4 * @LastEditTime: 2023-11-22 13:43:27
5 --> 5 -->
6 <template> 6 <template>
7 <div class="container"> 7 <div class="container">
......