不动产监管大屏
Showing
24 changed files
with
568 additions
and
1974 deletions
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <Echart | ||
| 4 | :options="options" | ||
| 5 | id="centreLeft1Chart" | ||
| 6 | height="480px" | ||
| 7 | width="100%" | ||
| 8 | ></Echart> | ||
| 9 | </div> | ||
| 10 | </template> | ||
| 11 | |||
| 12 | <script> | ||
| 13 | import Echart from '@/common/echart' | ||
| 14 | export default { | ||
| 15 | data() { | ||
| 16 | return { | ||
| 17 | options: {}, | ||
| 18 | // 定义颜色 | ||
| 19 | colorList: { | ||
| 20 | linearYtoG: { | ||
| 21 | type: 'linear', | ||
| 22 | x: 0, | ||
| 23 | y: 0, | ||
| 24 | x2: 1, | ||
| 25 | y2: 1, | ||
| 26 | colorStops: [ | ||
| 27 | { | ||
| 28 | offset: 0, | ||
| 29 | color: '#f5b44d' | ||
| 30 | }, | ||
| 31 | { | ||
| 32 | offset: 1, | ||
| 33 | color: '#28f8de' | ||
| 34 | } | ||
| 35 | ] | ||
| 36 | }, | ||
| 37 | linearGtoB: { | ||
| 38 | type: 'linear', | ||
| 39 | x: 0, | ||
| 40 | y: 0, | ||
| 41 | x2: 1, | ||
| 42 | y2: 0, | ||
| 43 | colorStops: [ | ||
| 44 | { | ||
| 45 | offset: 0, | ||
| 46 | color: '#43dfa2' | ||
| 47 | }, | ||
| 48 | { | ||
| 49 | offset: 1, | ||
| 50 | color: '#28f8de' | ||
| 51 | } | ||
| 52 | ] | ||
| 53 | }, | ||
| 54 | linearBtoG: { | ||
| 55 | type: 'linear', | ||
| 56 | x: 0, | ||
| 57 | y: 0, | ||
| 58 | x2: 1, | ||
| 59 | y2: 0, | ||
| 60 | colorStops: [ | ||
| 61 | { | ||
| 62 | offset: 0, | ||
| 63 | color: '#1c98e8' | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | offset: 1, | ||
| 67 | color: '#28f8de' | ||
| 68 | } | ||
| 69 | ] | ||
| 70 | }, | ||
| 71 | areaBtoG: { | ||
| 72 | type: 'linear', | ||
| 73 | x: 0, | ||
| 74 | y: 0, | ||
| 75 | x2: 0, | ||
| 76 | y2: 1, | ||
| 77 | colorStops: [ | ||
| 78 | { | ||
| 79 | offset: 0, | ||
| 80 | color: 'rgba(35,184,210,.2)' | ||
| 81 | }, | ||
| 82 | { | ||
| 83 | offset: 1, | ||
| 84 | color: 'rgba(35,184,210,0)' | ||
| 85 | } | ||
| 86 | ] | ||
| 87 | } | ||
| 88 | } | ||
| 89 | } | ||
| 90 | }, | ||
| 91 | components: { | ||
| 92 | Echart | ||
| 93 | }, | ||
| 94 | props: { | ||
| 95 | cdata: { | ||
| 96 | type: Object, | ||
| 97 | default: () => ({}) | ||
| 98 | } | ||
| 99 | }, | ||
| 100 | watch: { | ||
| 101 | cdata: { | ||
| 102 | handler(newData) { | ||
| 103 | this.options = { | ||
| 104 | title: { | ||
| 105 | text: '', | ||
| 106 | textStyle: { | ||
| 107 | color: '#D3D6DD', | ||
| 108 | fontSize: 24, | ||
| 109 | fontWeight: 'normal' | ||
| 110 | }, | ||
| 111 | subtext: newData.year + '/' + newData.weekCategory[6], | ||
| 112 | subtextStyle: { | ||
| 113 | color: '#fff', | ||
| 114 | fontSize: 16 | ||
| 115 | }, | ||
| 116 | top: 50, | ||
| 117 | left: 80 | ||
| 118 | }, | ||
| 119 | legend: { | ||
| 120 | top: 120, | ||
| 121 | left: 80, | ||
| 122 | orient: 'vertical', | ||
| 123 | itemGap: 15, | ||
| 124 | itemWidth: 12, | ||
| 125 | itemHeight: 12, | ||
| 126 | data: ['平均指标', '我的指标'], | ||
| 127 | textStyle: { | ||
| 128 | color: '#fff', | ||
| 129 | fontSize: 14 | ||
| 130 | } | ||
| 131 | }, | ||
| 132 | tooltip: { | ||
| 133 | trigger: 'item' | ||
| 134 | }, | ||
| 135 | radar: { | ||
| 136 | center: ['68%', '27%'], | ||
| 137 | radius: '40%', | ||
| 138 | name: { | ||
| 139 | color: '#fff' | ||
| 140 | }, | ||
| 141 | splitNumber: 8, | ||
| 142 | axisLine: { | ||
| 143 | lineStyle: { | ||
| 144 | color: this.colorList.linearYtoG, | ||
| 145 | opacity: 0.6 | ||
| 146 | } | ||
| 147 | }, | ||
| 148 | splitLine: { | ||
| 149 | lineStyle: { | ||
| 150 | color: this.colorList.linearYtoG, | ||
| 151 | opacity: 0.6 | ||
| 152 | } | ||
| 153 | }, | ||
| 154 | splitArea: { | ||
| 155 | areaStyle: { | ||
| 156 | color: '#fff', | ||
| 157 | opacity: 0.1, | ||
| 158 | shadowBlur: 25, | ||
| 159 | shadowColor: '#000', | ||
| 160 | shadowOffsetX: 0, | ||
| 161 | shadowOffsetY: 5 | ||
| 162 | } | ||
| 163 | }, | ||
| 164 | indicator: [ | ||
| 165 | { | ||
| 166 | name: '服务态度', | ||
| 167 | max: newData.maxData | ||
| 168 | }, | ||
| 169 | { | ||
| 170 | name: '产品质量', | ||
| 171 | max: 10 | ||
| 172 | }, | ||
| 173 | { | ||
| 174 | name: '任务效率', | ||
| 175 | max: 12 | ||
| 176 | }, | ||
| 177 | { | ||
| 178 | name: '售后保障', | ||
| 179 | max: 3.5 | ||
| 180 | } | ||
| 181 | ] | ||
| 182 | }, | ||
| 183 | grid: { | ||
| 184 | left: 90, | ||
| 185 | right: 80, | ||
| 186 | bottom: 40, | ||
| 187 | top: '60%' | ||
| 188 | }, | ||
| 189 | xAxis: { | ||
| 190 | type: 'category', | ||
| 191 | position: 'bottom', | ||
| 192 | axisLine: true, | ||
| 193 | axisLabel: { | ||
| 194 | color: 'rgba(255,255,255,.8)', | ||
| 195 | fontSize: 12 | ||
| 196 | }, | ||
| 197 | data: newData.weekCategory | ||
| 198 | }, | ||
| 199 | // 下方Y轴 | ||
| 200 | yAxis: { | ||
| 201 | name: '工单', | ||
| 202 | nameLocation: 'end', | ||
| 203 | nameGap: 24, | ||
| 204 | nameTextStyle: { | ||
| 205 | color: 'rgba(255,255,255,.5)', | ||
| 206 | fontSize: 14 | ||
| 207 | }, | ||
| 208 | max: newData.maxData, | ||
| 209 | splitNumber: 4, | ||
| 210 | |||
| 211 | axisLine: { | ||
| 212 | lineStyle: { | ||
| 213 | opacity: 0 | ||
| 214 | } | ||
| 215 | }, | ||
| 216 | splitLine: { | ||
| 217 | show: true, | ||
| 218 | lineStyle: { | ||
| 219 | color: '#fff', | ||
| 220 | opacity: 0.1 | ||
| 221 | } | ||
| 222 | }, | ||
| 223 | axisLabel: { | ||
| 224 | color: 'rgba(255,255,255,.8)', | ||
| 225 | fontSize: 12 | ||
| 226 | } | ||
| 227 | }, | ||
| 228 | series: [ | ||
| 229 | { | ||
| 230 | name: '', | ||
| 231 | type: 'radar', | ||
| 232 | symbolSize: 0, | ||
| 233 | data: [ | ||
| 234 | { | ||
| 235 | value: newData.radarDataAvg[6], | ||
| 236 | name: '平均指标', | ||
| 237 | itemStyle: { | ||
| 238 | normal: { | ||
| 239 | color: '#f8d351' | ||
| 240 | } | ||
| 241 | }, | ||
| 242 | lineStyle: { | ||
| 243 | normal: { | ||
| 244 | opacity: 0 | ||
| 245 | } | ||
| 246 | }, | ||
| 247 | areaStyle: { | ||
| 248 | normal: { | ||
| 249 | color: '#f8d351', | ||
| 250 | shadowBlur: 25, | ||
| 251 | shadowColor: 'rgba(248,211,81,.3)', | ||
| 252 | shadowOffsetX: 0, | ||
| 253 | shadowOffsetY: -10, | ||
| 254 | opacity: 1 | ||
| 255 | } | ||
| 256 | } | ||
| 257 | }, | ||
| 258 | { | ||
| 259 | value: newData.radarData[6], | ||
| 260 | name: '我的指标', | ||
| 261 | itemStyle: { | ||
| 262 | normal: { | ||
| 263 | color: '#43dfa2' | ||
| 264 | } | ||
| 265 | }, | ||
| 266 | lineStyle: { | ||
| 267 | normal: { | ||
| 268 | opacity: 0 | ||
| 269 | } | ||
| 270 | }, | ||
| 271 | areaStyle: { | ||
| 272 | normal: { | ||
| 273 | color: this.colorList.linearGtoB, | ||
| 274 | shadowBlur: 15, | ||
| 275 | shadowColor: 'rgba(0,0,0,.2)', | ||
| 276 | shadowOffsetX: 0, | ||
| 277 | shadowOffsetY: 5, | ||
| 278 | opacity: 0.8 | ||
| 279 | } | ||
| 280 | } | ||
| 281 | } | ||
| 282 | ] | ||
| 283 | }, | ||
| 284 | { | ||
| 285 | name: '', | ||
| 286 | type: 'line', | ||
| 287 | smooth: true, | ||
| 288 | symbol: 'emptyCircle', | ||
| 289 | symbolSize: 8, | ||
| 290 | itemStyle: { | ||
| 291 | normal: { | ||
| 292 | color: '#fff' | ||
| 293 | } | ||
| 294 | }, | ||
| 295 | lineStyle: { | ||
| 296 | normal: { | ||
| 297 | color: this.colorList.linearBtoG, | ||
| 298 | width: 3 | ||
| 299 | } | ||
| 300 | }, | ||
| 301 | areaStyle: { | ||
| 302 | normal: { | ||
| 303 | color: this.colorList.areaBtoG | ||
| 304 | } | ||
| 305 | }, | ||
| 306 | data: newData.weekLineData, | ||
| 307 | lineSmooth: true, | ||
| 308 | markLine: { | ||
| 309 | silent: true, | ||
| 310 | data: [ | ||
| 311 | { | ||
| 312 | type: 'average', | ||
| 313 | name: '平均值' | ||
| 314 | } | ||
| 315 | ], | ||
| 316 | precision: 0, | ||
| 317 | label: { | ||
| 318 | normal: { | ||
| 319 | formatter: '平均值: \n {c}' | ||
| 320 | } | ||
| 321 | }, | ||
| 322 | lineStyle: { | ||
| 323 | normal: { | ||
| 324 | color: 'rgba(248,211,81,.7)' | ||
| 325 | } | ||
| 326 | } | ||
| 327 | }, | ||
| 328 | tooltip: { | ||
| 329 | position: 'top', | ||
| 330 | formatter: '{c} m', | ||
| 331 | backgroundColor: 'rgba(28,152,232,.2)', | ||
| 332 | padding: 6 | ||
| 333 | } | ||
| 334 | }, | ||
| 335 | { | ||
| 336 | name: '占位背景', | ||
| 337 | type: 'bar', | ||
| 338 | itemStyle: { | ||
| 339 | normal: { | ||
| 340 | show: true, | ||
| 341 | color: '#000', | ||
| 342 | opacity: 0 | ||
| 343 | } | ||
| 344 | }, | ||
| 345 | silent: true, | ||
| 346 | barWidth: '50%', | ||
| 347 | data: newData.weekMaxData, | ||
| 348 | animation: false | ||
| 349 | } | ||
| 350 | ] | ||
| 351 | } | ||
| 352 | }, | ||
| 353 | immediate: true, | ||
| 354 | deep: true | ||
| 355 | } | ||
| 356 | } | ||
| 357 | } | ||
| 358 | </script> |
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <Chart :cdata="cdata" /> | ||
| 4 | </div> | ||
| 5 | </template> | ||
| 6 | |||
| 7 | <script> | ||
| 8 | import Chart from './chart.vue' | ||
| 9 | export default { | ||
| 10 | data () { | ||
| 11 | return { | ||
| 12 | drawTiming: null, | ||
| 13 | cdata: { | ||
| 14 | year: null, | ||
| 15 | weekCategory: [], | ||
| 16 | radarData: [], | ||
| 17 | radarDataAvg: [], | ||
| 18 | maxData: 12000, | ||
| 19 | weekMaxData: [], | ||
| 20 | weekLineData: [] | ||
| 21 | } | ||
| 22 | } | ||
| 23 | }, | ||
| 24 | components: { | ||
| 25 | Chart, | ||
| 26 | }, | ||
| 27 | mounted () { | ||
| 28 | this.drawTimingFn(); | ||
| 29 | }, | ||
| 30 | beforeDestroy () { | ||
| 31 | clearInterval(this.drawTiming); | ||
| 32 | }, | ||
| 33 | methods: { | ||
| 34 | drawTimingFn () { | ||
| 35 | this.setData(); | ||
| 36 | this.drawTiming = setInterval(() => { | ||
| 37 | this.setData(); | ||
| 38 | }, 6000); | ||
| 39 | }, | ||
| 40 | setData () { | ||
| 41 | // 清空轮询数据 | ||
| 42 | this.cdata.weekCategory = []; | ||
| 43 | this.cdata.weekMaxData = []; | ||
| 44 | this.cdata.weekLineData = []; | ||
| 45 | this.cdata.radarData = []; | ||
| 46 | this.cdata.radarDataAvg = []; | ||
| 47 | |||
| 48 | let dateBase = new Date(); | ||
| 49 | this.cdata.year = dateBase.getFullYear(); | ||
| 50 | // 周数据 | ||
| 51 | for (let i = 0; i < 7; i++) { | ||
| 52 | // 日期 | ||
| 53 | let date = new Date(); | ||
| 54 | this.cdata.weekCategory.unshift([date.getMonth() + 1, date.getDate()-i].join("/")); | ||
| 55 | |||
| 56 | // 折线图数据 | ||
| 57 | this.cdata.weekMaxData.push(this.cdata.maxData); | ||
| 58 | let distance = Math.round(Math.random() * 11000 + 500); | ||
| 59 | this.cdata.weekLineData.push(distance); | ||
| 60 | |||
| 61 | // 雷达图数据 | ||
| 62 | // 我的指标 | ||
| 63 | let averageSpeed = +(Math.random() * 5 + 3).toFixed(3); | ||
| 64 | let maxSpeed = averageSpeed + +(Math.random() * 3).toFixed(2); | ||
| 65 | let hour = +(distance / 1000 / averageSpeed).toFixed(1); | ||
| 66 | let radarDayData = [distance, averageSpeed, maxSpeed, hour]; | ||
| 67 | this.cdata.radarData.unshift(radarDayData); | ||
| 68 | |||
| 69 | // 平均指标 | ||
| 70 | let distanceAvg = Math.round(Math.random() * 8000 + 4000); | ||
| 71 | let averageSpeedAvg = +(Math.random() * 4 + 4).toFixed(3); | ||
| 72 | let maxSpeedAvg = averageSpeedAvg + +(Math.random() * 2).toFixed(2); | ||
| 73 | let hourAvg = +(distance / 1000 / averageSpeed).toFixed(1); | ||
| 74 | let radarDayDataAvg = [ | ||
| 75 | distanceAvg, | ||
| 76 | averageSpeedAvg, | ||
| 77 | maxSpeedAvg, | ||
| 78 | hourAvg | ||
| 79 | ]; | ||
| 80 | this.cdata.radarDataAvg.unshift(radarDayDataAvg); | ||
| 81 | } | ||
| 82 | |||
| 83 | } | ||
| 84 | } | ||
| 85 | }; | ||
| 86 | </script> | ||
| 87 | |||
| 88 | <style lang="scss" scoped> | ||
| 89 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <!-- 通过率/达标率 --> | ||
| 4 | <Echart | ||
| 5 | :options="options" | ||
| 6 | :id="id" | ||
| 7 | height="100px" | ||
| 8 | width="100px" | ||
| 9 | ></Echart> | ||
| 10 | </div> | ||
| 11 | </template> | ||
| 12 | |||
| 13 | <script> | ||
| 14 | import Echart from '@/common/echart' | ||
| 15 | export default { | ||
| 16 | data () { | ||
| 17 | return { | ||
| 18 | options: {}, | ||
| 19 | }; | ||
| 20 | }, | ||
| 21 | components: { | ||
| 22 | Echart, | ||
| 23 | }, | ||
| 24 | props: { | ||
| 25 | id: { | ||
| 26 | type: String, | ||
| 27 | required: true, | ||
| 28 | default: "chartRate" | ||
| 29 | }, | ||
| 30 | tips: { | ||
| 31 | type: Number, | ||
| 32 | required: true, | ||
| 33 | default: 50 | ||
| 34 | }, | ||
| 35 | colorObj: { | ||
| 36 | type: Object, | ||
| 37 | default: function () { | ||
| 38 | return { | ||
| 39 | textStyle: "#3fc0fb", | ||
| 40 | series: { | ||
| 41 | color: ["#00bcd44a", "transparent"], | ||
| 42 | dataColor: { | ||
| 43 | normal: "#03a9f4", | ||
| 44 | shadowColor: "#97e2f5" | ||
| 45 | } | ||
| 46 | } | ||
| 47 | }; | ||
| 48 | } | ||
| 49 | } | ||
| 50 | }, | ||
| 51 | watch: { | ||
| 52 | // tips 是会变更的数据,所以进行监听 | ||
| 53 | tips: { | ||
| 54 | handler (newData) { | ||
| 55 | this.options = { | ||
| 56 | title:{ | ||
| 57 | text: newData * 1 + "%", | ||
| 58 | x: "center", | ||
| 59 | y: "center", | ||
| 60 | textStyle: { | ||
| 61 | color: this.colorObj.textStyle, | ||
| 62 | fontSize: 16 | ||
| 63 | } | ||
| 64 | }, | ||
| 65 | series: [ | ||
| 66 | { | ||
| 67 | type: "pie", | ||
| 68 | radius: ["75%", "80%"], | ||
| 69 | center: ["50%", "50%"], | ||
| 70 | hoverAnimation: false, | ||
| 71 | color: this.colorObj.series.color, | ||
| 72 | label: { | ||
| 73 | normal: { | ||
| 74 | show: false | ||
| 75 | } | ||
| 76 | }, | ||
| 77 | data: [ | ||
| 78 | { | ||
| 79 | value: newData, | ||
| 80 | itemStyle: { | ||
| 81 | normal: { | ||
| 82 | color: this.colorObj.series.dataColor.normal, | ||
| 83 | shadowBlur: 10, | ||
| 84 | shadowColor: this.colorObj.series.dataColor.shadowColor | ||
| 85 | } | ||
| 86 | } | ||
| 87 | }, | ||
| 88 | { | ||
| 89 | value: 100 - newData | ||
| 90 | } | ||
| 91 | ] | ||
| 92 | } | ||
| 93 | ] | ||
| 94 | } | ||
| 95 | }, | ||
| 96 | immediate: true, | ||
| 97 | deep: true | ||
| 98 | } | ||
| 99 | } | ||
| 100 | }; | ||
| 101 | </script> | ||
| 102 | |||
| 103 | <style lang="scss" scoped> | ||
| 104 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <Echart | ||
| 4 | :options="options" | ||
| 5 | id="centreLeft1Chart" | ||
| 6 | height="220px" | ||
| 7 | width="260px" | ||
| 8 | ></Echart> | ||
| 9 | </div> | ||
| 10 | </template> | ||
| 11 | |||
| 12 | <script> | ||
| 13 | import Echart from '@/common/echart' | ||
| 14 | export default { | ||
| 15 | data () { | ||
| 16 | return { | ||
| 17 | options: {}, | ||
| 18 | }; | ||
| 19 | }, | ||
| 20 | components: { | ||
| 21 | Echart, | ||
| 22 | }, | ||
| 23 | props: { | ||
| 24 | cdata: { | ||
| 25 | type: Object, | ||
| 26 | default: () => ({}) | ||
| 27 | }, | ||
| 28 | }, | ||
| 29 | watch: { | ||
| 30 | cdata: { | ||
| 31 | handler (newData) { | ||
| 32 | this.options = { | ||
| 33 | color: [ | ||
| 34 | "#37a2da", | ||
| 35 | "#32c5e9", | ||
| 36 | "#9fe6b8", | ||
| 37 | "#ffdb5c", | ||
| 38 | "#ff9f7f", | ||
| 39 | "#fb7293", | ||
| 40 | "#e7bcf3", | ||
| 41 | "#8378ea" | ||
| 42 | ], | ||
| 43 | tooltip: { | ||
| 44 | trigger: "item", | ||
| 45 | formatter: "{a} <br/>{b} : {c} ({d}%)" | ||
| 46 | }, | ||
| 47 | toolbox: { | ||
| 48 | show: true | ||
| 49 | }, | ||
| 50 | calculable: true, | ||
| 51 | legend: { | ||
| 52 | orient: "horizontal", | ||
| 53 | icon: "circle", | ||
| 54 | bottom: 0, | ||
| 55 | x: "center", | ||
| 56 | data: newData.xData, | ||
| 57 | textStyle: { | ||
| 58 | color: "#fff" | ||
| 59 | } | ||
| 60 | }, | ||
| 61 | series: [ | ||
| 62 | { | ||
| 63 | name: "通过率统计", | ||
| 64 | type: "pie", | ||
| 65 | radius: [10, 50], | ||
| 66 | roseType: "area", | ||
| 67 | center: ["50%", "40%"], | ||
| 68 | data: newData.seriesData | ||
| 69 | } | ||
| 70 | ] | ||
| 71 | } | ||
| 72 | }, | ||
| 73 | immediate: true, | ||
| 74 | deep: true | ||
| 75 | } | ||
| 76 | } | ||
| 77 | }; | ||
| 78 | </script> | ||
| 79 | |||
| 80 | <style lang="scss" scoped> | ||
| 81 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <Chart :cdata="cdata" /> | ||
| 4 | </div> | ||
| 5 | </template> | ||
| 6 | |||
| 7 | <script> | ||
| 8 | import Chart from './chart.vue'; | ||
| 9 | export default { | ||
| 10 | data () { | ||
| 11 | return { | ||
| 12 | cdata: { | ||
| 13 | xData: ["data1", "data2", "data3", "data4", "data5", "data6"], | ||
| 14 | seriesData: [ | ||
| 15 | { value: 10, name: "data1" }, | ||
| 16 | { value: 5, name: "data2" }, | ||
| 17 | { value: 15, name: "data3" }, | ||
| 18 | { value: 25, name: "data4" }, | ||
| 19 | { value: 20, name: "data5" }, | ||
| 20 | { value: 35, name: "data6" } | ||
| 21 | ] | ||
| 22 | } | ||
| 23 | } | ||
| 24 | }, | ||
| 25 | components: { | ||
| 26 | Chart, | ||
| 27 | }, | ||
| 28 | mounted () { | ||
| 29 | }, | ||
| 30 | methods: { | ||
| 31 | } | ||
| 32 | } | ||
| 33 | </script> | ||
| 34 | |||
| 35 | <style lang="scss" scoped> | ||
| 36 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <Echart | ||
| 4 | :options="options" | ||
| 5 | id="centreRight2Chart1" | ||
| 6 | height="200px" | ||
| 7 | width="260px" | ||
| 8 | ></Echart> | ||
| 9 | </div> | ||
| 10 | </template> | ||
| 11 | |||
| 12 | <script> | ||
| 13 | import Echart from '@/common/echart' | ||
| 14 | export default { | ||
| 15 | data () { | ||
| 16 | return { | ||
| 17 | options: {}, | ||
| 18 | }; | ||
| 19 | }, | ||
| 20 | components: { | ||
| 21 | Echart, | ||
| 22 | }, | ||
| 23 | props: { | ||
| 24 | cdata: { | ||
| 25 | type: Object, | ||
| 26 | default: () => ({}) | ||
| 27 | }, | ||
| 28 | }, | ||
| 29 | watch: { | ||
| 30 | cdata: { | ||
| 31 | handler (newData) { | ||
| 32 | // 固定样式数据 | ||
| 33 | let lineStyle = { | ||
| 34 | normal: { | ||
| 35 | width: 1, | ||
| 36 | opacity: 0.5 | ||
| 37 | } | ||
| 38 | }; | ||
| 39 | |||
| 40 | this.options = { | ||
| 41 | radar: { | ||
| 42 | indicator: newData.indicatorData, | ||
| 43 | shape: "circle", | ||
| 44 | splitNumber: 5, | ||
| 45 | radius: ["0%", "65%"], | ||
| 46 | name: { | ||
| 47 | textStyle: { | ||
| 48 | color: "rgb(238, 197, 102)" | ||
| 49 | } | ||
| 50 | }, | ||
| 51 | splitLine: { | ||
| 52 | lineStyle: { | ||
| 53 | color: [ | ||
| 54 | "rgba(238, 197, 102, 0.1)", | ||
| 55 | "rgba(238, 197, 102, 0.2)", | ||
| 56 | "rgba(238, 197, 102, 0.4)", | ||
| 57 | "rgba(238, 197, 102, 0.6)", | ||
| 58 | "rgba(238, 197, 102, 0.8)", | ||
| 59 | "rgba(238, 197, 102, 1)" | ||
| 60 | ].reverse() | ||
| 61 | } | ||
| 62 | }, | ||
| 63 | splitArea: { | ||
| 64 | show: false | ||
| 65 | }, | ||
| 66 | axisLine: { | ||
| 67 | lineStyle: { | ||
| 68 | color: "rgba(238, 197, 102, 0.5)" | ||
| 69 | } | ||
| 70 | } | ||
| 71 | }, | ||
| 72 | series: [ | ||
| 73 | { | ||
| 74 | name: "北京", | ||
| 75 | type: "radar", | ||
| 76 | lineStyle: lineStyle, | ||
| 77 | data: newData.dataBJ, | ||
| 78 | symbol: "none", | ||
| 79 | itemStyle: { | ||
| 80 | normal: { | ||
| 81 | color: "#F9713C" | ||
| 82 | } | ||
| 83 | }, | ||
| 84 | areaStyle: { | ||
| 85 | normal: { | ||
| 86 | opacity: 0.1 | ||
| 87 | } | ||
| 88 | } | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | name: "上海", | ||
| 92 | type: "radar", | ||
| 93 | lineStyle: lineStyle, | ||
| 94 | data: newData.dataSH, | ||
| 95 | symbol: "none", | ||
| 96 | itemStyle: { | ||
| 97 | normal: { | ||
| 98 | color: "#B3E4A1" | ||
| 99 | } | ||
| 100 | }, | ||
| 101 | areaStyle: { | ||
| 102 | normal: { | ||
| 103 | opacity: 0.05 | ||
| 104 | } | ||
| 105 | } | ||
| 106 | }, | ||
| 107 | { | ||
| 108 | name: "广州", | ||
| 109 | type: "radar", | ||
| 110 | lineStyle: lineStyle, | ||
| 111 | data: newData.dataGZ, | ||
| 112 | symbol: "none", | ||
| 113 | itemStyle: { | ||
| 114 | normal: { | ||
| 115 | color: "rgb(238, 197, 102)" | ||
| 116 | } | ||
| 117 | }, | ||
| 118 | areaStyle: { | ||
| 119 | normal: { | ||
| 120 | opacity: 0.05 | ||
| 121 | } | ||
| 122 | } | ||
| 123 | } //end | ||
| 124 | ] | ||
| 125 | } | ||
| 126 | }, | ||
| 127 | immediate: true, | ||
| 128 | deep: true | ||
| 129 | } | ||
| 130 | } | ||
| 131 | }; | ||
| 132 | </script> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <Chart :cdata="cdata" /> | ||
| 4 | </div> | ||
| 5 | </template> | ||
| 6 | |||
| 7 | <script> | ||
| 8 | import Chart from './chart.vue'; | ||
| 9 | export default { | ||
| 10 | data () { | ||
| 11 | return { | ||
| 12 | cdata: { | ||
| 13 | indicatorData: [ | ||
| 14 | { name: "data1", max: 300 }, | ||
| 15 | { name: "data2", max: 250 }, | ||
| 16 | { name: "data3", max: 300 }, | ||
| 17 | { name: "data4", max: 5}, | ||
| 18 | { name: "data5", max: 200 }, | ||
| 19 | { name: "data6", max: 100 } | ||
| 20 | ], | ||
| 21 | dataBJ: [ | ||
| 22 | [94, 69, 114, 2.08, 73, 39, 22], | ||
| 23 | [99, 73, 110, 2.43, 76, 48, 23], | ||
| 24 | [31, 12, 30, 0.5, 32, 16, 24], | ||
| 25 | [42, 27, 43, 1, 53, 22, 25], | ||
| 26 | [154, 117, 157, 3.05, 92, 58, 26], | ||
| 27 | [234, 185, 230, 4.09, 123, 69, 27], | ||
| 28 | [160, 120, 186, 2.77, 91, 50, 28] | ||
| 29 | ], | ||
| 30 | dataGZ: [ | ||
| 31 | [84, 94, 140, 2.238, 68, 18, 22], | ||
| 32 | [93, 77, 104, 1.165, 53, 7, 23], | ||
| 33 | [99, 130, 227, 3.97, 55, 15, 24], | ||
| 34 | [146, 84, 139, 1.094, 40, 17, 25], | ||
| 35 | [113, 108, 137, 1.481, 48, 15, 26], | ||
| 36 | [81, 48, 62, 1.619, 26, 3, 27], | ||
| 37 | [56, 48, 68, 1.336, 37, 9, 28] | ||
| 38 | ], | ||
| 39 | dataSH: [ | ||
| 40 | [91, 45, 125, 0.82, 34, 23, 1], | ||
| 41 | [65, 27, 78, 0.86, 45, 29, 2], | ||
| 42 | [83, 60, 84, 1.09, 73, 27, 3], | ||
| 43 | [109, 81, 121, 1.28, 68, 51, 4], | ||
| 44 | [106, 77, 114, 1.07, 55, 51, 5], | ||
| 45 | [109, 81, 121, 1.28, 68, 51, 6], | ||
| 46 | [106, 77, 114, 1.07, 55, 51, 7] | ||
| 47 | ] | ||
| 48 | } | ||
| 49 | } | ||
| 50 | }, | ||
| 51 | components: { | ||
| 52 | Chart, | ||
| 53 | } | ||
| 54 | } | ||
| 55 | </script> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -31,115 +31,94 @@ export default { | ... | @@ -31,115 +31,94 @@ export default { |
| 31 | cdata: { | 31 | cdata: { |
| 32 | handler (newData) { | 32 | handler (newData) { |
| 33 | this.options = { | 33 | this.options = { |
| 34 | tooltip: { | ||
| 35 | trigger: "axis", | ||
| 36 | backgroundColor: "rgba(255,255,255,0.1)", | ||
| 37 | axisPointer: { | ||
| 38 | type: "shadow", | ||
| 39 | label: { | ||
| 40 | show: true, | ||
| 41 | backgroundColor: "#7B7DDC" | ||
| 42 | } | ||
| 43 | } | ||
| 44 | }, | ||
| 45 | legend: { | 34 | legend: { |
| 46 | data: ["已贯通", "计划贯通", "贯通率"], | 35 | data: ['资产原值', '累计折旧'], |
| 47 | textStyle: { | 36 | textStyle: { |
| 48 | color: "#B4B4B4" | 37 | color: "#B4B4B4" |
| 49 | }, | 38 | }, |
| 50 | top: "0%" | 39 | top: "0%" |
| 51 | }, | 40 | }, |
| 52 | grid: { | 41 | grid: { |
| 53 | x: "8%", | 42 | left: '3%', |
| 54 | width: "88%", | 43 | right: '4%', |
| 55 | y: "4%" | 44 | bottom: '3%', |
| 45 | containLabel: true | ||
| 56 | }, | 46 | }, |
| 57 | xAxis: { | 47 | xAxis: { |
| 58 | data: newData.category, | 48 | type: 'value', |
| 59 | axisLine: { | 49 | splitLine: {show: false}, |
| 60 | lineStyle: { | 50 | axisTick: { show: false }, |
| 61 | color: "#B4B4B4" | 51 | axisLine: { |
| 62 | } | 52 | show: true, |
| 53 | lineStyle:{ | ||
| 54 | color:'#01F3F5' | ||
| 63 | }, | 55 | }, |
| 64 | axisTick: { | 56 | }, |
| 65 | show: false | 57 | axisLabel: { |
| 66 | } | 58 | show:true, |
| 59 | textStyle:{ | ||
| 60 | color:'#01F3F5', | ||
| 61 | fontSize:12, | ||
| 62 | }, | ||
| 63 | rotate:30 | ||
| 64 | } | ||
| 65 | |||
| 67 | }, | 66 | }, |
| 68 | yAxis: [ | 67 | yAxis: { |
| 69 | { | 68 | type: 'category', |
| 70 | splitLine: { show: false }, | 69 | data: ['房屋','建筑物','机械设备','运输工具'], |
| 71 | axisLine: { | 70 | splitLine: {show: false}, |
| 72 | lineStyle: { | 71 | axisTick: { show: false }, |
| 73 | color: "#B4B4B4" | 72 | axisLine: { |
| 74 | } | 73 | show: true, |
| 75 | }, | 74 | lineStyle:{ |
| 75 | color:'#01F3F5' | ||
| 76 | } | ||
| 77 | }, | ||
| 78 | }, | ||
| 76 | 79 | ||
| 77 | axisLabel: { | 80 | series: [ |
| 78 | formatter: "{value} " | 81 | { |
| 79 | } | 82 | name: '资产原值', |
| 80 | }, | 83 | type: 'bar', |
| 81 | { | 84 | stack: '总量', |
| 82 | splitLine: { show: false }, | 85 | barWidth: 30, |
| 83 | axisLine: { | 86 | itemStyle:{ |
| 84 | lineStyle: { | 87 | normal: { |
| 85 | color: "#B4B4B4" | 88 | color: '#6601FF', |
| 86 | } | 89 | } |
| 87 | }, | 90 | }, |
| 88 | axisLabel: { | 91 | label: { |
| 89 | formatter: "{value} " | ||
| 90 | } | ||
| 91 | } | ||
| 92 | ], | ||
| 93 | series: [ | ||
| 94 | { | ||
| 95 | name: "贯通率", | ||
| 96 | type: "line", | ||
| 97 | smooth: true, | ||
| 98 | showAllSymbol: true, | ||
| 99 | symbol: "emptyCircle", | ||
| 100 | symbolSize: 8, | ||
| 101 | yAxisIndex: 1, | ||
| 102 | itemStyle: { | ||
| 103 | normal: { | 92 | normal: { |
| 104 | color: "#F02FC2" | 93 | show: true, |
| 94 | position: 'insideRight' | ||
| 105 | } | 95 | } |
| 106 | }, | ||
| 107 | data: newData.rateData | ||
| 108 | }, | 96 | }, |
| 109 | { | 97 | z: 10, |
| 110 | name: "已贯通", | 98 | data: [320, 302, 301, 543] |
| 111 | type: "bar", | 99 | }, |
| 112 | barWidth: 10, | 100 | { |
| 113 | itemStyle: { | 101 | name: '累计折旧', |
| 102 | type: 'bar', | ||
| 103 | stack: '总量', | ||
| 104 | itemStyle:{ | ||
| 114 | normal: { | 105 | normal: { |
| 115 | barBorderRadius: 5, | 106 | color: '#00F0FF' |
| 116 | color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [ | ||
| 117 | { offset: 0, color: "#956FD4" }, | ||
| 118 | { offset: 1, color: "#3EACE5" } | ||
| 119 | ]) | ||
| 120 | } | 107 | } |
| 121 | }, | ||
| 122 | data: newData.barData | ||
| 123 | }, | 108 | }, |
| 124 | { | 109 | label: { |
| 125 | name: "计划贯通", | ||
| 126 | type: "bar", | ||
| 127 | barGap: "-100%", | ||
| 128 | barWidth: 10, | ||
| 129 | itemStyle: { | ||
| 130 | normal: { | 110 | normal: { |
| 131 | barBorderRadius: 5, | 111 | show: true, |
| 132 | color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [ | 112 | position: 'insideRight', |
| 133 | { offset: 0, color: "rgba(156,107,211,0.8)" }, | 113 | textStyle:{ |
| 134 | { offset: 0.2, color: "rgba(156,107,211,0.5)" }, | 114 | color:'#6601FF' |
| 135 | { offset: 1, color: "rgba(156,107,211,0.2)" } | 115 | } |
| 136 | ]) | ||
| 137 | } | 116 | } |
| 138 | }, | 117 | }, |
| 139 | z: -12, | 118 | z: 5, |
| 140 | data: newData.lineData | 119 | data: [90, 230, 210, 432] |
| 141 | } | 120 | }, |
| 142 | ] | 121 | ] |
| 143 | } | 122 | } |
| 144 | }, | 123 | }, |
| 145 | immediate: true, | 124 | immediate: true, |
| ... | @@ -147,4 +126,4 @@ export default { | ... | @@ -147,4 +126,4 @@ export default { |
| 147 | }, | 126 | }, |
| 148 | }, | 127 | }, |
| 149 | } | 128 | } |
| 150 | </script> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 129 | </script> | ... | ... |
| ... | @@ -11,13 +11,13 @@ export default { | ... | @@ -11,13 +11,13 @@ export default { |
| 11 | return { | 11 | return { |
| 12 | cdata: { | 12 | cdata: { |
| 13 | category: [ | 13 | category: [ |
| 14 | "市区", | 14 | "汉台区", |
| 15 | "万州", | 15 | "南郑区", |
| 16 | "江北", | 16 | "城固县", |
| 17 | "南岸", | 17 | "洋县", |
| 18 | "北碚", | 18 | "西乡县", |
| 19 | "綦南", | 19 | "勉县", |
| 20 | "长寿", | 20 | "宁强县", |
| 21 | "永川", | 21 | "永川", |
| 22 | "璧山", | 22 | "璧山", |
| 23 | "江津", | 23 | "江津", |
| ... | @@ -123,19 +123,12 @@ export default { | ... | @@ -123,19 +123,12 @@ export default { |
| 123 | Chart, | 123 | Chart, |
| 124 | }, | 124 | }, |
| 125 | mounted () { | 125 | mounted () { |
| 126 | this.setData(); | ||
| 127 | }, | 126 | }, |
| 128 | methods: { | 127 | methods: { |
| 129 | // 根据自己的业务情况修改 | 128 | |
| 130 | setData () { | ||
| 131 | for (let i = 0; i < this.cdata.barData.length -1; i++) { | ||
| 132 | let rate = this.cdata.barData[i] / this.cdata.lineData[i]; | ||
| 133 | this.cdata.rateData.push(rate.toFixed(2)); | ||
| 134 | } | ||
| 135 | }, | ||
| 136 | } | 129 | } |
| 137 | }; | 130 | }; |
| 138 | </script> | 131 | </script> |
| 139 | 132 | ||
| 140 | <style lang="scss" scoped> | 133 | <style lang="scss" scoped> |
| 141 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 134 | </style> | ... | ... |
File moved
File moved
src/views/dataView/bottomLeft.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="bottomLeft"> | ||
| 3 | <div class="bg-color-black"> | ||
| 4 | <div class="d-flex pt-2 pl-2"> | ||
| 5 | <span> | ||
| 6 | <icon name="chart-bar" class="text-icon"></icon> | ||
| 7 | </span> | ||
| 8 | <div class="d-flex"> | ||
| 9 | <span class="fs-xl text mx-2">数据统计图</span> | ||
| 10 | </div> | ||
| 11 | </div> | ||
| 12 | <div> | ||
| 13 | <BottomLeftChart /> | ||
| 14 | </div> | ||
| 15 | </div> | ||
| 16 | </div> | ||
| 17 | </template> | ||
| 18 | |||
| 19 | <script> | ||
| 20 | import BottomLeftChart from '@/components/echart/bottom/bottomLeftChart' | ||
| 21 | export default { | ||
| 22 | components: { | ||
| 23 | BottomLeftChart | ||
| 24 | } | ||
| 25 | } | ||
| 26 | </script> | ||
| 27 | |||
| 28 | <style lang="scss" scoped> | ||
| 29 | $box-height: 520px; | ||
| 30 | $box-width: 100%; | ||
| 31 | #bottomLeft { | ||
| 32 | padding: 20px 16px; | ||
| 33 | height: $box-height; | ||
| 34 | width: $box-width; | ||
| 35 | border-radius: 5px; | ||
| 36 | .bg-color-black { | ||
| 37 | height: $box-height - 35px; | ||
| 38 | border-radius: 10px; | ||
| 39 | } | ||
| 40 | .text { | ||
| 41 | color: #c3cbde; | ||
| 42 | } | ||
| 43 | .chart-box { | ||
| 44 | margin-top: 16px; | ||
| 45 | width: 170px; | ||
| 46 | height: 170px; | ||
| 47 | .active-ring-name { | ||
| 48 | padding-top: 10px; | ||
| 49 | } | ||
| 50 | } | ||
| 51 | } | ||
| 52 | </style> |
src/views/dataView/bottomRight.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="bottomRight"> | ||
| 3 | <div class="bg-color-black"> | ||
| 4 | <div class="d-flex pt-2 pl-2"> | ||
| 5 | <span> | ||
| 6 | <icon name="chart-area" class="text-icon"></icon> | ||
| 7 | </span> | ||
| 8 | <div class="d-flex"> | ||
| 9 | <span class="fs-xl text mx-2">工单修复以及满意度统计图</span> | ||
| 10 | <div class="decoration2"> | ||
| 11 | <dv-decoration-2 :reverse="true" style="width:5px;height:6rem;" /> | ||
| 12 | </div> | ||
| 13 | </div> | ||
| 14 | </div> | ||
| 15 | <div> | ||
| 16 | <BottomRightChart /> | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | </div> | ||
| 20 | </template> | ||
| 21 | |||
| 22 | <script> | ||
| 23 | import BottomRightChart from "@/components/echart/bottom/bottomRightChart"; | ||
| 24 | export default { | ||
| 25 | components: { | ||
| 26 | BottomRightChart | ||
| 27 | } | ||
| 28 | }; | ||
| 29 | </script> | ||
| 30 | |||
| 31 | <style lang="scss" class> | ||
| 32 | $box-height: 520px; | ||
| 33 | $box-width: 100%; | ||
| 34 | #bottomRight { | ||
| 35 | padding: 14px 16px; | ||
| 36 | height: $box-height; | ||
| 37 | width: $box-width; | ||
| 38 | border-radius: 5px; | ||
| 39 | .bg-color-black { | ||
| 40 | height: $box-height - 30px; | ||
| 41 | border-radius: 10px; | ||
| 42 | } | ||
| 43 | .text { | ||
| 44 | color: #c3cbde; | ||
| 45 | } | ||
| 46 | //下滑线动态 | ||
| 47 | .decoration2 { | ||
| 48 | position: absolute; | ||
| 49 | right: 0.125rem; | ||
| 50 | } | ||
| 51 | .chart-box { | ||
| 52 | margin-top: 16px; | ||
| 53 | width: 170px; | ||
| 54 | height: 170px; | ||
| 55 | .active-ring-name { | ||
| 56 | padding-top: 10px; | ||
| 57 | } | ||
| 58 | } | ||
| 59 | } | ||
| 60 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/dataView/center.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="center"> | ||
| 3 | <div class="up"> | ||
| 4 | <div | ||
| 5 | class="bg-color-black item" | ||
| 6 | v-for="item in titleItem" | ||
| 7 | :key="item.title" | ||
| 8 | > | ||
| 9 | <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p> | ||
| 10 | <div> | ||
| 11 | <dv-digital-flop | ||
| 12 | class="dv-dig-flop ml-1 mt-2 pl-3" | ||
| 13 | :config="item.number" | ||
| 14 | /> | ||
| 15 | </div> | ||
| 16 | </div> | ||
| 17 | </div> | ||
| 18 | <div class="down"> | ||
| 19 | <div class="ranking bg-color-black"> | ||
| 20 | <span> | ||
| 21 | <icon name="chart-pie" class="text-icon"></icon> | ||
| 22 | </span> | ||
| 23 | <span class="fs-xl text mx-2 mb-1 pl-3">年度负责人组件达标榜</span> | ||
| 24 | <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" /> | ||
| 25 | </div> | ||
| 26 | <div class="percent"> | ||
| 27 | <div class="item bg-color-black"> | ||
| 28 | <span>今日任务通过率</span> | ||
| 29 | <CenterChart | ||
| 30 | :id="rate[0].id" | ||
| 31 | :tips="rate[0].tips" | ||
| 32 | :colorObj="rate[0].colorData" | ||
| 33 | /> | ||
| 34 | </div> | ||
| 35 | <div class="item bg-color-black"> | ||
| 36 | <span>今日任务达标率</span> | ||
| 37 | <CenterChart | ||
| 38 | :id="rate[1].id" | ||
| 39 | :tips="rate[1].tips" | ||
| 40 | :colorObj="rate[1].colorData" | ||
| 41 | /> | ||
| 42 | </div> | ||
| 43 | <div class="water"> | ||
| 44 | <dv-water-level-pond class="dv-wa-le-po" :config="water" /> | ||
| 45 | </div> | ||
| 46 | </div> | ||
| 47 | </div> | ||
| 48 | </div> | ||
| 49 | </template> | ||
| 50 | |||
| 51 | <script> | ||
| 52 | import CenterChart from '@/components/echart/center/centerChartRate' | ||
| 53 | |||
| 54 | export default { | ||
| 55 | data() { | ||
| 56 | return { | ||
| 57 | titleItem: [ | ||
| 58 | { | ||
| 59 | title: '今年累计任务建次数', | ||
| 60 | number: { | ||
| 61 | number: [120], | ||
| 62 | toFixed: 1, | ||
| 63 | textAlign: 'left', | ||
| 64 | content: '{nt}', | ||
| 65 | style: { | ||
| 66 | fontSize: 26 | ||
| 67 | } | ||
| 68 | } | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | title: '本月累计任务次数', | ||
| 72 | number: { | ||
| 73 | number: [18], | ||
| 74 | toFixed: 1, | ||
| 75 | textAlign: 'left', | ||
| 76 | content: '{nt}', | ||
| 77 | style: { | ||
| 78 | fontSize: 26 | ||
| 79 | } | ||
| 80 | } | ||
| 81 | }, | ||
| 82 | { | ||
| 83 | title: '今日累计任务次数', | ||
| 84 | number: { | ||
| 85 | number: [2], | ||
| 86 | toFixed: 1, | ||
| 87 | textAlign: 'left', | ||
| 88 | content: '{nt}', | ||
| 89 | style: { | ||
| 90 | fontSize: 26 | ||
| 91 | } | ||
| 92 | } | ||
| 93 | }, | ||
| 94 | { | ||
| 95 | title: '今年失败任务次数', | ||
| 96 | number: { | ||
| 97 | number: [14], | ||
| 98 | toFixed: 1, | ||
| 99 | textAlign: 'left', | ||
| 100 | content: '{nt}', | ||
| 101 | style: { | ||
| 102 | fontSize: 26 | ||
| 103 | } | ||
| 104 | } | ||
| 105 | }, | ||
| 106 | { | ||
| 107 | title: '今年成功任务次数', | ||
| 108 | number: { | ||
| 109 | number: [106], | ||
| 110 | toFixed: 1, | ||
| 111 | textAlign: 'left', | ||
| 112 | content: '{nt}', | ||
| 113 | style: { | ||
| 114 | fontSize: 26 | ||
| 115 | } | ||
| 116 | } | ||
| 117 | }, | ||
| 118 | { | ||
| 119 | title: '今年达标任务个数', | ||
| 120 | number: { | ||
| 121 | number: [100], | ||
| 122 | toFixed: 1, | ||
| 123 | textAlign: 'left', | ||
| 124 | content: '{nt}', | ||
| 125 | style: { | ||
| 126 | fontSize: 26 | ||
| 127 | } | ||
| 128 | } | ||
| 129 | } | ||
| 130 | ], | ||
| 131 | ranking: { | ||
| 132 | data: [ | ||
| 133 | { | ||
| 134 | name: '周口', | ||
| 135 | value: 55 | ||
| 136 | }, | ||
| 137 | { | ||
| 138 | name: '南阳', | ||
| 139 | value: 120 | ||
| 140 | }, | ||
| 141 | { | ||
| 142 | name: '西峡', | ||
| 143 | value: 78 | ||
| 144 | }, | ||
| 145 | { | ||
| 146 | name: '驻马店', | ||
| 147 | value: 66 | ||
| 148 | }, | ||
| 149 | { | ||
| 150 | name: '新乡', | ||
| 151 | value: 80 | ||
| 152 | }, | ||
| 153 | { | ||
| 154 | name: '新乡2', | ||
| 155 | value: 80 | ||
| 156 | }, | ||
| 157 | { | ||
| 158 | name: '新乡3', | ||
| 159 | value: 80 | ||
| 160 | }, | ||
| 161 | { | ||
| 162 | name: '新乡4', | ||
| 163 | value: 80 | ||
| 164 | }, | ||
| 165 | { | ||
| 166 | name: '新乡5', | ||
| 167 | value: 80 | ||
| 168 | }, | ||
| 169 | { | ||
| 170 | name: '新乡6', | ||
| 171 | value: 80 | ||
| 172 | } | ||
| 173 | ], | ||
| 174 | carousel: 'single', | ||
| 175 | unit: '人' | ||
| 176 | }, | ||
| 177 | water: { | ||
| 178 | data: [24, 45], | ||
| 179 | shape: 'roundRect', | ||
| 180 | formatter: '{value}%', | ||
| 181 | waveNum: 3 | ||
| 182 | }, | ||
| 183 | // 通过率和达标率的组件复用数据 | ||
| 184 | rate: [ | ||
| 185 | { | ||
| 186 | id: 'centerRate1', | ||
| 187 | tips: 60, | ||
| 188 | colorData: { | ||
| 189 | textStyle: '#3fc0fb', | ||
| 190 | series: { | ||
| 191 | color: ['#00bcd44a', 'transparent'], | ||
| 192 | dataColor: { | ||
| 193 | normal: '#03a9f4', | ||
| 194 | shadowColor: '#97e2f5' | ||
| 195 | } | ||
| 196 | } | ||
| 197 | } | ||
| 198 | }, | ||
| 199 | { | ||
| 200 | id: 'centerRate2', | ||
| 201 | tips: 40, | ||
| 202 | colorData: { | ||
| 203 | textStyle: '#67e0e3', | ||
| 204 | series: { | ||
| 205 | color: ['#faf3a378', 'transparent'], | ||
| 206 | dataColor: { | ||
| 207 | normal: '#ff9800', | ||
| 208 | shadowColor: '#fcebad' | ||
| 209 | } | ||
| 210 | } | ||
| 211 | } | ||
| 212 | } | ||
| 213 | ] | ||
| 214 | } | ||
| 215 | }, | ||
| 216 | components: { | ||
| 217 | CenterChart | ||
| 218 | } | ||
| 219 | } | ||
| 220 | </script> | ||
| 221 | |||
| 222 | <style lang="scss" scoped> | ||
| 223 | #center { | ||
| 224 | display: flex; | ||
| 225 | flex-direction: column; | ||
| 226 | .up { | ||
| 227 | width: 100%; | ||
| 228 | display: flex; | ||
| 229 | flex-wrap: wrap; | ||
| 230 | justify-content: space-around; | ||
| 231 | .item { | ||
| 232 | border-radius: 6px; | ||
| 233 | padding-top: 8px; | ||
| 234 | margin-top: 8px; | ||
| 235 | width: 32%; | ||
| 236 | height: 70px; | ||
| 237 | .dv-dig-flop { | ||
| 238 | width: 150px; | ||
| 239 | height: 30px; | ||
| 240 | } | ||
| 241 | } | ||
| 242 | } | ||
| 243 | .down { | ||
| 244 | padding: 6px 4px; | ||
| 245 | padding-bottom: 0; | ||
| 246 | width: 100%; | ||
| 247 | display: flex; | ||
| 248 | height: 255px; | ||
| 249 | justify-content: space-between; | ||
| 250 | .bg-color-black { | ||
| 251 | border-radius: 5px; | ||
| 252 | } | ||
| 253 | .ranking { | ||
| 254 | padding: 10px; | ||
| 255 | width: 59%; | ||
| 256 | .dv-scr-rank-board { | ||
| 257 | height: 225px; | ||
| 258 | } | ||
| 259 | } | ||
| 260 | .percent { | ||
| 261 | width: 40%; | ||
| 262 | display: flex; | ||
| 263 | flex-wrap: wrap; | ||
| 264 | .item { | ||
| 265 | width: 50%; | ||
| 266 | height: 120px; | ||
| 267 | span { | ||
| 268 | margin-top: 8px; | ||
| 269 | font-size: 14px; | ||
| 270 | display: flex; | ||
| 271 | justify-content: center; | ||
| 272 | } | ||
| 273 | } | ||
| 274 | .water { | ||
| 275 | width: 100%; | ||
| 276 | .dv-wa-le-po { | ||
| 277 | height: 120px; | ||
| 278 | } | ||
| 279 | } | ||
| 280 | } | ||
| 281 | } | ||
| 282 | } | ||
| 283 | </style> |
src/views/dataView/centerLeft1.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="centerLeft1"> | ||
| 3 | <div class="bg-color-black"> | ||
| 4 | <div class="d-flex pt-2 pl-2"> | ||
| 5 | <span> | ||
| 6 | <icon name="chart-bar" class="text-icon"></icon> | ||
| 7 | </span> | ||
| 8 | <div class="d-flex"> | ||
| 9 | <span class="fs-xl text mx-2">任务通过率</span> | ||
| 10 | <dv-decoration-3 class="dv-dec-3" /> | ||
| 11 | </div> | ||
| 12 | </div> | ||
| 13 | <div class="d-flex jc-center"> | ||
| 14 | <CenterLeft1Chart /> | ||
| 15 | </div> | ||
| 16 | <!-- 4个主要的数据 --> | ||
| 17 | <div class="bottom-data"> | ||
| 18 | <div | ||
| 19 | class="item-box mt-2" | ||
| 20 | v-for="(item, index) in numberData" | ||
| 21 | :key="index" | ||
| 22 | > | ||
| 23 | <div class="d-flex"> | ||
| 24 | <span class="coin">¥</span> | ||
| 25 | <dv-digital-flop class="dv-digital-flop" :config="item.number" /> | ||
| 26 | </div> | ||
| 27 | <p class="text" style="text-align: center;"> | ||
| 28 | {{ item.text }} | ||
| 29 | <span class="colorYellow">(件)</span> | ||
| 30 | </p> | ||
| 31 | </div> | ||
| 32 | </div> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | </template> | ||
| 36 | |||
| 37 | <script> | ||
| 38 | import CenterLeft1Chart from '@/components/echart/centerLeft/centerLeft1Chart' | ||
| 39 | export default { | ||
| 40 | data() { | ||
| 41 | return { | ||
| 42 | numberData: [ | ||
| 43 | { | ||
| 44 | number: { | ||
| 45 | number: [15], | ||
| 46 | toFixed: 1, | ||
| 47 | textAlign: 'left', | ||
| 48 | content: '{nt}', | ||
| 49 | style: { | ||
| 50 | fontSize: 24 | ||
| 51 | } | ||
| 52 | }, | ||
| 53 | text: '今日构建总量' | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | number: { | ||
| 57 | number: [1144], | ||
| 58 | toFixed: 1, | ||
| 59 | textAlign: 'left', | ||
| 60 | content: '{nt}', | ||
| 61 | style: { | ||
| 62 | fontSize: 24 | ||
| 63 | } | ||
| 64 | }, | ||
| 65 | text: '总共完成数量' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | number: { | ||
| 69 | number: [361], | ||
| 70 | toFixed: 1, | ||
| 71 | textAlign: 'left', | ||
| 72 | content: '{nt}', | ||
| 73 | style: { | ||
| 74 | fontSize: 24 | ||
| 75 | } | ||
| 76 | }, | ||
| 77 | text: '正在编译数量' | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | number: { | ||
| 81 | number: [157], | ||
| 82 | toFixed: 1, | ||
| 83 | textAlign: 'left', | ||
| 84 | content: '{nt}', | ||
| 85 | style: { | ||
| 86 | fontSize: 24 | ||
| 87 | } | ||
| 88 | }, | ||
| 89 | text: '未通过数量' | ||
| 90 | } | ||
| 91 | ] | ||
| 92 | } | ||
| 93 | }, | ||
| 94 | components: { | ||
| 95 | CenterLeft1Chart | ||
| 96 | }, | ||
| 97 | mounted() { | ||
| 98 | this.changeTiming() | ||
| 99 | }, | ||
| 100 | methods: { | ||
| 101 | changeTiming() { | ||
| 102 | setInterval(() => { | ||
| 103 | this.changeNumber() | ||
| 104 | }, 3000) | ||
| 105 | }, | ||
| 106 | changeNumber() { | ||
| 107 | this.numberData.forEach((item, index) => { | ||
| 108 | item.number.number[0] += ++index | ||
| 109 | item.number = { ...item.number } | ||
| 110 | }) | ||
| 111 | } | ||
| 112 | } | ||
| 113 | } | ||
| 114 | </script> | ||
| 115 | |||
| 116 | <style lang="scss" scoped> | ||
| 117 | $box-width: 300px; | ||
| 118 | $box-height: 410px; | ||
| 119 | |||
| 120 | #centerLeft1 { | ||
| 121 | padding: 16px; | ||
| 122 | height: $box-height; | ||
| 123 | width: $box-width; | ||
| 124 | border-radius: 10px; | ||
| 125 | .bg-color-black { | ||
| 126 | height: $box-height - 30px; | ||
| 127 | border-radius: 10px; | ||
| 128 | } | ||
| 129 | .text { | ||
| 130 | color: #c3cbde; | ||
| 131 | } | ||
| 132 | .dv-dec-3 { | ||
| 133 | position: relative; | ||
| 134 | width: 100px; | ||
| 135 | height: 20px; | ||
| 136 | top: -3px; | ||
| 137 | } | ||
| 138 | |||
| 139 | .bottom-data { | ||
| 140 | .item-box { | ||
| 141 | & > div { | ||
| 142 | padding-right: 5px; | ||
| 143 | } | ||
| 144 | font-size: 14px; | ||
| 145 | float: right; | ||
| 146 | position: relative; | ||
| 147 | width: 50%; | ||
| 148 | color: #d3d6dd; | ||
| 149 | .dv-digital-flop { | ||
| 150 | width: 120px; | ||
| 151 | height: 30px; | ||
| 152 | } | ||
| 153 | // 金币 | ||
| 154 | .coin { | ||
| 155 | position: relative; | ||
| 156 | top: 6px; | ||
| 157 | font-size: 20px; | ||
| 158 | color: #ffc107; | ||
| 159 | } | ||
| 160 | .colorYellow { | ||
| 161 | color: yellowgreen; | ||
| 162 | } | ||
| 163 | p { | ||
| 164 | text-align: center; | ||
| 165 | } | ||
| 166 | } | ||
| 167 | } | ||
| 168 | } | ||
| 169 | </style> |
src/views/dataView/centerLeft2.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="centerLeft1"> | ||
| 3 | <div class="bg-color-black"> | ||
| 4 | <div class="d-flex pt-2 pl-2"> | ||
| 5 | <span> | ||
| 6 | <icon name="chart-pie" class="text-icon"></icon> | ||
| 7 | </span> | ||
| 8 | <div class="d-flex"> | ||
| 9 | <span class="fs-xl text mx-2">地图数据</span> | ||
| 10 | <dv-decoration-1 class="dv-dec-1" /> | ||
| 11 | </div> | ||
| 12 | </div> | ||
| 13 | <div class="d-flex jc-center"> | ||
| 14 | <CenterLeft2Chart /> | ||
| 15 | </div> | ||
| 16 | </div> | ||
| 17 | </div> | ||
| 18 | </template> | ||
| 19 | |||
| 20 | <script> | ||
| 21 | import CenterLeft2Chart from "@/components/echart/centerLeft/centerLeft2Chart"; | ||
| 22 | export default { | ||
| 23 | components: { | ||
| 24 | CenterLeft2Chart | ||
| 25 | }, | ||
| 26 | }; | ||
| 27 | </script> | ||
| 28 | |||
| 29 | <style lang="scss" scoped> | ||
| 30 | #centerLeft1 { | ||
| 31 | $box-width: 300px; | ||
| 32 | $box-height: 410px; | ||
| 33 | padding: 16px; | ||
| 34 | height: $box-height; | ||
| 35 | min-width: $box-width; | ||
| 36 | border-radius: 5px; | ||
| 37 | .bg-color-black { | ||
| 38 | height: $box-height - 30px; | ||
| 39 | border-radius: 10px; | ||
| 40 | } | ||
| 41 | .text { | ||
| 42 | color: #c3cbde; | ||
| 43 | } | ||
| 44 | .dv-dec-1 { | ||
| 45 | position: relative; | ||
| 46 | width: 100px; | ||
| 47 | height: 20px; | ||
| 48 | top: -3px; | ||
| 49 | } | ||
| 50 | .chart-box { | ||
| 51 | margin-top: 16px; | ||
| 52 | width: 170px; | ||
| 53 | height: 170px; | ||
| 54 | .active-ring-name { | ||
| 55 | padding-top: 10px; | ||
| 56 | } | ||
| 57 | } | ||
| 58 | } | ||
| 59 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/dataView/centerRight1.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="centerRight1"> | ||
| 3 | <div class="bg-color-black"> | ||
| 4 | <div class="d-flex pt-2 pl-2"> | ||
| 5 | <span> | ||
| 6 | <icon name="chart-line" class="text-icon"></icon> | ||
| 7 | </span> | ||
| 8 | <div class="d-flex"> | ||
| 9 | <span class="fs-xl text mx-2">任务完成排行榜</span> | ||
| 10 | </div> | ||
| 11 | </div> | ||
| 12 | <div class="d-flex jc-center body-box"> | ||
| 13 | <dv-scroll-board class="dv-scr-board" :config="config" /> | ||
| 14 | </div> | ||
| 15 | </div> | ||
| 16 | </div> | ||
| 17 | </template> | ||
| 18 | |||
| 19 | <script> | ||
| 20 | export default { | ||
| 21 | data() { | ||
| 22 | return { | ||
| 23 | config: { | ||
| 24 | header: ['组件', '分支', '覆盖率'], | ||
| 25 | data: [ | ||
| 26 | ['组件1', 'dev-1', "<span class='colorGrass'>↑75%</span>"], | ||
| 27 | ['组件2', 'dev-2', "<span class='colorRed'>↓33%</span>"], | ||
| 28 | ['组件3', 'dev-3', "<span class='colorGrass'>↑100%</span>"], | ||
| 29 | ['组件4', 'rea-1', "<span class='colorGrass'>↑94%</span>"], | ||
| 30 | ['组件5', 'rea-2', "<span class='colorGrass'>↑95%</span>"], | ||
| 31 | ['组件6', 'fix-2', "<span class='colorGrass'>↑63%</span>"], | ||
| 32 | ['组件7', 'fix-4', "<span class='colorGrass'>↑84%</span>"], | ||
| 33 | ['组件8', 'fix-7', "<span class='colorRed'>↓46%</span>"], | ||
| 34 | ['组件9', 'dev-2', "<span class='colorRed'>↓13%</span>"], | ||
| 35 | ['组件10', 'dev-9', "<span class='colorGrass'>↑76%</span>"] | ||
| 36 | ], | ||
| 37 | rowNum: 7, //表格行数 | ||
| 38 | headerHeight: 35, | ||
| 39 | headerBGC: '#0f1325', //表头 | ||
| 40 | oddRowBGC: '#0f1325', //奇数行 | ||
| 41 | evenRowBGC: '#171c33', //偶数行 | ||
| 42 | index: true, | ||
| 43 | columnWidth: [50], | ||
| 44 | align: ['center'] | ||
| 45 | } | ||
| 46 | } | ||
| 47 | } | ||
| 48 | } | ||
| 49 | </script> | ||
| 50 | |||
| 51 | <style lang="scss" scoped> | ||
| 52 | $box-height: 410px; | ||
| 53 | $box-width: 300px; | ||
| 54 | #centerRight1 { | ||
| 55 | padding: 16px; | ||
| 56 | padding-top: 20px; | ||
| 57 | height: $box-height; | ||
| 58 | width: $box-width; | ||
| 59 | border-radius: 5px; | ||
| 60 | .bg-color-black { | ||
| 61 | height: $box-height - 30px; | ||
| 62 | border-radius: 10px; | ||
| 63 | } | ||
| 64 | .text { | ||
| 65 | color: #c3cbde; | ||
| 66 | } | ||
| 67 | .body-box { | ||
| 68 | border-radius: 10px; | ||
| 69 | overflow: hidden; | ||
| 70 | .dv-scr-board { | ||
| 71 | width: 270px; | ||
| 72 | height: 340px; | ||
| 73 | } | ||
| 74 | } | ||
| 75 | } | ||
| 76 | </style> |
src/views/dataView/centerRight2.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div id="centerRight2"> | ||
| 3 | <div class="bg-color-black"> | ||
| 4 | <div class="d-flex pt-2 pl-2"> | ||
| 5 | <span> | ||
| 6 | <icon name="align-left" class="text-icon"></icon> | ||
| 7 | </span> | ||
| 8 | <span class="fs-xl text mx-2">产品销售渠道分析</span> | ||
| 9 | </div> | ||
| 10 | <div class="d-flex ai-center flex-column body-box"> | ||
| 11 | <dv-capsule-chart class="dv-cap-chart" :config="config" /> | ||
| 12 | <centerRight2Chart1 /> | ||
| 13 | </div> | ||
| 14 | </div> | ||
| 15 | </div> | ||
| 16 | </template> | ||
| 17 | |||
| 18 | <script> | ||
| 19 | import centerRight2Chart1 from '@/components/echart/centerRight/centerRightChart' | ||
| 20 | |||
| 21 | export default { | ||
| 22 | data() { | ||
| 23 | return { | ||
| 24 | config: { | ||
| 25 | data: [ | ||
| 26 | { | ||
| 27 | name: '南阳', | ||
| 28 | value: 167 | ||
| 29 | }, | ||
| 30 | { | ||
| 31 | name: '周口', | ||
| 32 | value: 67 | ||
| 33 | }, | ||
| 34 | { | ||
| 35 | name: '漯河', | ||
| 36 | value: 123 | ||
| 37 | }, | ||
| 38 | { | ||
| 39 | name: '郑州', | ||
| 40 | value: 55 | ||
| 41 | }, | ||
| 42 | { | ||
| 43 | name: '西峡', | ||
| 44 | value: 98 | ||
| 45 | } | ||
| 46 | ] | ||
| 47 | } | ||
| 48 | } | ||
| 49 | }, | ||
| 50 | components: { centerRight2Chart1 } | ||
| 51 | } | ||
| 52 | </script> | ||
| 53 | |||
| 54 | <style lang="scss" scoped> | ||
| 55 | #centerRight2 { | ||
| 56 | $box-height: 410px; | ||
| 57 | $box-width: 340px; | ||
| 58 | padding: 5px; | ||
| 59 | height: $box-height; | ||
| 60 | width: $box-width; | ||
| 61 | border-radius: 5px; | ||
| 62 | .bg-color-black { | ||
| 63 | padding: 5px; | ||
| 64 | height: $box-height; | ||
| 65 | width: $box-width; | ||
| 66 | border-radius: 10px; | ||
| 67 | } | ||
| 68 | .text { | ||
| 69 | color: #c3cbde; | ||
| 70 | } | ||
| 71 | .body-box { | ||
| 72 | border-radius: 10px; | ||
| 73 | overflow: hidden; | ||
| 74 | .dv-cap-chart { | ||
| 75 | width: 100%; | ||
| 76 | height: 160px; | ||
| 77 | } | ||
| 78 | } | ||
| 79 | } | ||
| 80 | </style> |
src/views/dataView/centercard.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="centercard"> | ||
| 3 | <div class="card1"> | ||
| 4 | <CenterLeft2Chart class="map" /> | ||
| 5 | </div> | ||
| 6 | <div class="card2"></div> | ||
| 7 | </div> | ||
| 8 | </template> | ||
| 9 | |||
| 10 | <script> | ||
| 11 | import CenterLeft2Chart from "@/components/echart/map"; | ||
| 12 | export default { | ||
| 13 | data() { | ||
| 14 | return {}; | ||
| 15 | }, | ||
| 16 | components: { CenterLeft2Chart }, | ||
| 17 | mounted() {}, | ||
| 18 | beforeDestroy() {}, | ||
| 19 | methods: {}, | ||
| 20 | }; | ||
| 21 | </script> | ||
| 22 | |||
| 23 | <style lang="scss" scoped> | ||
| 24 | .centercard{ | ||
| 25 | width: 50%; | ||
| 26 | height: 100%; | ||
| 27 | .card1{ | ||
| 28 | width: 100%; | ||
| 29 | height: 600px; | ||
| 30 | box-sizing: border-box; | ||
| 31 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 32 | background-size: 100% 100%; | ||
| 33 | } | ||
| 34 | .card2{ | ||
| 35 | width: 100%; | ||
| 36 | height: 300px; | ||
| 37 | box-sizing: border-box; | ||
| 38 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 39 | background-size: 100% 100%; | ||
| 40 | } | ||
| 41 | } | ||
| 42 | </style> |
| 1 | .bigScreen { | 1 | .bigScreen { |
| 2 | width: 100vw; | 2 | width: 100vw; |
| 3 | height: 100vh; | 3 | height: 100vh; |
| 4 | background-color: #020308; | 4 | background-color: #031754; |
| 5 | overflow: hidden; | 5 | overflow: hidden; |
| 6 | } | 6 | } |
| 7 | #index { | 7 | #index { |
| 8 | color: #d3d6dd; | 8 | color: #d3d6dd; |
| 9 | width: 1920px; | 9 | width:2150px; |
| 10 | height: 1080px; | 10 | height: 1080px; |
| 11 | position: absolute; | 11 | position: absolute; |
| 12 | top: 50%; | 12 | top: 50%; |
| 13 | left: 50%; | 13 | left: 50%; |
| 14 | transform: translate(-50%, -50%); | ||
| 15 | transform-origin: left top; | 14 | transform-origin: left top; |
| 16 | overflow: hidden; | 15 | overflow: hidden; |
| 17 | 16 | ||
| 18 | .bg { | 17 | .bg { |
| 19 | width: 100%; | 18 | width: 100%; |
| 20 | height: 100%; | 19 | height: 100%; |
| 21 | padding: 16px 16px 0 16px; | ||
| 22 | background-image: url("../../image/pageBg.png"); | ||
| 23 | background-size: cover; | 20 | background-size: cover; |
| 24 | background-position: center center; | 21 | background-position: center center; |
| 25 | } | 22 | } |
| 26 | 23 | ||
| 27 | .host-body { | 24 | .host-body{ |
| 28 | 25 | .header{ | |
| 29 | .dv-dec-10, | 26 | width: 100%; |
| 30 | .dv-dec-10-s { | 27 | height: 100px; |
| 31 | width: 33.3%; | 28 | .head{ |
| 32 | height: 5px; | 29 | margin-top: 50px; |
| 33 | } | ||
| 34 | |||
| 35 | .dv-dec-10-s { | ||
| 36 | transform: rotateY(180deg); | ||
| 37 | } | ||
| 38 | |||
| 39 | .dv-dec-8 { | ||
| 40 | width: 200px; | ||
| 41 | height: 50px; | ||
| 42 | } | ||
| 43 | |||
| 44 | .title { | ||
| 45 | position: relative; | ||
| 46 | width: 500px; | ||
| 47 | text-align: center; | ||
| 48 | background-size: cover; | ||
| 49 | background-repeat: no-repeat; | ||
| 50 | |||
| 51 | .title-text { | ||
| 52 | font-size: 24px; | ||
| 53 | position: absolute; | ||
| 54 | bottom: 0; | ||
| 55 | left: 50%; | ||
| 56 | transform: translate(-50%); | ||
| 57 | } | 30 | } |
| 58 | 31 | ||
| 59 | .dv-dec-6 { | 32 | .dv-dec-10, |
| 60 | position: absolute; | 33 | .dv-dec-10-s { |
| 61 | bottom: -30px; | 34 | width: 50.3%; |
| 62 | left: 50%; | 35 | height: 10px; |
| 63 | width: 250px; | ||
| 64 | height: 8px; | ||
| 65 | transform: translate(-50%); | ||
| 66 | } | 36 | } |
| 67 | } | ||
| 68 | |||
| 69 | // 第二行 | ||
| 70 | .aside-width { | ||
| 71 | width: 40%; | ||
| 72 | } | ||
| 73 | 37 | ||
| 74 | .react-r-s, | 38 | .dv-dec-10-s { |
| 75 | .react-l-s { | 39 | transform: rotateY(180deg); |
| 76 | background-color: #0f1325; | ||
| 77 | } | ||
| 78 | |||
| 79 | // 平行四边形 | ||
| 80 | .react-right { | ||
| 81 | &.react-l-s { | ||
| 82 | text-align: right; | ||
| 83 | width: 500px; | ||
| 84 | } | 40 | } |
| 85 | 41 | ||
| 86 | font-size: 18px; | 42 | .dv-dec-8 { |
| 87 | width: 300px; | 43 | width: 200px; |
| 88 | line-height: 50px; | ||
| 89 | text-align: center; | ||
| 90 | transform: skewX(-45deg); | ||
| 91 | |||
| 92 | .react-after { | ||
| 93 | position: absolute; | ||
| 94 | right: -25px; | ||
| 95 | top: 0; | ||
| 96 | height: 50px; | 44 | height: 50px; |
| 97 | width: 50px; | ||
| 98 | background-color: #0f1325; | ||
| 99 | transform: skewX(45deg); | ||
| 100 | } | ||
| 101 | |||
| 102 | .text { | ||
| 103 | display: inline-block; | ||
| 104 | transform: skewX(45deg); | ||
| 105 | } | 45 | } |
| 106 | } | ||
| 107 | 46 | ||
| 108 | .react-left { | 47 | .title { |
| 109 | &.react-l-s { | 48 | position: relative; |
| 110 | width: 500px; | 49 | width: 500px; |
| 111 | text-align: left; | 50 | text-align: center; |
| 112 | } | 51 | background-size: cover; |
| 113 | 52 | background-repeat: no-repeat; | |
| 114 | font-size: 18px; | 53 | .dv-dec-5{ |
| 115 | width: 300px; | 54 | position: absolute; |
| 116 | height: 50px; | 55 | width: 500px; |
| 117 | line-height: 50px; | 56 | height: 40px; |
| 118 | text-align: center; | 57 | left: 0; |
| 119 | transform: skewX(45deg); | 58 | top: 38.5px; |
| 120 | background-color: #0f1325; | 59 | } |
| 121 | 60 | .title-text { | |
| 122 | .react-left { | 61 | font-size: 37px; |
| 123 | position: absolute; | 62 | position: absolute; |
| 124 | left: -25px; | 63 | font-weight: 600; |
| 125 | top: 0; | 64 | width: 500px; |
| 126 | height: 50px; | 65 | bottom: 20px; |
| 127 | width: 50px; | 66 | left: 50%; |
| 128 | background-color: #0f1325; | 67 | transform: translate(-50%); |
| 129 | transform: skewX(-45deg); | 68 | } |
| 130 | } | 69 | |
| 131 | 70 | .dv-dec-6 { | |
| 132 | .text { | 71 | position: absolute; |
| 133 | display: inline-block; | 72 | bottom: -30px; |
| 134 | transform: skewX(-45deg); | 73 | left: 50%; |
| 74 | width: 250px; | ||
| 75 | height: 8px; | ||
| 76 | transform: translate(-50%); | ||
| 77 | } | ||
| 135 | } | 78 | } |
| 136 | } | 79 | } |
| 137 | 80 | .content{ | |
| 138 | .body-box { | 81 | width: 98%; |
| 139 | margin-top: 16px; | 82 | height: 900px; |
| 83 | margin: auto; | ||
| 140 | display: flex; | 84 | display: flex; |
| 141 | flex-direction: column; | ||
| 142 | 85 | ||
| 143 | //下方区域的布局 | 86 | .centercard{ |
| 144 | .content-box { | 87 | width: 50%; |
| 145 | display: grid; | 88 | height: 100%; |
| 146 | grid-template-columns: 2fr 3fr 5fr 3fr 2fr; | 89 | .card1{ |
| 90 | width: 100%; | ||
| 91 | height: 600px; | ||
| 92 | box-sizing: border-box; | ||
| 93 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 94 | background-size: 100% 100%; | ||
| 95 | } | ||
| 96 | .card2{ | ||
| 97 | width: 100%; | ||
| 98 | height: 300px; | ||
| 99 | box-sizing: border-box; | ||
| 100 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 101 | background-size: 100% 100%; | ||
| 102 | } | ||
| 147 | } | 103 | } |
| 148 | 104 | .rightcard{ | |
| 149 | // 底部数据 | 105 | width: 25%; |
| 150 | .bottom-box { | 106 | height: 100%; |
| 151 | margin-top: 10px; | 107 | .card1{ |
| 152 | display: grid; | 108 | width: 100%; |
| 153 | grid-template-columns: repeat(2, 50%); | 109 | height: 300px; |
| 110 | box-sizing: border-box; | ||
| 111 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 112 | background-size: 100% 100%; | ||
| 113 | } | ||
| 114 | .card2{ | ||
| 115 | width: 100%; | ||
| 116 | height: 300px; | ||
| 117 | box-sizing: border-box; | ||
| 118 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 119 | background-size: 100% 100%; | ||
| 120 | } | ||
| 121 | .card3{ | ||
| 122 | width: 100%; | ||
| 123 | height: 300px; | ||
| 124 | box-sizing: border-box; | ||
| 125 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 126 | background-size: 100% 100%; | ||
| 127 | } | ||
| 154 | } | 128 | } |
| 155 | } | 129 | } |
| 156 | } | 130 | } |
| 157 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 131 | } | ||
| 132 | ... | ... |
| ... | @@ -4,143 +4,78 @@ | ... | @@ -4,143 +4,78 @@ |
| 4 | <div class="bg"> | 4 | <div class="bg"> |
| 5 | <dv-loading v-if="loading">Loading...</dv-loading> | 5 | <dv-loading v-if="loading">Loading...</dv-loading> |
| 6 | <div v-else class="host-body"> | 6 | <div v-else class="host-body"> |
| 7 | <div class="d-flex jc-center"> | 7 | <div class="header"> |
| 8 | <dv-decoration-10 class="dv-dec-10" /> | 8 | <div class="d-flex head"> |
| 9 | <div class="d-flex jc-center"> | 9 | <dv-decoration-10 class="dv-dec-10" /> |
| 10 | <dv-decoration-8 class="dv-dec-8" :color="decorationColor" /> | 10 | <div class="d-flex"> |
| 11 | <div class="title"> | 11 | <dv-decoration-8 class="dv-dec-8" :color="decorationColor" /> |
| 12 | <span class="title-text">大数据可视化平台</span> | 12 | <div class="title"> |
| 13 | <dv-decoration-6 class="dv-dec-6" :reverse="true" :color="['#50e3c2', '#67a1e5']" /> | 13 | <span class="title-text">汉中市不动产监管大屏</span> |
| 14 | <dv-decoration-5 | ||
| 15 | :dur="1" | ||
| 16 | class="dv-dec-5" | ||
| 17 | :color="decorationColor" | ||
| 18 | /> | ||
| 19 | </div> | ||
| 20 | <dv-decoration-8 | ||
| 21 | class="dv-dec-8" | ||
| 22 | :reverse="true" | ||
| 23 | :color="decorationColor" | ||
| 24 | /> | ||
| 14 | </div> | 25 | </div> |
| 15 | <dv-decoration-8 class="dv-dec-8" :reverse="true" :color="decorationColor" /> | 26 | <dv-decoration-10 class="dv-dec-10-s" /> |
| 16 | </div> | 27 | </div> |
| 17 | <dv-decoration-10 class="dv-dec-10-s" /> | ||
| 18 | </div> | 28 | </div> |
| 19 | 29 | <div class="content"> | |
| 20 | <!-- 第二行 --> | 30 | <leftcard/> |
| 21 | <div class="d-flex jc-between px-2"> | 31 | <centercard/> |
| 22 | <div class="d-flex aside-width"> | 32 | <rightcard/> |
| 23 | <div class="react-left ml-4 react-l-s"> | ||
| 24 | <span class="react-left"></span> | ||
| 25 | <span class="text">数据分析1</span> | ||
| 26 | </div> | ||
| 27 | <div class="react-left ml-3"> | ||
| 28 | <span class="text">数据分析2</span> | ||
| 29 | </div> | ||
| 30 | </div> | ||
| 31 | <div class="d-flex aside-width"> | ||
| 32 | <div class="react-right bg-color-blue mr-3"> | ||
| 33 | <span class="text fw-b">vue-big-screen</span> | ||
| 34 | </div> | ||
| 35 | <div class="react-right mr-4 react-l-s"> | ||
| 36 | <span class="react-after"></span> | ||
| 37 | <span class="text">{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span> | ||
| 38 | </div> | ||
| 39 | </div> | ||
| 40 | </div> | ||
| 41 | |||
| 42 | <div class="body-box"> | ||
| 43 | <!-- 第三行数据 --> | ||
| 44 | <div class="content-box"> | ||
| 45 | <div> | ||
| 46 | <dv-border-box-12> | ||
| 47 | <centerLeft1 /> | ||
| 48 | </dv-border-box-12> | ||
| 49 | </div> | ||
| 50 | <div> | ||
| 51 | <dv-border-box-12> | ||
| 52 | <centerLeft2 /> | ||
| 53 | </dv-border-box-12> | ||
| 54 | </div> | ||
| 55 | <!-- 中间 --> | ||
| 56 | <div> | ||
| 57 | <center /> | ||
| 58 | </div> | ||
| 59 | <!-- 中间 --> | ||
| 60 | <div> | ||
| 61 | <centerRight2 /> | ||
| 62 | </div> | ||
| 63 | <div> | ||
| 64 | <dv-border-box-13> | ||
| 65 | <centerRight1 /> | ||
| 66 | </dv-border-box-13> | ||
| 67 | </div> | ||
| 68 | </div> | ||
| 69 | |||
| 70 | <!-- 第四行数据 --> | ||
| 71 | <div class="bottom-box"> | ||
| 72 | <dv-border-box-13> | ||
| 73 | <bottomLeft /> | ||
| 74 | </dv-border-box-13> | ||
| 75 | <dv-border-box-12> | ||
| 76 | <bottomRight /> | ||
| 77 | </dv-border-box-12> | ||
| 78 | </div> | ||
| 79 | </div> | 33 | </div> |
| 80 | </div> | 34 | </div> |
| 81 | </div> | 35 | </div> |
| 82 | </div> | 36 | </div> |
| 83 | </div> | 37 | </div> |
| 84 | |||
| 85 | </template> | 38 | </template> |
| 86 | 39 | ||
| 87 | <script> | 40 | <script> |
| 88 | import drawMixin from "../../utils/drawMixin"; | 41 | import drawMixin from "../../utils/drawMixin"; |
| 89 | import { formatTime } from '../../utils/index.js' | 42 | import leftcard from './leftcard' |
| 90 | import centerLeft1 from './centerLeft1' | 43 | import centercard from './centercard' |
| 91 | import centerLeft2 from './centerLeft2' | 44 | import rightcard from './rightcard' |
| 92 | import centerRight1 from './centerRight1' | ||
| 93 | import centerRight2 from './centerRight2' | ||
| 94 | import center from './center' | ||
| 95 | import bottomLeft from './bottomLeft' | ||
| 96 | import bottomRight from './bottomRight' | ||
| 97 | |||
| 98 | export default { | 45 | export default { |
| 99 | mixins: [drawMixin], | 46 | mixins: [drawMixin], |
| 100 | data () { | 47 | data() { |
| 101 | return { | 48 | return { |
| 102 | timing: null, | 49 | decorationColor: ["#568aea", "#568aea"], |
| 103 | loading: true, | 50 | }; |
| 104 | dateDay: null, | ||
| 105 | dateYear: null, | ||
| 106 | dateWeek: null, | ||
| 107 | weekday: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], | ||
| 108 | decorationColor: ['#568aea', '#000000'] | ||
| 109 | } | ||
| 110 | }, | 51 | }, |
| 111 | components: { | 52 | components: { |
| 112 | centerLeft1, | 53 | leftcard,centercard,rightcard |
| 113 | centerLeft2, | ||
| 114 | centerRight1, | ||
| 115 | centerRight2, | ||
| 116 | center, | ||
| 117 | bottomLeft, | ||
| 118 | bottomRight | ||
| 119 | }, | 54 | }, |
| 120 | mounted () { | 55 | mounted() { |
| 121 | this.timeFn() | 56 | // this.timeFn(); |
| 122 | this.cancelLoading() | 57 | this.cancelLoading(); |
| 123 | }, | 58 | }, |
| 124 | beforeDestroy () { | 59 | beforeDestroy() { |
| 125 | clearInterval(this.timing) | 60 | clearInterval(this.timing); |
| 126 | }, | 61 | }, |
| 127 | methods: { | 62 | methods: { |
| 128 | timeFn () { | 63 | // timeFn() { |
| 129 | this.timing = setInterval(() => { | 64 | // this.timing = setInterval(() => { |
| 130 | this.dateDay = formatTime(new Date(), 'HH: mm: ss') | 65 | // this.dateDay = formatTime(new Date(), "HH: mm: ss"); |
| 131 | this.dateYear = formatTime(new Date(), 'yyyy-MM-dd') | 66 | // this.dateYear = formatTime(new Date(), "yyyy-MM-dd"); |
| 132 | this.dateWeek = this.weekday[new Date().getDay()] | 67 | // this.dateWeek = this.weekday[new Date().getDay()]; |
| 133 | }, 1000) | 68 | // }, 1000); |
| 134 | }, | 69 | // }, |
| 135 | cancelLoading () { | 70 | cancelLoading() { |
| 136 | setTimeout(() => { | 71 | setTimeout(() => { |
| 137 | this.loading = false | 72 | this.loading = false; |
| 138 | }, 500) | 73 | }, 500); |
| 139 | } | 74 | }, |
| 140 | } | 75 | }, |
| 141 | } | 76 | }; |
| 142 | </script> | 77 | </script> |
| 143 | 78 | ||
| 144 | <style lang="scss" scoped> | 79 | <style scoped lang="scss"> |
| 145 | @import './index.scss'; | 80 | @import "./index.scss"; |
| 146 | </style> | 81 | </style> | ... | ... |
src/views/dataView/leftcard.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="leftcard"> | ||
| 3 | <div class="card1"> | ||
| 4 | <div class="cardhead">区县接入</div> | ||
| 5 | <div class="cardcontent"> | ||
| 6 | <div class="text1"> | ||
| 7 | <p>52343</p> | ||
| 8 | <p>总量</p> | ||
| 9 | </div> | ||
| 10 | <div class="text2"> | ||
| 11 | <p>666</p> | ||
| 12 | <p>失败</p> | ||
| 13 | </div> | ||
| 14 | <div class="text3"> | ||
| 15 | <p>99%</p> | ||
| 16 | <p>成功率</p> | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | </div> | ||
| 20 | <div class="card2"> | ||
| 21 | <div class="cardhead">省厅汇交</div> | ||
| 22 | <div class="cardcontent"> | ||
| 23 | <div class="text1"> | ||
| 24 | <p>9168</p> | ||
| 25 | <p>总量</p> | ||
| 26 | </div> | ||
| 27 | <div class="text2"> | ||
| 28 | <p>45</p> | ||
| 29 | <p>失败</p> | ||
| 30 | </div> | ||
| 31 | <div class="text3"> | ||
| 32 | <p>99%</p> | ||
| 33 | <p>成功率</p> | ||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | </div> | ||
| 37 | <div class="card3"> | ||
| 38 | <div class="cardhead">各区县数据上报统计</div> | ||
| 39 | <columnar /> | ||
| 40 | </div> | ||
| 41 | </div> | ||
| 42 | </template> | ||
| 43 | |||
| 44 | <script> | ||
| 45 | import columnar from "@/components/echart/columnar"; | ||
| 46 | export default { | ||
| 47 | |||
| 48 | data() { | ||
| 49 | return { | ||
| 50 | |||
| 51 | }; | ||
| 52 | }, | ||
| 53 | components: { columnar }, | ||
| 54 | mounted() { | ||
| 55 | }, | ||
| 56 | beforeDestroy() { | ||
| 57 | |||
| 58 | }, | ||
| 59 | methods: { | ||
| 60 | |||
| 61 | }, | ||
| 62 | }; | ||
| 63 | </script> | ||
| 64 | |||
| 65 | <style lang="scss" scoped> | ||
| 66 | .leftcard{ | ||
| 67 | width: 25%; | ||
| 68 | height: 100%; | ||
| 69 | .cardhead{ | ||
| 70 | width: 100%; | ||
| 71 | height: 40px; | ||
| 72 | margin-left: 10px; | ||
| 73 | line-height: 40px; | ||
| 74 | color: rgb(27, 185, 206); | ||
| 75 | font-size: 26px; | ||
| 76 | } | ||
| 77 | .cardcontent{ | ||
| 78 | width: 100%; | ||
| 79 | height: 160px; | ||
| 80 | display: flex; | ||
| 81 | .text1{ | ||
| 82 | width: 33%; | ||
| 83 | height: 100%; | ||
| 84 | p{ | ||
| 85 | height: 70px; | ||
| 86 | line-height: 70px; | ||
| 87 | font-size: 40px; | ||
| 88 | text-align: center;; | ||
| 89 | |||
| 90 | }; | ||
| 91 | p:nth-child(2){ | ||
| 92 | color: rgb(180, 178, 178); | ||
| 93 | |||
| 94 | }; | ||
| 95 | } | ||
| 96 | .text2{ | ||
| 97 | width: 33%; | ||
| 98 | height: 100%; | ||
| 99 | p{ | ||
| 100 | height: 70px; | ||
| 101 | line-height: 70px; | ||
| 102 | font-size: 20px; | ||
| 103 | text-align: center;; | ||
| 104 | color: rgb(180, 178, 178); | ||
| 105 | }; | ||
| 106 | } | ||
| 107 | .text3{ | ||
| 108 | width: 33%; | ||
| 109 | height: 100%; | ||
| 110 | p{ | ||
| 111 | height: 70px; | ||
| 112 | line-height: 70px; | ||
| 113 | font-size: 20px; | ||
| 114 | text-align: center;; | ||
| 115 | color: rgb(180, 178, 178); | ||
| 116 | }; | ||
| 117 | } | ||
| 118 | } | ||
| 119 | .card1{ | ||
| 120 | width: 100%; | ||
| 121 | height: 200px; | ||
| 122 | box-sizing: border-box; | ||
| 123 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 124 | background-size: 100% 100%; | ||
| 125 | |||
| 126 | } | ||
| 127 | .card2{ | ||
| 128 | width: 100%; | ||
| 129 | height: 200px; | ||
| 130 | box-sizing: border-box; | ||
| 131 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 132 | background-size: 100% 100%; | ||
| 133 | } | ||
| 134 | .card3{ | ||
| 135 | width: 100%; | ||
| 136 | height: 500px; | ||
| 137 | box-sizing: border-box; | ||
| 138 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 139 | background-size: 100% 100%; | ||
| 140 | .mainCss{ | ||
| 141 | width: 500px; | ||
| 142 | height:445px; | ||
| 143 | background-color: saddlebrown; | ||
| 144 | } | ||
| 145 | } | ||
| 146 | } | ||
| 147 | |||
| 148 | </style> |
src/views/dataView/rightcard.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="leftcard"> | ||
| 3 | <div class="card1"> | ||
| 4 | <div class="cardhead">区县接入</div> | ||
| 5 | <div class="cardcontent"> | ||
| 6 | <div class="text1"> | ||
| 7 | <p>52343</p> | ||
| 8 | <p>总量</p> | ||
| 9 | </div> | ||
| 10 | <div class="text2"> | ||
| 11 | <p>666</p> | ||
| 12 | <p>失败</p> | ||
| 13 | </div> | ||
| 14 | <div class="text3"> | ||
| 15 | <p>99%</p> | ||
| 16 | <p>成功率</p> | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | </div> | ||
| 20 | <div class="card2"> | ||
| 21 | <div class="cardhead">省厅汇交</div> | ||
| 22 | <div class="cardcontent"> | ||
| 23 | <div class="text1"> | ||
| 24 | <p>9168</p> | ||
| 25 | <p>总量</p> | ||
| 26 | </div> | ||
| 27 | <div class="text2"> | ||
| 28 | <p>45</p> | ||
| 29 | <p>失败</p> | ||
| 30 | </div> | ||
| 31 | <div class="text3"> | ||
| 32 | <p>99%</p> | ||
| 33 | <p>成功率</p> | ||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | </div> | ||
| 37 | <div class="card3"> | ||
| 38 | <div class="cardhead">各区县数据上报统计</div> | ||
| 39 | <div class="mainCss" ref="myRef"></div> | ||
| 40 | |||
| 41 | </div> | ||
| 42 | </div> | ||
| 43 | </template> | ||
| 44 | |||
| 45 | <script> | ||
| 46 | import CenterLeft2Chart from "@/components/echart/map"; | ||
| 47 | export default { | ||
| 48 | |||
| 49 | data() { | ||
| 50 | return { | ||
| 51 | |||
| 52 | }; | ||
| 53 | }, | ||
| 54 | components: { CenterLeft2Chart }, | ||
| 55 | mounted() { | ||
| 56 | }, | ||
| 57 | beforeDestroy() { | ||
| 58 | |||
| 59 | }, | ||
| 60 | methods: { | ||
| 61 | |||
| 62 | }, | ||
| 63 | }; | ||
| 64 | </script> | ||
| 65 | |||
| 66 | <style lang="scss" scoped> | ||
| 67 | .leftcard{ | ||
| 68 | width: 25%; | ||
| 69 | height: 100%; | ||
| 70 | .cardhead{ | ||
| 71 | width: 100%; | ||
| 72 | height: 40px; | ||
| 73 | margin-left: 10px; | ||
| 74 | line-height: 40px; | ||
| 75 | color: rgb(27, 185, 206); | ||
| 76 | font-size: 26px; | ||
| 77 | } | ||
| 78 | .cardcontent{ | ||
| 79 | width: 100%; | ||
| 80 | height: 160px; | ||
| 81 | display: flex; | ||
| 82 | .text1{ | ||
| 83 | width: 33%; | ||
| 84 | height: 100%; | ||
| 85 | p{ | ||
| 86 | height: 70px; | ||
| 87 | line-height: 70px; | ||
| 88 | font-size: 40px; | ||
| 89 | text-align: center;; | ||
| 90 | |||
| 91 | }; | ||
| 92 | p:nth-child(2){ | ||
| 93 | color: rgb(180, 178, 178); | ||
| 94 | |||
| 95 | }; | ||
| 96 | } | ||
| 97 | .text2{ | ||
| 98 | width: 33%; | ||
| 99 | height: 100%; | ||
| 100 | p{ | ||
| 101 | height: 70px; | ||
| 102 | line-height: 70px; | ||
| 103 | font-size: 20px; | ||
| 104 | text-align: center;; | ||
| 105 | color: rgb(180, 178, 178); | ||
| 106 | }; | ||
| 107 | p:nth-child(2){ | ||
| 108 | color: rgb(180, 178, 178); | ||
| 109 | |||
| 110 | }; | ||
| 111 | } | ||
| 112 | .text3{ | ||
| 113 | width: 33%; | ||
| 114 | height: 100%; | ||
| 115 | p{ | ||
| 116 | height: 70px; | ||
| 117 | line-height: 70px; | ||
| 118 | font-size: 20px; | ||
| 119 | text-align: center;; | ||
| 120 | color: rgb(180, 178, 178); | ||
| 121 | }; | ||
| 122 | p:nth-child(2){ | ||
| 123 | |||
| 124 | |||
| 125 | }; | ||
| 126 | } | ||
| 127 | } | ||
| 128 | .card1{ | ||
| 129 | width: 100%; | ||
| 130 | height: 200px; | ||
| 131 | box-sizing: border-box; | ||
| 132 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 133 | background-size: 100% 100%; | ||
| 134 | |||
| 135 | } | ||
| 136 | .card2{ | ||
| 137 | width: 100%; | ||
| 138 | height: 200px; | ||
| 139 | box-sizing: border-box; | ||
| 140 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 141 | background-size: 100% 100%; | ||
| 142 | } | ||
| 143 | .card3{ | ||
| 144 | width: 100%; | ||
| 145 | height: 500px; | ||
| 146 | box-sizing: border-box; | ||
| 147 | background: url("~@/image/tablebk.png") no-repeat; | ||
| 148 | background-size: 100% 100%; | ||
| 149 | .mainCss{ | ||
| 150 | width: 500px; | ||
| 151 | height:445px; | ||
| 152 | background-color: saddlebrown; | ||
| 153 | } | ||
| 154 | } | ||
| 155 | } | ||
| 156 | </style> |
| ... | @@ -95,7 +95,7 @@ | ... | @@ -95,7 +95,7 @@ |
| 95 | <script> | 95 | <script> |
| 96 | // 上报首页 | 96 | // 上报首页 |
| 97 | import wgsl from "./wgsl.vue"; | 97 | import wgsl from "./wgsl.vue"; |
| 98 | import CenterLeft2Chart from "@/components/echart/centerLeft/centerLeft2Chart"; | 98 | import CenterLeft2Chart from "@/components/echart/map"; |
| 99 | // 引入表格数据 | 99 | // 引入表格数据 |
| 100 | import data from "./data" | 100 | import data from "./data" |
| 101 | export default { | 101 | export default { | ... | ... |
-
Please register or sign in to post a comment