样式调整
Showing
15 changed files
with
745 additions
and
730 deletions
... | @@ -68,7 +68,6 @@ | ... | @@ -68,7 +68,6 @@ |
68 | tooltip: { | 68 | tooltip: { |
69 | trigger: "axis", | 69 | trigger: "axis", |
70 | formatter: function (params) { | 70 | formatter: function (params) { |
71 | console.log("params222", params); | ||
72 | let html = ""; | 71 | let html = ""; |
73 | params.forEach((v) => { | 72 | params.forEach((v) => { |
74 | html += `<div style="color: #000;font-size: 14px;line-height: 24px background-color: #000000"> | 73 | html += `<div style="color: #000;font-size: 14px;line-height: 24px background-color: #000000"> | ... | ... |
... | @@ -34,7 +34,6 @@ | ... | @@ -34,7 +34,6 @@ |
34 | type: "shadow", | 34 | type: "shadow", |
35 | }, | 35 | }, |
36 | formatter: function (params) { | 36 | formatter: function (params) { |
37 | console.log("params222", params); | ||
38 | let html = ""; | 37 | let html = ""; |
39 | params.forEach((v) => { | 38 | params.forEach((v) => { |
40 | html += `<div style="color: #000;font-size: 14px;line-height: 24px background-color: #000000"> | 39 | html += `<div style="color: #000;font-size: 14px;line-height: 24px background-color: #000000"> |
... | @@ -101,7 +100,7 @@ | ... | @@ -101,7 +100,7 @@ |
101 | }, | 100 | }, |
102 | itemStyle: { | 101 | itemStyle: { |
103 | normal: { | 102 | normal: { |
104 | color: "#5fba7d", | 103 | color: "#12ba7d", |
105 | }, | 104 | }, |
106 | }, | 105 | }, |
107 | data: newData.barData, | 106 | data: newData.barData, | ... | ... |
... | @@ -2,42 +2,41 @@ | ... | @@ -2,42 +2,41 @@ |
2 | <Echart :options="options" id="centreLeft1Chart" :key="key" height="1.0417rem" width="80%"></Echart> | 2 | <Echart :options="options" id="centreLeft1Chart" :key="key" height="1.0417rem" width="80%"></Echart> |
3 | </template> | 3 | </template> |
4 | <script> | 4 | <script> |
5 | import Echart from "@/common/echart"; | 5 | import Echart from "@/common/echart"; |
6 | export default { | 6 | export default { |
7 | components: { | 7 | components: { |
8 | Echart, | 8 | Echart, |
9 | }, | ||
10 | data () { | ||
11 | return { | ||
12 | key: 0, | ||
13 | }; | ||
14 | }, | ||
15 | props: { | ||
16 | cdata: { | ||
17 | type: Array, | ||
18 | default: () => ([]), | ||
19 | }, | 9 | }, |
20 | }, | 10 | data () { |
21 | watch: { | 11 | return { |
22 | cdata: { | 12 | key: 0, |
23 | handler (newData) { | 13 | }; |
14 | }, | ||
15 | props: { | ||
16 | cdata: { | ||
17 | type: Array, | ||
18 | default: () => ([]), | ||
19 | }, | ||
20 | }, | ||
21 | watch: { | ||
22 | cdata: { | ||
23 | handler (newData) { | ||
24 | 24 | ||
25 | this.options = { | 25 | this.options = { |
26 | color: [ | 26 | color: [ |
27 | "#37a2da", | 27 | "#37a2da", |
28 | "#32c5e9", | 28 | "#32c5e9", |
29 | "#9fe6b8", | 29 | "#9fe6b8", |
30 | "#ffdb5c", | 30 | "#ffdb5c", |
31 | "#ff9f7f", | 31 | "#ff9f7f", |
32 | "#fb7293", | 32 | "#fb7293", |
33 | "#e7bcf3", | 33 | "#e7bcf3", |
34 | "#8378ea" | 34 | "#8378ea" |
35 | 35 | ||
36 | ], | 36 | ], |
37 | tooltip: { | 37 | tooltip: { |
38 | trigger: "item", | 38 | trigger: "item", |
39 | formatter: function (params) { | 39 | formatter: function (params) { |
40 | console.log("params11", params); | ||
41 | let html = ""; | 40 | let html = ""; |
42 | html += `<div style="font-size: 14px;line-height: 24px > | 41 | html += `<div style="font-size: 14px;line-height: 24px > |
43 | <span style="display:inline-block;"></span> | 42 | <span style="display:inline-block;"></span> |
... | @@ -49,6 +48,9 @@ export default { | ... | @@ -49,6 +48,9 @@ export default { |
49 | extraCssText: | 48 | extraCssText: |
50 | "background: #85a2eb; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;", | 49 | "background: #85a2eb; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;", |
51 | }, | 50 | }, |
51 | label: { | ||
52 | color: 'inherit', | ||
53 | }, | ||
52 | series: [ | 54 | series: [ |
53 | { | 55 | { |
54 | name: "Access From", | 56 | name: "Access From", |
... | @@ -56,37 +58,39 @@ export default { | ... | @@ -56,37 +58,39 @@ export default { |
56 | radius: '60%', | 58 | radius: '60%', |
57 | avoidLabelOverlap: true, | 59 | avoidLabelOverlap: true, |
58 | label: { | 60 | label: { |
61 | color: 'inherit', | ||
59 | formatter: (params) => { | 62 | formatter: (params) => { |
60 | return `${params.name}`; | 63 | return `${params.name}`; |
61 | }, | 64 | }, |
62 | position: "outer", | 65 | position: "outer", |
63 | alignTo: "edge", | 66 | alignTo: "edge", |
64 | margin: 10, | 67 | margin: 10, |
68 | |||
65 | normal: { | 69 | normal: { |
66 | show: true, | 70 | show: true, |
67 | textStyle: { | 71 | textStyle: { |
68 | fontSize: 12 | 72 | fontSize: 12, |
69 | } | 73 | } |
70 | }, | 74 | }, |
71 | }, | 75 | }, |
72 | 76 | ||
73 | 77 | ||
74 | data: newData, | 78 | data: newData, |
75 | } | 79 | } |
76 | ], | 80 | ], |
77 | }; | 81 | }; |
78 | this.key++; | 82 | this.key++; |
83 | }, | ||
84 | immediate: true, | ||
85 | deep: true, | ||
79 | }, | 86 | }, |
80 | immediate: true, | ||
81 | deep: true, | ||
82 | }, | 87 | }, |
83 | }, | 88 | }; |
84 | }; | ||
85 | </script> | 89 | </script> |
86 | 90 | ||
87 | <style lang="scss" scoped> | 91 | <style lang="scss" scoped> |
88 | #centreLeft1Chart { | 92 | #centreLeft1Chart { |
89 | margin-bottom: 0.0521rem; | 93 | margin-bottom: 0.0521rem; |
90 | margin-left: 0.3125rem; | 94 | margin-left: 0.3125rem; |
91 | } | 95 | } |
92 | </style> | 96 | </style> | ... | ... |
1 | <!-- | ||
2 | * @Author: xiaomiao 1158771342@qq.com | ||
3 | * @Date: 2023-03-09 15:24:53 | ||
4 | * @LastEditors: xiaomiao 1158771342@qq.com | ||
5 | * @LastEditTime: 2023-03-16 15:58:03 | ||
6 | * @FilePath: \上报\bdcjg-web\src\components\Echart\Rose\index.vue | ||
7 | * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||
8 | --> | ||
1 | <template> | 9 | <template> |
2 | <div> | 10 | <div> |
3 | <Chart :cdata="cdata" /> | 11 | <Chart :cdata="cdata" /> |
... | @@ -28,7 +36,7 @@ | ... | @@ -28,7 +36,7 @@ |
28 | methods: { | 36 | methods: { |
29 | async addhousetotal () { | 37 | async addhousetotal () { |
30 | if (this.cdata == 0) { | 38 | if (this.cdata == 0) { |
31 | this.getdata = []; | 39 | this.cdata = []; |
32 | try { | 40 | try { |
33 | let { result: res } = await work.addhousetotal(); | 41 | let { result: res } = await work.addhousetotal(); |
34 | res.map((item) => { | 42 | res.map((item) => { | ... | ... |
... | @@ -94,7 +94,6 @@ | ... | @@ -94,7 +94,6 @@ |
94 | }, | 94 | }, |
95 | onJsonSave () { | 95 | onJsonSave () { |
96 | const value = this.resultInfo | 96 | const value = this.resultInfo |
97 | console.log(this.resultInfo, 'resultInfo') | ||
98 | if (this.hasJsonFlag === false) { | 97 | if (this.hasJsonFlag === false) { |
99 | this.$message.error({ message: 'json格式验证失败', showClose: true }) | 98 | this.$message.error({ message: 'json格式验证失败', showClose: true }) |
100 | // alert("json验证失败") | 99 | // alert("json验证失败") |
... | @@ -112,7 +111,6 @@ | ... | @@ -112,7 +111,6 @@ |
112 | this.dialogVisible = true | 111 | this.dialogVisible = true |
113 | }, | 112 | }, |
114 | cancel () { | 113 | cancel () { |
115 | console.log(this.tmpResultInfo, 'tmpResultInfo') | ||
116 | this.resultInfo = this.tmpResultInfo | 114 | this.resultInfo = this.tmpResultInfo |
117 | this.dialogVisible = false | 115 | this.dialogVisible = false |
118 | }, | 116 | }, | ... | ... |
... | @@ -58,7 +58,7 @@ export const TableListMixin = { | ... | @@ -58,7 +58,7 @@ export const TableListMixin = { |
58 | } | 58 | } |
59 | }) | 59 | }) |
60 | .catch(error => { | 60 | .catch(error => { |
61 | console.log('errrrrrorrrrr', error) | 61 | console.log('error', error) |
62 | this.loading = false | 62 | this.loading = false |
63 | }) | 63 | }) |
64 | }, | 64 | }, |
... | @@ -83,7 +83,6 @@ export const TableListMixin = { | ... | @@ -83,7 +83,6 @@ export const TableListMixin = { |
83 | if (this.queryOptions !== '') { | 83 | if (this.queryOptions !== '') { |
84 | this.queryParam.queryOptions = JSON.stringify(this.queryOptions) | 84 | this.queryParam.queryOptions = JSON.stringify(this.queryOptions) |
85 | } | 85 | } |
86 | // console.log(this.$filterNullObj(this.queryParam), '查询条件') | ||
87 | return this.$filterNullObj(this.queryParam) | 86 | return this.$filterNullObj(this.queryParam) |
88 | }, | 87 | }, |
89 | // 新增 | 88 | // 新增 | ... | ... |
... | @@ -114,7 +114,7 @@ export function js_strto_time (str_time) { | ... | @@ -114,7 +114,7 @@ export function js_strto_time (str_time) { |
114 | var date = new Date(str) // 构造一个日期型数据,值为传入的字符串 | 114 | var date = new Date(str) // 构造一个日期型数据,值为传入的字符串 |
115 | return date.getTime() | 115 | return date.getTime() |
116 | } | 116 | } |
117 | // 时间戳转日期 | 117 | // 时间戳转日期 |
118 | export function timestampToTime (timestamp) { | 118 | export function timestampToTime (timestamp) { |
119 | var date = new Date(timestamp)//时间戳为10位需*1000,时间戳为13位的话不需乘1000 | 119 | var date = new Date(timestamp)//时间戳为10位需*1000,时间戳为13位的话不需乘1000 |
120 | var Y = date.getFullYear() + '-' | 120 | var Y = date.getFullYear() + '-' |
... | @@ -216,7 +216,6 @@ function addRangeBorder (range, ws) { | ... | @@ -216,7 +216,6 @@ function addRangeBorder (range, ws) { |
216 | range.forEach(item => { | 216 | range.forEach(item => { |
217 | let startColNumber = Number(item.s.r), endColNumber = Number(item.e.r); | 217 | let startColNumber = Number(item.s.r), endColNumber = Number(item.e.r); |
218 | let startRowNumber = Number(item.s.c), endRowNumber = Number(item.e.c); | 218 | let startRowNumber = Number(item.s.c), endRowNumber = Number(item.e.c); |
219 | console.log(startColNumber); | ||
220 | const test = ws[arr[startRowNumber] + (startColNumber + 1)]; | 219 | const test = ws[arr[startRowNumber] + (startColNumber + 1)]; |
221 | for (let col = startColNumber; col <= endColNumber; col++) { | 220 | for (let col = startColNumber; col <= endColNumber; col++) { |
222 | for (let row = startRowNumber; row <= endRowNumber; row++) { | 221 | for (let row = startRowNumber; row <= endRowNumber; row++) { | ... | ... |
... | @@ -39,317 +39,326 @@ | ... | @@ -39,317 +39,326 @@ |
39 | </div> | 39 | </div> |
40 | </template> | 40 | </template> |
41 | <script> | 41 | <script> |
42 | import { mapGetters } from "vuex"; | 42 | import { mapGetters } from "vuex"; |
43 | import efficient from "@/api/efficient"; | 43 | import efficient from "@/api/efficient"; |
44 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; | 44 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; |
45 | export default { | 45 | export default { |
46 | name: "jktj", | 46 | name: "jktj", |
47 | data () { | 47 | data () { |
48 | return { | 48 | return { |
49 | // 开始日期限制 | 49 | // 开始日期限制 |
50 | pickerOptionsStart: { | 50 | pickerOptionsStart: { |
51 | disabledDate: (time) => { | 51 | disabledDate: (time) => { |
52 | if (this.form.endTime) { | 52 | if (this.form.endTime) { |
53 | return time.getTime() > new Date(this.form.endTime).getTime(); | 53 | return time.getTime() > new Date(this.form.endTime).getTime(); |
54 | } | 54 | } |
55 | }, | ||
55 | }, | 56 | }, |
56 | }, | 57 | // 结束日期限制 |
57 | // 结束日期限制 | 58 | pickerOptionsEnd: { |
58 | pickerOptionsEnd: { | 59 | disabledDate: (time) => { |
59 | disabledDate: (time) => { | 60 | if (this.form.startTime) { |
60 | if (this.form.startTime) { | 61 | return time.getTime() < new Date(this.form.startTime).getTime(); |
61 | return time.getTime() < new Date(this.form.startTime).getTime(); | 62 | } |
62 | } | 63 | }, |
63 | }, | 64 | }, |
64 | }, | 65 | form: { |
65 | form: { | 66 | startTime: getFirstDayOfSeason(), |
66 | startTime: getFirstDayOfSeason(), | 67 | endTime: timeFormat(new Date(), true), |
67 | endTime: timeFormat(new Date(), true), | 68 | }, |
68 | }, | 69 | // 搜索表单 |
69 | // 搜索表单 | 70 | pieChartsData: [], |
70 | pieChartsData: [], | ||
71 | }; | ||
72 | }, | ||
73 | created () { }, | ||
74 | mounted () { | ||
75 | this.getProcessCounts(); | ||
76 | }, | ||
77 | computed: { | ||
78 | ...mapGetters(["dicData"]), | ||
79 | }, | ||
80 | methods: { | ||
81 | endTimeChange (val) { | ||
82 | this.form.endTime = timeFormat(new Date(val), true); | ||
83 | }, | ||
84 | //查询各区县办件数量 | ||
85 | async getProcessCounts () { | ||
86 | this.pieChartsData = []; | ||
87 | let { result: res } = await efficient.getProcessCounts( | ||
88 | this.form.startTime, | ||
89 | this.form.endTime | ||
90 | ); | ||
91 | //获取图表配置项需要的数据 | ||
92 | res.length > 0 && | ||
93 | res.forEach((item) => { | ||
94 | this.pieChartsData.push({ | ||
95 | //登记数量 | ||
96 | value: item.counts, | ||
97 | //登记数量 | ||
98 | name: item.recTypeName, | ||
99 | //登记类型代码 | ||
100 | groupId: item.recType, | ||
101 | }); | ||
102 | }); | ||
103 | res.length && | ||
104 | this.$nextTick(() => { | ||
105 | // 初始化图表 | ||
106 | this.echartInit(); | ||
107 | this.barChartInit(res[0].recType); | ||
108 | }); | ||
109 | }, | ||
110 | // 重置 | ||
111 | resetForm () { | ||
112 | this.form = { | ||
113 | startTime: getFirstDayOfSeason(), | ||
114 | endTime: timeFormat(new Date(), true), | ||
115 | }; | 71 | }; |
72 | }, | ||
73 | created () { }, | ||
74 | mounted () { | ||
116 | this.getProcessCounts(); | 75 | this.getProcessCounts(); |
117 | }, | 76 | }, |
118 | //玫瑰图初始化 | 77 | computed: { |
119 | echartInit () { | 78 | ...mapGetters(["dicData"]), |
120 | let _this = this; | 79 | }, |
121 | // 基于准备好的dom,初始化echarts实例 | 80 | methods: { |
122 | let myChart = this.$echarts.init(document.getElementById("myChart")); | 81 | endTimeChange (val) { |
123 | // 绘制图表 | 82 | this.form.endTime = timeFormat(new Date(val), true); |
124 | myChart.setOption({ | 83 | }, |
125 | legend: { | 84 | //查询各区县办件数量 |
126 | bottom: "2%", | 85 | async getProcessCounts () { |
127 | left: "center", | 86 | this.pieChartsData = []; |
128 | textStyle: { | 87 | let { result: res } = await efficient.getProcessCounts( |
129 | color: "#fff", | 88 | this.form.startTime, |
130 | }, | 89 | this.form.endTime |
131 | }, | 90 | ); |
132 | tooltip: { | 91 | //获取图表配置项需要的数据 |
133 | trigger: "item", | 92 | res.length > 0 && |
134 | formatter: "{b} : {c}", | 93 | res.forEach((item) => { |
135 | }, | 94 | this.pieChartsData.push({ |
136 | series: [ | 95 | //登记数量 |
137 | { | 96 | value: item.counts, |
138 | name: "各业务类型办理数量", | 97 | //登记数量 |
139 | type: "pie", | 98 | name: item.recTypeName, |
140 | radius: [0, 250], | 99 | //登记类型代码 |
141 | center: ["50%", "45%"], | 100 | groupId: item.recType, |
142 | roseType: "area", | 101 | }); |
143 | itemStyle: { | 102 | }); |
144 | borderRadius: 8, | 103 | res.length && |
104 | this.$nextTick(() => { | ||
105 | // 初始化图表 | ||
106 | this.echartInit(); | ||
107 | this.barChartInit(res[0].recType); | ||
108 | }); | ||
109 | }, | ||
110 | // 重置 | ||
111 | resetForm () { | ||
112 | this.form = { | ||
113 | startTime: getFirstDayOfSeason(), | ||
114 | endTime: timeFormat(new Date(), true), | ||
115 | }; | ||
116 | this.getProcessCounts(); | ||
117 | }, | ||
118 | //玫瑰图初始化 | ||
119 | echartInit () { | ||
120 | let _this = this; | ||
121 | // 基于准备好的dom,初始化echarts实例 | ||
122 | let myChart = this.$echarts.init(document.getElementById("myChart")); | ||
123 | // 绘制图表 | ||
124 | myChart.setOption({ | ||
125 | legend: { | ||
126 | bottom: "2%", | ||
127 | left: "center", | ||
128 | textStyle: { | ||
129 | color: "#fff", | ||
145 | }, | 130 | }, |
146 | data: this.pieChartsData, | ||
147 | }, | 131 | }, |
148 | ], | 132 | tooltip: { |
149 | }); | 133 | trigger: "item", |
150 | //添加点击事件 | 134 | formatter: "{b} : {c}", |
151 | myChart.on("click", function (param) { | 135 | }, |
152 | _this.barChartInit(param.data.groupId); | 136 | label: { |
153 | }); | 137 | color: 'inherit', |
154 | //默认选中第一个 | 138 | }, |
155 | let index = 1; | 139 | series: [ |
156 | myChart.dispatchAction({ | 140 | { |
157 | type: "highlight", | 141 | name: "各业务类型办理数量", |
158 | seriesIndex: 0, | 142 | type: "pie", |
159 | dataIndex: 0, | 143 | radius: [0, 250], |
160 | }); | 144 | center: ["50%", "45%"], |
161 | myChart.on("mouseover", function (e) { | 145 | roseType: "area", |
162 | if (e.dataIndex != index) { | 146 | itemStyle: { |
163 | myChart.dispatchAction({ | 147 | borderRadius: 8, |
164 | type: "downplay", | 148 | }, |
165 | seriesIndex: 0, | 149 | data: this.pieChartsData, |
166 | dataIndex: index, | 150 | }, |
167 | }); | 151 | ], |
168 | } | 152 | }); |
169 | }); | 153 | //添加点击事件 |
170 | myChart.on("mouseout", function (e) { | 154 | myChart.on("click", function (param) { |
171 | index = e.dataIndex; | 155 | _this.barChartInit(param.data.groupId); |
156 | }); | ||
157 | //默认选中第一个 | ||
158 | let index = 1; | ||
172 | myChart.dispatchAction({ | 159 | myChart.dispatchAction({ |
173 | type: "highlight", | 160 | type: "highlight", |
174 | seriesIndex: 0, | 161 | seriesIndex: 0, |
175 | dataIndex: e.dataIndex, | 162 | dataIndex: 0, |
176 | }); | 163 | }); |
177 | }); | 164 | myChart.on("mouseover", function (e) { |
178 | }, | 165 | if (e.dataIndex != index) { |
179 | //柱图初始化 | 166 | myChart.dispatchAction({ |
180 | async barChartInit (recType) { | 167 | type: "downplay", |
181 | //请求recType对应业务的各区县数据 | 168 | seriesIndex: 0, |
182 | let { result: res } = await efficient.getProcessDays( | 169 | dataIndex: index, |
183 | recType, | 170 | }); |
184 | this.form.startTime, | 171 | } |
185 | this.form.endTime | ||
186 | ); | ||
187 | //行政区数组 | ||
188 | let xzqArr = []; | ||
189 | this.dicData["A20"].forEach((item) => { | ||
190 | xzqArr.push(item.DNAME); | ||
191 | let tempArr = res.filter((i) => { | ||
192 | return i.qxdm == item.DCODE; | ||
193 | }); | 172 | }); |
194 | if (tempArr.length) { | 173 | myChart.on("mouseout", function (e) { |
195 | item.avgDay = tempArr[0].avgDay; | 174 | index = e.dataIndex; |
196 | item.maxDay = tempArr[0].maxDay; | 175 | myChart.dispatchAction({ |
197 | item.minDay = tempArr[0].minDay; | 176 | type: "highlight", |
198 | } else { | 177 | seriesIndex: 0, |
199 | item.avgDay = 0; | 178 | dataIndex: e.dataIndex, |
200 | item.maxDay = 0; | 179 | }); |
201 | item.minDay = 0; | 180 | }); |
202 | } | 181 | }, |
203 | }); | 182 | //柱图初始化 |
204 | //补全无数据行政区后的结果数组 | 183 | async barChartInit (recType) { |
205 | let dealArr = [...this.dicData["A20"]]; | 184 | //请求recType对应业务的各区县数据 |
206 | let myChartBar = this.$echarts.init( | 185 | let { result: res } = await efficient.getProcessDays( |
207 | document.getElementById("myChart-bar") | 186 | recType, |
208 | ); | 187 | this.form.startTime, |
209 | myChartBar.setOption({ | 188 | this.form.endTime |
210 | color: ["#00bdb1", "#ff6e6e", "#3f99ff", "#ffaf48"], | 189 | ); |
211 | tooltip: { | 190 | //行政区数组 |
212 | show: true, | 191 | let xzqArr = []; |
213 | trigger: "axis", | 192 | this.dicData["A20"].forEach((item) => { |
214 | textStyle: { | 193 | xzqArr.push(item.DNAME); |
215 | fontSize: 16, // 字体大小 | 194 | let tempArr = res.filter((i) => { |
216 | }, | 195 | return i.qxdm == item.DCODE; |
217 | extraCssText: "width:220px;height:160px;", // 背景色 | 196 | }); |
218 | }, | 197 | if (tempArr.length) { |
219 | grid: { | 198 | item.avgDay = tempArr[0].avgDay; |
220 | top: 120, | 199 | item.maxDay = tempArr[0].maxDay; |
221 | }, | 200 | item.minDay = tempArr[0].minDay; |
222 | legend: { | 201 | } else { |
223 | data: ["最短用时", "平均用时", "最长用时"], | 202 | item.avgDay = 0; |
224 | top: 20, | 203 | item.maxDay = 0; |
225 | textStyle: { | 204 | item.minDay = 0; |
205 | } | ||
206 | }); | ||
207 | //补全无数据行政区后的结果数组 | ||
208 | let dealArr = [...this.dicData["A20"]]; | ||
209 | let myChartBar = this.$echarts.init( | ||
210 | document.getElementById("myChart-bar") | ||
211 | ); | ||
212 | myChartBar.setOption({ | ||
213 | color: ["#00bdb1", "#ff6e6e", "#3f99ff", "#ffaf48"], | ||
214 | tooltip: { | ||
226 | show: true, | 215 | show: true, |
227 | color: "#fff", | 216 | trigger: "axis", |
228 | fontSize: "16", | 217 | textStyle: { |
229 | }, | 218 | fontSize: 16, // 字体大小 |
230 | }, | ||
231 | xAxis: [ | ||
232 | { | ||
233 | type: "category", | ||
234 | data: xzqArr, | ||
235 | axisLabel: { | ||
236 | interval: 0, | ||
237 | textStyle: { | ||
238 | show: true, | ||
239 | color: "#fff", | ||
240 | fontSize: "16", | ||
241 | }, | ||
242 | }, | 219 | }, |
220 | extraCssText: "width:220px;height:160px;", // 背景色 | ||
221 | }, | ||
222 | grid: { | ||
223 | top: 120, | ||
243 | }, | 224 | }, |
244 | ], | 225 | legend: { |
245 | yAxis: [ | 226 | data: ["最短用时", "平均用时", "最长用时"], |
246 | { | 227 | top: 20, |
247 | type: "value", | 228 | textStyle: { |
248 | name: "单位:天", | 229 | show: true, |
249 | nameTextStyle: { | ||
250 | color: "#fff", | 230 | color: "#fff", |
251 | fontSize: "16", | 231 | fontSize: "16", |
252 | }, | 232 | }, |
253 | axisLabel: { | 233 | }, |
254 | textStyle: { | 234 | xAxis: [ |
255 | show: true, | 235 | { |
236 | type: "category", | ||
237 | data: xzqArr, | ||
238 | axisLabel: { | ||
239 | interval: 0, | ||
240 | textStyle: { | ||
241 | show: true, | ||
242 | color: "#fff", | ||
243 | fontSize: "16", | ||
244 | }, | ||
245 | }, | ||
246 | }, | ||
247 | ], | ||
248 | yAxis: [ | ||
249 | { | ||
250 | type: "value", | ||
251 | name: "单位:天", | ||
252 | nameTextStyle: { | ||
256 | color: "#fff", | 253 | color: "#fff", |
257 | fontSize: "16", | 254 | fontSize: "16", |
258 | }, | 255 | }, |
256 | axisLabel: { | ||
257 | textStyle: { | ||
258 | show: true, | ||
259 | color: "#fff", | ||
260 | fontSize: "16", | ||
261 | }, | ||
262 | }, | ||
259 | }, | 263 | }, |
264 | ], | ||
265 | label: { | ||
266 | color: 'inherit', | ||
260 | }, | 267 | }, |
261 | ], | 268 | series: [ |
262 | series: [ | 269 | { |
263 | { | 270 | type: "bar", |
264 | type: "bar", | 271 | //显示数值 |
265 | //显示数值 | 272 | itemStyle: { |
266 | itemStyle: { | 273 | normal: { |
267 | normal: { | 274 | label: { |
268 | label: { | 275 | show: true, //开启显示 |
269 | show: true, //开启显示 | 276 | position: "top", //在上方显示 |
270 | position: "top", //在上方显示 | 277 | |
278 | }, | ||
271 | }, | 279 | }, |
272 | }, | 280 | }, |
281 | barMaxWidth: "60", | ||
282 | name: "最短用时", | ||
283 | data: dealArr.map((item) => item.minDay), | ||
273 | }, | 284 | }, |
274 | barMaxWidth: "60", | 285 | { |
275 | name: "最短用时", | 286 | type: "bar", |
276 | data: dealArr.map((item) => item.minDay), | 287 | //显示数值 |
277 | }, | 288 | itemStyle: { |
278 | { | 289 | normal: { |
279 | type: "bar", | 290 | label: { |
280 | //显示数值 | 291 | show: true, //开启显示 |
281 | itemStyle: { | 292 | position: "top", //在上方显示 |
282 | normal: { | 293 | |
283 | label: { | 294 | }, |
284 | show: true, //开启显示 | ||
285 | position: "top", //在上方显示 | ||
286 | }, | 295 | }, |
287 | }, | 296 | }, |
297 | barMaxWidth: "60", | ||
298 | name: "平均用时", | ||
299 | data: dealArr.map((item) => item.avgDay), | ||
288 | }, | 300 | }, |
289 | barMaxWidth: "60", | 301 | { |
290 | name: "平均用时", | 302 | type: "bar", |
291 | data: dealArr.map((item) => item.avgDay), | 303 | //显示数值 |
292 | }, | 304 | itemStyle: { |
293 | { | 305 | normal: { |
294 | type: "bar", | 306 | label: { |
295 | //显示数值 | 307 | show: true, //开启显示 |
296 | itemStyle: { | 308 | position: "top", //在上方显示 |
297 | normal: { | 309 | |
298 | label: { | 310 | }, |
299 | show: true, //开启显示 | ||
300 | position: "top", //在上方显示 | ||
301 | }, | 311 | }, |
302 | }, | 312 | }, |
313 | barMaxWidth: "60", | ||
314 | name: "最长用时", | ||
315 | data: dealArr.map((item) => item.maxDay), | ||
303 | }, | 316 | }, |
304 | barMaxWidth: "60", | 317 | ], |
305 | name: "最长用时", | 318 | }); |
306 | data: dealArr.map((item) => item.maxDay), | 319 | }, |
307 | }, | ||
308 | ], | ||
309 | }); | ||
310 | }, | 320 | }, |
311 | }, | 321 | }; |
312 | }; | ||
313 | </script> | 322 | </script> |
314 | <style scoped lang="scss"> | 323 | <style scoped lang="scss"> |
315 | // @import "~@/styles/public.scss"; | 324 | // @import "~@/styles/public.scss"; |
316 | 325 | ||
317 | .jktjDetail { | 326 | .jktjDetail { |
318 | height: 100%; | 327 | height: 100%; |
319 | display: flex; | 328 | display: flex; |
320 | flex-direction: column; | 329 | flex-direction: column; |
321 | 330 | ||
322 | .rows { | 331 | .rows { |
323 | margin-left: 100px; | 332 | margin-left: 100px; |
324 | } | 333 | } |
325 | 334 | ||
326 | .center { | 335 | .center { |
327 | line-height: 50vh; | 336 | line-height: 50vh; |
328 | text-align: center; | 337 | text-align: center; |
329 | } | 338 | } |
330 | 339 | ||
331 | .echarts-box { | 340 | .echarts-box { |
332 | display: flex; | 341 | display: flex; |
333 | justify-content: center; | 342 | justify-content: center; |
334 | 343 | ||
335 | .chart { | 344 | .chart { |
336 | width: 40%; | 345 | width: 40%; |
337 | height: 100%; | 346 | height: 100%; |
338 | float: left; | 347 | float: left; |
339 | } | 348 | } |
340 | 349 | ||
341 | .chart-bar { | 350 | .chart-bar { |
342 | width: 60%; | 351 | width: 60%; |
352 | } | ||
343 | } | 353 | } |
344 | } | ||
345 | 354 | ||
346 | .form-clues-content { | 355 | .form-clues-content { |
347 | flex: 1; | 356 | flex: 1; |
348 | height: 100%; | 357 | height: 100%; |
349 | color: #b6b5b5; | 358 | color: #b6b5b5; |
359 | } | ||
350 | } | 360 | } |
351 | } | ||
352 | </style> | 361 | </style> |
353 | <style scoped lang="scss"> | 362 | <style scoped lang="scss"> |
354 | // @import "~@/styles/public.scss"; | 363 | // @import "~@/styles/public.scss"; |
355 | </style> | 364 | </style> | ... | ... |
... | @@ -47,277 +47,279 @@ | ... | @@ -47,277 +47,279 @@ |
47 | </template> | 47 | </template> |
48 | 48 | ||
49 | <script> | 49 | <script> |
50 | import { mapGetters } from "vuex"; | 50 | import { mapGetters } from "vuex"; |
51 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; | 51 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; |
52 | import business from "@/api/business"; | 52 | import business from "@/api/business"; |
53 | export default { | 53 | export default { |
54 | name: "jktj", | 54 | name: "jktj", |
55 | data () { | 55 | data () { |
56 | return { | 56 | return { |
57 | // 开始日期限制 | 57 | // 开始日期限制 |
58 | pickerOptionsStart: { | 58 | pickerOptionsStart: { |
59 | disabledDate: (time) => { | 59 | disabledDate: (time) => { |
60 | if (this.form.endTime) { | 60 | if (this.form.endTime) { |
61 | return time.getTime() > new Date(this.form.endTime).getTime(); | 61 | return time.getTime() > new Date(this.form.endTime).getTime(); |
62 | } | 62 | } |
63 | }, | ||
63 | }, | 64 | }, |
64 | }, | 65 | // 结束日期限制 |
65 | // 结束日期限制 | 66 | pickerOptionsEnd: { |
66 | pickerOptionsEnd: { | 67 | disabledDate: (time) => { |
67 | disabledDate: (time) => { | 68 | if (this.form.startTime) { |
68 | if (this.form.startTime) { | 69 | return time.getTime() < new Date(this.form.startTime).getTime(); |
69 | return time.getTime() < new Date(this.form.startTime).getTime(); | 70 | } |
70 | } | 71 | }, |
71 | }, | 72 | }, |
72 | }, | 73 | recTypeArr: [], |
73 | recTypeArr: [], | 74 | chartData: [], |
74 | chartData: [], | 75 | // 搜索表单 |
75 | // 搜索表单 | 76 | form: { |
76 | form: { | 77 | startTime: getFirstDayOfSeason(), |
77 | startTime: getFirstDayOfSeason(), | 78 | endTime: timeFormat(new Date(), true), |
78 | endTime: timeFormat(new Date(), true), | 79 | qxdm: "", |
79 | qxdm: "", | 80 | }, |
80 | }, | 81 | interval: 50 |
81 | interval: 50 | ||
82 | }; | ||
83 | }, | ||
84 | mounted () { | ||
85 | // 查询成功率 | ||
86 | this.getSuucessRate(); | ||
87 | }, | ||
88 | computed: { | ||
89 | ...mapGetters(["dicData"]), | ||
90 | }, | ||
91 | methods: { | ||
92 | endTimeChange (val) { | ||
93 | this.form.endTime = timeFormat(new Date(val), true) | ||
94 | }, | ||
95 | async getSuucessRate () { | ||
96 | this.recTypeArr = []; | ||
97 | this.chartData = []; | ||
98 | let { result: res } = await business.getSuucessRate( | ||
99 | this.form.startTime, | ||
100 | this.form.endTime, | ||
101 | this.form.qxdm | ||
102 | ); | ||
103 | this.chartData = res; | ||
104 | console.log(this.chartData); | ||
105 | |||
106 | let maxData = Math.max.apply(Math, this.chartData.map(item => { return item.failure })) | ||
107 | this.interval = Math.ceil(maxData / 10) | ||
108 | //行政区代码过滤 | ||
109 | res.length > 0 && | ||
110 | res.forEach((item) => { | ||
111 | this.recTypeArr.push(item.recTypeName); | ||
112 | }); | ||
113 | this.$nextTick(() => { | ||
114 | // 初始化图表 | ||
115 | this.chartData.length && this.echartInit(); | ||
116 | }); | ||
117 | }, | ||
118 | // 重置 | ||
119 | resetForm () { | ||
120 | this.form = { | ||
121 | startTime: getFirstDayOfSeason(), | ||
122 | endTime: timeFormat(new Date(), true), | ||
123 | qxdm: "", | ||
124 | }; | 82 | }; |
83 | }, | ||
84 | mounted () { | ||
85 | // 查询成功率 | ||
125 | this.getSuucessRate(); | 86 | this.getSuucessRate(); |
126 | }, | 87 | }, |
127 | echartInit () { | 88 | computed: { |
128 | let _this = this; | 89 | ...mapGetters(["dicData"]), |
129 | // 基于准备好的dom,初始化echarts实例 | 90 | }, |
130 | let myChart = this.$echarts.init(document.getElementById("myChart")); | 91 | methods: { |
131 | // 绘制图表 | 92 | endTimeChange (val) { |
132 | myChart.setOption({ | 93 | this.form.endTime = timeFormat(new Date(val), true) |
133 | color: ["#13E5FF", "#C99E68", "#E873B2", "#ffaf48"], | 94 | }, |
134 | tooltip: { | 95 | async getSuucessRate () { |
135 | trigger: "axis", | 96 | this.recTypeArr = []; |
136 | formatter: '{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%', | 97 | this.chartData = []; |
137 | axisPointer: { | 98 | let { result: res } = await business.getSuucessRate( |
138 | type: "cross", | 99 | this.form.startTime, |
139 | crossStyle: { | 100 | this.form.endTime, |
140 | color: "#fff", | 101 | this.form.qxdm |
141 | }, | 102 | ); |
142 | }, | 103 | this.chartData = res; |
143 | }, | 104 | |
144 | legend: { | 105 | let maxData = Math.max.apply(Math, this.chartData.map(item => { return item.failure })) |
145 | data: ["成功", "失败", "成功率"], | 106 | this.interval = Math.ceil(maxData / 10) |
146 | top: '16', | 107 | //行政区代码过滤 |
147 | textStyle: { | 108 | res.length > 0 && |
148 | show: true, | 109 | res.forEach((item) => { |
149 | color: "#fff", | 110 | this.recTypeArr.push(item.recTypeName); |
150 | fontSize: "16", | 111 | }); |
151 | }, | 112 | this.$nextTick(() => { |
152 | }, | 113 | // 初始化图表 |
153 | xAxis: [ | 114 | this.chartData.length && this.echartInit(); |
154 | { | 115 | }); |
155 | type: "category", | 116 | }, |
156 | data: _this.recTypeArr, | 117 | // 重置 |
118 | resetForm () { | ||
119 | this.form = { | ||
120 | startTime: getFirstDayOfSeason(), | ||
121 | endTime: timeFormat(new Date(), true), | ||
122 | qxdm: "", | ||
123 | }; | ||
124 | this.getSuucessRate(); | ||
125 | }, | ||
126 | echartInit () { | ||
127 | let _this = this; | ||
128 | // 基于准备好的dom,初始化echarts实例 | ||
129 | let myChart = this.$echarts.init(document.getElementById("myChart")); | ||
130 | // 绘制图表 | ||
131 | myChart.setOption({ | ||
132 | color: ["#13E5FF", "#C99E68", "#E873B2", "#ffaf48"], | ||
133 | tooltip: { | ||
134 | trigger: "axis", | ||
135 | formatter: '{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%', | ||
157 | axisPointer: { | 136 | axisPointer: { |
158 | type: "shadow", | 137 | type: "cross", |
159 | }, | 138 | crossStyle: { |
160 | axisLabel: { | ||
161 | textStyle: { | ||
162 | show: true, | ||
163 | color: "#fff", | 139 | color: "#fff", |
164 | fontSize: "16", | ||
165 | }, | ||
166 | formatter: function (val) { | ||
167 | let c = document.createElement("canvas"); | ||
168 | const ctx = c.getContext("2d"); | ||
169 | const arr = val.split(""); | ||
170 | arr | ||
171 | .map((item) => ctx.measureText(item).width) | ||
172 | .reduce((pre, next, index) => { | ||
173 | const nLen = pre + next; | ||
174 | if (nLen > 40) { | ||
175 | arr[index - 1] += "..."; | ||
176 | return next; | ||
177 | } else { | ||
178 | return nLen; | ||
179 | } | ||
180 | }); | ||
181 | c = null; | ||
182 | let ind = arr.findIndex((i) => { | ||
183 | return i.indexOf("...") > -1; | ||
184 | }); | ||
185 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; | ||
186 | return newArr.join(""); | ||
187 | }, | 140 | }, |
188 | }, | 141 | }, |
189 | }, | 142 | }, |
190 | ], | 143 | legend: { |
191 | yAxis: [ | 144 | data: ["成功", "失败", "成功率"], |
192 | { | 145 | top: '16', |
193 | type: "value", | 146 | textStyle: { |
194 | name: "数量/个", | 147 | show: true, |
195 | nameTextStyle: { | ||
196 | color: "#fff", | 148 | color: "#fff", |
197 | fontSize: "16", | 149 | fontSize: "16", |
198 | }, | 150 | }, |
199 | // interval: this.interval, | 151 | }, |
200 | axisLabel: { | 152 | label: { |
201 | formatter: "{value}", | 153 | color: 'inherit', |
202 | textStyle: { | 154 | }, |
203 | show: true, | 155 | xAxis: [ |
156 | { | ||
157 | type: "category", | ||
158 | data: _this.recTypeArr, | ||
159 | axisPointer: { | ||
160 | type: "shadow", | ||
161 | }, | ||
162 | axisLabel: { | ||
163 | textStyle: { | ||
164 | show: true, | ||
165 | color: "#fff", | ||
166 | fontSize: "16", | ||
167 | }, | ||
168 | formatter: function (val) { | ||
169 | let c = document.createElement("canvas"); | ||
170 | const ctx = c.getContext("2d"); | ||
171 | const arr = val.split(""); | ||
172 | arr | ||
173 | .map((item) => ctx.measureText(item).width) | ||
174 | .reduce((pre, next, index) => { | ||
175 | const nLen = pre + next; | ||
176 | if (nLen > 40) { | ||
177 | arr[index - 1] += "..."; | ||
178 | return next; | ||
179 | } else { | ||
180 | return nLen; | ||
181 | } | ||
182 | }); | ||
183 | c = null; | ||
184 | let ind = arr.findIndex((i) => { | ||
185 | return i.indexOf("...") > -1; | ||
186 | }); | ||
187 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; | ||
188 | return newArr.join(""); | ||
189 | }, | ||
190 | }, | ||
191 | }, | ||
192 | ], | ||
193 | yAxis: [ | ||
194 | { | ||
195 | type: "value", | ||
196 | name: "数量/个", | ||
197 | nameTextStyle: { | ||
204 | color: "#fff", | 198 | color: "#fff", |
205 | fontSize: "16", | 199 | fontSize: "16", |
206 | }, | 200 | }, |
201 | // interval: this.interval, | ||
202 | axisLabel: { | ||
203 | formatter: "{value}", | ||
204 | textStyle: { | ||
205 | show: true, | ||
206 | color: "#fff", | ||
207 | fontSize: "16", | ||
208 | }, | ||
209 | }, | ||
207 | }, | 210 | }, |
208 | }, | 211 | { |
209 | { | 212 | type: "value", |
210 | type: "value", | 213 | name: "成功率", |
211 | name: "成功率", | 214 | nameTextStyle: { |
212 | nameTextStyle: { | ||
213 | color: "#fff", | ||
214 | fontSize: "16", | ||
215 | }, | ||
216 | splitNumber: 2, | ||
217 | axisLabel: { | ||
218 | formatter: "{value} %", | ||
219 | textStyle: { | ||
220 | show: true, | ||
221 | color: "#fff", | 215 | color: "#fff", |
222 | fontSize: "16", | 216 | fontSize: "16", |
223 | }, | 217 | }, |
218 | splitNumber: 2, | ||
219 | axisLabel: { | ||
220 | formatter: "{value} %", | ||
221 | textStyle: { | ||
222 | show: true, | ||
223 | color: "#fff", | ||
224 | fontSize: "16", | ||
225 | }, | ||
226 | }, | ||
224 | }, | 227 | }, |
225 | }, | 228 | ], |
226 | ], | 229 | series: [ |
227 | series: [ | 230 | { |
228 | { | 231 | name: "成功", |
229 | name: "成功", | 232 | type: "bar", |
230 | type: "bar", | 233 | //显示数值 |
231 | //显示数值 | 234 | itemStyle: { |
232 | itemStyle: { | 235 | normal: { |
233 | normal: { | 236 | label: { |
234 | label: { | 237 | show: true, //开启显示 |
235 | show: true, //开启显示 | 238 | position: "top", //在上方显示 |
236 | position: "top", //在上方显示 | 239 | }, |
237 | }, | 240 | }, |
238 | }, | 241 | }, |
242 | barMaxWidth: '60', | ||
243 | data: this.chartData.map((item) => { | ||
244 | return item.success; | ||
245 | }), | ||
239 | }, | 246 | }, |
240 | barMaxWidth: '60', | 247 | { |
241 | data: this.chartData.map((item) => { | 248 | name: "失败", |
242 | return item.success; | 249 | type: "bar", |
243 | }), | 250 | //显示数值 |
244 | }, | 251 | itemStyle: { |
245 | { | 252 | normal: { |
246 | name: "失败", | 253 | label: { |
247 | type: "bar", | 254 | show: true, //开启显示 |
248 | //显示数值 | 255 | position: "top", //在上方显示 |
249 | itemStyle: { | 256 | }, |
250 | normal: { | ||
251 | label: { | ||
252 | show: true, //开启显示 | ||
253 | position: "top", //在上方显示 | ||
254 | }, | 257 | }, |
255 | }, | 258 | }, |
259 | barMaxWidth: '60', | ||
260 | data: this.chartData.map((item) => { | ||
261 | return item.failure; | ||
262 | }), | ||
256 | }, | 263 | }, |
257 | barMaxWidth: '60', | 264 | { |
258 | data: this.chartData.map((item) => { | 265 | name: "成功率", |
259 | return item.failure; | 266 | //显示数值 |
260 | }), | 267 | itemStyle: { |
261 | }, | 268 | normal: { |
262 | { | 269 | label: { |
263 | name: "成功率", | 270 | show: true, //开启显示 |
264 | //显示数值 | 271 | position: "top", //在上方显示 |
265 | itemStyle: { | 272 | }, |
266 | normal: { | ||
267 | label: { | ||
268 | show: true, //开启显示 | ||
269 | position: "top", //在上方显示 | ||
270 | }, | 273 | }, |
271 | }, | 274 | }, |
275 | type: "line", | ||
276 | barMaxWidth: '60', | ||
277 | yAxisIndex: 1, | ||
278 | data: this.chartData.map((item) => { | ||
279 | return item.rate; | ||
280 | }), | ||
272 | }, | 281 | }, |
273 | type: "line", | 282 | ], |
274 | barMaxWidth: '60', | 283 | }); |
275 | yAxisIndex: 1, | 284 | }, |
276 | data: this.chartData.map((item) => { | ||
277 | return item.rate; | ||
278 | }), | ||
279 | }, | ||
280 | ], | ||
281 | }); | ||
282 | }, | 285 | }, |
283 | }, | 286 | }; |
284 | }; | ||
285 | </script> | 287 | </script> |
286 | <style scoped lang="scss"> | 288 | <style scoped lang="scss"> |
287 | // @import "~@/styles/public.scss"; | 289 | // @import "~@/styles/public.scss"; |
288 | 290 | ||
289 | .jktjDetail { | 291 | .jktjDetail { |
290 | height: 100%; | 292 | height: 100%; |
291 | display: flex; | 293 | display: flex; |
292 | flex-direction: column; | 294 | flex-direction: column; |
293 | 295 | ||
294 | .rows { | 296 | .rows { |
295 | margin-left: 100px; | 297 | margin-left: 100px; |
296 | } | 298 | } |
297 | 299 | ||
298 | .center { | 300 | .center { |
299 | line-height: 50vh; | 301 | line-height: 50vh; |
300 | text-align: center; | 302 | text-align: center; |
301 | color: #b6b5b5 | 303 | color: #b6b5b5; |
302 | } | 304 | } |
303 | 305 | ||
304 | .echarts-box { | 306 | .echarts-box { |
305 | display: flex; | 307 | display: flex; |
306 | justify-content: center; | 308 | justify-content: center; |
307 | height: 500px; | 309 | height: 500px; |
308 | 310 | ||
309 | .chart { | 311 | .chart { |
310 | width: 100%; | 312 | width: 100%; |
311 | height: 100%; | 313 | height: 100%; |
314 | } | ||
312 | } | 315 | } |
313 | } | ||
314 | 316 | ||
315 | .form-clues-content { | 317 | .form-clues-content { |
316 | flex: 1; | 318 | flex: 1; |
317 | height: 100%; | 319 | height: 100%; |
320 | } | ||
318 | } | 321 | } |
319 | } | ||
320 | </style> | 322 | </style> |
321 | <style scoped lang="scss"> | 323 | <style scoped lang="scss"> |
322 | // @import "~@/styles/public.scss"; | 324 | // @import "~@/styles/public.scss"; |
323 | </style> | 325 | </style> | ... | ... |
... | @@ -47,204 +47,207 @@ | ... | @@ -47,204 +47,207 @@ |
47 | </template> | 47 | </template> |
48 | 48 | ||
49 | <script> | 49 | <script> |
50 | import { mapGetters } from "vuex"; | 50 | import { mapGetters } from "vuex"; |
51 | import efficient from "@/api/efficient"; | 51 | import efficient from "@/api/efficient"; |
52 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; | 52 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; |
53 | export default { | 53 | export default { |
54 | name: "jktj", | 54 | name: "jktj", |
55 | data () { | 55 | data () { |
56 | return { | 56 | return { |
57 | // 开始日期限制 | 57 | // 开始日期限制 |
58 | pickerOptionsStart: { | 58 | pickerOptionsStart: { |
59 | disabledDate: (time) => { | 59 | disabledDate: (time) => { |
60 | if (this.form.endTime) { | 60 | if (this.form.endTime) { |
61 | return time.getTime() > new Date(this.form.endTime).getTime(); | 61 | return time.getTime() > new Date(this.form.endTime).getTime(); |
62 | } | 62 | } |
63 | }, | ||
63 | }, | 64 | }, |
64 | }, | 65 | // 结束日期限制 |
65 | // 结束日期限制 | 66 | pickerOptionsEnd: { |
66 | pickerOptionsEnd: { | 67 | disabledDate: (time) => { |
67 | disabledDate: (time) => { | 68 | if (this.form.startTime) { |
68 | if (this.form.startTime) { | 69 | return time.getTime() < new Date(this.form.startTime).getTime(); |
69 | return time.getTime() < new Date(this.form.startTime).getTime(); | 70 | } |
70 | } | 71 | }, |
71 | }, | 72 | }, |
72 | }, | 73 | // 搜索表单 |
73 | // 搜索表单 | 74 | valueTime: "", |
74 | valueTime: "", | 75 | // 搜索表单 |
75 | // 搜索表单 | 76 | form: { |
76 | form: { | 77 | startTime: getFirstDayOfSeason(), |
77 | startTime: getFirstDayOfSeason(), | 78 | endTime: timeFormat(new Date(), true), |
78 | endTime: timeFormat(new Date(), true), | 79 | qxdm: "", |
79 | qxdm: "", | 80 | }, |
80 | }, | 81 | chartData: [] |
81 | chartData: [] | ||
82 | }; | ||
83 | }, | ||
84 | mounted () { | ||
85 | // 查询业务量 | ||
86 | this.getProcessCounts(); | ||
87 | }, | ||
88 | computed: { | ||
89 | ...mapGetters(["dicData"]), | ||
90 | }, | ||
91 | methods: { | ||
92 | endTimeChange (val) { | ||
93 | this.form.endTime = timeFormat(new Date(val), true) | ||
94 | }, | ||
95 | async getProcessCounts () { | ||
96 | this.chartData = []; | ||
97 | let { result: res } = await efficient.getProcessCounts( | ||
98 | this.form.startTime, | ||
99 | this.form.endTime, | ||
100 | this.form.qxdm | ||
101 | ); | ||
102 | //获取图表配置项需要的数据 | ||
103 | this.chartData = res; | ||
104 | this.$nextTick(() => { | ||
105 | // 初始化图表 | ||
106 | this.chartData.length && this.echartInit(this.chartData) | ||
107 | }); | ||
108 | |||
109 | }, | ||
110 | // 重置 | ||
111 | resetForm () { | ||
112 | this.form = { | ||
113 | startTime: getFirstDayOfSeason(), | ||
114 | endTime: timeFormat(new Date(), true), | ||
115 | qxdm: "" | ||
116 | }; | 82 | }; |
83 | }, | ||
84 | mounted () { | ||
85 | // 查询业务量 | ||
117 | this.getProcessCounts(); | 86 | this.getProcessCounts(); |
118 | }, | 87 | }, |
119 | //图表渲染 | 88 | computed: { |
120 | echartInit (chartArr) { | 89 | ...mapGetters(["dicData"]), |
121 | // 基于准备好的dom,初始化echarts实例 | 90 | }, |
122 | let myChart = this.$echarts.init(document.getElementById("myChart")); | 91 | methods: { |
123 | // 绘制图表 | 92 | endTimeChange (val) { |
124 | myChart.setOption({ | 93 | this.form.endTime = timeFormat(new Date(val), true) |
125 | color: ["#13E5FF"], | 94 | }, |
126 | tooltip: { | 95 | async getProcessCounts () { |
127 | show: true, | 96 | this.chartData = []; |
128 | trigger: "axis", | 97 | let { result: res } = await efficient.getProcessCounts( |
129 | textStyle: { | 98 | this.form.startTime, |
130 | fontSize: 16, // 字体大小 | 99 | this.form.endTime, |
100 | this.form.qxdm | ||
101 | ); | ||
102 | //获取图表配置项需要的数据 | ||
103 | this.chartData = res; | ||
104 | this.$nextTick(() => { | ||
105 | // 初始化图表 | ||
106 | this.chartData.length && this.echartInit(this.chartData) | ||
107 | }); | ||
108 | |||
109 | }, | ||
110 | // 重置 | ||
111 | resetForm () { | ||
112 | this.form = { | ||
113 | startTime: getFirstDayOfSeason(), | ||
114 | endTime: timeFormat(new Date(), true), | ||
115 | qxdm: "" | ||
116 | }; | ||
117 | this.getProcessCounts(); | ||
118 | }, | ||
119 | //图表渲染 | ||
120 | echartInit (chartArr) { | ||
121 | // 基于准备好的dom,初始化echarts实例 | ||
122 | let myChart = this.$echarts.init(document.getElementById("myChart")); | ||
123 | // 绘制图表 | ||
124 | myChart.setOption({ | ||
125 | color: ["#13E5FF"], | ||
126 | tooltip: { | ||
127 | show: true, | ||
128 | trigger: "axis", | ||
129 | textStyle: { | ||
130 | fontSize: 16, // 字体大小 | ||
131 | }, | ||
131 | }, | 132 | }, |
132 | }, | 133 | grid: { |
133 | grid: { | 134 | top: 120, |
134 | top: 120, | 135 | bottom: 100, |
135 | bottom: 100, | 136 | }, |
136 | }, | 137 | label: { |
137 | xAxis: [ | 138 | color: 'inherit', |
138 | { | 139 | }, |
139 | type: "category", | 140 | xAxis: [ |
140 | data: chartArr.map(item => item.recTypeName), | 141 | { |
141 | axisLabel: { | 142 | type: "category", |
142 | interval: 0, | 143 | data: chartArr.map(item => item.recTypeName), |
143 | rotate: 40, | 144 | axisLabel: { |
144 | formatter: function (val) { | 145 | interval: 0, |
145 | let c = document.createElement("canvas"); | 146 | rotate: 40, |
146 | const ctx = c.getContext("2d"); | 147 | formatter: function (val) { |
147 | const arr = val.split(""); | 148 | let c = document.createElement("canvas"); |
148 | arr | 149 | const ctx = c.getContext("2d"); |
149 | .map((item) => ctx.measureText(item).width) | 150 | const arr = val.split(""); |
150 | .reduce((pre, next, index) => { | 151 | arr |
151 | const nLen = pre + next; | 152 | .map((item) => ctx.measureText(item).width) |
152 | if (nLen > 60) { | 153 | .reduce((pre, next, index) => { |
153 | arr[index - 1] += "..."; | 154 | const nLen = pre + next; |
154 | return next; | 155 | if (nLen > 60) { |
155 | } else { | 156 | arr[index - 1] += "..."; |
156 | return nLen; | 157 | return next; |
157 | } | 158 | } else { |
159 | return nLen; | ||
160 | } | ||
161 | }); | ||
162 | c = null; | ||
163 | let ind = arr.findIndex((i) => { | ||
164 | return i.indexOf("...") > -1; | ||
158 | }); | 165 | }); |
159 | c = null; | 166 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; |
160 | let ind = arr.findIndex((i) => { | 167 | return newArr.join(""); |
161 | return i.indexOf("...") > -1; | 168 | }, |
162 | }); | 169 | textStyle: { |
163 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; | 170 | show: true, |
164 | return newArr.join(""); | 171 | color: "#fff", |
165 | }, | 172 | fontSize: "16", |
166 | textStyle: { | 173 | }, |
167 | show: true, | ||
168 | color: "#fff", | ||
169 | fontSize: "16", | ||
170 | }, | 174 | }, |
171 | }, | 175 | }, |
172 | }, | 176 | ], |
173 | ], | 177 | yAxis: [ |
174 | yAxis: [ | 178 | { |
175 | { | 179 | type: "value", |
176 | type: "value", | 180 | name: "数量/个", |
177 | name: "数量/个", | 181 | nameTextStyle: { |
178 | nameTextStyle: { | ||
179 | color: "#fff", | ||
180 | fontSize: "16", | ||
181 | }, | ||
182 | axisLabel: { | ||
183 | textStyle: { | ||
184 | show: true, | ||
185 | color: "#fff", | 182 | color: "#fff", |
186 | fontSize: "16", | 183 | fontSize: "16", |
187 | }, | 184 | }, |
185 | axisLabel: { | ||
186 | textStyle: { | ||
187 | show: true, | ||
188 | color: "#fff", | ||
189 | fontSize: "16", | ||
190 | }, | ||
191 | }, | ||
188 | }, | 192 | }, |
189 | }, | 193 | ], |
190 | ], | ||
191 | 194 | ||
192 | series: [ | 195 | series: [ |
193 | { | 196 | { |
194 | type: "bar", | 197 | type: "bar", |
195 | //显示数值 | 198 | //显示数值 |
196 | itemStyle: { | 199 | itemStyle: { |
197 | normal: { | 200 | normal: { |
198 | label: { | 201 | label: { |
199 | show: true, //开启显示 | 202 | show: true, //开启显示 |
200 | position: "top", //在上方显示 | 203 | position: "top", //在上方显示 |
204 | }, | ||
201 | }, | 205 | }, |
202 | }, | 206 | }, |
207 | barMaxWidth: '60', | ||
208 | data: chartArr.map(item => item.counts), | ||
203 | }, | 209 | }, |
204 | barMaxWidth: '60', | 210 | ], |
205 | data: chartArr.map(item => item.counts), | 211 | }); |
206 | }, | 212 | }, |
207 | ], | ||
208 | }); | ||
209 | }, | 213 | }, |
210 | }, | 214 | }; |
211 | }; | ||
212 | </script> | 215 | </script> |
213 | <style scoped lang="scss"> | 216 | <style scoped lang="scss"> |
214 | // @import "~@/styles/public.scss"; | 217 | // @import "~@/styles/public.scss"; |
218 | |||
219 | .jktjDetail { | ||
220 | height: 100%; | ||
221 | display: flex; | ||
222 | flex-direction: column; | ||
215 | 223 | ||
216 | .jktjDetail { | 224 | .rows { |
217 | height: 100%; | 225 | margin-left: 100px; |
218 | display: flex; | 226 | } |
219 | flex-direction: column; | ||
220 | 227 | ||
221 | .rows { | 228 | .center { |
222 | margin-left: 100px; | 229 | line-height: 50vh; |
223 | } | 230 | text-align: center; |
231 | color: #b6b5b5; | ||
232 | } | ||
224 | 233 | ||
225 | .center { | 234 | .echarts-box { |
226 | line-height: 50vh; | 235 | display: flex; |
227 | text-align: center; | 236 | justify-content: center; |
228 | color: #b6b5b5 | 237 | height: 500px; |
229 | } | ||
230 | 238 | ||
231 | .echarts-box { | 239 | .chart { |
232 | display: flex; | 240 | width: 100%; |
233 | justify-content: center; | 241 | height: 100%; |
234 | height: 500px; | 242 | } |
243 | } | ||
235 | 244 | ||
236 | .chart { | 245 | .form-clues-content { |
237 | width: 100%; | 246 | flex: 1; |
238 | height: 100%; | 247 | height: 100%; |
239 | } | 248 | } |
240 | } | 249 | } |
241 | |||
242 | .form-clues-content { | ||
243 | flex: 1; | ||
244 | height: 100%; | ||
245 | } | ||
246 | } | ||
247 | </style> | 250 | </style> |
248 | <style scoped lang="scss"> | 251 | <style scoped lang="scss"> |
249 | // @import "~@/styles/public.scss"; | 252 | // @import "~@/styles/public.scss"; |
250 | </style> | 253 | </style> | ... | ... |
... | @@ -59,11 +59,9 @@ | ... | @@ -59,11 +59,9 @@ |
59 | //根据子系统code获取子系统详细信息 | 59 | //根据子系统code获取子系统详细信息 |
60 | getAction(api.subsystem, params).then((res) => { | 60 | getAction(api.subsystem, params).then((res) => { |
61 | if (res.status === 1) { | 61 | if (res.status === 1) { |
62 | console.log(" res.contentJJJGGG", res.content); | ||
63 | this.productName = res.content[0].name; | 62 | this.productName = res.content[0].name; |
64 | this.$store.dispatch("products/setData", res.content[0].code); | 63 | this.$store.dispatch("products/setData", res.content[0].code); |
65 | sessionStorage.setItem("products", res.content[0].code) | 64 | sessionStorage.setItem("products", res.content[0].code) |
66 | console.log("jjjggg的product"); | ||
67 | } else { | 65 | } else { |
68 | this.$message.error({ message: res.message, showClose: true }); | 66 | this.$message.error({ message: res.message, showClose: true }); |
69 | } | 67 | } | ... | ... |
... | @@ -15,10 +15,10 @@ | ... | @@ -15,10 +15,10 @@ |
15 | </el-form-item> | 15 | </el-form-item> |
16 | <el-row class="mb-5"> | 16 | <el-row class="mb-5"> |
17 | <el-col :span="4" class="btnColRight"> | 17 | <el-col :span="4" class="btnColRight"> |
18 | <btn nativeType="cx" type="primary" @click="information"> | 18 | <btn nativeType="cx" @click="information"> |
19 | 基本信息 | 19 | 基本信息 |
20 | </btn> | 20 | </btn> |
21 | <btn nativeType="cz" @click="password"> | 21 | <btn nativeType="cx" @click="password"> |
22 | 修改密码 | 22 | 修改密码 |
23 | </btn> | 23 | </btn> |
24 | </el-col> | 24 | </el-col> | ... | ... |
... | @@ -168,7 +168,6 @@ | ... | @@ -168,7 +168,6 @@ |
168 | // 获取授权主体的菜单权限 | 168 | // 获取授权主体的菜单权限 |
169 | // getMenuAuthorityList | 169 | // getMenuAuthorityList |
170 | menulist (operationList, id, Code, menutablelistData, operationCodes) { | 170 | menulist (operationList, id, Code, menutablelistData, operationCodes) { |
171 | console.log("Code", Code); | ||
172 | this.selectedSubsystemCode = Code | 171 | this.selectedSubsystemCode = Code |
173 | this.menuList = menutablelistData; | 172 | this.menuList = menutablelistData; |
174 | getRoleAuthorityList( | 173 | getRoleAuthorityList( | ... | ... |
... | @@ -113,7 +113,6 @@ export default { | ... | @@ -113,7 +113,6 @@ export default { |
113 | this.form = Object.assign(this.form, this.formData) | 113 | this.form = Object.assign(this.form, this.formData) |
114 | let { result } = await sjsbTask.getTaskListByName(this.form) | 114 | let { result } = await sjsbTask.getTaskListByName(this.form) |
115 | this.tableData.data = result.list | 115 | this.tableData.data = result.list |
116 | console.log(this.tableData.data, 'fffffffffffffffffff') | ||
117 | } catch (error) { | 116 | } catch (error) { |
118 | this.message = error | 117 | this.message = error |
119 | } | 118 | } | ... | ... |
-
Please register or sign in to post a comment