feat:配置修改
Showing
10 changed files
with
386 additions
and
410 deletions
public/610702.json
deleted
100644 → 0
1 | { | ||
2 | "TITLE": "汉中市数据上报系统", | ||
3 | "CODE": "BDCSJSB", | ||
4 | "AREARMAP": "610702", | ||
5 | "XZQ": "汉中市", | ||
6 | "SERVERAPI": "/bdcsjsb", | ||
7 | "calcHeight": 160, | ||
8 | "echartTextColor": "#4A4A4A", | ||
9 | "MANAGEMENTAPI": "http://192.168.2.38:8090/management", | ||
10 | "ip": "http://192.168.2.38:8027" | ||
11 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
public/632701.json
deleted
100644 → 0
1 | { | ||
2 | "TITLE": "玉树州数据上报系统", | ||
3 | "CODE": "BDCSJSB", | ||
4 | "AREARMAP": "632701", | ||
5 | "XZQ": "玉树州", | ||
6 | "SERVERAPI": "/bdcsjsb", | ||
7 | "calcHeight": 160, | ||
8 | "echartTextColor": "#4A4A4A", | ||
9 | "MANAGEMENTAPI": "http://192.168.2.38:8090/management", | ||
10 | "ip": "http://192.168.2.38:8027" | ||
11 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -4,8 +4,6 @@ | ... | @@ -4,8 +4,6 @@ |
4 | "AREARMAP": "610702", | 4 | "AREARMAP": "610702", |
5 | "XZQ": "汉中市", | 5 | "XZQ": "汉中市", |
6 | "SERVERAPI": "/bdcsjsb", | 6 | "SERVERAPI": "/bdcsjsb", |
7 | "calcHeight": 160, | ||
8 | "echartTextColor": "#4A4A4A", | ||
9 | "MANAGEMENTAPI": "http://192.168.2.38:8090/management", | 7 | "MANAGEMENTAPI": "http://192.168.2.38:8090/management", |
10 | "ip": "http://192.168.2.38" | 8 | "ip": "http://192.168.2.38" |
11 | } | 9 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -131,7 +131,7 @@ | ... | @@ -131,7 +131,7 @@ |
131 | bottom: "-1%", | 131 | bottom: "-1%", |
132 | left: "center", | 132 | left: "center", |
133 | textStyle: { | 133 | textStyle: { |
134 | color: this.BASE_API.echartTextColor, | 134 | color: "#4A4A4A", |
135 | }, | 135 | }, |
136 | }, | 136 | }, |
137 | tooltip: { | 137 | tooltip: { |
... | @@ -232,7 +232,7 @@ | ... | @@ -232,7 +232,7 @@ |
232 | top: 20, | 232 | top: 20, |
233 | textStyle: { | 233 | textStyle: { |
234 | show: true, | 234 | show: true, |
235 | color: this.BASE_API.echartTextColor, | 235 | color: "#4A4A4A", |
236 | fontSize: "16", | 236 | fontSize: "16", |
237 | }, | 237 | }, |
238 | }, | 238 | }, |
... | @@ -244,7 +244,7 @@ | ... | @@ -244,7 +244,7 @@ |
244 | interval: 0, | 244 | interval: 0, |
245 | textStyle: { | 245 | textStyle: { |
246 | show: true, | 246 | show: true, |
247 | color: this.BASE_API.echartTextColor, | 247 | color: "#4A4A4A", |
248 | fontSize: "16", | 248 | fontSize: "16", |
249 | }, | 249 | }, |
250 | }, | 250 | }, |
... | @@ -261,7 +261,7 @@ | ... | @@ -261,7 +261,7 @@ |
261 | axisLabel: { | 261 | axisLabel: { |
262 | textStyle: { | 262 | textStyle: { |
263 | show: true, | 263 | show: true, |
264 | color: this.BASE_API.echartTextColor, | 264 | color: "#4A4A4A", |
265 | fontSize: "16", | 265 | fontSize: "16", |
266 | }, | 266 | }, |
267 | }, | 267 | }, | ... | ... |
... | @@ -52,256 +52,256 @@ | ... | @@ -52,256 +52,256 @@ |
52 | </template> | 52 | </template> |
53 | 53 | ||
54 | <script> | 54 | <script> |
55 | import { mapGetters } from "vuex"; | 55 | import { mapGetters } from "vuex"; |
56 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; | 56 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; |
57 | import business from "@/api/business"; | 57 | import business from "@/api/business"; |
58 | export default { | 58 | export default { |
59 | name: "jktj", | 59 | name: "jktj", |
60 | data () { | 60 | data () { |
61 | return { | 61 | return { |
62 | // 开始日期限制 | 62 | // 开始日期限制 |
63 | pickerOptionsStart: { | 63 | pickerOptionsStart: { |
64 | disabledDate: (time) => { | 64 | disabledDate: (time) => { |
65 | if (this.form.endTime) { | 65 | if (this.form.endTime) { |
66 | return time.getTime() > new Date(this.form.endTime).getTime(); | 66 | return time.getTime() > new Date(this.form.endTime).getTime(); |
67 | } | 67 | } |
68 | }, | ||
68 | }, | 69 | }, |
69 | }, | 70 | // 结束日期限制 |
70 | // 结束日期限制 | 71 | pickerOptionsEnd: { |
71 | pickerOptionsEnd: { | 72 | disabledDate: (time) => { |
72 | disabledDate: (time) => { | 73 | if (this.form.startTime) { |
73 | if (this.form.startTime) { | 74 | return time.getTime() < new Date(this.form.startTime).getTime(); |
74 | return time.getTime() < new Date(this.form.startTime).getTime(); | 75 | } |
75 | } | 76 | }, |
76 | }, | 77 | }, |
77 | }, | 78 | recTypeArr: [], |
78 | recTypeArr: [], | 79 | chartData: [], |
79 | chartData: [], | 80 | // 搜索表单 |
80 | // 搜索表单 | 81 | form: { |
81 | form: { | 82 | startTime: getFirstDayOfSeason(), |
82 | startTime: getFirstDayOfSeason(), | 83 | endTime: timeFormat(new Date(), true), |
83 | endTime: timeFormat(new Date(), true), | 84 | qxdm: "", |
84 | qxdm: "", | 85 | }, |
85 | }, | 86 | interval: 50 |
86 | interval: 50 | ||
87 | }; | ||
88 | }, | ||
89 | mounted () { | ||
90 | // 查询成功率 | ||
91 | this.getSuucessRate(); | ||
92 | }, | ||
93 | computed: { | ||
94 | ...mapGetters(["dicData"]), | ||
95 | }, | ||
96 | methods: { | ||
97 | endTimeChange (val) { | ||
98 | this.form.endTime = timeFormat(new Date(val), true) | ||
99 | }, | ||
100 | async getSuucessRate () { | ||
101 | this.recTypeArr = []; | ||
102 | this.chartData = []; | ||
103 | let { result: res } = await business.getSuucessRate( | ||
104 | this.form.startTime, | ||
105 | this.form.endTime, | ||
106 | this.form.qxdm | ||
107 | ); | ||
108 | this.chartData = res; | ||
109 | |||
110 | let maxData = Math.max.apply(Math, this.chartData.map(item => { return item.failure })) | ||
111 | this.interval = Math.ceil(maxData / 10) | ||
112 | //行政区代码过滤 | ||
113 | res.length > 0 && | ||
114 | res.forEach((item) => { | ||
115 | this.recTypeArr.push(item.recTypeName); | ||
116 | }); | ||
117 | this.$nextTick(() => { | ||
118 | // 初始化图表 | ||
119 | this.chartData.length && this.echartInit(); | ||
120 | }); | ||
121 | }, | ||
122 | // 重置 | ||
123 | resetForm () { | ||
124 | this.form = { | ||
125 | startTime: getFirstDayOfSeason(), | ||
126 | endTime: timeFormat(new Date(), true), | ||
127 | qxdm: "", | ||
128 | }; | 87 | }; |
88 | }, | ||
89 | mounted () { | ||
90 | // 查询成功率 | ||
129 | this.getSuucessRate(); | 91 | this.getSuucessRate(); |
130 | }, | 92 | }, |
131 | echartInit () { | 93 | computed: { |
132 | let _this = this; | 94 | ...mapGetters(["dicData"]), |
133 | // 基于准备好的dom,初始化echarts实例 | 95 | }, |
134 | let myChart = this.$echarts.init(document.getElementById("myChart")); | 96 | methods: { |
135 | // 绘制图表 | 97 | endTimeChange (val) { |
136 | myChart.setOption({ | 98 | this.form.endTime = timeFormat(new Date(val), true) |
137 | color: ["#13E5FF", "#C99E68", "#E873B2", "#ffaf48"], | 99 | }, |
138 | tooltip: { | 100 | async getSuucessRate () { |
139 | trigger: "axis", | 101 | this.recTypeArr = []; |
140 | formatter: '{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%', | 102 | this.chartData = []; |
141 | axisPointer: { | 103 | let { result: res } = await business.getSuucessRate( |
142 | type: "cross", | 104 | this.form.startTime, |
143 | crossStyle: { | 105 | this.form.endTime, |
144 | color: this.BASE_API.echartTextColor, | 106 | this.form.qxdm |
107 | ); | ||
108 | this.chartData = res; | ||
109 | |||
110 | let maxData = Math.max.apply(Math, this.chartData.map(item => { return item.failure })) | ||
111 | this.interval = Math.ceil(maxData / 10) | ||
112 | //行政区代码过滤 | ||
113 | res.length > 0 && | ||
114 | res.forEach((item) => { | ||
115 | this.recTypeArr.push(item.recTypeName); | ||
116 | }); | ||
117 | this.$nextTick(() => { | ||
118 | // 初始化图表 | ||
119 | this.chartData.length && this.echartInit(); | ||
120 | }); | ||
121 | }, | ||
122 | // 重置 | ||
123 | resetForm () { | ||
124 | this.form = { | ||
125 | startTime: getFirstDayOfSeason(), | ||
126 | endTime: timeFormat(new Date(), true), | ||
127 | qxdm: "", | ||
128 | }; | ||
129 | this.getSuucessRate(); | ||
130 | }, | ||
131 | echartInit () { | ||
132 | let _this = this; | ||
133 | // 基于准备好的dom,初始化echarts实例 | ||
134 | let myChart = this.$echarts.init(document.getElementById("myChart")); | ||
135 | // 绘制图表 | ||
136 | myChart.setOption({ | ||
137 | color: ["#13E5FF", "#C99E68", "#E873B2", "#ffaf48"], | ||
138 | tooltip: { | ||
139 | trigger: "axis", | ||
140 | formatter: '{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%', | ||
141 | axisPointer: { | ||
142 | type: "cross", | ||
143 | crossStyle: { | ||
144 | color: "#4A4A4A", | ||
145 | }, | ||
145 | }, | 146 | }, |
146 | }, | 147 | }, |
147 | }, | 148 | legend: { |
148 | legend: { | 149 | data: ["成功", "失败", "成功率"], |
149 | data: ["成功", "失败", "成功率"], | 150 | top: '16', |
150 | top: '16', | 151 | textStyle: { |
151 | textStyle: { | 152 | show: true, |
152 | show: true, | 153 | color: "#4A4A4A", |
153 | color: this.BASE_API.echartTextColor, | 154 | fontSize: "16", |
154 | fontSize: "16", | ||
155 | }, | ||
156 | }, | ||
157 | label: { | ||
158 | color: 'inherit', | ||
159 | }, | ||
160 | xAxis: [ | ||
161 | { | ||
162 | type: "category", | ||
163 | data: _this.recTypeArr, | ||
164 | axisPointer: { | ||
165 | type: "shadow", | ||
166 | }, | 155 | }, |
167 | axisLabel: { | 156 | }, |
168 | textStyle: { | 157 | label: { |
169 | show: true, | 158 | color: 'inherit', |
170 | color: this.BASE_API.echartTextColor, | 159 | }, |
171 | fontSize: "16", | 160 | xAxis: [ |
161 | { | ||
162 | type: "category", | ||
163 | data: _this.recTypeArr, | ||
164 | axisPointer: { | ||
165 | type: "shadow", | ||
172 | }, | 166 | }, |
173 | formatter: function (val) { | 167 | axisLabel: { |
174 | let c = document.createElement("canvas"); | 168 | textStyle: { |
175 | const ctx = c.getContext("2d"); | 169 | show: true, |
176 | const arr = val.split(""); | 170 | color: "#4A4A4A", |
177 | arr | 171 | fontSize: "16", |
178 | .map((item) => ctx.measureText(item).width) | 172 | }, |
179 | .reduce((pre, next, index) => { | 173 | formatter: function (val) { |
180 | const nLen = pre + next; | 174 | let c = document.createElement("canvas"); |
181 | if (nLen > 40) { | 175 | const ctx = c.getContext("2d"); |
182 | arr[index - 1] += "..."; | 176 | const arr = val.split(""); |
183 | return next; | 177 | arr |
184 | } else { | 178 | .map((item) => ctx.measureText(item).width) |
185 | return nLen; | 179 | .reduce((pre, next, index) => { |
186 | } | 180 | const nLen = pre + next; |
181 | if (nLen > 40) { | ||
182 | arr[index - 1] += "..."; | ||
183 | return next; | ||
184 | } else { | ||
185 | return nLen; | ||
186 | } | ||
187 | }); | ||
188 | c = null; | ||
189 | let ind = arr.findIndex((i) => { | ||
190 | return i.indexOf("...") > -1; | ||
187 | }); | 191 | }); |
188 | c = null; | 192 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; |
189 | let ind = arr.findIndex((i) => { | 193 | return newArr.join(""); |
190 | return i.indexOf("...") > -1; | 194 | }, |
191 | }); | ||
192 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; | ||
193 | return newArr.join(""); | ||
194 | }, | 195 | }, |
195 | }, | 196 | }, |
196 | }, | 197 | ], |
197 | ], | 198 | yAxis: [ |
198 | yAxis: [ | 199 | { |
199 | { | 200 | type: "value", |
200 | type: "value", | 201 | name: "数量/个", |
201 | name: "数量/个", | 202 | nameTextStyle: { |
202 | nameTextStyle: { | 203 | color: "#4A4A4A", |
203 | color: this.BASE_API.echartTextColor, | ||
204 | fontSize: "16", | ||
205 | }, | ||
206 | // interval: this.interval, | ||
207 | axisLabel: { | ||
208 | formatter: "{value}", | ||
209 | textStyle: { | ||
210 | show: true, | ||
211 | color: this.BASE_API.echartTextColor, | ||
212 | fontSize: "16", | 204 | fontSize: "16", |
213 | }, | 205 | }, |
206 | // interval: this.interval, | ||
207 | axisLabel: { | ||
208 | formatter: "{value}", | ||
209 | textStyle: { | ||
210 | show: true, | ||
211 | color: "#4A4A4A", | ||
212 | fontSize: "16", | ||
213 | }, | ||
214 | }, | ||
214 | }, | 215 | }, |
215 | }, | 216 | { |
216 | { | 217 | type: "value", |
217 | type: "value", | 218 | name: "成功率", |
218 | name: "成功率", | 219 | nameTextStyle: { |
219 | nameTextStyle: { | 220 | color: "#4A4A4A", |
220 | color: this.BASE_API.echartTextColor, | ||
221 | fontSize: "16", | ||
222 | }, | ||
223 | splitNumber: 2, | ||
224 | axisLabel: { | ||
225 | formatter: "{value} %", | ||
226 | textStyle: { | ||
227 | show: true, | ||
228 | color: this.BASE_API.echartTextColor, | ||
229 | fontSize: "16", | 221 | fontSize: "16", |
230 | }, | 222 | }, |
223 | splitNumber: 2, | ||
224 | axisLabel: { | ||
225 | formatter: "{value} %", | ||
226 | textStyle: { | ||
227 | show: true, | ||
228 | color: "#4A4A4A", | ||
229 | fontSize: "16", | ||
230 | }, | ||
231 | }, | ||
231 | }, | 232 | }, |
232 | }, | 233 | ], |
233 | ], | 234 | series: [ |
234 | series: [ | 235 | { |
235 | { | 236 | name: "成功", |
236 | name: "成功", | 237 | type: "bar", |
237 | type: "bar", | 238 | //显示数值 |
238 | //显示数值 | 239 | itemStyle: { |
239 | itemStyle: { | 240 | normal: { |
240 | normal: { | 241 | label: { |
241 | label: { | 242 | show: true, //开启显示 |
242 | show: true, //开启显示 | 243 | position: "top", //在上方显示 |
243 | position: "top", //在上方显示 | 244 | }, |
244 | }, | 245 | }, |
245 | }, | 246 | }, |
247 | barMaxWidth: '60', | ||
248 | data: this.chartData.map((item) => { | ||
249 | return item.success; | ||
250 | }), | ||
246 | }, | 251 | }, |
247 | barMaxWidth: '60', | 252 | { |
248 | data: this.chartData.map((item) => { | 253 | name: "失败", |
249 | return item.success; | 254 | type: "bar", |
250 | }), | 255 | //显示数值 |
251 | }, | 256 | itemStyle: { |
252 | { | 257 | normal: { |
253 | name: "失败", | 258 | label: { |
254 | type: "bar", | 259 | show: true, //开启显示 |
255 | //显示数值 | 260 | position: "top", //在上方显示 |
256 | itemStyle: { | 261 | }, |
257 | normal: { | ||
258 | label: { | ||
259 | show: true, //开启显示 | ||
260 | position: "top", //在上方显示 | ||
261 | }, | 262 | }, |
262 | }, | 263 | }, |
264 | barMaxWidth: '60', | ||
265 | data: this.chartData.map((item) => { | ||
266 | return item.failure; | ||
267 | }), | ||
263 | }, | 268 | }, |
264 | barMaxWidth: '60', | 269 | { |
265 | data: this.chartData.map((item) => { | 270 | name: "成功率", |
266 | return item.failure; | 271 | //显示数值 |
267 | }), | 272 | itemStyle: { |
268 | }, | 273 | normal: { |
269 | { | 274 | label: { |
270 | name: "成功率", | 275 | show: true, //开启显示 |
271 | //显示数值 | 276 | position: "top", //在上方显示 |
272 | itemStyle: { | 277 | }, |
273 | normal: { | ||
274 | label: { | ||
275 | show: true, //开启显示 | ||
276 | position: "top", //在上方显示 | ||
277 | }, | 278 | }, |
278 | }, | 279 | }, |
280 | type: "line", | ||
281 | barMaxWidth: '60', | ||
282 | yAxisIndex: 1, | ||
283 | data: this.chartData.map((item) => { | ||
284 | return item.rate; | ||
285 | }), | ||
279 | }, | 286 | }, |
280 | type: "line", | 287 | ], |
281 | barMaxWidth: '60', | 288 | }); |
282 | yAxisIndex: 1, | 289 | }, |
283 | data: this.chartData.map((item) => { | ||
284 | return item.rate; | ||
285 | }), | ||
286 | }, | ||
287 | ], | ||
288 | }); | ||
289 | }, | 290 | }, |
290 | }, | 291 | }; |
291 | }; | ||
292 | </script> | 292 | </script> |
293 | <style scoped lang="scss"> | 293 | <style scoped lang="scss"> |
294 | .jktjDetail { | 294 | .jktjDetail { |
295 | flex-direction: column; | 295 | flex-direction: column; |
296 | 296 | ||
297 | .rows { | 297 | .rows { |
298 | margin-left: 100px; | 298 | margin-left: 100px; |
299 | } | 299 | } |
300 | 300 | ||
301 | .center { | 301 | .center { |
302 | line-height: 50vh; | 302 | line-height: 50vh; |
303 | text-align: center; | 303 | text-align: center; |
304 | color: #b6b5b5; | 304 | color: #b6b5b5; |
305 | } | ||
305 | } | 306 | } |
306 | } | ||
307 | </style> | 307 | </style> | ... | ... |
... | @@ -38,7 +38,7 @@ | ... | @@ -38,7 +38,7 @@ |
38 | </div> | 38 | </div> |
39 | <!-- 列表区域 --> | 39 | <!-- 列表区域 --> |
40 | <div class="from-clues-content complex-header"> | 40 | <div class="from-clues-content complex-header"> |
41 | <lb-table ref="table" :header-cell-style="headerStyle1" :calcHeight="BASE_API.calcHeight" :pagination="false" | 41 | <lb-table ref="table" :header-cell-style="headerStyle1" :calcHeight="160" :pagination="false" |
42 | :column="tableData.columns" :data="tableData.data"> | 42 | :column="tableData.columns" :data="tableData.data"> |
43 | </lb-table> | 43 | </lb-table> |
44 | 44 | ... | ... |
... | @@ -39,7 +39,7 @@ | ... | @@ -39,7 +39,7 @@ |
39 | </div> | 39 | </div> |
40 | <!-- 列表区域 --> | 40 | <!-- 列表区域 --> |
41 | <div class="from-clues-content complex-header"> | 41 | <div class="from-clues-content complex-header"> |
42 | <lb-table ref="table" :pagination="false" :calcHeight="BASE_API.calcHeight" :column="tableData.columns" :data="tableData.data"> | 42 | <lb-table ref="table" :pagination="false" :calcHeight="160" :column="tableData.columns" :data="tableData.data"> |
43 | </lb-table> | 43 | </lb-table> |
44 | <down-lb-table ref="table" v-show="false" :id="'mytable'" :downExcel="true" :pagination="false" | 44 | <down-lb-table ref="table" v-show="false" :id="'mytable'" :downExcel="true" :pagination="false" |
45 | :column="tableData.columns" :data="tableData.data" :downTitle="downTitle"> | 45 | :column="tableData.columns" :data="tableData.data" :downTitle="downTitle"> | ... | ... |
... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
2 | * @Author: yangwei | 2 | * @Author: yangwei |
3 | * @Date: 2023-02-17 16:32:50 | 3 | * @Date: 2023-02-17 16:32:50 |
4 | * @LastEditors: Please set LastEditors | 4 | * @LastEditors: Please set LastEditors |
5 | * @LastEditTime: 2023-05-11 10:11:15 | 5 | * @LastEditTime: 2023-06-09 15:16:47 |
6 | * @FilePath: \bdcjg-web\src\views\statistics\registerBookQuality\index.vue | 6 | * @FilePath: \bdcjg-web\src\views\statistics\registerBookQuality\index.vue |
7 | * @Description: 接入质量评价表 | 7 | * @Description: 接入质量评价表 |
8 | * | 8 | * |
... | @@ -43,7 +43,7 @@ | ... | @@ -43,7 +43,7 @@ |
43 | </div> | 43 | </div> |
44 | <!-- 列表区域 --> | 44 | <!-- 列表区域 --> |
45 | <div class="from-clues-content complex-header"> | 45 | <div class="from-clues-content complex-header"> |
46 | <lb-table ref="table" :pagination="false" :border="true" :calcHeight="BASE_API.calcHeight" | 46 | <lb-table ref="table" :pagination="false" :border="true" :calcHeight="160" |
47 | :header-cell-style="headerStyle" :column="tableData.columns" :data="tableData.data"> | 47 | :header-cell-style="headerStyle" :column="tableData.columns" :data="tableData.data"> |
48 | </lb-table> | 48 | </lb-table> |
49 | <down-lb-table ref="table" v-show="false" :id="'mytable'" :header-cell-style="headerStyle1" :downExcel="true" | 49 | <down-lb-table ref="table" v-show="false" :id="'mytable'" :header-cell-style="headerStyle1" :downExcel="true" | ... | ... |
... | @@ -51,184 +51,184 @@ | ... | @@ -51,184 +51,184 @@ |
51 | </div> | 51 | </div> |
52 | </template> | 52 | </template> |
53 | <script> | 53 | <script> |
54 | import { mapGetters } from "vuex"; | 54 | import { mapGetters } from "vuex"; |
55 | import efficient from "@/api/efficient"; | 55 | import efficient from "@/api/efficient"; |
56 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; | 56 | import { getFirstDayOfSeason, timeFormat } from "@/utils/operation"; |
57 | export default { | 57 | export default { |
58 | name: "jktj", | 58 | name: "jktj", |
59 | data () { | 59 | data () { |
60 | return { | 60 | return { |
61 | // 开始日期限制 | 61 | // 开始日期限制 |
62 | pickerOptionsStart: { | 62 | pickerOptionsStart: { |
63 | disabledDate: (time) => { | 63 | disabledDate: (time) => { |
64 | if (this.form.endTime) { | 64 | if (this.form.endTime) { |
65 | return time.getTime() > new Date(this.form.endTime).getTime(); | 65 | return time.getTime() > new Date(this.form.endTime).getTime(); |
66 | } | 66 | } |
67 | }, | ||
67 | }, | 68 | }, |
68 | }, | 69 | // 结束日期限制 |
69 | // 结束日期限制 | 70 | pickerOptionsEnd: { |
70 | pickerOptionsEnd: { | 71 | disabledDate: (time) => { |
71 | disabledDate: (time) => { | 72 | if (this.form.startTime) { |
72 | if (this.form.startTime) { | 73 | return time.getTime() < new Date(this.form.startTime).getTime(); |
73 | return time.getTime() < new Date(this.form.startTime).getTime(); | 74 | } |
74 | } | 75 | }, |
75 | }, | 76 | }, |
76 | }, | 77 | // 搜索表单 |
77 | // 搜索表单 | 78 | valueTime: "", |
78 | valueTime: "", | 79 | // 搜索表单 |
79 | // 搜索表单 | 80 | form: { |
80 | form: { | 81 | startTime: getFirstDayOfSeason(), |
81 | startTime: getFirstDayOfSeason(), | 82 | endTime: timeFormat(new Date(), true), |
82 | endTime: timeFormat(new Date(), true), | 83 | qxdm: "", |
83 | qxdm: "", | 84 | }, |
84 | }, | 85 | chartData: [] |
85 | chartData: [] | ||
86 | }; | ||
87 | }, | ||
88 | mounted () { | ||
89 | // 查询业务量 | ||
90 | this.getProcessCounts(); | ||
91 | }, | ||
92 | computed: { | ||
93 | ...mapGetters(["dicData"]), | ||
94 | }, | ||
95 | methods: { | ||
96 | endTimeChange (val) { | ||
97 | this.form.endTime = timeFormat(new Date(val), true) | ||
98 | }, | ||
99 | async getProcessCounts () { | ||
100 | this.chartData = []; | ||
101 | let { result: res } = await efficient.getProcessCounts( | ||
102 | this.form.startTime, | ||
103 | this.form.endTime, | ||
104 | this.form.qxdm | ||
105 | ); | ||
106 | //获取图表配置项需要的数据 | ||
107 | this.chartData = res; | ||
108 | this.$nextTick(() => { | ||
109 | // 初始化图表 | ||
110 | this.chartData.length && this.echartInit(this.chartData) | ||
111 | }); | ||
112 | |||
113 | }, | ||
114 | // 重置 | ||
115 | resetForm () { | ||
116 | this.form = { | ||
117 | startTime: getFirstDayOfSeason(), | ||
118 | endTime: timeFormat(new Date(), true), | ||
119 | qxdm: "" | ||
120 | }; | 86 | }; |
87 | }, | ||
88 | mounted () { | ||
89 | // 查询业务量 | ||
121 | this.getProcessCounts(); | 90 | this.getProcessCounts(); |
122 | }, | 91 | }, |
123 | //图表渲染 | 92 | computed: { |
124 | echartInit (chartArr) { | 93 | ...mapGetters(["dicData"]), |
125 | // 基于准备好的dom,初始化echarts实例 | 94 | }, |
126 | let myChart = this.$echarts.init(document.getElementById("myChart")); | 95 | methods: { |
127 | // 绘制图表 | 96 | endTimeChange (val) { |
128 | myChart.setOption({ | 97 | this.form.endTime = timeFormat(new Date(val), true) |
129 | color: ["#13E5FF"], | 98 | }, |
130 | tooltip: { | 99 | async getProcessCounts () { |
131 | show: true, | 100 | this.chartData = []; |
132 | trigger: "axis", | 101 | let { result: res } = await efficient.getProcessCounts( |
133 | textStyle: { | 102 | this.form.startTime, |
134 | fontSize: 16, // 字体大小 | 103 | this.form.endTime, |
104 | this.form.qxdm | ||
105 | ); | ||
106 | //获取图表配置项需要的数据 | ||
107 | this.chartData = res; | ||
108 | this.$nextTick(() => { | ||
109 | // 初始化图表 | ||
110 | this.chartData.length && this.echartInit(this.chartData) | ||
111 | }); | ||
112 | |||
113 | }, | ||
114 | // 重置 | ||
115 | resetForm () { | ||
116 | this.form = { | ||
117 | startTime: getFirstDayOfSeason(), | ||
118 | endTime: timeFormat(new Date(), true), | ||
119 | qxdm: "" | ||
120 | }; | ||
121 | this.getProcessCounts(); | ||
122 | }, | ||
123 | //图表渲染 | ||
124 | echartInit (chartArr) { | ||
125 | // 基于准备好的dom,初始化echarts实例 | ||
126 | let myChart = this.$echarts.init(document.getElementById("myChart")); | ||
127 | // 绘制图表 | ||
128 | myChart.setOption({ | ||
129 | color: ["#13E5FF"], | ||
130 | tooltip: { | ||
131 | show: true, | ||
132 | trigger: "axis", | ||
133 | textStyle: { | ||
134 | fontSize: 16, // 字体大小 | ||
135 | }, | ||
135 | }, | 136 | }, |
136 | }, | 137 | grid: { |
137 | grid: { | 138 | top: 120, |
138 | top: 120, | 139 | bottom: 100, |
139 | bottom: 100, | 140 | }, |
140 | }, | 141 | label: { |
141 | label: { | 142 | color: 'inherit', |
142 | color: 'inherit', | 143 | }, |
143 | }, | 144 | xAxis: [ |
144 | xAxis: [ | 145 | { |
145 | { | 146 | type: "category", |
146 | type: "category", | 147 | data: chartArr.map(item => item.recTypeName), |
147 | data: chartArr.map(item => item.recTypeName), | 148 | axisLabel: { |
148 | axisLabel: { | 149 | interval: 0, |
149 | interval: 0, | 150 | rotate: 40, |
150 | rotate: 40, | 151 | formatter: function (val) { |
151 | formatter: function (val) { | 152 | let c = document.createElement("canvas"); |
152 | let c = document.createElement("canvas"); | 153 | const ctx = c.getContext("2d"); |
153 | const ctx = c.getContext("2d"); | 154 | const arr = val.split(""); |
154 | const arr = val.split(""); | 155 | arr |
155 | arr | 156 | .map((item) => ctx.measureText(item).width) |
156 | .map((item) => ctx.measureText(item).width) | 157 | .reduce((pre, next, index) => { |
157 | .reduce((pre, next, index) => { | 158 | const nLen = pre + next; |
158 | const nLen = pre + next; | 159 | if (nLen > 60) { |
159 | if (nLen > 60) { | 160 | arr[index - 1] += "..."; |
160 | arr[index - 1] += "..."; | 161 | return next; |
161 | return next; | 162 | } else { |
162 | } else { | 163 | return nLen; |
163 | return nLen; | 164 | } |
164 | } | 165 | }); |
166 | c = null; | ||
167 | let ind = arr.findIndex((i) => { | ||
168 | return i.indexOf("...") > -1; | ||
165 | }); | 169 | }); |
166 | c = null; | 170 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; |
167 | let ind = arr.findIndex((i) => { | 171 | return newArr.join(""); |
168 | return i.indexOf("...") > -1; | 172 | }, |
169 | }); | 173 | textStyle: { |
170 | let newArr = ind > 0 ? arr.splice(0, ind + 1) : arr; | 174 | show: true, |
171 | return newArr.join(""); | 175 | color: "#4A4A4A", |
172 | }, | 176 | fontSize: "16", |
173 | textStyle: { | 177 | }, |
174 | show: true, | ||
175 | color: this.BASE_API.echartTextColor, | ||
176 | fontSize: "16", | ||
177 | }, | 178 | }, |
178 | }, | 179 | }, |
179 | }, | 180 | ], |
180 | ], | 181 | yAxis: [ |
181 | yAxis: [ | 182 | { |
182 | { | 183 | type: "value", |
183 | type: "value", | 184 | name: "数量/个", |
184 | name: "数量/个", | 185 | nameTextStyle: { |
185 | nameTextStyle: { | 186 | color: "#4A4A4A", |
186 | color: this.BASE_API.echartTextColor, | ||
187 | fontSize: "16", | ||
188 | }, | ||
189 | axisLabel: { | ||
190 | textStyle: { | ||
191 | show: true, | ||
192 | color: this.BASE_API.echartTextColor, | ||
193 | fontSize: "16", | 187 | fontSize: "16", |
194 | }, | 188 | }, |
189 | axisLabel: { | ||
190 | textStyle: { | ||
191 | show: true, | ||
192 | color: "#4A4A4A", | ||
193 | fontSize: "16", | ||
194 | }, | ||
195 | }, | ||
195 | }, | 196 | }, |
196 | }, | 197 | ], |
197 | ], | ||
198 | 198 | ||
199 | series: [ | 199 | series: [ |
200 | { | 200 | { |
201 | type: "bar", | 201 | type: "bar", |
202 | //显示数值 | 202 | //显示数值 |
203 | itemStyle: { | 203 | itemStyle: { |
204 | normal: { | 204 | normal: { |
205 | label: { | 205 | label: { |
206 | show: true, //开启显示 | 206 | show: true, //开启显示 |
207 | position: "top", //在上方显示 | 207 | position: "top", //在上方显示 |
208 | }, | ||
208 | }, | 209 | }, |
209 | }, | 210 | }, |
211 | barMaxWidth: '60', | ||
212 | data: chartArr.map(item => item.counts), | ||
210 | }, | 213 | }, |
211 | barMaxWidth: '60', | 214 | ], |
212 | data: chartArr.map(item => item.counts), | 215 | }); |
213 | }, | 216 | }, |
214 | ], | ||
215 | }); | ||
216 | }, | 217 | }, |
217 | }, | 218 | }; |
218 | }; | ||
219 | </script> | 219 | </script> |
220 | <style scoped lang="scss"> | 220 | <style scoped lang="scss"> |
221 | .jktjDetail { | 221 | .jktjDetail { |
222 | flex-direction: column; | 222 | flex-direction: column; |
223 | 223 | ||
224 | .rows { | 224 | .rows { |
225 | margin-left: 100px; | 225 | margin-left: 100px; |
226 | } | 226 | } |
227 | 227 | ||
228 | .center { | 228 | .center { |
229 | line-height: 50vh; | 229 | line-height: 50vh; |
230 | text-align: center; | 230 | text-align: center; |
231 | color: #b6b5b5; | 231 | color: #b6b5b5; |
232 | } | ||
232 | } | 233 | } |
233 | } | ||
234 | </style> | 234 | </style> | ... | ... |
... | @@ -38,7 +38,7 @@ | ... | @@ -38,7 +38,7 @@ |
38 | </el-form> | 38 | </el-form> |
39 | </div> | 39 | </div> |
40 | <div class="from-clues-content"> | 40 | <div class="from-clues-content"> |
41 | <lb-table :pagination="false" @size-change="handleSizeChange" :calcHeight="BASE_API.calcHeight" | 41 | <lb-table :pagination="false" @size-change="handleSizeChange" :calcHeight="160" |
42 | @p-current-change="handleCurrentChange" :column="tableData.columns" :data="listdata" | 42 | @p-current-change="handleCurrentChange" :column="tableData.columns" :data="listdata" |
43 | row-key="dictid"> | 43 | row-key="dictid"> |
44 | </lb-table> | 44 | </lb-table> | ... | ... |
-
Please register or sign in to post a comment