liulijun
2025-11-17 da4257bc32483409af02a06dd342c6981ec786ec
更新大屏幕页面和任务信息页面

更新大屏幕页面和任务信息页面
已添加37个文件
已重命名4个文件
已删除111个文件
已修改19个文件
130443 ■■■■ 文件已修改
项目代码/BigScreen/.babelrc 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/.devcontainer/devcontainer.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/.env.dev 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/.env.production 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/.env.test 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/.gitignore 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/LICENSE 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/README.md 430 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/babel.config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/jsconfig.json 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/package-lock.json 18003 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/package.json 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/image.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/index.html 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/110000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/120000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/130000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/140000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/150000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/210000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/220000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/230000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/310000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/320000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/330000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/340000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/350000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/360000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/370000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/410000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/420000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/430000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/440000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/450000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/460000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/500000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/510000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/520000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/530000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/540000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/610000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/620000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/630000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/640000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/650000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/710000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/810000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/820000.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/china.json 98604 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/map-geojson/chinaNanhai.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/public/style.css 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/App.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/api/ajax.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/api/api.js 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/api/http.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/api/index.js 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/api/modules/index.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/FZ.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/JX.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/LB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/SC.jpg 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/benterblue.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/bg5.jpg 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/blue.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/cnmc_logo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/index.scss 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/modules/reset.scss 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/public.scss 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/theme/fonts/element-icons.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/theme/fonts/element-icons.woff 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/theme/index.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/variable.scss 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/css/webfont/index.css 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/head_bg1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/iconfont/iconfont.css 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/iconfont/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/iconfont/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/iconfont/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/3DScreen.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/center_map.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/frame.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/guang.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/headers/juxing1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/headers/juxing2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/left_top_hong.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/left_top_huang.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/left_top_lan.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/left_top_lv.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/titles/you.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/titles/zuo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/top.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/xieyou.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/xiezuo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/img/zuo_xuxian.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/pageBg.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/red0.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/red1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/scss/_variables.scss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/scss/index.scss 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/scss/style.scss 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/assets/yellow.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/common/echart/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/common/echart/theme.json 490 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/common/map/fujian.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/bottom/bottomCenterChart/chart.vue 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/bottom/bottomCenterChart/index.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/bottom/bottomLeftChart/chart.vue 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/bottom/bottomLeftChart/index.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/bottom/bottomRightChart/chart.vue 358 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/bottom/bottomRightChart/index.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/center/centerChartRate/index.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft/centerLeft1Chart/chart.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft/centerLeft1Chart/index.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft/centerLeft2Chat/chart.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft/centerLeft2Chat/index.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft/centerLeft3Chart/chart.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft/centerLeft3Chart/index.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/echart/centerLeft1Chart/index.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/item-wrap/item-wrap.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/kong.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/message/message.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/message/message.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/reacquire/reacquire.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/components/scale-screen/scale-screen.vue 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/config/UtilVar.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/directives/filters.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/lib/currency.js 429 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/lib/dd-moment.js 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/lib/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/lib/types.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/main.js 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/mock/mock.js 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/router/index.js 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/store/index.js 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/store/modules/setting.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/utils/drawMixin.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/utils/index.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/utils/map/china.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/utils/map/xzqCode.js 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/utils/resizeMixin.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/bottomView1.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/centerView1.vue 505 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/home.scss 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/home.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/index.vue 333 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexLine.vue 389 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexPick.vue 389 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/center-bottom.vue 363 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/center-map.vue 384 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/index.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/left-bottom.vue 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/left-center-right.vue 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/left-center.vue 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/left-top.vue 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/pass-two.vue 442 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/plan.vue 363 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/right-bottom.vue 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/right-center.vue 451 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/right-top.vue 299 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/station-four.vue 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/station-one.vue 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/station-three.vue 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/indexs/station-two.vue 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/setting.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/src/views/tjfx/tjfx.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/BigScreen/vue.config.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSClient/src/extension/taskinfo/task.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSClient/src/views/taskinfo/task.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSClient/src/views/taskinfo/task_hty.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/BigScreen/.babelrc
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/.devcontainer/devcontainer.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/.env.dev
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/.env.production
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/.env.test
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/.gitignore
@@ -1,8 +1,6 @@
.DS_Store
node_modules
/dist
/dist-*
# local env files
.env.local
@@ -12,7 +10,6 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
ÏîÄ¿´úÂë/BigScreen/LICENSE
@@ -1,21 +1,201 @@
MIT License
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/
Copyright (c) 2022 daidai
   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
   1. Definitions.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.
      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.
      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.
      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.
      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.
      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).
      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.
      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."
      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.
   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.
   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.
   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:
      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and
      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and
      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and
      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.
      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.
   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.
   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.
   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.
   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.
   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.
   END OF TERMS AND CONDITIONS
   APPENDIX: How to apply the Apache License to your work.
      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.
   Copyright [yyyy] [name of copyright owner]
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
ÏîÄ¿´úÂë/BigScreen/README.md
@@ -1,238 +1,200 @@
## é¡¹ç›®æè¿°
根据奔跑吧面条的**[vue-big-screen](https://gitee.com/MTrun/big-screen-vue-datav)**开源框架基础上进行修改。
- é¡¹ç›®éœ€è¦å…¨å±å±•示(按 F11)。
- é¡¹ç›®éƒ¨åˆ†åŒºåŸŸä½¿ç”¨äº†å…¨å±€æ³¨å†Œæ–¹å¼ï¼Œå¢žåŠ äº†æ‰“åŒ…ä½“ç§¯ï¼Œåœ¨å®žé™…è¿ç”¨ä¸­è¯·ä½¿ç”¨ **按需引入**。
- é¡¹ç›®çŽ¯å¢ƒï¼šVue-cli、DataV、Echarts、Webpack、Npm、Node,axios,mock。
- è¯·æ‹‰å– master åˆ†æ”¯çš„代码,其余分支是开发分支。
- åœ¨é¡¹ç›®public目录下存放地图数据合集,根据地市编存放。
友情链接:
1. [Vue å®˜æ–¹æ–‡æ¡£](https://gitee.com/link?target=https%3A%2F%2Fcn.vuejs.org%2Fv2%2Fguide%2Finstance.html)
2. [DataV å®˜æ–¹æ–‡æ¡£](https://gitee.com/link?target=http%3A%2F%2Fdatav.jiaminghi.com%2Fguide%2F)
3. [echarts å®žä¾‹](https://gitee.com/link?target=https%3A%2F%2Fecharts.apache.org%2Fexamples%2Fzh%2Findex.html),[echarts API æ–‡æ¡£](https://gitee.com/link?target=https%3A%2F%2Fecharts.apache.org%2Fzh%2Fapi.html%23echarts)
4. [mock.js官网](http://mockjs.com/examples.html)
5. [axios官网](https://axios-http.com/)
**项目展示**
![项目展示](https://www.daidaibg.com/bigscreen/a-img/home.png)
### é¡¹ç›®é¢„览地址
[https://www.daidaibg.com/bigscreen](https://www.daidaibg.com/bigscreen)
### é¡¹ç›®ä»“库地址
**github地址**
[https://github.com/daidaibg/IofTV-Screen](https://github.com/daidaibg/IofTV-Screen)
**Gitee地址**
[https://gitee.com/daidaibg/IofTV-Screen](https://gitee.com/daidaibg/IofTV-Screen)
### vue3+vite版本地址
**github地址**
[https://github.com/daidaibg/IofTV-Screen-Vue3](https://github.com/daidaibg/IofTV-Screen-Vue3)
**Gitee地址**
[https://gitee.com/daidaibg/IofTV-Screen-Vue3](https://gitee.com/daidaibg/IofTV-Screen-Vue3)
### 1.1.0版本开始采用自适应组件方式,不再使用mixin方式。
###  æ»šåŠ¨è®¾ç½®ï¼Œè‡ªé€‚åº”è®¾ç½®
项目中可以进行滚动配置,内容是否滚动
点击右上角设置按钮
![设置](https://www.daidaibg.com/bigscreen/a-img/setting.png)
可以进行以下配置,可以自行代码中进行修改或增加配置
![在这里插入图片描述](https://www.daidaibg.com/bigscreen/a-img/setting2.png)
##  2、主要文件介绍
| æ–‡ä»¶              | ä½œç”¨/功能                                                    |
| ----------------- | ------------------------------------------------------------ |
| main.js           | ä¸»ç›®å½•文件,引入 Echart/DataV ç­‰æ–‡ä»¶                         |
| utils             | å·¥å…·å‡½æ•°ä¸Ž mixins å‡½æ•°ç­‰                                     |
| views/ home.vue   | é¡¹ç›®ä¸»ç»“æž„                                                   |
| views/其余文件    | ç•Œé¢å„个区域组件(按照位置来命名)                           |
| assets            | é™æ€èµ„源目录,放置 logo ä¸ŽèƒŒæ™¯å›¾ç‰‡                           |
| assets / css/     | é€šç”¨ CSS æ–‡ä»¶ï¼Œå…¨å±€é¡¹ç›®å¿«æ·æ ·å¼è°ƒèŠ‚                          |
| components/echart | æ‰€æœ‰ echart å›¾è¡¨ï¼ˆæŒ‰ç…§ä½ç½®æ¥å‘½åï¼‰                           |
| common/...        | å…¨å±€å°è£…çš„ ECharts å’Œ flexible æ’件代码(适配屏幕尺寸,可定制化修改) |
| api/api.js        | æŽ¥å£å°è£…文件                                                 |
| mock              | æ¨¡æ‹Ÿæ•°æ®æŽ¥å£åœ°å€                                             |
###
## ä½¿ç”¨ä»‹ç»
### å®‰è£…
```npm
npm install
```
### å¯åЍ
```npm
npm start
```
[接下来跟面条的差不多还是看面条的文档吧](https://gitee.com/MTrun/big-screen-vue-datav/tree/master#%E4%B8%89%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D)
https://gitee.com/MTrun/big-screen-vue-datav/tree/master#%E4%B8%89%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D
### å–消mock模拟数据
```javascript
// src\main.js文件
把下面这句话注释掉就可以了。
require('./mock/mock')//是否使用mock
```
## è‡ªé€‚应缩放组件
### æ³¨æ„
采用Scale方式,会自动给组件父元素添加overflow:hidden
### ä½¿ç”¨
```vue
<template>
  <scale-screen width="1920" height="1080">
    <div>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
    </div>
  </scale-screen>
</template>
<script>
import ScaleScreen from 'scale-screen'
export default {
  name:'Demo',
  components:{
    VScaleScreen
  }
}
</script>
```
### API
| å±žæ€§         | è¯´æ˜Ž                                                         | ç±»åž‹                             | é»˜è®¤å€¼ |
| ------------ | ------------------------------------------------------------ | -------------------------------- | ------ |
| selfAdaption | æ˜¯å¦è¿›è¡Œè‡ªé€‚应                                               | Boolean                          | true   |
| width        | å¤§å±å®½åº¦                                                     | `Number` or `String`             | 1920   |
| height       | å¤§å±é«˜åº¦                                                     | `Number` or `String`             | 1080   |
| autoScale    | è‡ªé€‚应配置,配置为boolean类型时,为启动或者关闭自适应,配置为对象时,若x为true,x轴产生边距,y为true时,y轴产生边距,启用fullScreen时此配置失效 | Boolean or {x:boolean,y:boolean} | true   |
| delay        | çª—口变化防抖延迟时间                                         | Number                           | 500    |
| fullScreen   | å…¨å±è‡ªé€‚应,启用此配置项时会存在拉伸效果,同时autoScale失效,非必要情况下不建议开启 | Boolean                          | false  |
| boxStyle     | ä¿®æ”¹å®¹å™¨æ ·å¼ï¼Œå¦‚居中展示时侧边背景色,符合Vue双向绑定style标准格式 | Object                           | null   |
| wrapperStyle | ä¿®æ”¹è‡ªé€‚应区域样式,符合Vue双向绑定style标准格式             | Object                           | null   |
## å…¬ç”¨ç»„ä»¶
封装了除面条外个别用到的组件
### 5.1 message消息提示
因为刚开始没想着用第三方提示库,自己简单封装了一个。
注:组件内部目前只有warning,类型,如果需要其他类型自己组件内添加。
因在main.js注册全局可以直接使用,不需要引入
```js
  this.$Message({
      text: res.msg,
      type: 'warning'
  })
//也可以这样
this.$Message.warning(res.msg)
```
| å‚æ•° |   æè¿°   | é»˜è®¤å€¼  |  ç±»åž‹  | å¯é€‰å€¼  |
| :--: | :------: | :-----: | :----: | :-----: |
| text | æç¤ºæ–‡å­— |    -    | string |    -    |
| type | å¼¹çª—类型 | warning | string | warning |
### 5.2 å¤–边框
因为我的项目外边框几乎一样,还有title,所以封装了此组件。
根据自己需求更改,更换外边框(src\components\item-wrap\item-wrap.vue)下更换。
```vue
<ItemWrap
    title="我是title"
    >
       <div>我是谁?</div>
</ItemWrap>
```
| å‚æ•°  | æè¿° | é»˜è®¤å€¼ |  ç±»åž‹  | å¯é€‰å€¼ |
| :---: | :--: | :----: | :----: | :----: |
| title | æ ‡å¤´ |   -    | string |   -    |
## ä¸­é—´åœ°å›¾
### å—海显隐控制
 æ ¹æ®éœ€æ±‚来,**修改此值请刷新页面**
```indexs/center-map.vue``` æ–‡ä»¶ä¸­```isSouthChinaSea```变量 é»˜è®¤ä¸æ˜¾ç¤ºå—æµ·(false),为```true```的时候显示南海
```
isSouthChinaSea:false,//默认不显示南海,改为true可显示南海
```
## å…¨å±€å‚æ•°
### filter
监测数据项统一过滤,保留两位小数。
```vue
{{10.23123|montionFilter }}
```
##  å¤§å±äº¤æµåé¦ˆï¼ˆé¢æ¡çš„群)
### å¤§å±QQ群
QQ群号:713105837
### å¤§å±äºŒç»´ç 
 **QQ交流群: 713105837 å¼€æºé¡¹ç›®Vue/Vue3/React-big-screen交流群**
QQ群二维码:
![输入图片说明](https://gitee.com/MTrun/big-screen-vue-datav/raw/master/public/image.png)
![输入图片说明](public/image.png)
## ä¸€ã€é¡¹ç›®æè¿°
- ä¸€ä¸ªåŸºäºŽ Vue、Datav、Echart æ¡†æž¶çš„ " **数据大屏项目** ",通过 Vue ç»„件实现数据动态刷新渲染,内部图表可实现自由替换。部分图表使用 DataV è‡ªå¸¦ç»„件,可进行更改,详情请点击下方 DataV æ–‡æ¡£ã€‚
- [**Vue3 ç‰ˆæœ¬è¯·ç‚¹å‡»è¿™é‡ŒæŸ¥çœ‹ï¼Œä½¿ç”¨ Hooks+TypeScript å®žçŽ°ï¼Œå…¨æ–°å†…å®¹ç­‰ä½ æŽ¢ç´¢!**](https://gitee.com/MTrun/vue-big-screen-plugin)
- [**React ç‰ˆæœ¬è¯·ç‚¹å‡»è¿™é‡ŒæŸ¥çœ‹ï¼Œå…¨æ–°ç•Œé¢è¶…级好看!!!**](https://gitee.com/MTrun/react-big-screen)
- é¡¹ç›®éœ€è¦å…¨å±å±•示(按 F11)。
- é¡¹ç›®éƒ¨åˆ†åŒºåŸŸä½¿ç”¨äº†å…¨å±€æ³¨å†Œæ–¹å¼ï¼Œå¢žåŠ äº†æ‰“åŒ…ä½“ç§¯ï¼Œåœ¨å®žé™…è¿ç”¨ä¸­è¯·ä½¿ç”¨ **按需引入**。
- æ‹‰å–项目之后,建议按照自己的功能区域重命名文件,现以简单的位置进行区分。
- é¡¹ç›®çŽ¯å¢ƒï¼šVue-cli-3.0、DataV-2.7.3、Echarts-4.6.0(如果5.x版本有问题,请切换到4.x版本)、Webpack-4.0、Npm-6.13、Node-v12.16。
- è¯·æ‹‰å– master åˆ†æ”¯çš„代码,其余分支是开发分支。
- éœ€è¦å…¶å®ƒåœ°å›¾æ•°æ®çš„,请查看我的其它项目(有一个地图合集)
友情链接:
1.  [Vue å®˜æ–¹æ–‡æ¡£](https://cn.vuejs.org/v2/guide/instance.html)
2.  [DataV å®˜æ–¹æ–‡æ¡£](http://datav.jiaminghi.com/guide/)
3.  [echarts å®žä¾‹](https://echarts.apache.org/examples/zh/index.html),[echarts API æ–‡æ¡£](https://echarts.apache.org/zh/api.html#echarts)
4.  [项目 gitee åœ°å€ï¼ˆå›½å†…速度快)](https://gitee.com/MTrun/big-screen-vue-datav)
项目展示
![项目展示](https://images.gitee.com/uploads/images/2020/1208/183608_b893a510_4964818.gif "20201208_221020.gif")
## äºŒã€ä¸»è¦æ–‡ä»¶ä»‹ç»
| æ–‡ä»¶                | ä½œç”¨/功能                                                              |
| ------------------- | --------------------------------------------------------------------- |
| main.js             | ä¸»ç›®å½•文件,引入 Echart/DataV ç­‰æ–‡ä»¶                                    |
| utils               | å·¥å…·å‡½æ•°ä¸Ž mixins å‡½æ•°ç­‰                                                |
| views/ index.vue    | é¡¹ç›®ä¸»ç»“æž„                                                             |
| views/其余文件       | ç•Œé¢å„个区域组件(按照位置来命名)                                       |
| assets              | é™æ€èµ„源目录,放置 logo ä¸ŽèƒŒæ™¯å›¾ç‰‡                                       |
| assets / style.scss | é€šç”¨ CSS æ–‡ä»¶ï¼Œå…¨å±€é¡¹ç›®å¿«æ·æ ·å¼è°ƒèŠ‚                                      |
| assets / index.scss | Index ç•Œé¢çš„ CSS æ–‡ä»¶                                                  |
| components/echart   | æ‰€æœ‰ echart å›¾è¡¨ï¼ˆæŒ‰ç…§ä½ç½®æ¥å‘½åï¼‰                                      |
| common/...          | å…¨å±€å°è£…çš„ ECharts å’Œ flexible æ’件代码(适配屏幕尺寸,可定制化修改)     |
## ä¸‰ã€ä½¿ç”¨ä»‹ç»
### å¯åŠ¨é¡¹ç›®
需要提前安装好 `nodejs` ä¸Ž `yarn`,下载项目后在项目主目录下运行 `yarn` æ‹‰å–依赖包。安装完依赖包之后然后使用 `vue-cli` æˆ–者直接使用命令`npm run serve`,就可以启动项目,启动项目后需要手动全屏(按 F11)。如果编译项目的时候提示没有 DataV æ¡†æž¶çš„依赖,输入 `npm install @jiaminghi/data-view` æˆ–者 `yarn add @jiaminghi/data-view` è¿›è¡Œæ‰‹åŠ¨å®‰è£…ã€‚
### å°è£…组件渲染图表
所有的 ECharts å›¾è¡¨éƒ½æ˜¯åŸºäºŽ `common/echart/index.vue` å°è£…组件创建的,已经对数据和屏幕改动进行了监听,能够动态渲染图表数据和大小。在监听窗口小大的模块,使用了防抖函数来控制更新频率,节约浏览器性能。
项目配置了默认的 ECharts å›¾è¡¨æ ·å¼ï¼Œæ–‡ä»¶åœ°å€ï¼š`common/echart/theme.json`。
封装的渲染图表组件支持传入以下参数,可根据业务需求自行添加/删除。
参数名称              | ç±»åž‹      | ä½œç”¨/功能                      |
| -------------------| --------- | ------------------------------|
| id                 | String    | å”¯ä¸€ id,渲染图表的节点(非必填,使用了 $el)|
| className          | String    | class样式名称(非必填)                 |
| options            | Object    | ECharts é…ç½®ï¼ˆå¿…填)                   |
| height             | String    | å›¾è¡¨é«˜åº¦ï¼ˆå»ºè®®å¡«ï¼‰                    |
| width              | String    | å›¾è¡¨å®½åº¦ï¼ˆå»ºè®®å¡«ï¼‰                    |
### åŠ¨æ€æ¸²æŸ“å›¾è¡¨
动态渲染图表案例为 `components` ç›®å½•下各个图表组件,index æ–‡ä»¶è´Ÿè´£æ•°æ®èŽ·å–å’Œå¤„ç†ï¼Œchart æ–‡ä»¶è´Ÿè´£ç›‘听和数据渲染。
chart æ–‡ä»¶çš„主要逻辑为:
```html
<template>
  <div>
    <Echart :options="options" id="id" height="height" width="width" ></Echart>
  </div>
</template>
<script>
  // å¼•入封装组件
import Echart from '@/common/echart'
export default {
  // å®šä¹‰é…ç½®æ•°æ®
  data(){ return { options: {}}},
  // å£°æ˜Žç»„ä»¶
  components: { Echart},
  // æŽ¥æ”¶æ•°æ®
  props: {
    cdata: {
      type: Object,
      default: () => ({})
    },
  },
  // è¿›è¡Œç›‘听,也可以使用 computed è®¡ç®—属性实现此功能
  watch: {
    cdata: {
      handler (newData) {
        this.options ={
          // è¿™é‡Œç¼–写 ECharts é…ç½®
        }
      },
      // ç«‹å³ç›‘听
      immediate: true,
      // æ·±åº¦ç›‘听
      deep: true
    }
  }
};
</script>
```
### å¤ç”¨å›¾è¡¨ç»„ä»¶
复用图表组件案例为中间部分的 `任务通过率与任务达标率` æ¨¡å—,两个图表类似,区别在于颜色和主要渲染数据。只需要传入对应的唯一 id å’Œæ ·å¼ï¼Œç„¶åŽåœ¨å¤ç”¨çš„组件 `components/echart/center/centerChartRate` é‡Œè¿›è¡ŒæŽ¥æ”¶å¹¶åœ¨å¯¹åº”位置赋值即可。
如:在调用处 `views/center.vue` é‡ŒåŽ»å®šä¹‰å¥½æ•°æ®å¹¶ä¼ å…¥ç»„ä»¶
```js
//组件调用
<span>今日任务通过率</span>
<centerChart :id="rate[0].id" :tips="rate[0].tips" :colorObj="rate[0].colorData" />
<span>今日任务达标率</span>
<centerChart :id="rate[1].id" :tips="rate[1].tips" :colorObj="rate[1].colorData" />
...
import centerChart from "@/components/echart/center/centerChartRate";
data() {
  return {
    rate: [
      {
        id: "centerRate1",
        tips: 60,
        ...
      },
      {
        id: "centerRate2",
        tips: 40,
        colorData: {
          ...
        }
      }
    ]
  }
}
```
### æ›´æ¢è¾¹æ¡†
边框是使用了 DataV è‡ªå¸¦çš„组件,只需要去 views ç›®å½•下去寻找对应的位置去查找并替换就可以,具体的种类请去 DavaV å®˜ç½‘查看
如:
```html
<dv-border-box-1></dv-border-box-1>
<dv-border-box-2></dv-border-box-2>
<dv-border-box-3></dv-border-box-3>
```
### æ›´æ¢å›¾è¡¨
直接进入 `components/echart` ä¸‹çš„æ–‡ä»¶ä¿®æ”¹æˆä½ è¦çš„ echarts æ¨¡æ ·ï¼Œå¯ä»¥åŽ»[echarts å®˜æ–¹ç¤¾åŒº](https://gallery.echartsjs.com/explore.html#sort=rank~timeframe=all~author=all)里面查看案例。
### Mixins è§£å†³è‡ªé€‚应适配功能
使用 mixins æ³¨å…¥è§£å†³äº†ç•Œé¢å¤§å°å˜åŠ¨å›¾è¡¨è‡ªé€‚åº”é€‚é…çš„åŠŸèƒ½ï¼Œå‡½æ•°åœ¨ `utils/resizeMixins.js` ä¸­ï¼Œåº”用在 `common/echart/index.vue` çš„封装渲染组件,主要是对 `this.chart` è¿›è¡Œäº†åŠŸèƒ½æ³¨å…¥ã€‚
### å±å¹•适配
1.5 ç‰ˆæœ¬é¡¹ç›®æ”¾å¼ƒäº† flexible æ’件方案,将 rem æ”¹å›žpx,使用更流程通用的 `css3:scale` ç¼©æ”¾æ–¹æ¡ˆï¼Œé€šè¿‡ `ref` æŒ‡å‘ `views/index`,屏幕改变时缩放内容。项目的基准尺寸是 `1920px*1080px`,所以支持同比例屏幕 100% å¡«å……,如果非同比例则会自动计算比例居中填充,不足的部分则留白。实现代码在 `src/utils/userDraw` ï¼Œå¦‚果有其它的适配方案,欢迎交流。
### è¯·æ±‚数据
现在的项目未使用前后端数据请求,建议使用 axios è¿›è¡Œæ•°æ®è¯·æ±‚,在 main.js ä½ç½®è¿›è¡Œå…¨å±€é…ç½®ã€‚
- axios çš„ main.js é…ç½®å‚考范例(因人而异)
```js
import axios from 'axios';
//把方法放到vue的原型上,这样就可以全局使用了
Vue.prototype.$http = axios.create({
  //设置20秒超时时间
  timeout: 20000,
  baseURL: 'http://172.0.0.1:80080', //这里写后端地址
});
```
## å››ã€æ›´æ–°æƒ…况
1. å¢žåŠ äº† Echart ç»„件复用的功能,如:中间任务达标率的两个百分比图使用的是同一个组件。
2. ä¿®å¤äº†å¤´éƒ¨å³ä¾§çš„图案条不对称的问题。
3. ä½¿ç”¨ Mixins æ³¨å…¥å›¾è¡¨å“åº”式代码(scale方案之后无需使用)。
4. vue-awesome æ”¹æˆæŒ‰éœ€å¼•入的方式。
5. å°è£…渲染函数,抽离了数据使逻辑更加清晰。
6. æ–°å¢žåœ°å›¾ç»„件,并添加自动轮播功能
7. å°†é€‚配方案从 rem æ”¹æˆ scale
## äº”、其余
这个项目是个人的作品,难免会有问题和 BUG,如果有问题请进行评论,我也会尽力去更新,自己也在前端学习的路上,欢迎交流,非常感谢!
ÏîÄ¿´úÂë/BigScreen/babel.config.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ]
}
ÏîÄ¿´úÂë/BigScreen/jsconfig.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/package-lock.json
ÎļþÌ«´ó
ÏîÄ¿´úÂë/BigScreen/package.json
@@ -1,45 +1,65 @@
{
  "name": "web",
  "version": "0.1.0",
  "name": "big-screen-vue-datav",
  "version": "1.5.1",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve --mode dev",
    "start": "vue-cli-service serve --mode dev ",
    "build": "vue-cli-service build --mode production",
    "report": "vue-cli-service build --report",
    "build:test": "vue-cli-service build --mode test"
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "@jiaminghi/data-view": "^2.10.0",
    "async-validator": "^4.2.5",
    "axios": "^0.24.0",
    "echarts": "^5.4.0",
    "ejs": "^3.1.8",
    "element-ui": "^2.15.10",
    "follow-redirects": "^1.15.2",
    "glob-parent": "^6.0.2",
    "node-forge": "^1.3.1",
    "sass": "^1.55.0",
    "uglify-js": "^3.17.4",
    "vue": "^2.7.13",
    "vue-easytable": "^2.21.5",
    "vue-router": "^3.6.5",
    "vue-seamless-scroll": "^1.1.23",
    "vuex": "^3.4.0"
    "@types/echarts": "^4.4.3",
    "@vue/cli-plugin-babel": "^5.0.4",
    "@vue/cli-plugin-eslint": "^5.0.4",
    "@vue/composition-api": "^1.4.9",
    "@vue/shared": "^3.2.33",
    "axios": "^0.26.1",
    "babel-loader": "^8.2.5",
    "cache-loader": "^4.1.0",
    "core-js": "^3.6.4",
    "echarts": "^4.6.0",
    "element-plus": "^2.1.10",
    "element-ui": "^2.15.8",
    "vue": "^2.6.11",
    "vue-awesome": "^4.0.2",
    "vue-axios": "^3.4.1",
    "vue-loader": "^17.0.0",
    "vue-resource": "^1.5.3",
    "vue-router": "^3.1.5",
    "vuex": "^3.1.2",
    "yarn": "^1.22.18"
  },
  "devDependencies": {
    "@vue/cli-plugin-router": "^4.5.19",
    "@vue/cli-plugin-vuex": "^4.5.19",
    "@vue/cli-service": "^4.5.19",
    "babel-plugin-component": "^1.1.1",
    "mockjs": "^1.1.0",
    "@vue/cli-plugin-babel": "^4.2.0",
    "@vue/cli-plugin-eslint": "^4.2.0",
    "@vue/cli-service": "^4.2.0",
    "babel-eslint": "^10.0.3",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.1.2",
    "sass": "^1.25.0",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": "^2.7.13",
    "webpack-dev-server": "^4.15.1"
    "vue-template-compiler": "^2.6.11"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    },
    "rules": {
      "vue/no-unused-components": "off",
      "no-unused-vars": "off"
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
    "last 2 versions"
  ]
}
ÏîÄ¿´úÂë/BigScreen/public/favicon.ico

ÏîÄ¿´úÂë/BigScreen/public/image.png
ÏîÄ¿´úÂë/BigScreen/public/index.html
@@ -1,38 +1,18 @@
<!DOCTYPE html>
<html lang="">
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
    <meta name="viewport" content="width=device-width,user-scalable=yes, initial-scale=0.4, maxmum-scale=1.0, minimum-scale=0.4">
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  <link href="./style.css" rel="stylesheet">
  <title>
    å¤§å±
  </title>
    <title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
        Please enable it to continue.</strong>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
  </noscript>
  <div id="app">
    <div class="container_nomount">
      <div class="loading">
        <span></span>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
      </div>
      <h2>Loading...</h2>
    </div>
  </div>
    <div id="app"></div>
  <!-- built files will be auto injected -->
</body>
</html>
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/110000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/120000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/130000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/140000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/150000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/210000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/220000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/230000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/310000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/320000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/330000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/340000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/350000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/360000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/370000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/410000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/420000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/430000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/440000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/450000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/460000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/500000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/510000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/520000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/530000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/540000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/610000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/620000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/630000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/640000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/650000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/710000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/810000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/820000.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/china.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/map-geojson/chinaNanhai.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/public/style.css
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/App.vue
@@ -1,10 +1,3 @@
<!--
 * @Author: daidai
 * @Date: 2022-01-12 14:06:47
 * @LastEditors: daidai
 * @LastEditTime: 2022-03-01 17:55:49
 * @FilePath: \web-pc\src\pages\big-screen\App.vue
-->
<template>
  <div id="app">
    <router-view/>
@@ -15,7 +8,7 @@
#app {
  width: 100vw;
  height: 100vh;
  background-color: #03050C;
  // overflow: hidden;
  background-color: #020308;
  overflow: hidden;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/api/ajax.js
@@ -1,10 +1,8 @@
// è¿™ä¸ªæ—¶axios的配置
import axios from 'axios';
// import { config } from 'vue/types/umd';
axios.defaults.withCredentials=true;
axios.defaults.crossDomain=true;
axios.defaults.baseURL = 'http://10.30.4.92:7081';//'http://192.168.2.51:8099'; //'http://localhost:8099'; //'http://192.168.2.51:8099';//
axios.defaults.headers.post["Content-Type"]="application/json;charset=utf-8";
axios.defaults.baseURL = 'http://192.168.2.155:8099'; //'http://192.168.2.155:8099';
// é”™è¯¯ä¿¡æ¯å¤„理
const  errorHandle = (status, other) => {
  switch (status) {
@@ -32,7 +30,6 @@
  // console.log(config);
  if(localStorage.elementToken){
    config.headers.Authorization=localStorage.elementToken;
    config.headers.con;
  }
  // console.log(config);
  return config;
@@ -47,7 +44,7 @@
  // console.log();
  // console.log(response.data.token);
  // response.headers['Authorization'] = response.data.token;
  return response.status=== 200 ? response.data: response.data;
  return response.status=== 200 ? Promise.resolve(response): Promise.reject(response);
}, function (error) {
  // å¯¹å“åº”错误做点什么
  const {response}=error;
@@ -55,7 +52,7 @@
    errorHandle(response.status,response.data.message)
    return Promise.reject(response.data);
  }else{
    console.log('断了');
  }
});
export default axios;
ÏîÄ¿´úÂë/BigScreen/src/api/api.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/api/http.js
@@ -1,33 +1 @@
import axios from './ajax';
//成品执行任务统计
export function  Floorfault (data) {
    return axios.post('/api/Large/ProMonthTaskStatistics', data)//返回的时promies对象,所以直接return出去就好了
}
//成品货位统计
export function  ProLocationStatistics (data) {
    return axios.post('/api/Large/ProLocationStatistics?id=7', data)//返回的时promies对象,所以直接return出去就好了
}
//成品入库产量统计
export function  Productions (data) {
    return axios.post('/api/Large/Productions', data)//返回的时promies对象,所以直接return出去就好了
}
//成品出库产量统计
export function  ProductionsOut (data) {
    return axios.post('/api/Large/ProductionsOut', data)//返回的时promies对象,所以直接return出去就好了
}
//成品排行
export function  ProductionRanking (data) {
    return axios.post('/api/Large/ProductionRanking', data)//返回的时promies对象,所以直接return出去就好了
}
//成品库存
export function  ProductionStock (data) {
    return axios.post('/api/Large/ProductionStock', data)//返回的时promies对象,所以直接return出去就好了
}
//成品产品库存总数统计
export function  GetCPLargeStockCount (data) {
    return axios.post('/api/Large/GetCPLargeStockCount', data)//返回的时promies对象,所以直接return出去就好了
}
//成品近七天任务统计
export function  GetProWeekTasks (data) {
    return axios.post('/api/Large/GetProWeekTasks', data)//返回的时promies对象,所以直接return出去就好了
}
ÏîÄ¿´úÂë/BigScreen/src/api/index.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/api/modules/index.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/FZ.png
ÏîÄ¿´úÂë/BigScreen/src/assets/JX.png
ÏîÄ¿´úÂë/BigScreen/src/assets/LB.png
ÏîÄ¿´úÂë/BigScreen/src/assets/SC.jpg
ÏîÄ¿´úÂë/BigScreen/src/assets/benterblue.png
ÏîÄ¿´úÂë/BigScreen/src/assets/bg5.jpg
ÏîÄ¿´úÂë/BigScreen/src/assets/blue.png
ÏîÄ¿´úÂë/BigScreen/src/assets/cnmc_logo.png
ÏîÄ¿´úÂë/BigScreen/src/assets/css/index.scss
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/css/modules/reset.scss
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/css/public.scss
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/css/theme/fonts/element-icons.ttf
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/css/theme/fonts/element-icons.woff
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/css/theme/index.css
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/css/variable.scss
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/css/webfont/index.css
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/head_bg1.png
ÏîÄ¿´úÂë/BigScreen/src/assets/iconfont/iconfont.css
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/assets/iconfont/iconfont.ttf
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/iconfont/iconfont.woff
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/iconfont/iconfont.woff2
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/3DScreen.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/center_map.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/frame.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/guang.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/headers/juxing1.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/headers/juxing2.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/left_top_hong.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/left_top_huang.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/left_top_lan.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/left_top_lv.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/titles/you.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/titles/zuo.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/top.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/xieyou.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/xiezuo.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/img/zuo_xuxian.png
Binary files differ
ÏîÄ¿´úÂë/BigScreen/src/assets/logo.png
ÏîÄ¿´úÂë/BigScreen/src/assets/pageBg.png

ÏîÄ¿´úÂë/BigScreen/src/assets/red0.png
ÏîÄ¿´úÂë/BigScreen/src/assets/red1.png
ÏîÄ¿´úÂë/BigScreen/src/assets/scss/_variables.scss
ÎļþÃû´Ó ÏîÄ¿´úÂë/BigScreen/src/assets/css/modules/variables.scss ÐÞ¸Ä
@@ -43,7 +43,7 @@
}
//flex
.flex {
.d-flex {
  display: flex;
}
.flex-column {
ÏîÄ¿´úÂë/BigScreen/src/assets/scss/index.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,138 @@
#index {
  color: #000000;
  width: 1920px;
  height: 1080px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transform-origin: left top;
  overflow: hidden;
  .bg {
    width: 100%;
    height: 100%;
    padding: 25px 16px 0 16px;
    // background-image: url("../assets/bg5.jpg");
    // url("../assets/bg5.jpg");
    background-size: cover;
    background-position: center center;
  }
  .host-body {
    .dv-dec-10,
    .dv-dec-10-s {
      width: 133.3%;
      height: 5px;
    }
    .dv-dec-10-s {
      transform: rotateY(180deg);
    }
    .dv-dec-8 {
      width: 200px;
      height: 50px;
    }
    .title {
      position: relative;
      width: 500px;
      text-align: center;
      background-size: cover;
      background-repeat: no-repeat;
      .title-text {
        font-size: 25px;
        position: absolute;
        left: 30%;
        transform: translate(-50%);
      }
      .dv-dec-6 {
        position: absolute;
        bottom: -30px;
        left: 30%;
        width: 250px;
        height: 8px;
        transform: translate(-50%);
      }
    }
    // ç¬¬äºŒè¡Œ
    .aside-width {
      width: 40%;
    }
    .react-r-s,
    .react-l-s {
      background-color: #000000;
    }
    // å¹³è¡Œå››è¾¹å½¢
    .react-right {
      &.react-l-s {
        text-align: right;
        width: 500px;
      }
      font-size: 18px;
      width: 300px;
      line-height: 30px;
      text-align: center;
      transform: skewX(-45deg);
      .react-after {
        position: absolute;
        right: -25px;
        top: 0;
        height: 50px;
        width: 50px;
        background-color: #0f1325;
        transform: skewX(45deg);
      }
      .text {
        padding-left: 80px;
        display: inline-block;
        transform: skewX(45deg);
      }
    }
    .react-left {
      &.react-l-s {
        width: 500px;
        text-align: left;
      }
      font-size: 18px;
      width: 300px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      transform: skewX(45deg);
      background-color: #0f1325;
      .react-before {
        position: absolute;
        left: -25px;
        top: 0;
        height: 50px;
        width: 50px;
        background-color: #0f1325;
        transform: skewX(-45deg);
      }
      .text {
        display: inline-block;
        transform: skewX(-45deg);
      }
    }
    .body-box {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 20px;
      padding: 0 20px;
      //下方区域的布局
      .content-box {
        width: 100%;
      }
    }
  }
}
ÏîÄ¿´úÂë/BigScreen/src/assets/scss/style.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,185 @@
@import "./variables";
//  å…¨å±€æ ·å¼
* {
  margin: 0;
  padding: 0;
  list-style-type: none;
  outline: none;
  box-sizing: border-box;
}
html {
  margin: 0;
  padding: 0;
}
body {
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.2em;
  background-color: #f1f1f1;
  margin: 0;
  padding: 0;
}
a {
  color: #343440;
  text-decoration: none;
}
.clearfix {
  &::after {
    content: "";
    display: table;
    height: 0;
    line-height: 0;
    visibility: hidden;
    clear: both;
  }
}
//浮动
.float-r {
  float: right;
}
//浮动
.float-l {
  float: left;
}
// å­—体加粗
.fw-b {
  font-weight: bold;
}
//文章一行显示,多余省略号显示
.title-item {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bg-color-black {
  background-color: rgba(19, 25, 47, 0.6);
}
.bg-color-blue {
  background-color: #1a5cd7;
}
.colorBlack {
  color: #272727 !important;
  &:hover {
    color: #272727 !important;
  }
}
.colorGrass {
  color: #33cea0;
  &:hover {
    color: #33cea0 !important;
  }
}
.colorRed {
  color: #ff5722;
  &:hover {
    color: #ff5722 !important;
  }
}
.colorText {
  color: #d3d6dd !important;
  &:hover {
    color: #d3d6dd !important;
  }
}
.colorBlue {
  color: #257dff !important;
  &:hover {
    color: #257dff !important;
  }
}
//颜色
@each $colorkey, $color in $colors {
  .text-#{$colorkey} {
    color: $color;
  }
  .bg-#{$colorkey} {
    background-color: $color;
  }
}
//对齐
@each $var in (left, center, right) {
  .text-#{$var} {
    text-align: $var !important;
  }
}
//flex
@each $key, $value in $flex-jc {
  .jc-#{$key} {
    justify-content: $value;
  }
}
@each $key, $value in $flex-ai {
  .ai-#{$key} {
    align-items: $value;
  }
}
//字体
@each $fontkey, $fontvalue in $font-sizes {
  .fs-#{$fontkey} {
    font-size: $fontvalue * $base-font-size;
  }
}
//.mt-1 => margin top
//spacing
@each $typekey, $type in $spacing-types {
  //.m-1
  @each $sizekey, $size in $spacing-sizes {
    .#{$typekey}-#{$sizekey} {
      #{$type}: $size * $spacing-base-size;
    }
  }
  //.mx-1
  @each $sizekey, $size in $spacing-sizes {
    .#{$typekey}x-#{$sizekey} {
      #{$type}-left: $size * $spacing-base-size;
      #{$type}-right: $size * $spacing-base-size;
    }
    .#{$typekey}y-#{$sizekey} {
      #{$type}-top: $size * $spacing-base-size;
      #{$type}-bottom: $size * $spacing-base-size;
    }
  }
  //.mt-1
  @each $directionkey, $direction in $spacing-directions {
    @each $sizekey, $size in $spacing-sizes {
      .#{$typekey}#{$directionkey}-#{$sizekey} {
        #{$type}-#{$direction}: $size * $spacing-base-size;
      }
    }
  }
  .#{$typekey} {
    #{$type}: 0;
  }
}
ÏîÄ¿´úÂë/BigScreen/src/assets/yellow.png
ÏîÄ¿´úÂë/BigScreen/src/common/echart/index.vue
ÎļþÃû´Ó ÏîÄ¿´úÂë/BigScreen/src/components/echart/index.vue ÐÞ¸Ä
@@ -1,16 +1,11 @@
<!--
 * @Author: daidai
 * @Date: 2022-02-28 16:29:08
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-27 15:05:45
 * @FilePath: \web-pc\src\pages\big-screen\components\echart\index.vue
-->
<template>
  <div :id="id" :class="className" :style="{ height: height, width: width }" />
</template>
<script>
import * as echarts from 'echarts';
import tdTheme from './theme.json' // å¼•入默认主题
import '../map/fujian.js'
export default {
  name: 'echart',
  props: {
@@ -28,7 +23,7 @@
    },
    height: {
      type: String,
      default: '100%'
      default: '2.5rem'
    },
    options: {
      type: Object,
@@ -50,6 +45,7 @@
    }
  },
  mounted () {
    this.$echarts.registerTheme('tdTheme', tdTheme); // è¦†ç›–默认主题
    this.initChart();
  },
  beforeDestroy () {
@@ -59,7 +55,7 @@
  methods: {
    initChart () {
      // åˆå§‹åŒ–echart
      this.chart = echarts.init(this.$el)
      this.chart = this.$echarts.init(this.$el, 'tdTheme')
      this.chart.setOption(this.options, true)
    }
  }
ÏîÄ¿´úÂë/BigScreen/src/common/echart/theme.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,490 @@
{
  "color": [
    "#2d8cf0",
    "#19be6b",
    "#ff9900",
    "#E46CBB",
    "#9A66E4",
    "#ed3f14"
  ],
  "backgroundColor": "rgba(0,0,0,0)",
  "textStyle": {},
  "title": {
    "textStyle": {
      "color": "#516b91"
    },
    "subtextStyle": {
      "color": "#93b7e3"
    }
  },
  "line": {
    "itemStyle": {
      "normal": {
        "borderWidth": "2"
      }
    },
    "lineStyle": {
      "normal": {
        "width": "2"
      }
    },
    "symbolSize": "6",
    "symbol": "emptyCircle",
    "smooth": true
  },
  "radar": {
    "itemStyle": {
      "normal": {
        "borderWidth": "2"
      }
    },
    "lineStyle": {
      "normal": {
        "width": "2"
      }
    },
    "symbolSize": "6",
    "symbol": "emptyCircle",
    "smooth": true
  },
  "bar": {
    "itemStyle": {
      "normal": {
        "barBorderWidth": 0,
        "barBorderColor": "#ccc"
      },
      "emphasis": {
        "barBorderWidth": 0,
        "barBorderColor": "#ccc"
      }
    }
  },
  "pie": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "scatter": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "boxplot": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "parallel": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "sankey": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "funnel": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "gauge": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      },
      "emphasis": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    }
  },
  "candlestick": {
    "itemStyle": {
      "normal": {
        "color": "#edafda",
        "color0": "transparent",
        "borderColor": "#d680bc",
        "borderColor0": "#8fd3e8",
        "borderWidth": "2"
      }
    }
  },
  "graph": {
    "itemStyle": {
      "normal": {
        "borderWidth": 0,
        "borderColor": "#ccc"
      }
    },
    "lineStyle": {
      "normal": {
        "width": 1,
        "color": "#aaa"
      }
    },
    "symbolSize": "6",
    "symbol": "emptyCircle",
    "smooth": true,
    "color": [
      "#2d8cf0",
      "#19be6b",
      "#f5ae4a",
      "#9189d5",
      "#56cae2",
      "#cbb0e3"
    ],
    "label": {
      "normal": {
        "textStyle": {
          "color": "#eee"
        }
      }
    }
  },
  "map": {
    "itemStyle": {
      "normal": {
        "areaColor": "#f3f3f3",
        "borderColor": "#516b91",
        "borderWidth": 0.5
      },
      "emphasis": {
        "areaColor": "rgba(165,231,240,1)",
        "borderColor": "#516b91",
        "borderWidth": 1
      }
    },
    "label": {
      "normal": {
        "textStyle": {
          "color": "#000"
        }
      },
      "emphasis": {
        "textStyle": {
          "color": "rgb(81,107,145)"
        }
      }
    }
  },
  "geo": {
    "itemStyle": {
      "normal": {
        "areaColor": "#f3f3f3",
        "borderColor": "#516b91",
        "borderWidth": 0.5
      },
      "emphasis": {
        "areaColor": "rgba(165,231,240,1)",
        "borderColor": "#516b91",
        "borderWidth": 1
      }
    },
    "label": {
      "normal": {
        "textStyle": {
          "color": "#000"
        }
      },
      "emphasis": {
        "textStyle": {
          "color": "rgb(81,107,145)"
        }
      }
    }
  },
  "categoryAxis": {
    "axisLine": {
      "show": true,
      "lineStyle": {
        "color": "#cccccc"
      }
    },
    "axisTick": {
      "show": false,
      "lineStyle": {
        "color": "#333"
      }
    },
    "axisLabel": {
      "show": true,
      "textStyle": {
        "color": "#fff"
      }
    },
    "splitLine": {
      "show": false,
      "lineStyle": {
        "color": [
          "#eeeeee"
        ]
      }
    },
    "splitArea": {
      "show": false,
      "areaStyle": {
        "color": [
          "rgba(250,250,250,0.05)",
          "rgba(200,200,200,0.02)"
        ]
      }
    }
  },
  "valueAxis": {
    "axisLine": {
      "show": true,
      "lineStyle": {
        "color": "#cccccc"
      }
    },
    "axisTick": {
      "show": false,
      "lineStyle": {
        "color": "#333"
      }
    },
    "axisLabel": {
      "show": true,
      "textStyle": {
        "color": "#fff"
      }
    },
    "splitLine": {
      "show": false,
      "lineStyle": {
        "color": [
          "#eeeeee"
        ]
      }
    },
    "splitArea": {
      "show": false,
      "areaStyle": {
        "color": [
          "rgba(250,250,250,0.05)",
          "rgba(200,200,200,0.02)"
        ]
      }
    }
  },
  "logAxis": {
    "axisLine": {
      "show": true,
      "lineStyle": {
        "color": "#cccccc"
      }
    },
    "axisTick": {
      "show": false,
      "lineStyle": {
        "color": "#333"
      }
    },
    "axisLabel": {
      "show": true,
      "textStyle": {
        "color": "#999999"
      }
    },
    "splitLine": {
      "show": true,
      "lineStyle": {
        "color": [
          "#eeeeee"
        ]
      }
    },
    "splitArea": {
      "show": false,
      "areaStyle": {
        "color": [
          "rgba(250,250,250,0.05)",
          "rgba(200,200,200,0.02)"
        ]
      }
    }
  },
  "timeAxis": {
    "axisLine": {
      "show": true,
      "lineStyle": {
        "color": "#cccccc"
      }
    },
    "axisTick": {
      "show": false,
      "lineStyle": {
        "color": "#333"
      }
    },
    "axisLabel": {
      "show": true,
      "textStyle": {
        "color": "#999999"
      }
    },
    "splitLine": {
      "show": true,
      "lineStyle": {
        "color": [
          "#eeeeee"
        ]
      }
    },
    "splitArea": {
      "show": false,
      "areaStyle": {
        "color": [
          "rgba(250,250,250,0.05)",
          "rgba(200,200,200,0.02)"
        ]
      }
    }
  },
  "toolbox": {
    "iconStyle": {
      "normal": {
        "borderColor": "#999"
      },
      "emphasis": {
        "borderColor": "#666"
      }
    }
  },
  "legend": {
    "textStyle": {
      "color": "#fff"
    }
  },
  "tooltip": {
    "axisPointer": {
      "lineStyle": {
        "color": "#ccc",
        "width": 1
      },
      "crossStyle": {
        "color": "#ccc",
        "width": 1
      }
    }
  },
  "timeline": {
    "lineStyle": {
      "color": "#8fd3e8",
      "width": 1
    },
    "itemStyle": {
      "normal": {
        "color": "#8fd3e8",
        "borderWidth": 1
      },
      "emphasis": {
        "color": "#8fd3e8"
      }
    },
    "controlStyle": {
      "normal": {
        "color": "#8fd3e8",
        "borderColor": "#8fd3e8",
        "borderWidth": 0.5
      },
      "emphasis": {
        "color": "#8fd3e8",
        "borderColor": "#8fd3e8",
        "borderWidth": 0.5
      }
    },
    "checkpointStyle": {
      "color": "#8fd3e8",
      "borderColor": "rgba(138,124,168,0.37)"
    },
    "label": {
      "normal": {
        "textStyle": {
          "color": "#8fd3e8"
        }
      },
      "emphasis": {
        "textStyle": {
          "color": "#8fd3e8"
        }
      }
    }
  },
  "visualMap": {
    "color": [
      "#516b91",
      "#59c4e6",
      "#a5e7f0"
    ]
  },
  "dataZoom": {
    "backgroundColor": "rgba(0,0,0,0)",
    "dataBackgroundColor": "rgba(255,255,255,0.3)",
    "fillerColor": "rgba(167,183,204,0.4)",
    "handleColor": "#a7b7cc",
    "handleSize": "100%",
    "textStyle": {
      "color": "#333"
    }
  },
  "markPoint": {
    "label": {
      "normal": {
        "textStyle": {
          "color": "#eee"
        }
      },
      "emphasis": {
        "textStyle": {
          "color": "#eee"
        }
      }
    }
  }
}
ÏîÄ¿´úÂë/BigScreen/src/common/map/fujian.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/
(function (root, factory) {
  // eslint-disable-next-line
  if (typeof define === 'function' && define.amd) {
      // AMD. Register as an anonymous module.
      // eslint-disable-next-line
      define(['exports', 'echarts'], factory);
    } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
        // CommonJS
        factory(exports, require('echarts'));
    } else {
        // Browser globals
        factory({}, root.echarts);
    }
}(this, function (exports, echarts) {
    var log = function (msg) {
        if (typeof console !== 'undefined') {
            console && console.error && console.error(msg);
        }
    }
    if (!echarts) {
        log('ECharts is not Loaded');
        return;
    }
    if (!echarts.registerMap) {
        log('ECharts Map is not loaded')
        return;
    }
    echarts.registerMap('福建', {"type":"FeatureCollection","features":[{"id":"350100","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@K@KLDBLBBIHCAA"],["@@CBABCD@FJFCFBDHFFBB@FM@CCEBCCEMC"],["@@ACCBBDDA"],["@@@CC@@DD@"],["@@B@A@"],["@@MCKEO@ICCCAEAKBKAAIAC@AVFPCRBBFBNHNBVXJ@DADCHAB@@GBCL@B@BCCIEEBC@CHCACG@ABKPA@CC"],["@@@A@B"],["@@A@CDC@WH@FLXCB@DFDATBFH@HELA@CCACI@AFAD@BA@AH@DED@FDBHHHJDT@JC@AEOECGKC@EDOQIACBG@CC@CKC"],["@@B@BCE@BD"],["@@J@BA@AAAI@ABBD"],["@@B@@ACABD"],["@@B@@AA@@B"],["@@B@AC@@@D"],["@@BAA@@B"],["@@@A@B"],["@@BAA@ABB@"],["@@DA@CCB@D"],["@@MDFFAFBH@BCFCDBN@BHFDJJHFBDCDMCCE@AA@EHOD@HDDABC@ECCGDCEGAGACC@G@A"],["@@B@@AA@@B"],["@@B@@AA@@B"],["@@B@A@"],["@@B@A@"],["@@B@AC@B@B"],["@@BA@AAB@B"],["@@BA@CC@ABCCC@@BDDHB"],["@@BKCEEAEF@HBDHDDA"],["@@E@AFCBC@CCABACA@AACFB@@BADQAALDDAB@JBFADLADGAC@@PBHF@@DCAAAECEJCDDAFBDCDBLDBBA@AAADAAADA@ADBDACGDACADCAADEGKE@AA"],["@@ABBBAFEBQBEDQBABCJOLEHD^NF\\BLGFMH@FKD@LBPENB@A@CM@CAAE@CBA@CE@A@@ABA@EDAAKE@MEC@"],["@@@HCBEAEJAH@BDDL@DCFDNBB@@CFBDEEEGGG@A@BCEEEA"],["@@ABFLAB@DJDFNDDJ@BCDAFHBBFC@CGEBCKEA@BEIC@CCBADIIA@ACC@"],["@@FD@A@CAC@ACABFAD"],["@@C@@BDDD@@FBB@DAB@B@BB@BA@AF@@CFEIEIC"],["@@BDHBB@CGBGEADAACCCEACCC@@DE@@DHDBFHJ"],["@@@AA@BB"],["@@FFB@@CACC@AB"],["@@ABD@@BB@HACCABE@"],["@@BBJ@DBDAAEA@CAABC@ACCH"],["@@ABBBF@AACA"],["@@@DFJDBFFHDB@@ECCEGEACEE@"],["@@DHDBD@FADCCEFAFBB@HKBECCEDC@A@CF@@AGEECCCGABABABCAEBAABCAAA@GH@DDDAFF@BBADGBECABARA@CGCECBABBFAFJD@HBBD@JABCDC@EAI@AF@FBF@@F"],["@@CBD@BAA@"],["@@B@@AA@@B"],["@@DBBACAAB"],["@@DFDAACA@AEA@@F"],["@@DB@CC@ABB@"],["@@FNFAFFFACGA@ACC@EEE@@B"],["@@@DBBF@AECAAB"],["@@BDB@@CBAEEA@BH"],["@@BBD@@ACCDAE@@D@B"],["@@JB@@AAE@CA@BB@"],["@@BDDBBAAC@CC@ACA@BH"],["@@DD@CD@ACC@AD"],["@@FDH@GEEB"],["@@C@ADHBBF@@DAFBCEIE"],["@@BCAEBA@IECABBJEHID@FMFBBBBBFD@FFD@D@@HBBF@RADCBE@CGCEBAAGG@CBC"],["@@B@@BD@@CAAAA@BAD@@"],["@@BDAE@B"],["@@CFDDD@DAJ@D@BAACBACC@EAACBABKH"],["@@BB@AA@"],["@@DBBGAAA@CA@BDFAB"],["@@@BDFDBB@CGEA"],["@@@BB@@AA@"],["@@EDBDB@FA@EC@"],["@@CF@DADDFB@BA@CBBHBBABAD@ACAABEAAEAIB"],["@@@@@A@B"],["@@BBBA@ACB"],["@@DB@CA@AB"],["@@DDB@@ABACCABAB"],["@@ABBBD@@CD@@ACACD"],["@@BBDAAEE@BF"],["@@@BB@AA@@"],["@@JFB@CEG@"],["@@@DFBAEC@"],["@@@DD@ACA@"],["@@ABFB@CC@"],["@@B@B@AAAB"],["@@BDB@ACA@"],["@@B@@@A@"],["@@JHB@ACGCA@"],["@@DDHFBBDCFDD@JHDA@@KKCAACEBEGGCABBDCD"],["@@DFNJHBJOJEBACGIACCK@CACBCCC@CDADDP"],["@@ADBBHAAABCAAED"],["@@@BBA@AAB"],["@@HBBCAEGF@B"],["@@HHB@GIAB"],["@@P@@A@CECM@@DDF"],["@@IKGACD@FNLHJHB@EGM"],["@@A@CDG@CBC@EFIDBBAD@BDDFA@FDFD@BICKDAD@JNDBBJAB@BPH@BJJF@FDAHHDF@DAJDBDB@@GCA@CBCCMIKBCE@CA@GECE@IEE@@ABACGIEC@"],["@@BA@ACBBB"],["@@BCAAAAC@DHB@"],["@@DB@CBAE@@D"],["@@@@@@"],["@@FAB@BCAAE@CDBD"],["@@JNPJF@DABAAI@ADAVHZFFBHJJDF@DA@EEI@EFG@C@A@KAEECEAC@GBIJC@IGQA@BC@GEEBE@GCABADMJC@@BAHBD"],["@@DDBA@CCAAB@B"],["@@BAAB"],["@@DBBA@CC@AD"],["@@JFBCDA@AACIACD@D"],["@@@BDAC@"],["@@B@BAA@AB"],["@@BBDBAEAAA@@D"],["@@@DHBBMCG@AAAC@AFBN"],["@@BBBCA@AB"],["@@@BBB@CA@"],["@@@DD@AEC@BB"],["@@BBBAACC@BD"],["@@BBB@@C@AG@DD"],["@@@BB@@CAB"],["@@BBBCC@@B"],["@@BBB@ACAB"],["@@@B@A"],["@@B@@AAB"],["@@BDF@CECB"],["@@ABDBBCC@"],["@@ABDBDEA@CB"],["@@@BBBDAAAC@"],["@@D@AAAB"],["@@E@@FB@@ADA@A"],["@@@BF@DEC@ED"],["@@DDD@@ACAC@"],["@@B@B@AAAB"],["@@HHDAAACEE@@B"],["@@B@AA@B"],["@@BDB@BCCAAB"],["@@FBAAC@@@"],["@@B@AAA@BB"],["@@BBF@B@@EEACB@D"],["@@BDB@@EC@@B"],["@@CDBBDAAC"],["@@CD@F@BDAHA@CD@@E@AC@GD"],["@@FFB@@ACGA@AD"],["@@ADB@BCA@"],["@@@BF@AAC@"],["@@@DBCA@"],["@@@AAAADD@"],["@@DIF@ACCBCAC@@DCBALA@@DF@FG"],["@@BDD@CI@@AF"],["@@@@@@"],["@@@BB@@AA@"],["@@BHBBFA@AAABCCCBCAAA@ABC@@FBB"],["@@CB@BF@@AAA"],["@@ADBDB@FMC@CF"],["@@ADBBDEC@"],["@@@BBAA@"],["@@ADD@@CA@"],["@@AB@BBC@@"],["@@B@@AAB"],["@@@B@A"],["@@@BDAC@"],["@@@BBDFADB@CE@ACCA@D"],["@@J@BCCCG@@H"],["@@A@@DBC@@"],["@@@EAACFAAAFBBBCF@"],["@@EDADD@DABBD@@EEA"],["@@@BBFCBC@A@ERBBJ@FBF@EFE@@DDBN@HED@FBCFFBBDD@JC@CEEBCAANCBCB@@CKEEEOAGCADE@ME"],["@@@BBBF@@CAAEB"],["@@@BBBBECA@D"],["@@ABBBDCCA@B"],["@@GDDFHABAACCA"],["@@BDB@DA@CAAA@CD"],["@@DB@CAAAD"],["@@ABBBHACAC@"],["@@DHH@BA@EFBBA@ICCACCBE@@FEF@D"],["@@DFHDBAACCCCACB"],["@@@DFBD@@CAAGA@B"],["@@B@@AA@@B"],["@@@DF@ACDCAGA@@FCF"],["@@@DDBDCBAAAE@AB"],["@@@BDAC@"],["@@DBBAEAABB@"],["@@ABBBBAAA"],["@@DBB@AAC@"],["@@@BB@@CA@@B"],["@@B@AA@B"],["@@@@@@@@"],["@@ADDADDDB@GEEE@BF"],["@@ADFBFBDA@ACACECBAB"],["@@BFFGCAA@AD"],["@@AB@BDCA@"],["@@B@@CE@AD@@F@"],["@@CDM@@BDBAFFBBDBB@FFDRFLDAK@ICEHKACGACBABC@K@"],["@@DBDA@CEAAB@D"],["@@DDAEA@@B"],["@@CCA@DLB@DCBCE@"],["@@BBBCCAABBB"],["@@BBBAAAAB"],["@@@BDJDBDDDACEBCDAHCBAEACDQ@"],["@@@DDAAAA@"],["@@AB@BFCA@A@"],["@@@BB@AA"],["@@@AAB@@B@"],["@@DBCA"],["@@@BB@@CAB"],["@@ADD@@CA@"],["@@AB@DDCAA"],["@@AAABD@"],["@@f•f¯BGEOBGBCLKbqBEBOBCRORQBAIKAEBEVEZ@\\HjRXJ\\@FA@COeCEe_aUGEAOEEKAIAmDQEG@A@CRCDGFSDG@…]GGBILENADC@EAIEIYWIACBMLOPIFI@Ÿ_YCYAmGECGG@KDGRQBE@EAGUMAC@UAIEEoM]_YISKAM@MFILIFcFKBCNEPARM@ECEJYR@BWHMJyH]BEFAHBdNH@F@NERGLODMAiCUIaYOuCIGCSC{CMCICEEEGGWGeAeD{D‡HMBCH@DOAGCEQKEIEEMGCCEOCAAEEA@EJCBGFC@AQcQIUA‘JaA‰SAKMEKBGEAE@IHMDUAIBA`BNMFAJFF@^EFBHJJ@FCBGAQFM@GACQSACDKJ@REVBTCJDJDPNJBL@DAHMEQ@ATOFQHC@GAGHWBKCGKKAKDWFELKJM@E@EGG@GBADAJ@FDTVLDDABA@]BAlJHV@BEB@HHFBFVHFPDDTFREF@JDBD@DSHABDLCH@F@DH@@V@LKXELcPALIJAH@JJHH@BJLLBHXND@FAD@DBBPDHHFTJXFTLBH@@HAjZF@FAFG@KCEYa@C@GDOJMDAJA\\HLAD@HIFCH@PKPGFG@ECCECCIIK@ADCH@PMhKN@ZLH@DA@EE[GKYUKEGAI@CDGPGDIBiSGECCEUAWDODGBCXCDCDIDEBANDDBB@JCDIPHBDB@FEAKBIKS@KEEK@EBABCLCFAB[FGAECCEKCEBIAKIKCc[IAGACCEO@MHCN@FCLAFC@GMC@KEABCACE@EBCAAB@DA@GCE@SPCHAHGDCFSBIFKAKPKDW@C@@B@DVD@FAHEBAEM@CBEHGDCD@DNR@FG@CAC@IL@D{OAA@GCKCIYMG@CC@CHEPADAH@BBBHD@D@JILA@FAHBHF@F@FBFCDE@SDI@AEG@MEAIBGA@KAC@EJ[DC@MDA@AGEBEAAA@GHC@SMQCKE@CDAVBTHHHF@BA@CCMGIECEG_IWBABMBEAMIIAEBCHKN@HDBLBQXIV@LBFJLDRCFAPIDCH@LHJCDIFADDH@NCJGFMAEAEECEBEGUHIFADADE@IBAH@DBDEDKDI@AGEMECIAEACIEGBECAKEABG@CEEIAMEE@@JDF@D@HEBEBO@KAGIQEEQC@QHCD@JJP^XDD@HENQVGFGBCDBNJfCFGDE@GA]BCACIGOQSG[EACDBTCJON@DPJTT@HIFA@AHDVBFHHJ^AFGDMBI@OSAAEAiHEDATEFsVIFIDIAEIGUKsAODOJYJO@EBQAICCI@CECBCDGHO@IGG[IEIDM@OASBWTOJKVA`JZJRHFGDMEIBEF@TA@o]AIO@EAEJA@GACBADFJ@DELCD@DDBLANCD@LVBFENB@JCF@DDDBDDAHFP@FGNMT@PIJAPIGGCQOIGCCADAHIBIFICGBCBKRMDCRSTBBBBJBFGFCB@BHCPEB@EAAC@C@DN@DADEBIB@HBB@BBDGDALMFGFMR@HAH@JJTFPFJANFBHAJ@BBCFIBIJETBDNBDBBDCHADGAAHADEBI@@HIAAABAEC@BCB@A@AABBHHFPNJDJHLT@DABIDG@EBEBGHMGEHkDEAKGAACBCLA@CAEGGCKDCD@HEC@EgGMK_BSIACmAIGKDMAEEEIMCCCAGOGANDTDHBFCPEF@D@HDDF@DB@DADCBC@MG@GGGG@ICIOMMAKIACAQCGECBCGCCCEKGIIEAEEC@ABHL@FGBCCO@OGC@MDADEBG@QLEHADW@EBEGOI@AHABAMSUMWIICMBIDMNCBCA@CBEBGCGIGMAIMEEE@GBADL`@NCBUOI@EGCAKF@HA@CCIFAJSAMBED@BBBHFON]FO@EAI@ECACAOICEBIHIDAJABC@CA@EDMCAEDCA@CBOAGEAGAADELABGACA@MCGCAGPEBEAAC@CJIGEC@INUKIFOMCGDEEEGCYAEBCLKJGLGFC@IJKJALUPAJWFMJGJA@CBKEGBIFQRGV@LBBARCHIHCH@JG`EJSHGFKRMCEF@FVXDP@NDLD@LEHDLNF@HF@DEJIZABKFADBDJBCLDFN@BDCJV\\LNHC\\ULOFAFCBCI{BAJHP@FHBZCFAHAFC@AFBDJHHBPINALCP@JO@AACD@HB@BKPCJEBHHALBFNRDJAFG@AFDTHLAHDFKLBDDFDFEF@FEDJTBHCXGF@L@BH@ETBFJJBZIPAHAHBB\\CpBnHJ@XSRFONBHJHFNCBGCGBAFE^CBEFAN@LAFFHFLAFDD@FCBSGG@GFGNA`FL@LCFBD@LD@PGDBDDITDJDHBDCFBDABBB@BF@FDBB@DBB\\BTKFLIHKTEFPLFHDAhANINGLANJD@HCBDDLFHBDCDHB@F@NK`BHABHJVJDDCJH@D@@DD@BADCF@DBBD@DABKDBZDDNJFFHDHHR\\|AFABA@ENE\\EFB\\RHDDVDJBJEHQLE@EBCDGLIHDHEFGFQBEDAFDF@JJBELJPEDSH]PGFHNBFCRDJ@RBFHFD@HJRHBHAHIBBLCDEB@B@HDHVAFBD@DCHAT@FEFIEKBAJAPENEDG@]OK@CXSDEACC@@E@KFKJGJAL@XHbTJNBLPHDD@J@D\\HDDHDbJLAVBF@PSHEN@LHH\\ALEFOAEFAHDLPNDVFJLFRH`BFAJGF@DBBDFB@DEHBDFF@DOP@DDDFDD@LEHF@BCJBDJJ@DE@AD@HHBBDBNFBJED@@DANHD`CJ@DBNND@DADENIFEFE@EACIAKGEGAEDCRGL@PDB@DCDAJBBB@LDBD@@GDCAEFGACAAJADEBCFCAIFG@CDCHBFABB@DDBT@DAHGBBBHHBF@FCHBDAD@BFJJD@H@NFDDJNHDFJDBNEDENYHG@SDCNSFAD@ZHJJJZDFHAVIJGBCJCDDH†HRVXFBF@VA@GFABAAIE@CE@CB@HD@CFCBFFBB@DAHDFH@FJFJAFFAFED@B@DBBH@DC@LDAH@DCDAVDFFJP@NBFPBNAJCJADAH@JDAHYJABBBH@BB@DDBLANOFANBVDNFT@HADCF@FB@DFBTKLC@EXBDCJKAC@INQJCBILELQ@AKIPUDCN@^KBC@EECDCDAJDFANKRBHGF@HFF@NEFCDC@EFA@CB@NABAAE@ADAF@RFNHDAHBPEJ@FBBH@DDHF@FENF@DPpDDFBJ@NJVEH@FAXKJDTPDBGF@DDBLA\\DJATMJCDGTKBGJM"]],"encodeOffsets":[[[121678,27068]],[[122867,26893]],[[123104,26891]],[[123102,26881]],[[122918,26872]],[[122887,26845]],[[122899,26847]],[[122808,26762]],[[123295,26793]],[[122500,26759]],[[122597,26600]],[[122653,26290]],[[122432,26267]],[[122495,26224]],[[122330,26023]],[[122337,25968]],[[122386,25960]],[[122568,25912]],[[122491,25946]],[[122489,25944]],[[122479,25933]],[[122477,25932]],[[122575,25918]],[[122572,25914]],[[122600,25884]],[[122600,25866]],[[122778,26197]],[[122515,26757]],[[122816,26587]],[[122847,26569]],[[122779,27057]],[[122762,27045]],[[122794,27053]],[[122756,27019]],[[122755,26998]],[[122828,27009]],[[122848,27000]],[[122971,27014]],[[123107,26964]],[[123388,27005]],[[122776,26927]],[[122780,26924]],[[122774,26924]],[[122896,26865]],[[122900,26866]],[[122880,26870]],[[122857,26818]],[[122855,26792]],[[122703,26916]],[[122688,26897]],[[122685,26889]],[[122705,26880]],[[122597,26897]],[[122598,26867]],[[122549,26752]],[[122532,26772]],[[122538,26773]],[[122508,26742]],[[122877,26603]],[[122846,26566]],[[122564,26378]],[[122535,26397]],[[122528,26369]],[[122546,26375]],[[122686,26379]],[[122731,26321]],[[122734,26322]],[[122700,26282]],[[122700,26286]],[[122708,26284]],[[122643,26330]],[[122631,26281]],[[122600,26328]],[[122566,26286]],[[122561,26282]],[[122575,26281]],[[122577,26283]],[[122534,26303]],[[122539,26306]],[[122511,26289]],[[122521,26281]],[[122483,26327]],[[122477,26331]],[[122496,26319]],[[122487,26291]],[[122494,26291]],[[122458,26284]],[[122450,26243]],[[122414,26223]],[[122416,26230]],[[122478,26197]],[[122483,26194]],[[122473,26208]],[[122535,26263]],[[122567,26229]],[[122588,26246]],[[122671,26268]],[[122676,26263]],[[122686,26264]],[[122691,26237]],[[122726,26231]],[[122737,26209]],[[122786,26210]],[[122722,26189]],[[122715,26193]],[[122751,26184]],[[122716,26129]],[[122701,26140]],[[122691,26129]],[[122691,26122]],[[122699,26124]],[[122696,26122]],[[122542,26118]],[[122578,26154]],[[122582,26156]],[[122583,26146]],[[122580,26168]],[[122590,26165]],[[122580,26144]],[[122571,26142]],[[122568,26189]],[[122479,26187]],[[122495,26125]],[[122497,26125]],[[122499,26129]],[[122500,26143]],[[122545,26107]],[[122532,26091]],[[122519,26069]],[[122539,26058]],[[122556,26069]],[[122511,26041]],[[122587,26026]],[[122681,26067]],[[122677,26060]],[[122686,26053]],[[122695,26033]],[[122691,26034]],[[122693,26038]],[[122818,26043]],[[122753,26083]],[[122747,26086]],[[122725,26100]],[[122643,26003]],[[122650,26004]],[[122634,25999]],[[122631,26000]],[[122628,26000]],[[122620,26011]],[[122548,26022]],[[122539,26005]],[[122542,26007]],[[122602,25961]],[[122588,25985]],[[122578,25962]],[[122579,25943]],[[122579,25951]],[[122570,25955]],[[122565,25953]],[[122556,25945]],[[122648,25899]],[[122646,25905]],[[122632,25906]],[[122619,25901]],[[122600,25885]],[[122442,26033]],[[122436,26036]],[[122438,26056]],[[122438,25999]],[[122455,26007]],[[122420,25975]],[[122403,25968]],[[122376,25971]],[[122375,25972]],[[122375,25975]],[[122470,25938]],[[122346,25914]],[[122355,25916]],[[122358,25920]],[[122351,25932]],[[122342,25940]],[[122331,25960]],[[122336,25979]],[[122230,26022]],[[122230,26020]],[[122245,26043]],[[122256,26046]],[[122280,26060]],[[122299,26064]],[[122846,26708]],[[122684,26856]],[[122684,26858]],[[122686,26859]],[[122689,26858]],[[122586,25928]],[[122556,26196]],[[122676,27184]]]},"properties":{"cp":[119.206239,26.075302],"name":"福州市","childNum":197}},{"id":"350200","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@C@@DJ@@AEA"],["@@QDKHAHJPLBJIFCDCBE@GCCGA"],["@@BFF@@CCACA@B"],["@@JDFFJ@HCFDDABAAAC@AEMAC@GCGBCF"],["@@FDJC@AEBECAGA@AACB@BHDAF"],["@@FcAIO[•…MOMKQAcDUFaNIJKTMNAFCP@HHNFjTxBHJXJNHHXNfHJDNBFAFEJQFC^ClQNKFIDOB["],["@@iDoCEBSHKREDQBEDONKTCLHV@@CBABHHBHAJBBG`E@AFOHCHCBEAEBADCPEHKHCBO@GD@LBJBDGHAFDRFF@HEHEDMHMLMHADJFDJ@J@FALDBBBNCPDRADBTfJHNFLLJDDDDNDH@DAJLDDF@FCNK\\CNBLABMFCFIhARFLDTDHJDFBALHJDLBNAXALGNF@DBBF@FABAFDJAFFTIFCBSCG@EBWbMHQLBJBDFDH@H@DCJGFKBAXJTEHIHQHEDGDAHHF@ZLLDBBONAD@DLNL@RCDBBFCHOJSDGF@FDFHBZMHADDBPFBXGLBFADEAQDGLKHMFEHAFDHNH@DABE@SDMFAPTrXBAF@LTLHTLFBLEN@LB@FJDN@JADADEDAD@DDJCNBRUAAKAEM@EFGTKLCHGTGBIACEEBELODIDAFAH@FBDLHBF@DGFBDADCF@FBHHTDH@JERCFCHWFCHMLEHEHACGHEAEGIBCRMD@BFDDDBFCDE@KA@CBCBCACE@EFEESCCC@CDSAEE@EDCFUDANADCJMAG]iAEDCHGXM@EAGBC\\QA_OMHWCQEEIAEOCCEE@CDIDBFBJNB@BC@GCQLGLEBEBKBAJ@DW@]IUEGOGkG‰GsMkGl]ZgZOZIJKNICOGaOQMMUOGGIIOIKUO}AEQSGSEu"]],"encodeOffsets":[[[120993,25143]],[[120906,25022]],[[121027,25035]],[[121218,25145]],[[121249,25142]],[[121042,25093]],[[120883,25005]]]},"properties":{"cp":[118.11022,24.690474],"name":"厦门市","childNum":7}},{"id":"350300","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ABG@DFAFHDDH@B@BF@@CHBBCAAHCAGDC@CE@GBMC"],["@@@FAAGDBNDFD@@EBA@CBCB@DBDAGGA@CC"],["@@F@@ACAAD"],["@@EBMLCF@FHBLEDEDG@CAAAA"],["@@B@A@@@"],["@@BBB@ACAB"],["@@BDD@CCA@"],["@@BBB@ACAB"],["@@DBFAFCCCE@ED@D"],["@@KDADDBDADDHCBA@CGA"],["@@T@BA@AECC@KFG@@DB@FA"],["@@@BDFBCDDDABCACMB"],["@@@BBBF@BAJAACB@@ACCKAGDABBDDB"],["@@FD@BD@@GI@A@BB"],["@@@FBBH@BA@IF@@EBCC@CDAACDAAC@AFBD"],["@@AEEBCCEAADDJA@A@@FB@FAF@@BBBFGAC"],["@@FBDAAAC@C@@B"],["@@CD@BFBBHH@B@AC@AJ@CCBA@ACCA@CDIA"],["@@HDBCGAAB@@"],["@@FHADDBDIAGEACF"],["@@@BEBAFDBJLBAAGH@@CEEAMGB@DBD"],["@@OJ@FJAZK@AAEC@MF"],["@@ADBFFDHABEAAEIA@E@BDAB"],["@@BHFBBBD@BEACGCDC@AA@GF@B"],["@@ADCBBBD@BC@AAA"],["@@BAACABBD"],["@@@BBDAFDBDBBDPI@C@CGEIAGF"],["@@RDDAACCACEE@ACAHIFBBFA"],["@@YDI@SFETDJFFBFOR@D@HDDD@JEHADDBHDHDDD@JADB@HBJFHFBJEDEBIAECA@CBAFCFBBBABBDDBJAHCDEAQBSDIJER@BGDEbKL@BDDHDFDABEBAHBDED@FBFHHDPAFABC@CECA@AAFGEEEAIAIBEFCACEDQ@AMDCC@CNSCGDC@AICGAW@QGA@ABBHADCDGFODAB@FCD@DDFABKDG@GDIDGAGHSJ"],["@@FJFFFBH@LCJHnBBDTJ`ANLhH@FFD@GDCLCHDFHDBB@DKDABBLHNBdCFGNHHGFAFAH@JCBAAGIOIGICOMGEAEBC@DDA@AFDABBBJB@GJ@FABCBGHBBCDGACCAMAACFSJIJADEAAI@GBEABMEIEOIS@IBG@GNQHENEBKHCAC@AAA@GJAFABC@CCMD@D@BB@FFADOAGA@EDEHIAAAAATSDQNCLQDAHAJDJEJADKDDJHRPHDJHBOJI@ONSHM@EEOBGAAECCCE@IDA@FMAEKUC@MDKBCC@ADCFK@CEIBCDAHBB@FIMIuSqYEGOUKkAaBELCJBNFD@HE@MDCpMPAFDDBXEHKBC@IFCBCAKBGPS@OJG@EDAFAFBBJCZBDD@F@HATIHATBJBFBPAFCXgnkHGVEN@HIVGH@PHF@BAEIAIAKBMACCCYIIEIA]BGACE@IEAQDMHGBKEC@EFI@EAAEFI@CAC@EFKBKDKJMNEDGCCGAEEIMCAC@ADEAYQGMOEEB@JED@DDFADqVIFEBWCWOSEQ@ODGFOHEDEJcZGJCHBLAHEDMCEGEIMECC@EGGAIAAEB@CJYLOR@NIN@DCDGAMGECBAABEFCHEF@B@JHN@FCDGCeBG@EK_@KAKIAIKKECAAI@KHMEEAEBCL@BC@GAAGAAGGCAGGICUICFKAE@@K@C@@HBJALGDEFKBCDBDHD@BCHCBODOLADFDJ@ZIHBDDDD@DO\\EHBDDDJ@HPLFJJFBTBDB@DAFIFG@©FMQSFSNGNUHKJM\\AVBLANDPDDFFB@TIRCJBHJPXBJBbDHLHBHU\\_EI@GAIIEASBIAACCOAEEEOIKAKDICE@AFBNQREH@JDHHJFDBH@LBJHHDNDBLGFGBEBAHALDFHDDDHAHEHKBMAOFIBGCIIC@Q@IBK@GDG@CCCGCAiSGAKDI@MIGMIE[CUBACICBKAGGGQAECGIC@ADDH@FOBE@BGCACAIAEASBICGBKCEBBHMEGCQECCEKDQ@AAAMAKBEAGEQEICGBEKWYCBM@IIEGGC@ASAA@AEC@BHC@DJCFBJOFEHEBCNDNKJ@BBFFBL@DFHDBFFF@B@BECAFG@@EAA@RAHBBF@@FEFBBHFBD@BCBADAH@DJRLF@BYREFGCGGCAK@ABCBEQA@CFIFAHGBBHFFTDFFBJFHKPDHMDSEG@MFEAMOEACBI@EBIJA@CAAEA@KNA@OEI@IDCC@CE@A@@GCB@ADGAEC@AFIB]@ACCAEF@BS@BLGNAHFHFL@FELCBECCECIGKA@G@ADAHBFFFDJDDN@ABIFBZJJDD@HQJ@JAFCBUNGLEBK@AD@FJRADSFEP@VADCBICMBA@AJILERADDHNTFNJBBDDP@HADC@KCC@CB@BJDDDBFADOFBLEF@JJH@DGB@BJLJFJPLNLLBBCD@DFFJDZNBR@DABBJjpBLLFBHLFADADFFHPEF[LCBABJLRL@DADEFFFCFDHPNJEVLJMD@HFIJ@DBDFBFAHODBDH@NDBHBBAFKBCHBFBBHAP@DDBFCDBCN@FDBD@BABIJCJGFAJDBPDFdD^EDCLIGEAA@AFCNATBBIJEDDB@@GJCF@FHL@TPDA@MK_BCHAF@FFJNNBJHDHAHAF@DDBDANMJCNAJDXJVNNTABGB@BPJFHFAX@BCFGRKH@FABCNCD@PHP@DDHA@EGKBAD@FFFBJJLHDFDDDHDAHFRDDBJBBLNNJPJDH@HH@HFDLDDABC@CCAE@CC@G@CFEDOAECGCSBMPHBHDDND"]],"encodeOffsets":[[[122386,25872]],[[122237,25718]],[[121933,25635]],[[122329,25582]],[[122027,26000]],[[122033,25986]],[[122061,25979]],[[122434,25772]],[[122266,25758]],[[122516,25833]],[[122474,25841]],[[122480,25849]],[[122461,25848]],[[122461,25821]],[[122449,25855]],[[122450,25871]],[[122423,25772]],[[122463,25792]],[[122389,25759]],[[122350,25860]],[[122207,25920]],[[122233,25935]],[[122120,25960]],[[122130,25957]],[[122231,25718]],[[122143,25765]],[[121875,25778]],[[121906,25704]],[[122339,25802]],[[121825,26342]]]},"properties":{"cp":[119.007558,25.431011],"name":"莆田市","childNum":30}},{"id":"350400","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@A@CFUPGBQAQKC@EDCbADKF@FARCHIFEBIAEIK]IEK@O@GHIXEDCAOOEAGFGNI@IAIIGIAGLSBECEECIAIDMAEECIKCGEGEOLIJIHM@EEEKKGQCOBGF@JFF@HCBODOJIBMMGCO@QBKEQEEGE@IDOKKCQBGAAG@GHCHCBCBEAEICKGKMIGE@EDEHGHC@MCG@EFEHABC@CAAGWCAA@EFCBKJAFEBCLGDIIMCD@HADGIEACCCMIE@IEOAC@CHC@CCIBOEGAMOEE@GBGFC@AAAEAOAAEDE@@A@GBCJC@IDGFEDE@GBCNBFA@AGGBCHEDIBALRD@FA@IMgAMEGECWAKGC@M@WCEC@ABCACK@EDG@ACHE@AKCEECCCM@CBAH@NHJ@BECEHQFDFALD@AFCAGH@HG@CCCJADEF@AEDEFAAAC@BCB@BCB@FNDEPAPHTDJNLCLBDABADMBOAGBECOCICCGCAEDKGEAA@MACOGOMCEQGACMSYGCE@KAGBAD@DAACCACBKLULK@IEICI@EKIACKGCQEEBCAEEAAYAA@@ECAYBSGC@MBUMIAEBIFUdMJEFK@SOCAIDO@CCBKBQNMDEBGACC@GBKFMNIHINC@EEEBCNEFI@SEMDEDADFB@DABQAIBCCABICC@KFCFQGCEGR@XBHFJDPFPBBH@HHRKLKHAD@JPRPJNJlAJG@CEMBcGKLK\\U\\YVMHGNGTKTQJOBECG@GC_UOIKAI@GBGJKVBFLJAHOPIPCBKBI@ODOHEFCPKTEFE@GGG@QGKIKSGCA@@HIH@NGNBFPLBHABQGGBCNEBG@GEOCO@CC@CHEFDHCFC@CAECCKEOISoKgIG{M]@EHBJTdDJANCN@TEjEHACBSAGAASNCVGPBBJFDDATEDGf]FM@KICQBMAQYEWI]OQCM@MAWKKMASECAKMOMYLGZFPBJALQBIEMg[SQaQCMAQGKEIMIIWMECC@IQU\\AACCAKCCEIEIFQ\\EBGAACEEEAGBBRDN@TSbYXGLCXOPwNQAAAGAKAK@CPKP@BDBHCF@BLG@AD@FABG@@HE@KCCBEB@DTNBZ@FOZCBA@A@DOCAQRADBDPFFHLB@FMV@D@FJFBD@DADKLBLBF@HENQRW`KhC^GPOHOBWCUCQGKGeGGJSFKJQBOAWIWYO[CCOGGKM_IGODMEOGcGUNMPg\\INF\\FPJRLNAFIDSA[OQGOLGjA`CJIJOHQFYTMDUBMVEDKAOPU@GBCFAZDLCJGF@VFRDFAFBDFFEBK@ABDHSNKDGkIKGCKAGDGFKDGBMOIEQHgJ]NG@IEMM[Q[WK@GFGLCPB`CLIJOHwFWFOD]PIHFLCPDBLDTJDFBRDDFBTNPFTPJLLBDF^RLLFFBPANCHADIH@JDHGJ@FDJAF@DEBEHBDABB@IFO@CGC@CCC@EA@CB@AAEACBWKQAGBCCADBDHFGHCAGOE@C@ADCFUDIH@DDFHFAFBFBLFD@BE@AFDDABEACD@DB@JB@BGFBF@@EBAACCF@@AAAG@IFHDD@FNCNGNCNVN@D@FAFEF@BDJHHAJDFFDbHDDDL@JSN^DBBPLBBD\\JHFB@@DDJFFJFRLHPFN@DFPJL@HDBDCFGDFL@PBJFBLAHHBJ@LFNHD^CBE@IVGJBFDDE@GHO@MIYDA^LL@FA@CDAFANJNBFBBJNNDTMXBHALBDDBAJBHHLFFFFNDFDDFBJ@JBHFFFDBDAJDL@DMAUBSCMNCAIB@BHNEBMDCFNJFJ@FCDK@ADED@HQDBJ@JCFMFONIFQHIFGDAFADDNDDH@NLLjFrFN@PHNEP_BIRIFGJadGLGdFZNNRHNJBHXVLRFNANINKVGZBbHhRXHFPHllNFJLh~X^``VZh`NFRLTHLDLBPATBXGHEPEPbRLRFvLRFJARAhMTD^TJL\\LTB^@RCRYHFJRDNX`RR„fXJPBZFZPLDDDB@DFPLF@B@BGAGJGPCNCHDFJDLDBD@JCNINMHAHBJFPDPNFDN@DFD@HKPGFEFCDEFSHIHORWJEN@JGRCHCDCVGDQDCF@JDDBFJFPBBPFNNJ@BB@RDJBFAPGNDJLHBDAVCFG@EAEEG@@FDTBFFDFBJ@`SNEHAFAL@FAJMPGNCFEBCNHL@JBPAHCLBFEBIGK@KCEBK@ADADBRCFC@CBGNOLANNPBLJHBF@DA@CEGQQEE@CBCHCJLFBHCDCDUBEGK@ALEBACMFMHCF@NNZHDHFFDDHC@CGQ@AdAFBBFLDBAAGLCFGFCLDDABCACBERBHEBAEGAEOEAG@KAEASAAEC_EGCCECIAQBE@IBCJILCRLFBJ@PGD@D@HNFBN@HKFCF@LHHADCF[LaJC@CBAHAHCX[B@HBDAHMLI@CAIFGBGBEPKNQFMJK\\S@CGE@QHIBGIKIEIICI@KCIEGGOKEOCCAIMAESDEAEECKKSAAI@ACAEDEFCP@HC@C@CKIBCJCLAJIDFNENAJC@IHGICCBA@@ABCHADG^ATBDA@EAEMGBGHOD@TFDLDBZEFPHJNHNDH@HDFDJAFEB@BBAHDDDADAFKD@TFF@TKHNLHFBDAP@XJPAFED@FHDALERFJLTHHADABED@IEDEEEAEAACAACVK@BCF@BF@BABCAICEECAKLEBGRCFCACGIO@GEGBCGHEDYNCDCBKGQ@AFANBBCDGBGEIJSDDHJXJHD@@@EBGB@FFDBDABKBAXARJNTB@B@LEHMLFPCLFB@NIJJBD@FGJBDD@FCJBF@DAJIHAN@BA@AKIU[@KCC@EXQDC@UEI@ED@DED@NFF@DEXHF@D@JEDEAEAACDA@GMC@@AJQIAECAC@IHUDCDAFJDFFBFBFANGAKBEPMCCEC@ICA@CBELEBQDCB@HDD@HEL@@EHKBGEI@CBCFC@IJ@JDHGFALB@GFEEG@GJ@FCR@D@DE@OBAB@d\\F@FCB@DDH@BB@NFDHBHCFBLG@CFCHBHFJBHDDFHBHFAN@JNFF@DEFCRAJ@EM@A`CNL@JEDAFBDHLHJX@DALKDAVJBF@FGJ@DTLDADKZATPD@@@@CESICECCE@KDGFCL@FDL@@FFHB@BCFSDCDANDBEB@NJDHVIFKDCLEJ@V@FFPBf@DCHADBBJBDDBH@@CCEHOAICCCCC@OPCDE@IGGI@OBKFEFIDCBGFEPCFCDQDCZNFFJDBFTHRNHDFADGDALANMBGPWFBR@DHDBNBNAPKBEEK@CHEDAPFdABCGIDGFCBEFGHCFDD@JGBEDQJBLCHBBADO@GBGJIDEZ@DCLQRWAEEECKACGDC@MIKBMHMJgBCBEGOKFELSJGEKSL]CAEECE@@AAABAACDEACCGCIJSCCCAOHC@@KACDE@KEKB_HMHEH@THDA@ECCBEEKEGBE@KBMFEDAF]BEHAHDDAEMIGAGPMQEWTI@mGoA[DAABGBGJOAYIIAEFSG@@A@KHEDWAGISFC@EFECECEACLKCEBGGKCSBEH@BECIMQAEBKGGFADILO@AGAC@BD@BIPO@KDMBOJGAIGACBED@BEBGDEAYEGO@IGABJ|ADEDEBKP[VGDKMU[DIACM@CE"],"encodeOffsets":[[121252,26511]]},"properties":{"cp":[117.435001,26.265444],"name":"三明市","childNum":1}},{"id":"350500","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@D@ACC@BD"],["@@DAJBAEEAG@AFDB"],["@@CB@F@DDBBDH@BAAGEGC@"],["@@BAAAEBBBD@"],["@@HBDAACG@A@@D"],["@@@AABB@"],["@@DDDACCC@@B"],["@@@A@B"],["@@DA@AEAADDB"],["@@B@@AA@@B"],["@@F@B@GA@B@@"],["@@MHIBEF@BJFBDBFCJ@FFFN@DZDJHDR@BBBDFBDBDAPKVIAKCG@MEKAAI@ABADE@IGBECGICGDC@EAIMEA"],["@@BAAAE@@BFB"],["@@H@AEBGHAFBD@AEICGFE@BFEHDD"],["@@B@DCJ@CCGACDC@@DDB"],["@@ACA@@BDB"],["@@BA@AC@@BBB"],["@@GAADLJH@@EDCAAK@"],["@@BBB@ACAB"],["@@@BDAAAAB"],["@@BBBACA@B"],["@@FB@CC@AB"],["@@DBDACAC@@B"],["@@@BBA@AAB"],["@@BBBAAAAB"],["@@BB@AAA@B"],["@@BBFBACCCAB@B"],["@@DDFB@CAAEAAB"],["@@DBAAA@"],["@@@@BAAA@D"],["@@BDBAACAB"],["@@BBB@ACAB"],["@@D@@@AAAB"],["@@BBBAAAAB"],["@@BB@AAA@B"],["@@D@@AA@AB"],["@@@BB@BCC@@B"],["@@B@BA@@CB"],["@@DBBA@CC@AD"],["@@BA@AGABFD@"],["@@@AABB@"],["@@@AA@@BB@"],["@@HC@AC@CD@B"],["@@@BBBBC@ECB@D"],["@@AACAAEEAAIC@AJBDDBBADJBFFBD@@AAABAAC"],["@@@AA@BB"],["@@@A@ACB@BD@"],["@@ABBBF@@ABDD@AGIB"],["@@B@BGAECCAD@HDF"],["@@@B@BD@DA@C@@GB"],["@@@AC@BDBA"],["@@DB@CAAAD"],["@@B@BAC@@B"],["@@EDBBFA@CA@"],["@@@FAB@DCDBDBBBAF@BA@EBCHA@AGGGBAB"],["@@@BB@AA"],["@@A@@BBA"],["@@ACCAEB@BNF@AAA"],["@@BAAAE@ABHB"],["@@AB@BD@DA@CAACD"],["@@BAAACB@BD@"],["@@BAAAC@BDB@"],["@@AB@BBABBBAAAA@"],["@@ADDAAA"],["@@@BB@@AA@"],["@@DBB@AAC@"],["@@D@AAAB"],["@@DBB@@AAACB"],["@@DAA@AB"],["@@B@BACB"],["@@BBBACA@B"],["@@@BAA@BD@@AA@"],["@@BBBAC@"],["@@D@AAAB"],["@@@DF@@CCAAB"],["@@@DDACA"],["@@@@D@AAAB"],["@@BAAB"],["@@FDD@@AECCB"],["@@BBD@BAG@"],["@@BNCHBDD@BEFCB@@DHBH@DCDBBACCFGBKFEDAZAFA@AAI@EBCFABCBOHIDAHDHA@CIMAG@MFMDEH@FC@E@GCEEAC@@BABAACEEABEBAFIGGC@CBCAAABG@AEEQGC@MGUACFBDHDJ@BDADIHSBKDKHKFY@gCWKOICE[sGGGAG@MBWPOBAHGF@FWNAD@DDDN@DB@DEHBDHBd@@BC`I\\CHCDKFABAJDLNJTFBHFBLEDCl]NEdIJCNBPLDJAJMNBBJAF@BFLFBFAFEB@BBB@FCN@FRBRH"],["@@D@A@A@"],["@@@DD@@CC@"],["@@AB@BH@@CAACB"],["@@BBBAA@A@"],["@@@DB@@CA@"],["@@@BBAA@"],["@@BBBAAAAB"],["@@AAABDB@A"],["@@DDJARBBA@CEABCFCNCTFJ@FEDMFAFFD@JMJGNMLEHAD@BDAHCFMNARALDDP@JCDBTPL@FENIVcJEFAJBVNNAD@THZADB@FB@ZBBBFFDBFARFHDDLJBFLJ@JDJFL@VKLKDADBBDIDBH@LDFZHNTBDRHDFPNPHBD@NBBHFCLBFHDDDDJDPAFBHAPCNABCBKAKDIMSCOGOBCFEMA@ADA@ADD@BBEBCFBFE@CFIBDD@DGHG@BHED@BKCEBECGRDFAFI@MGG@AB@DDNDDFFLD@BGFBDH@FCL@BDAD@BFDXDN@D@LHXBFDFHBNNh@JEBC@KQABCJGFADHH@BEBMAAD@HCFEFCH@JIDAD@H@BF@FCBBBPBFBBD@HEHAF@PFBNFHAPDJ@DGD@DBDFP@JJFDNDDFBHJBC@GDCJNCJKHADEFIBALED@FBBXDBHDBD@BAFGFEH@NDD@HGFGFCF@JHLNLHJDBFAFADGDGD@HBHHBRALDPLJCF@FHRFLFRAP@HDNNJAPIPCDA@GEE@IHEPARDLHFLFFN@JGJIPKHFHFLDDJFFNBJCJBFDDFAFKTBHHJJJJBJ@HMHEFBPPDBFCJWHGP@L@JFL^FJJBFAJEDGBQ@ELEBCDaFCD@RLRBHAVODEB@DKIA@GLEBAJYFI@CGEE@KMGCKFC@CK@MCOUW@EFENDLQHETGFIH_@IDGJGDGBQAA@KHURQJEHALFDAB@HINIXEBIVOBKLIJID@HEHKLIDGBC^@HDDCDE@CQKIKBADA\\KFEGOEEBCBCKEAGKEAKioAIBA@CAQYMICEE@CDCAAKKKMIOIEEECGHA@CIG@E@CFEAKPEBCAECCIC@ADAD@LDD@BC@GCOACIAEMMSCGBCFQJKBIB@NAJDDABC@UFOTEBCIQ@EBCL@FAHKVMDABE@IRI@GCCIIAYJEBAM@CCCIGI@ABGDCF@B@HLDJDFFDDADGBIEKEGBGHMAKT@@AFEDBBD^@JABED@BFCH@BDA@HB@F@@DDDJCJ@PFB@LMB@BFDBB@JIFAJ@DAFBNPFBNEH@TFNCCGLOEGAIEEEAMAEEAGHABGJEFGBBDRDABAL@DBHHHDFETMFEKEGMAGDKDA@AACGEAAFE@EE@AABG@QBB@FH@BEFD@A@AEEAEGCCEK@EAAE@ALICMDMFAFGPEAIDECID@AGD@BFB@TB@BHDFHJJN@DAXZFLHAJDRFHFFBLANBBB@BCRBFHJhPAGFAHDLAJDTAFBJBHDAHF@PA@ECGBCD@HJFDRBHHBHALJDBDPADAZBNCLFDCJADKRCJIRCBGEE@EDEDAHGF@bFHADOBCVG@mBKEAKIGCOKYAAE@MBSBIFANBFGRCBCAEMGYIEEICSIG@KDUAEE_GM@qST]FGJGJ@TBJALEHMAYHKVKJAF@JFHBHAPIHAL@HBLHJ\\BFDBP@DBLJRJH@JIJ@BC@CIMIKIE@QEEAMHG@CCAI@@CDCBCGAKAEFG@EKAGBMLUNID@HDDADE@OD@PJFBDCL@JAACBC[UII_C_KCD@BFBABGBƒ\\G@GAIE]cAEBIDGLADADQBCDARBFCJKDCHAJBHDPDP@NGBABMHIBCCEWGaEKCA@DDABA@CCC@ABADCBGAE@KGIASF]FMFGJIB]FWAGCEEEAMKS@AKCCRCDCAACAAGEEIAGLKJIHMDMAIGCCWO‰UGI@WCGCCCAGBEFATAHCBYDYDKHAJHV@DGDC@CAMSIEUIkGECCU@GJgFEJAHCFIHCHCJ@FBRJXIRBHF@DCJ@BHNJDV@DEBCGSBODKDGJEHANANBBAFBHENBJABAHBH@@CEE@CDCEIDE@CCCGYEEIAGEAE@C@EAAIABEGGGCABKJGCCGDANBBCQOC@@CEABKB@FBBAEGAEA@KCAGCACBADAAAADABCEG@ECAK@EGGACEGEUEM@IDGFIPCJMEKGCGE_DiDIFIHCJ@FLBHDBLBBA@CF@@FBBDABCBmIQ@MGUCGIGQAMGCGBMBIAAG@EBIAKI@COGKOA@CBC@GSCGIEMEYCUMCAIDCDE@KAEBADRRC`AF]NEFALDHHFJBDBBF@FCFytSPMDƒN_BeAMGYUEC_IƒcMIEEACCTI@ABALAFKFKHDR@HADA@IMEACACJ@DFFDDFPJBFFDRGXPNB`[RADBH@FWNGHCDBF^jBHINCDMBCBEVCD@FFFTBDCD@DDFTEF@FDFDBDADAB@@JCHCDEACCAEC@QNADHJBFGFDHGBGFKFGNEDGXEDQDIFG@SCGGEAE@CDCBEACHE@GACKEAG@EBCBCJKPAFFFBDAJSHGHKDSLEH@FFNLBBBQVMAIDCCC@CBCFCBIBM@IC@EKAM@KFEASKKGKSE@ABqWOSEBCN@TAFCBG@GMECGBEFGNKLCHBRCFEBKAWHEAAOCCGBYNGACE@EHETCPIDGAECAQDK@KM@CBCPMAAKCYKE@GGCBCHGFGRGJSFWIABELIHCDG@G@ECACAKI@GHIBIJAFBHCFIJIDAABIAAEIGEAE@ICCCBKLMAGEEAKDULG@IEGGHOIIDC@CIECGCAIDKB@DCD@LEFE@AACICECAQIE@IJBF@BCRADC@ICEDIDAHEBOBKFE@OCOIGGEMCCECYGMEGGEAMBIJEBOCINKAC@IJGFGBOAENIHAFBD@FCJ@J@FBBRJFJHHBVCDW@ODGF@JEN@LJJJPJHfNHDFFXL@DCJBJ@FFBR@JDHALIHIF@JDDD@HJNJBPAF@FXDFHBZPFF@JAFYLLPADGN@VEJCDE@KGGKC@QVGFO@SNGHCNA\\BXABMJUHa@ADCJCBIGKTAFDH@LMFK@IBIFCHMDI@EDON@BDDADEDO@ECEBEF@FDZEJPLFFD@F@@FHFBHFBFAPGF@B@DA@EB@LCB@DDJAF@FFJVDLCNGJKJOHDf@HELCD@DLJT@HBTPRFVLLJFRHNJJ\\LFD@FIFBFNDLR@JCPDRON@HPRFJBHHJOZ@JDL@HDFDDLDDFBNFNHHLBFDGJELALFPBN"]],"encodeOffsets":[[[121802,25820]],[[121740,25685]],[[121899,25675]],[[121684,25454]],[[121623,25425]],[[121623,25333]],[[121555,25259]],[[121539,25232]],[[121508,25224]],[[121270,25180]],[[121098,25050]],[[121068,24987]],[[121114,25038]],[[121002,24979]],[[120996,24966]],[[121182,24971]],[[121184,24974]],[[121622,25426]],[[121505,25152]],[[121225,25095]],[[121247,25105]],[[121281,25132]],[[121310,25121]],[[121294,25099]],[[121308,25078]],[[121313,25080]],[[121224,25052]],[[121217,25047]],[[121312,25017]],[[121314,25021]],[[121048,25070]],[[121078,25061]],[[121087,25044]],[[121071,25039]],[[121068,25037]],[[121054,25036]],[[121052,25033]],[[121055,25030]],[[121034,25014]],[[121843,25475]],[[121818,25469]],[[121820,25470]],[[121739,25478]],[[121837,25804]],[[121861,25787]],[[121838,25757]],[[121820,25703]],[[121800,25650]],[[121798,25647]],[[121880,25681]],[[121897,25672]],[[121871,25658]],[[121870,25623]],[[121876,25629]],[[121885,25631]],[[121885,25580]],[[121891,25561]],[[121897,25564]],[[121836,25535]],[[121815,25501]],[[121685,25431]],[[121692,25439]],[[121642,25448]],[[121650,25451]],[[121624,25406]],[[121606,25376]],[[121609,25377]],[[121549,25420]],[[121535,25397]],[[121552,25256]],[[121505,25148]],[[121483,25130]],[[121401,25127]],[[121359,25192]],[[121301,25152]],[[121289,25160]],[[121259,25116]],[[121278,25108]],[[121282,25109]],[[121304,24997]],[[121255,25103]],[[121040,25021]],[[121071,24986]],[[121034,24979]],[[121012,24979]],[[121005,24963]],[[120979,24957]],[[120982,24961]],[[120987,24961]],[[120544,26125]]]},"properties":{"cp":[118.289421,25.108853],"name":"泉州市","childNum":90}},{"id":"350600","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@@BBDH@ACGA"],["@@@DD@DA@CAAC@AD"],["@@@@B@BAAAAD"],["@@BBBAAAAB"],["@@AABB@@"],["@@ADBBHADGA@EDC@"],["@@@DBA@AA@"],["@@@DDABDD@ACCCCB@@"],["@@ABD@AA"],["@@CB@DD@DA@ECB"],["@@A@CDBBDE"],["@@B@BAA@AB"],["@@@BDACA@B"],["@@AFB@BCAA@@"],["@@PHDAACECC@EAAB@B"],["@@AACBHFAC@A"],["@@BAAABAACEBCBC@ADBBFAHB"],["@@BBB@AEA@@D"],["@@CDAHFABBF@BCFBFABAB@DAAEBAA@IFCGIAA@@FAB"],["@@AB@BB@DBHCCGEDAB"],["@@FCFDBIFC@EGBCFEDC@@HB@"],["@@D@@AA@AB"],["@@@DAF@LBDB@BADG@IDAACDA@AACCACDCF"],["@@BBD@EC@@@B"],["@@BACA@DB@"],["@@B@DA@E@AGF@DB@"],["@@RKNGXaFAH@TDDAJEESBECIBEBA@EAECAE@HMBKBWAMCKGIBKEAICCGCSEKBQJgDENEBAAKDML[DM@ECEKCBI@CCGCMCCICKKMEIGSeCAQBOCMDAACABK@E@ICIIEBCNGNKNGFCFG@GEECQBEHGACAI@KHCP@DALGFGDOBCFAFBDADGPGBEF@H_AABIAGGGBADA@@GUDKLSPMFCRAFCLQZIpDXAVAˆODC@EGiBQCKEGGEAEBCJEJDTBVAJAPMDEBUFABC@]B@XGJGDICQ@GTSHKBOAMCIEEKEGAcBA@AaAEECGCQAEKCIGMSGEGEcKKAM@EI_a@mIKIG_QWQa[UWOUAEC[FaBSCMQ]EOIIUKSCs@ICWcmeeeIUS}IMeWMA…BqDYAWIMK[uM‹BGDGJKDGAMCGgeWe]‰IOMGK@I@UJULqHMCcSc@CAO[GU@IBEHAFADCFO@QCGMIKAiAICGIEI@aBKPOBUACSUWGM@OBIAWKyWM@G@SFI@OA_G_CM@QBGHGJEXiIßGAÀBJCHIFEAIBICGHK@GDKJMRIEADC@CAG@OIAAERKVKBUAIHIAABEJKLEPEFE@GCQFEDCJ@NBFEF@DBJCFAFDFAJBF@DCJ@XCJILE^EHENSPIJBFCL@BRPEPCVEJAHABEDAHABYHIFIBICEIQ@OFEFEJBBDDDBZACFBFBJFD@BABIBAB@DDFCH]LADDFBD@HAFEDCHBDHBFAJBLHFHBNFFBNCJHNORCF@FBJAFBDBNLLBFIJMFGAKGKHAD@DDN@FKJGHGBCF@DBBLBDBBFBJALDBBFGBMEG@ABCNIHADBHC^BLCJAJBFHLFZBHJJDFJBDBHNHFJLFDR@DBBHHHRHDDDJJJBDAFGJWLGJCBKAGJCJOJ@HU@EAQFANDJF@@@BRAFELDNAVFF@F@FA@C@@B@DDF@DGFIBQEC@GFCnBJLNCFMHADAXYT@FBLRZ@DELL@NATDFBNPJpFTBRIbEPQXEPM^GVC^DJRLN[D@BBHP@JGN`Xv@NA`GTHVXJRBX@TDP@PS\\BXHDdELNFRBT@BMVML@DFJBJDD@PCDUB@LCHMLL~@`AZBLHL^TJ@HHFJA\\BNFJNDJGBGDSCY@IBIFENCTJBDJBLBzIN@NLNbHLXRFHB^BT@NBRHJVLDJF@LHFL@DGB@NKBCDGT@HCJBHZGR@JANUDCJAFBFJPTAPHNBFDDF@BPCFUB@JDFlNTJNLJPNFLGBEMO@EDANHL@LOHAHDBAD@HF\\HLHPCLENCNBFDNNLFTGP@fCDBFCHELMNMHC^ARB^AHBJFFRIžBNJJFPHJFNBbBLFhOfkXEF@HJNBd@ZDDNCDB@LDFPDVAHDLHHHBZFFBBLMLED@BFIX@FBDF@N@FICY@EFEFAFDP@FCBCCC@APMFCJ@NCDGJEJAL@NE@KCGBELSJHDADIBCb@VGNIBAAWB[DMHGTMP@HERUD@HLLHF@DCFI@UHMBCKOZKBE@IEEYOGACEEWE@OBIAIM@GCCICE@GJKJGBICQ@EA@EAIDI@CWKEEGCeMIGIOII@KFM@IHEPCX@DCAUGGEIQIAA@E@IDI@EACBEJGFMPBHAHEJID@LBJMPDFAJINAFBHHNFZHFDDDFNHHPJPDF@LEPAFABGJCFCJDD@BCDQ@AAEJIF@RJDBDFDJBBF@FE@KDC@CLAJCDBDHJF@DCDJJGPHHJFH@VKLCFBHFNBLKDADD@JBFHFFJBBAJBBJCJIDEAGBEJIJAHGJB"],["@@JE@EA@AAA@BHED@B@@"],["@@DDFBBBB@@EECC@CCABBD"],["@@BDD@@CAAC@@B"],["@@BDB@DCEAAB"],["@@C@@FCFBBCFDB@BAFA@AF@DBBD@LGBEDAACEA@CBCB@@ADCCCE@AA"]],"encodeOffsets":[[[120963,24945]],[[120535,24416]],[[120559,24424]],[[120918,24768]],[[120921,24767]],[[120968,24911]],[[120975,24931]],[[120916,24946]],[[120923,24946]],[[120861,24766]],[[120641,24511]],[[120694,24484]],[[120562,24394]],[[120570,24387]],[[120585,24385]],[[120560,24355]],[[120557,24362]],[[120543,24340]],[[120537,24344]],[[120521,24355]],[[120509,24356]],[[120498,24353]],[[120494,24362]],[[120517,24095]],[[120494,24116]],[[120293,24163]],[[120743,25468]],[[120278,24145]],[[120239,24127]],[[120243,24135]],[[121075,24739]],[[120987,24903]]]},"properties":{"cp":[117.561801,24.310897],"name":"漳州市","childNum":32}},{"id":"350700","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@NCDCHMHE@GCIEGCMACSCSUECKAGEU_@KBAR@HDPHJ@VGJGDIBMEYEMDOAIDCSIGKCAC@QBKAEAEECQKEKDMGAACICAEGCGMGGKI@@A@]BGJCPODIAEIOES@SFGHKCCBGCYBELEbeBKH@N@LCBAZEhQBGECAC@AdC@CEGJK@C@OJKFCFAKKBKNEDI@GEEAEAMCCCCROBGBCCEFQFGLGBE@OFKBECAE@ICECFKCENEDEJ@BABOJKJSL]DAHAFCJMJKJBF@AIHI@CAEG@UBM@CAAGJKBEAECEGE@EBCHI@EBELKPIHMJKBIEKDCBAAMFCJ@DABCAIGEAMCIBGGGBE@M@KFEHCCEQCGECMIQMIYEKUGAEK@GBAJEFBNDBBFCBKAA@CBAFA@CCCDCLDDGDG@KCC@CBEJBHEJSAIFCFAX@DBJ@NBD@FADGVEJKFDJVAFADCBNJH@PFNAHDBHAFDF@DEFEDCD@FPJHGHEN@XDHAFGLEPSFCD@DFVGBKRKDBLJF@FAHKHAD@HDDFFDJHNFLJPCHCFGFSACO@ICBCHEDC@CCKAIAG@ANIF@HDD@LAFE@GDAHDDBJEFBFDFEB@J@JFD@JENEFGJBJADDFDJAPGZDFEBBJD@RFDBABE@I@EFDHDHAFAAEAMDOFMJIHGBOMSKEM@CC@MDM@EICEA@GAEECAEDG@KBGUBECAIAAA@KFCAGEM]DE@EAGEA@WBKDKACG@C@BCHCBGFAF@D@LSTONHH@BABEDBLIDDFA@AACAELEDILGBCEKEGAIC@ABAJIBCCE@ACCAAD@HCFEBEEABGHBNAD@HGDGAKFI@GHE@C@CE@GG_UGIAKFCEDCCE@K@K@M@GEI@C@AF@LBHADEDIAKIaAGBCJEJ@RGFCBEEEAGGAIICBEHMFCCEAE@GCOCECAOFGACCCEBECUGSDKAAABSBCJIFYACaE@LEDAB@FCDE@C@AD@JADMDKJAJDH@HCDWBGDABEA@BC@ECC@ADAAACG@AFBHA@IIA@CHIFE@AA@GIBEAYBECIIIBGHEGE@CBAFGBCJNRDLOJCFDTGhCHEDKAE@SJQ@IBMDGHE@ECGG@CFC@AAG@AD@LFAIMY@KFAJ@JBFDAM@MT@@KDEACCAIQGCSDGFAHC@I@AAAEAKGGCEQEGEIWAMQMGKIKCICOCKSQCAEGKFEBECIIAKBGFEAKGCCCDG@CWKIGQEWCQMEGBMAKGGKCU@QFQAMBYNGAOMKEIAODIHEH@LKHSAEEMYFIf]J]DEHI@CEAAK@IAGMKHSCCGKOEIBIEIBGDYCEEBEACC@G@UAAAIWDENIFGFGBI@GGiEEI@CACEDE@ECEAOGIKUAI@[CGKG@IES@MC@GDC@ECEDC@KOCKDEKIEIACDCJGVAPGDADM@EKMBKCQEME@CGBG@EEMHQ@GEO@KCIBOCI@ECCDGFILEJAHADAFBLHLAD@FE@EMOFM@IYmHW@IEIGMEGE@C@AJC@GGWIKEECEGCEAEBIAEIGBAJCFEDGAIAEIEEKGAGG@K@AAABQDA@GVGDC@OAUBAJADDBFDDPAFBDHAFFBDC@CEM@GDCJC@KCGL@FDNPDBD@HHFBJALMFCRCTMLCLG@CCEFOSMCEFEFIBCAGFKHGBEBOCOFGAGNeAG@EAAE@MTKRCDGBOAOPAH@HCRA@KAGDIACRAFIHC@ECIFELILHJADcBOECBGF@DFLAFOLMBMACACGQ@EAOXAHMNKBCBCHCBICQMSGAEICEEYMCDCREDODEFAHCDEJEFAL@PHJJHF@DCPOD@DDDDBJGPDF@DG@CAACAICAGBCDe@OAEEU@I@KFCDELUJCGMIA@AFMCCBCDETADA@EG@EK@ECK@EDCH@LDFFDJDFT@D@@C@SOYBCLCBSK@CHI@EAEUICBKLCBW@GIGKACBEFC@IMK_D@BFNI@QBEDCFE@ME@IBMGEGACEGCIAGEGAED@DKHEAGDGAEC@MAAG@CCA@EDE@c[A@AB@PCFC@Q@EDI@@HFHEF@HKAEBGHICI@@JEDAD@DFJAHGL@FK@GFC@GCA@CDARKFAF@DDB@JFDDDONAFBLMHEBEAEACEEICBCDGV@JBDFDJBIR@BD@HNB@DCBBBFCFIFC@E@WGCFE@MEC@CFC@@FFJ@VCDWR@FDD@LV\\LJ@BABM@GBIJCBE@IAEDC@ACHI@EACIIMJA@KEODKEGNKFA@A@MSQIWBABALCBCAEEA@AH@F@@GCWIGICCITFJAHCHADMAEB@BHRALCDMDCZGFDHHAHFP@HJBDEDQDAHKFBLFDDFBJADABE@@ADE@AULBDDBBBBFFFCFJFC@AFCBGBSGIKQEKFCBEGC@EFOBWIO@CBEAKGGMSLE@SEC@ELCBCBCCBGAAA@EFIBECGCG@MCMGGIEOYFCACKSEC@GPAHNHBF@FCBSA]BCHGBAD@BB@DAJDGH@JIDMBMFCEIJKBIDADLJ@D@DGDO@EDCFBFBDJ@BBLTDLFFFBTCBFJNDBPDLFHPFHDJ@LDJJJJFJLAHGJ@RHF@D[TILENMROLAFAHEHBJ@DKJGNCBGAA@W\\GDGBAB@DIDKbE\\CDGBKGE@EDGLM@EAGMC@C@OHI@EAQKKDIJAD@JAFBRDJDFHD`FFDBBBTBF@LBHPFBFFHABGFQAAFBDADCBKCEDEHKDBHABKCAEEAcB@BHR@DGDCCEECGYGMME@GDENDNABKF@BHLAFCVCDGDEAIKGDAD@DFFRRFH@DCBE@GAKIOAMMKBMPAH@DEDQDCACB@BALDF@LHLAJEFKAGDOBIAK@MGADEFMDOHINEBK@EBGBMF_TI@EAECAECS@EH@FFFBH@DEBUACKGCIHMBOAECI@QAAI@MMOEAAEOEICAICE@CDCRUHCDGDQDIHM@IFQXGPGJETCFEDEFOHGLC@CEM@ECOMOCIEGAGBMNMJIDC@CACKEIGCMDODEDCDBLCDE@OKCEA@EX@JADEHET@NDPFHRJDNTX`PDFDJR^HDHGXHDFDLJDFJVNFLNHBDCJLL@RDDHDHAFF@LFDCHDFFRCDG@GBCDGNM@IAQDBJJP@FCHU@]LGCA@IHGLAFFZCPFRADEJAHNF@RBF`NFHDDBJHVBFMRAdCBIAMJCDBNCD@DFNIHCD@FBJJLFBCFEBAJCHEDALB`APEHOFEJBJINCDCBICEMMGIOGECAGNE@MCIFG@GBMHGJAHFPJjEHAHCDIDAB@DHJ@BOLEJEFDDFDBFJEDBFNFJCTLPPHHJFBL@JDPCLILOPM@CAEBG`]DAF@JFLFABCBAF@JHBDDSdKJ@@HTLH@JJBHJFDJ@BCJAFGLDL@PGJBfQRFFFN@JDNA@@AF@HBPCH@HBJFHFBJANFNBN@LCFBJPFDFBNCFDBNFJJJLDBDGV@FDJD@LGV@JPHHBF@FQb@DD\\HfCHONO@GBGDADF^DHCD@DDBDABCFAJFN@HDLJ@LJJHLHBH@DAJGDCBIBICMBECE@GB@HCHGNBFBDD@JJLPXXLNCHDLJT@PHFH`\\BJDDDBFBHDHPHDFJNDD@DE@CDCJABEB@HALRl`FDDJDZVPNBDA@KFEVGN@FCHCDGFCBEGQDMHGHCHNLHNGCMDA@SDKAECG@GBCBANGFOHGFECYBGBCFA@AFCV@FEvQLITGHKHQNID@JHD@HCB@FDHJHBBAFKJGHOTMHIFCHAF@BBJLPJFVJPJFFFL@DDJTJLBDAFEDCJBNFJDLCJAJBFDBNDHFBJHFJDJPLFXFJFZPDFJNFBDADCDIDANJJBTHFBRCHFR@@HJJFJPFH@FFHHHBF@VGDADGFCH@ZHLHFHDPPPDALSHDH@DAF@NLRBD@FCFKFAB@DBDBN@HDNEFEBODCVCL@JBDB@FIXDPAF@JBLFFLHDNFAHEPAH@JHBDALCHIJARJF@FTL@DDDN@LDJFNGTALCLGL@HDB@FEF@LFJHDBFAVFXRLNTMFBVRPHN@HDPCdPFAJCLDVAF@BEDAXFFHBLALFJBHEJ@NFFRF@BADILADBJGLBBBHRFPLDDIP@HBPADCBSBKFUCMFIZKDQLIL@FLHdRB@JAFLFFBDAJBBRBJD@FHJNJD@DCRDJH@DHFNBBFBBJFJBRNJ@FDB@BIGQFEDQHBDA@EEEBAT@BCII@A@EHBDEHCHABAF@DCLFLCHFNKJEHNND@FDF@BGAABBB@FC@CHGD@@DHBLBDHBFHD@RSHAXB`HBB@L@F@DBBTGXFLCTBHCFILKBEEIBMJENFZAD@HHNBNZN@JFF@JIJCJ@LBNPPZHVLPHBHAHFH@HAFCLKDE@KCIAG@KZEBE@O\\[RG\\GHE^@"],"encodeOffsets":[[121647,28921]]},"properties":{"cp":[118.178459,27.335627],"name":"南平市","childNum":1}},{"id":"350800","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JG^OPCXExEPGJIDKA_DOHKHEL@\\X\\RNNJFH@^MhIRGJFNPHALCHEHCLBHDJLHlLCTMCGBAL@FAEEACBECEEQ@UHEDICKBYDEHAV@POLBFCNUVANCZSREPGJIDIB_HiPKRH\\PTBJCBEKMIQEOE[JMh[NOVMdHPHNFPCJHN`HLPHDDP\\XZXJPBRALITEHIfHLHRHVDXDPAPGHOD]LgX_RQFM@GAEAKLKBC@CACIE@E@CNU@EKAEGOEACBCRQDBCPB@B@DAPY@EAYSM@CFADALDF@@GH@BA@EBCH@AKE@GDCA@ALODOL@LBHBBBRBxMPODWHKZWTa@SCMAQHAFBFFBDHBFAR[JEJFDFLDDBBD[BRV@JDDNFJXNJFJHLBRDNbRTRh\\FNAJKRIBOAYEKHNZNPBLFDBTLNXLNBN@RD^PXJZFBRANBJBHLJN@^EHeFCBSCCIEAAHODUTMBBBHATBDFGFi@SDMBMCIScAIFG^@|NJHLhTpPJLFDDBF@DEDGDECGF@DDDP@PDHFH@FADMHARHBAAGOKAEHM@MJG@GB@HDLTLJRHH@HHF@FELSDOFEPGPCJ@LADAJOPOBGKIAELUHIHAJ@LBPJ`VHDH@FDPARILSHSHMNGZUV[L[LKdHNAFFF@@A@QGaIMQOIOC@GBKLQLGGG@AAEOCOEIA_HQDFRHDELED@JDBAAMEOBKFKHIECKAGGEMAMCEKCEGAICK@EBGNUGIAGEIOQ@GPMCQDO@IKQMCAEJE@EEC[KIIGMEQKIUKQESOGAS@KI@CDCFK@GCePGLIHIDMCKIUEEE@IBCCA@KDA@@FCBA@E@OHEBEAAGGE@EE@C@EEOKS@AC@EJWAEC@KFKNAAEEAYGGKGGCUBOCCE@KCAMDCC@YAcIM@GFElWPeEgAKAaEMGIEOIIAMJEQIEGA]BQA]BGDMNKNGFEDCAeDO@SHKEMMECMAMDKFODKG[GGEC@ABGCGBKPK@MGCB@FNPAFKHMEIOMKSIkMCE@IVADEAOE@CCAEGMBOOSEIEAIBCDMVIBQ@YHAGDI@GHSDCLA@MHA@CEKKGE@CIUKGIAQ@MASA]EGWQGKMaMKM@yJKAIAACSIMDEFAJ@JDZE\\IHMCEIAMB[EIGGI@]SGKAKBY@_K}NKDG@KVADC@OCCAIEI@CNKNU@AASEQKMcFGCAWT[@OCO@SAWIQKMIISG_HMBu@_WHM@IGOAAC@M\\QKCID]HUN]FORWFOJaAQESIoMOEASCMBK@FK@CCEKXURCLE@EAKGCHCF@TIBABKVCFOHABO^@DHFCLBBTCBBLHDF@DMPIROPOT[SKEA@@D@BHH@B_NIHORINGN@FBLCBM@[XCH@JBDHFNHIXEHBFjjDHFHBHPJDDDDCRBJFDFBFFJDBBDREJCLQZIBIASDGAQQMKQS@@MHGJAFCBM@I@KEKDGAI@CCAEAEECUHICQBQ@UEEAAEC@QAEEG@CGAGA@CBKBEHGDEAE@SNGBGIAKIMSGIEAE@EAEQCAEIACAACSAKEOGG@KLIDIFGLHHAHFL@JBF@DHFBHCFGBAJIJCFCHAV@FDH@LCFSVEPGFE@GEQD[KI@IBGFCLANCHEDI@AHABQDEDAFDFHBIJ@BFHF@CH@DOPIFCFCJCNADC@KGE@I@EFBJMLAFFRAHHHFDJBFDJ@NHXJFF@DILI@ALMAEBEFAHDNIHDDHB@DAB_@ECC@@ABGACI@GFGCOSGEBE@GCM@MCKGGI@CACGC@@JIGSIGIOGIKGAYEY@MB[MK@IDOJ@DBHJNNNJD@H@DGDKBMCECCAMHABAXADADIDELCDODIPGXGBMEGKWUGEQSGAOAIF_DIDGCIBC@CCEDG@CABIGKA@GFBFALCFA@WBAEEAEPCDI@KDCFEHDHABABGEE@@BDBBDCBAPCFQNMPGFGBA@SQA@KAMHG@C@CNCDAH@FC@A@ICA@CFAEEAGD@BMFCCEBCCAFCBI@I@GBI@UHG@EAABAFADQPABGAKRCJGDG@EBEL@RDHVJDADGJCFODAF@JFZKH@FBBBAHMTedaFCDBHIFAFAF@NAHLJRCDFBJJBBFBDDBDAFHPDLGDDFJH@DFADKJAD@HO@@FFDAHHFEFEJIHMFKBW@EBAFBPFHOLCFAD@NDDLAJFDHAJCNEBCDALCDC@OEGBEHKAADAHAHBBPD@DCDGFCHJD@DAXBFC^PLHNFAHCDGDAPFBAHDVZRDPEBBHDLDDBDLHJFPJH@FJJBNEPALFLDBF@JCLIJ@DBFD@NBBDBF@HEDIB@HHJHLNDNHP@DEDIB@DHDBD@LEHCFQD@@BHLDDNOZ@HFJZ\\AFIX@HBBDDT@JHDD@HAD@HDLADIJ@HIRBPFLFJABMGGFAFDTCBAFJHFHFTHBVDLHCHBD@DAPBTDLBBDBPCLBDBBHHHDJ@DKLBJGJ@^CJIFGBED@FNTGFCNDBP@BDDLFFFBDAFGD@BDBTKHAHIJ@DJH@DCHBHH@@B@BQLHN@LFBBABIFBATBFDBFGHBLKD@D@HHNAF@PHDB@HAN@RJNFBDDCLBFHLJJBFDHP@FBBBJCDFH@JFJBH@B@BCEIBI@KHCLFBbDJFL@DEDCJCDGBAFCFCDGBCBDPCHUNMBCD@FEFGECD@RADAF@ZDFAJXNBDBFBBRJRDNAHN@FHNZNPATDJHVFD@DAJMFALDLBNCFBDBFPHFFBZ@LHF@H@NFDBDNFHJHHBHFHTBHDDT@LHLBbAFBDDBBEVEPIR@FBD@HHJJ@FBAJLLLZBB`D"],"encodeOffsets":[[119194,26658]]},"properties":{"cp":[116.72978,25.191603],"name":"龙岩市","childNum":1}},{"id":"350900","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@KBWJOLYXEJAFDRFHHHXLLDRARGPKJKFUDI\\KDEBEACEAUDC@]SIA"],["@@MFEFM^@RJXDHPLHDH@PKTGjEZHTJ\\HRCLGBOIOosKuC"],["@@I@IHIHEJAJPLLFFHFNTTHJFDHBJ@LGFE@I@MI_CAKBOEAIBGSMIC"],["@@E@IH@JBBJDBDBFDH@BEFBDNDFDJBRGDLDDFBF@DCDC@CASEICMGECAEDO@AAAEEES@"],["@@DMA@K@IBIHABNHFEL@"],["@@BBH@DDD@AGKCA@AF"],["@@NLFBPBDBDAACEIE@EAAAIBIEAB@D"],["@@BFF@DBB@BCHB@GDA@AKAE@BCH@@ACCC@@ADA@CEACAID@FFBABBDABCB@BFDAB"],["@@CFHB@FBABBDCD@D@BADBFEE@EEB@BBDACC@AIA@ACC@ACAC@ABBFBB@DCD@B"],["@@ADD@DEE@@B"],["@@ADDAAA"],["@@@FBBBGDEAAA@ABAF"],["@@JDBBD@B@BEAAC@M@@B"],["@@BBDCD@DDDACGE@EAA@AFBD"],["@@BBD@FEFFJAJABCCAGBKEC@AAA@AB@FCBAD"],["@@JBABBBN@RC@CACF@DFB@BCAA@AD@BCEACDEA@AC@@CCABECAIBEAADEAADG@EAOHEFBDDBHAPF"],["@@H@@AB@HBBACCEAKFBB"],["@@D@DEJADHDALBBBD@@CGAKIEC@AD@D@JBD@@E@AE@AIA@ADCACBEAAAE@AEG@@D@HJHGDBFAHBD"],["@@ILDHRJL@@AECBC@CDACEKGG@"],["@@FBJ@NBD@EEI@CCK@EA@DDD"],["@@HBHCD@DB@FNDDAACFEAAGCEAIBCAKAGF@BDD"],["@@C@CB@DG@IDEH@DF@BDB@BCD@BAFDDABEH@BCAEEE"],["@@JBDHHDB@DCB@BCH@@CFABA@EAAM@CCG@KGCA@F@FEAEBBFABBDDDB@@C@@"],["@@@DJJJABCDABEBAHDFCEC@ECAIDAF@@ICCDEAAF"],["@@HHJ@@CF@ACAAKCCAA@AB@B@D"],["@@DDL@@AHB@@CEKAGD"],["@@HBFD@HD@B@BGDCDCCCBAAAGBGAE@GB@DB@BD"],["@@BDFADBDFCLJBFFBA@EBCHEDGIACGWBED"],["@@AB@DPBHHD@BEAC@CEEEGIAAF@DAD"],["@@CPBBF@DABAEIFBFA@C@CECAGGGI@ABBDBBHP"],["@@FDD@DIQBDD"],["@@H@@CACC@BDC@@D"],["@@BBJ@HBF@FAT@JBFDBBTCDC@AKIE@@ABCACCC@GEE@ALGFI@AAAKBEBEJA@ECG@ABBFCNQACFKDAFGB@BFDADBD"],["@@IFIHBDADN@FAHEF@DCD@BA@A@AHDD@@EF@CEEACEEAEAC@AD@@DD@DGDE@"],["@@A@AFDLDFJDNC@CBCAC[K"],["@@CH@FBBLDHDLBL@dLDADERCNIBCACIGEGC@GDOBAEGEYEEEC@AFEBG@CDCDCJ"],["@@FJHBJKEECAEBEAAD@D"],["@@BBFBFARHB@EE@ADACEBCAEEBE@@BG@AFCBAD"],["@@A@BCCCIDGEJOJ@HGH@DCBKACDEHEAIBCFAP@HCDGJCAEDCDCJABM@INFFC@EIGKMPEDMDEH@HEN@D@DGCG@CBEHEH@JAHGAEKGILCBA@AEBU@ACE@CDAB@F@JCTCDDDLD@^KHKLCDB@HDBFA@ABANDLCDBFNKBIJPRFDFADEHEDCHDJCN@BAAAMG@CDANBBAAGDCFD@HBHHABCB@BF@FB@JEHBF@BHDDHBD@D@H@LIDBADDBNAHBHAPCBDCLG@ADDDCF@BJHABI@ABDDL@DBDF@DFHRJDDFH@DABOEADBHHDVDRFP@BB@JLFVEFABG@ONBFKPO@GAEDCP@TGN@BLDFL@JVDDHBFFDLLBNNJ@FDAVDDRHVDHAFABEFAJBFHBJCJEFCHBFFFPFdDF@BBFABCJ@LEBBF@VNH@LBD@LKFCHADDFABDJBDHPDRLDJD@XMDE@G@OGECE@EDELKNWDAH@HDJJJDFANGJ@DFBCHABBAHDJ@H@BFDHCBC@CGEBANEH@RHLIHKDGEMGI@ABECCACDGRGBE@AEK@ELIBERKJADAHKJUJI\\UDYJOLIFCZUAGCEICGDEHI@QKGIBEVMHG@AGOIG@CDEKEDAJ@BA@CGEJIBGEE@ARADGNGBCCEDIRIDE@GBAHBFAbeuoQMoUAI@MACOKY@kH_D]ACDCJCBE@[KCAIBSLC@GCAEBKLKBEAIEOHOPUBG@CGC@I@CAAEDAXAJCDGBEDUAKCIFIBGCICCaCGIKG@EFMIGCKAOCKBAFBBAAK@OEEMIISC@MBDJC@O@KFeECBMJEB_@QEIBGHC@MMECEBGJCBK@CCACACBQHS@I@EGIMIMKMAQ@QAGCIIEAIA]DKAIECKBOJ]BEFEJApARAhHFECCKEEGFWJOHAD@LFNBB@FEHAPFD@BICG]QOaOQ@CPQL@LCnPDBJ@DE@EACIGAC@CTBDAFC@QGMCASMkGKCMKIICEBCDCDQHMCMBEHCNDHBB@@CIGAEBG@@JBJDJAFC@A@ECEIG…cKKGA]FIDCDING@ƒgoYSCIAQBSFMDUESKIQGG@AFCAADKFCHA@CAAEAACICAOEEYAUIEGIECCBEEIKQSGQ@KAYDQDQBGDELGDAFBBDPAFBFLP@HAPBDPLDF@JEJ@BFNLLFD`NPJJLRDTPD@D@VED@LDNALBF@FGBIBCDADBBDATDDLDJR@HEFAJFHT@DDCN@HBDHHFFAFKJAFAFBHNJNNDBFLJTNH^DJDBLAHBBRJFHBBP@ddFFBJAJGLCBGBgGo@QAUCYKI@GBAB@FDH@FEDGAGGG@IDM@UIECGIAENONY@OEGGUc[IMGQKIDOFGBIEE@EBEHADC@EGEKAIGKCGIUGG@IBEBEHAH@J@DLV@BAFUPeRMA[GECmNG@•MW@Q@SFaT}|CHI^G@BGBI@EBIFEJE@GGYEIOCMFEDCAECCCBGNM@EMQK@IgGOQIQGUOKDA@OMBIrqLGLENBLJLBHHrPHFFHFBR@JCLITA^DVDT@JEFEPQDETIP@fOHMBEEGACJOJGDMAEINAHSLCHIDSNIB[CKBCA@CHECASOICWLEBG@UFMII@EACCOo@CMEEFE@CG@CAGEAI@OFGACBMGQEE@CB@BBFABMBA@@DEB@FCDEDMFE@GEE@GHQAMLEBICCBCDFD@FAD]LM@CDOVLJ@BKRKFAJIDMR@JBDILCDWA@FKDSLEA@CEAE@CDGBS@MEUCMAEBMPKBCA@CAAG@AABAZIBGICG@CBIBIDMBOAAE@MIOEEUCCBCDG@CB@KCDG@AA@C@AFCBEEEIBIE@EEGGCCBA@EAAEED@DGCA@@DDFF@BJABEB@HUBE@EAUWGQG…CCIDADIHUJGBCEIYII]GEBQX@TGHMZCFMFCAEIGCIMCCMEG@C@IIAEC@CBGAEDE@GAAGAAGHEBQ@CA@CAAO@AD@DEHBJEDADCFIBBBBDEHBFCD@HC@CA@KAAIACBCDA@OCK@QHCDBFFHLHJBBD@FEFEFMJCFCBC@MMCAI@_DGCBMACKFEAAMACGA@EBEF@@CIIACDI@AGEKFC@ECCC@CPO@CEEACFG@AECACCAE@IHEBS@KAQGKEEICUOMCKBGFEPBFEBKG[GECAM@CDSVE@UAKBaIGCCC[G@C@ICCOGAKIMaSUGCNBBGDAJOCFEMGCJ@L@FD@BDCFWT@DPL@^CHMFOFIBABFLEJEFS@GBCDC@EAUBCG@G@AFADCAKJABGAGQGGIC@GEAE@QCIDQAEGMHE^OTGFCIOFKIA@ICEBEFCRAHEFECGJGHKDCFAF@RKFGAICICUGC[QEA[FMF@FABEB{BQ[GGGCEEMICCAYLCBA@CACCAE@CDABC@@CC@G@DICCUIGICFDPAPAFGHELBHADEJEFDFTNEPDF@DKHKDSNQDEDKNIBEAGGC@CAMOECK@DH@LIDCD@HFN@DCDEABECGEAOBCCAECCIBABBV@PCDUH@HCB@HAJBB@B@LHHHBFLJFBFBJCHEFID@DHFBFAJBFJNRJXJHHD@BID@F@JLJT@JGXZn@JENNP@FEFC@KBKGEACBGBIBKFEJCHDD@FDJAPDJ@LFP@HGRFN@FAHDHF@FNDRALLN@FCNCBOHUBIHCDBDFJLJCFDLLPD@FCFDD@HCD@@NFT@JLHDH@\\BJLVHJBPDF@FCFDFDBJ@FFHj@HAJEHEHMJCFJXBBVBH@D@BDAFFFZDHCJAJFJAPFHLDDGTNLBH@JBLFB@DGJCFI^e^EJHPLPTBLG@KFGJGPCJBLFPNHBZMNARBREV@LDHHBLANFHRNXDRFJHXL@DCHDDHDBLEFAHBLJJFDFALEFHDBTRDLDPDJJLHLRNBNJXHFRFDFHHBLBFBBJ@D@BGHETCHDJRDBBDCF@LS@@NBNECIAI@EB@LNZBJKEC@@BBH@BED@DHHFDF@HGNCJAR@TIF@LBFCDGHgCSDEPICKMQDIHABEDAF@FHHGJAJJFDZAFBJA@HBBF@JEDGB@JJB@AGBEH@BDBBBCD@FDD@@AFBBAHCXADC@GCGBILINCBC@IBCD@F@DC@EBAFC@KbFBDEZIJADATBBLBTCVHFDFADDBDEHBPFDPDHDF@FBDDNEFGDAJJHBBHFFAFEDQHI@IFADBHJbBLCJCFGBKAE@@B@DFJ@H@N@L@LDFCDDFLEJBVHH`@HDFD@F@HGJ@LEHBHC@GBCAMHGBAFFFADE@GBCDBBDF@DDJABIBAD@BJFHFJAFKHCJKFBFBD@BEBCCKJCAAFABG@MGSPKTC@E@EBAHGDADD@H@BDCLAL@XFBBH@FCFN^HFDBLEB@BBBJFDVAAH@LCHBFFDBF@HFBJD@FCN@NDDN@LFNR@BAPGHIJCDCPAPDNLBBBDJLPBF@DNdNH~ZLHNDLHFHD@AHHBAHEB@F@JCBFHJHTTVPLFfJl@LEJK@IDMHKJIPFLDJHTTRZDL@RLTDNE^N\\XRBD@BENBHCHFFAFD\\@JN@FHFAFCFAFDBDBJBDVCFBDH@FELBFH@DGHABI@A@ABAHBDAD@HFHCBBLFDFB@DAFEDALALDDJB@PFD@NAFBFCBC\\CDCF@HE@EIQBEPQ@ACIECCG@EAAGDAAGEC@ECAKDGFE@ECE@GDGBWFCLBJEH@vGDGIM@OC@C@ACEKEGCIHCDCACD@JFPBFADB@FBBDEHACCBCVQACDKHAFC@EIGAOBALC@GBGGC@EBCFB@A@CEADGEIHMMIDGCC@KIEEA"]],"encodeOffsets":[[[123250,27563]],[[122541,27268]],[[123020,27189]],[[122916,27125]],[[121678,27068]],[[123398,27612]],[[123294,27747]],[[123611,27636]],[[123592,27651]],[[123587,27574]],[[123587,27576]],[[123438,27501]],[[123358,27630]],[[123380,27622]],[[123263,27607]],[[123185,27583]],[[123137,27586]],[[123136,27581]],[[123105,27518]],[[123002,27474]],[[123025,27443]],[[123021,27325]],[[123237,27343]],[[123240,27281]],[[123209,27290]],[[122984,27247]],[[123034,27193]],[[123016,27168]],[[123017,27126]],[[122884,27182]],[[122850,27191]],[[122865,27137]],[[122785,27331]],[[122683,27314]],[[122653,27317]],[[122636,27252]],[[122672,27239]],[[122677,27206]],[[122569,28102]]]},"properties":{"cp":[119.527082,26.95924],"name":"宁德市","childNum":39}}],"UTF8Encoding":true});
}));
ÏîÄ¿´úÂë/BigScreen/src/components/echart/bottom/bottomCenterChart/chart.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,184 @@
<template>
  <div>
    <Echart
      :options="options"
      id="bottomLeftChart"
      height="480px"
      width="100%"
    ></Echart>
  </div>
</template>
<script>
import Echart from "@/common/echart";
export default {
  data() {
    return {
      options: {},
    };
  },
  components: {
    Echart,
  },
  props: {
    cdata: {
      type: Object,
      default: () => ({}),
    },
  },
  watch: {
    cdata: {
      handler(newData) {
        this.options = {
          title: {
            text: "",
          },
          tooltip: {
            trigger: "axis",
            backgroundColor: "rgba(255,255,255,0.1)",
            axisPointer: {
              type: "shadow",
              label: {
                show: true,
                backgroundColor: "#7B7DDC",
              },
            },
          },
          legend: {
            data: [
              "稼动率",
            ],
            textStyle: {
              color: "#fff",
              fontSize: 14,
            },
            top: "0%",
            right:"5%"
          },
          grid: {
            x: "7%",
            width: "93%",
            bottom:"10%"
          },
          xAxis: {
            data: newData.category,
            name:'日期',
            nameLocation:"middle",
            nameTextStyle:{
              color: ["white"],
              padding:[15,0,0,0],
              fontSize:16
            },
            splitLine: {
              show: true,
              lineStyle: {
                color: ["#273169"],
              },
            },
            axisLine: {
              lineStyle: {
                color: "#B4B4B4",
              },
            },
            axisTick: {
              show: false,
            },
          },
          calculable: true,
          yAxis: [
            {
              min: 0, // åˆ»åº¦æœ€å°å€¼
              max: 100, // åˆ»åº¦æœ€å¤§å€¼ï¼ˆéœ€è¦åŠ¨æ€èŽ·å–æœ€å¤§å€¼,并且能被3整除(向下取整再乘回来))
              splitNumber: 10, // æ¨ªçº¿æ•°
              interval: 10, // åˆ»åº¦é—´éš”
              axisLine: {
                lineStyle: {
                  color: "#B4B4B4",
                },
              },
              splitLine: {
              show: true,
              lineStyle: {
                color: ["#273169"],
              },
            },
              axisLabel: {
                formatter: "{value} ",
              },
              name: "单位(%)",
              nameTextStyle: {
                color: "#ffffff",
                nameLocation: "start",
                padding:[0,0,10,0],
                fontSize:14
              },
            },
            {
              axisLine: {
                lineStyle: {
                  color: "#B4B4B4",
                },
              },
              axisLabel: {
                formatter: "{value} ",
              },
            },
          ],
          series: [
            {
              name: "稼动率",
              type: "bar",
              barWidth: 20,
              areaStyle: {
                color: {
                  type: "linear",
                  x: 0,
                  y: 0,
                  x2: 0,
                  y2: 0,
                  colorStops: [
                    {
                      offset: 0,
                      color: "rgba(255, 255, 0,0.5)",
                    },
                    {
                      offset: 0.6, //这是于下方线的距离,设置1就不留空隙
                      color: "rgba(255, 255, 0,0.1)",
                    },
                  ],
                  global: false,
                },
              },
              itemStyle: {
                normal: {
                  barBorderRadius: 2,
                  color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                    { offset: 0, color: "#ffff00" },
                    { offset: 1, color: "#ffff00" },
                  ]),
                  label: {
                    show: true, //开启显示
                    position: 'top', //在上方显示
                    textStyle: { //数值样式
                      color: 'white',
                      fontSize: 12
                    },
                    formatter: function (params) {
                      return params.value + '%';
                    },
                  }
                },
              },
              data: newData.actionData,
            },
          ],
        };
      },
      immediate: true,
      deep: true,
    },
  },
};
</script>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/bottom/bottomCenterChart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
<template>
  <div>
    <Chart :cdata="cdata" />
  </div>
</template>
<script>
import Chart from "./chart.vue";
import axios from "@/api/ajax.js"
export default {
  data() {
    return {
      isActivation: true,
      datelist: [ "2024-06-06", "2024-06-05", "2024-06-04", "2024-06-03", "2024-06-02", "2024-06-01", "2024-05-31" ],
      cdata: {
        category: ["06-01", "06-02", "06-03", "06-04", "06-05", "06-06", "06-07"],
        actionData: [100, 100, 100, 100, 100, 100, 100],
      },
    };
  },
  components: {
    Chart,
  },
  mounted() {
    this.GetUtilization();
  },
  methods: {
    GetUtilization() {
      axios.post("/api/dt_WorkOrder/getUtilization", null, "").then((x) => {
        if (x.data.status) {
          var data = x.data.data;
          if(data==null){
            return;
          }
          var dateslist=[];
          data.datelist.forEach(x=>{
            var date=x.substring(x.indexOf("-")+1,x.length);
            dateslist.push(date);
          });
          this.cdata={
            category:dateslist.reverse(),
            actionData: data.perdatalist.reverse()
          };
          if(this.isActivation){
            setInterval(() => {
              this.GetUtilization();
            },5000);
            this.isActivation=false;
          }
        }
      });
    },
  },
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/bottom/bottomLeftChart/chart.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,187 @@
<template>
  <div>
    <Echart
      :options="options"
      id="bottomLeftChart"
      height="480px"
      width="100%"
    ></Echart>
  </div>
</template>
<script>
import Echart from "@/common/echart";
export default {
  data() {
    return {
      options: {},
    };
  },
  components: {
    Echart,
  },
  props: {
    cdata: {
      type: Object,
      default: () => ({}),
    },
  },
  watch: {
    cdata: {
      handler(newData) {
        this.options = {
          title: {
            text: "",
          },
          tooltip: {
            trigger: "axis",
            backgroundColor: "rgba(255,255,255,0.1)",
            axisPointer: {
              type: "shadow",
              label: {
                show: true,
                backgroundColor: "#7B7DDC",
              },
            },
          },
          legend: {
            data: ["压力值"],
            textStyle: {
              color: "#fff",
              fontSize: 14,
            },
            top: "0%",
            right: "3%",
          },
          grid: {
            x: "4.8%",
            width: "94%",
            bottom: "10%",
          },
          xAxis: {
            type: 'value',
            name:'单位(h)',
            nameLocation:"middle",
            min:0.5,
            max:20,
            interval: 0.5,
            nameTextStyle:{
              color: ["white"],
              padding:[15,0,0,0],
              fontSize:14
            },
            axisLine: {
              lineStyle: {
                color: "#B4B4B4",
              },
            },
            splitLine: {
              show:true,
              lineStyle: {
                color: ["#273169"],
              },
            },
            axisTick: {
              show: false,
            },
          },
          calculable: true,
          yAxis: [
            {
              type:"value",
              min: 28, // åˆ»åº¦æœ€å°å€¼
              max: 35, // åˆ»åº¦æœ€å¤§å€¼ï¼ˆéœ€è¦åŠ¨æ€èŽ·å–æœ€å¤§å€¼,并且能被3整除(向下取整再乘回来))
              splitNumber: 10, // æ¨ªçº¿æ•°
              interval: 0.5, // åˆ»åº¦é—´éš”
              splitLine: {
                show: true,
                lineStyle: {
                  color: ["#273169"],
                },
              },
              axisLine: {
                lineStyle: {
                  color: "#B4B4B4",
                },
              },
              axisLabel: {
                formatter: "{value} ",
              },
              name: "单位(t)",
              nameTextStyle: {
                color: "#ffffff",
                nameLocation: "start",
                padding:[0,0,10,0],
                fontSize:14
              },
            },
            {
              axisLine: {
                lineStyle: {
                  color: "#B4B4B4",
                },
              },
              axisLabel: {
                formatter: "{value} ",
              },
            },
          ],
          series: [
            {
              name: "压力值",
              type: "line",
              barWidth: 10,
              areaStyle: {
                color: {
                  type: "linear",
                  x: 0,
                  y: 0,
                  x2: 0,
                  y2: 0,
                  colorStops: [
                    {
                      offset: 0,
                      color: "rgba(220, 20, 60,0.5)",
                    },
                    {
                      offset: 0.6, //这是于下方线的距离,设置1就不留空隙
                      color: "rgba(220, 20, 60,0.1)",
                    },
                  ],
                  global: false,
                },
              },
              itemStyle: {
                normal: {
                  barBorderRadius: 2,
                  color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                    { offset: 0, color: "red" },
                    { offset: 1, color: "red" },
                  ]),
                  label: {
                    // show: true, //开启显示
                    position: "top", //在上方显示
                    distance: 10,
                    textStyle: {
                      //数值样式
                      color: "white",
                      fontSize: 10,
                    },
                    //添加后缀
                    formatter: function (params) {
                      return params.value;
                    },
                  },
                },
              },
              data: newData.pressData,
            }
          ],
        };
      },
      immediate: true,
      deep: true,
    },
  },
};
</script>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/bottom/bottomLeftChart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<template>
  <div>
    <Chart :cdata="cdata" />
  </div>
</template>
<script>
import Chart from "./chart.vue";
import axios from "@/api/ajax.js";
export default {
  data() {
    return {
      isProductQuality: true,
      cdata: {
        // category: ["0.5","1", "1.5", "2", "2.5",
        // "3", "3.5","4", "4.5", "5",
        // "5.5","6","6.5","7","7.5",
        // "8", "8.5", "9", "9.5", "10",
        // "10.5", "11","11.5", "12","12.5","13", "13.5", "14", "14.5",
        // "15", "15.5","16", "16.5", "17",
        // "17.5","18","18.5","19","19.5",
        // "20", "20.5", "21", "21.5", "22",
        // "22.5", "23","23.5", "24","24.5","25", "25.5", "26", "26.5",
        // "27", "27.5","28", "28.5", "29",
        // "29.5","30","30.5","31","31.5",
        // "32", "32.5", "33", "33.5", "34",
        // "34.5", "35","35.5", "36","36.5", "37","37.5", "38","38.5","39", "39.5", "40", "40.5",
        // "41", "41.5","42", "42.5", "43",
        // "43.5","44","44.5","45","45.5",
        // "46", "46.5", "47", "47.5", "48"],
        pressData: [[0.5,29],[1,29.5],[1.5,30],[2,30],[2.5,30.5],[3.5,28],[18,30]], //压机历史值
      },
      IsPrevalue:true,
      orderID:""
    };
  },
  components: {
    Chart,
  },
  mounted() {
    this.GetPrevalues();
  },
  methods: {
    GetPrevalues() {
      axios.post("/api/dt_WorkOrder/getPLCData", null, "").then((res) => {
        if (res.data.status) {
          var data=res.data.data.prevalus;
          var id=res.data.data.workorderid;
          if(data==null && id!=this.orderID)
            return console.log("data值为空");
          this.orderID=id;
          this.cdata.pressData=data;
        }
        if(this.IsPrevalue){
            setInterval(() => {
              this.GetPrevalues();
            },3333);
            this.IsPrevalue=false;
          }
      });
    }
  },
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/bottom/bottomRightChart/chart.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,358 @@
<template>
  <div>
    <Echart
      :options="options"
      id="centreLeft1Chart"
      height="480px"
      width="100%"
    ></Echart>
  </div>
</template>
<script>
import Echart from '@/common/echart'
export default {
  data () {
    return {
      options: {},
      // å®šä¹‰é¢œè‰²
      colorList: {
        linearYtoG: {
          type: "linear",
          x: 0,
          y: 0,
          x2: 1,
          y2: 1,
          colorStops: [
            {
              offset: 0,
              color: "#f5b44d"
            },
            {
              offset: 1,
              color: "#28f8de"
            }
          ]
        },
        linearGtoB: {
          type: "linear",
          x: 0,
          y: 0,
          x2: 1,
          y2: 0,
          colorStops: [
            {
              offset: 0,
              color: "#43dfa2"
            },
            {
              offset: 1,
              color: "#28f8de"
            }
          ]
        },
        linearBtoG: {
          type: "linear",
          x: 0,
          y: 0,
          x2: 1,
          y2: 0,
          colorStops: [
            {
              offset: 0,
              color: "#1c98e8"
            },
            {
              offset: 1,
              color: "#28f8de"
            }
          ]
        },
        areaBtoG: {
          type: "linear",
          x: 0,
          y: 0,
          x2: 0,
          y2: 1,
          colorStops: [
            {
              offset: 0,
              color: "rgba(35,184,210,.2)"
            },
            {
              offset: 1,
              color: "rgba(35,184,210,0)"
            }
          ]
        }
      }
    };
  },
  components: {
    Echart,
  },
  props: {
    cdata: {
      type: Object,
      default: () => ({})
    },
  },
  watch: {
    cdata: {
      handler (newData) {
        this.options = {
          title: {
            text: "",
            textStyle: {
              color: "#D3D6DD",
              fontSize: 24,
              fontWeight: "normal"
            },
            subtext: newData.year + "/" + newData.weekCategory[6],
            subtextStyle: {
              color: "#fff",
              fontSize: 16
            },
            top: 50,
            left: 80
          },
          legend: {
            top: 120,
            left: 80,
            orient: "vertical",
            itemGap: 15,
            itemWidth: 12,
            itemHeight: 12,
            data: ["平均指标", "我的指标"],
            textStyle: {
              color: "#fff",
              fontSize: 14
            }
          },
          tooltip: {
            trigger: "item"
          },
          radar: {
            center: ["68%", "27%"],
            radius: "40%",
            name: {
              color: "#fff"
            },
            splitNumber: 8,
            axisLine: {
              lineStyle: {
                color: this.colorList.linearYtoG,
                opacity: 0.6
              }
            },
            splitLine: {
              lineStyle: {
                color: this.colorList.linearYtoG,
                opacity: 0.6
              }
            },
            splitArea: {
              areaStyle: {
                color: "#fff",
                opacity: 0.1,
                shadowBlur: 25,
                shadowColor: "#000",
                shadowOffsetX: 0,
                shadowOffsetY: 5
              }
            },
            indicator: [
              {
                name: "Ng率",
                max: newData.maxData
              },
              {
                name: "Ok率",
                max: 10
              },
              {
                name: "异常率",
                max: 12
              },
              {
                name: "正常率",
                max: 3.5
              }
            ]
          },
          grid: {
            left: 90,
            right: 80,
            bottom: 40,
            top: "60%"
          },
          xAxis: {
            type: "category",
            position: "bottom",
            axisLine: true,
            axisLabel: {
              color: "rgba(255,255,255,.8)",
              fontSize: 12
            },
            data: newData.weekCategory
          },
          // ä¸‹æ–¹Yè½´
          yAxis: {
            name: "OK数量",
            nameLocation: "end",
            nameGap: 24,
            nameTextStyle: {
              color: "rgba(255,255,255,.5)",
              fontSize: 14
            },
            max: newData.maxData,
            splitNumber: 4,
            axisLine: {
              lineStyle: {
                opacity: 0
              }
            },
            splitLine: {
              show: true,
              lineStyle: {
                color: "#fff",
                opacity: 0.1
              }
            },
            axisLabel: {
              color: "rgba(255,255,255,.8)",
              fontSize: 12
            }
          },
          series: [
            {
              name: "",
              type: "radar",
              symbolSize: 0,
              data: [
                {
                  value: newData.radarDataAvg[6],
                  name: "平均指标",
                  itemStyle: {
                    normal: {
                      color: "#f8d351"
                    }
                  },
                  lineStyle: {
                    normal: {
                      opacity: 0
                    }
                  },
                  areaStyle: {
                    normal: {
                      color: "#f8d351",
                      shadowBlur: 25,
                      shadowColor: "rgba(248,211,81,.3)",
                      shadowOffsetX: 0,
                      shadowOffsetY: -10,
                      opacity: 1
                    }
                  }
                },
                {
                  value: newData.radarData[6],
                  name: "我的指标",
                  itemStyle: {
                    normal: {
                      color: "#43dfa2"
                    }
                  },
                  lineStyle: {
                    normal: {
                      opacity: 0
                    }
                  },
                  areaStyle: {
                    normal: {
                      color: this.colorList.linearGtoB,
                      shadowBlur: 15,
                      shadowColor: "rgba(0,0,0,.2)",
                      shadowOffsetX: 0,
                      shadowOffsetY: 5,
                      opacity: 0.8
                    }
                  }
                }
              ]
            },
            {
              name: "",
              type: "line",
              smooth: true,
              symbol: "emptyCircle",
              symbolSize: 8,
              itemStyle: {
                normal: {
                  color: "#fff"
                }
              },
              lineStyle: {
                normal: {
                  color: this.colorList.linearBtoG,
                  width: 3
                }
              },
              areaStyle: {
                normal: {
                  color: this.colorList.areaBtoG
                }
              },
              data: newData.weekLineData,
              lineSmooth: true,
              markLine: {
                silent: true,
                data: [
                  {
                    type: "average",
                    name: "平均值"
                  }
                ],
                precision: 0,
                label: {
                  normal: {
                    formatter: "平均值: \n {c}"
                  }
                },
                lineStyle: {
                  normal: {
                    color: "rgba(248,211,81,.7)"
                  }
                }
              },
              tooltip: {
                position: "top",
                formatter: "{c} m",
                backgroundColor: "rgba(28,152,232,.2)",
                padding: 6
              }
            },
            {
              name: "占位背景",
              type: "bar",
              itemStyle: {
                normal: {
                  show: true,
                  color: "#000",
                  opacity: 0
                }
              },
              silent: true,
              barWidth: "50%",
              data: newData.weekMaxData,
              animation: false
            }
          ]
        }
      },
      immediate: true,
      deep: true
    }
  }
};
</script>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/bottom/bottomRightChart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
<template>
  <div>
    <Chart :cdata="cdata" />
  </div>
</template>
<script>
import Chart from "./chart.vue";
export default {
  data() {
    return {
      drawTiming: null,
      cdata: {
        year: null,
        weekCategory: [],
        radarData: [],
        radarDataAvg: [],
        maxData: 500,
        weekMaxData: [],
        weekLineData: [],
      },
    };
  },
  components: {
    Chart,
  },
  mounted() {
    this.drawTimingFn();
  },
  beforeDestroy() {
    clearInterval(this.drawTiming);
  },
  methods: {
    drawTimingFn() {
      this.setData();
      this.drawTiming = setInterval(() => {
        this.setData();
      }, 6000);
    },
    setData() {
      // æ¸…空轮询数据
      this.cdata.weekCategory = [];
      this.cdata.weekMaxData = [];
      this.cdata.weekLineData = [];
      this.cdata.radarData = [];
      this.cdata.radarDataAvg = [];
      let dateBase = new Date();
      this.cdata.year = dateBase.getFullYear();
      // å‘¨æ•°æ®
      for (let i = 0; i < 7; i++) {
        // æ—¥æœŸ
        let date = new Date();
        this.cdata.weekCategory.unshift(
          [date.getMonth() + 1, date.getDate() - i].join("/")
        );
        // æŠ˜çº¿å›¾æ•°æ®
        this.cdata.weekMaxData.push(this.cdata.maxData);
        let distance = Math.round(Math.random() * 500);
        this.cdata.weekLineData.push(distance);
        // é›·è¾¾å›¾æ•°æ®
        // æˆ‘的指标
        let averageSpeed = +(Math.random() * 5 + 3).toFixed(3);
        let maxSpeed = averageSpeed + +(Math.random() * 3).toFixed(2);
        let hour = +(distance / 1000 / averageSpeed).toFixed(1);
        let radarDayData = [distance, averageSpeed, maxSpeed, hour];
        this.cdata.radarData.unshift(radarDayData);
        // å¹³å‡æŒ‡æ ‡
        let distanceAvg = Math.round(Math.random() * 500);
        let averageSpeedAvg = +(Math.random() * 4 + 4).toFixed(3);
        let maxSpeedAvg = averageSpeedAvg + +(Math.random() * 2).toFixed(2);
        let hourAvg = +(distance / 1000 / averageSpeed).toFixed(1);
        let radarDayDataAvg = [
          distanceAvg,
          averageSpeedAvg,
          maxSpeedAvg,
          hourAvg,
        ];
        this.cdata.radarDataAvg.unshift(radarDayDataAvg);
      }
    },
  },
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/center/centerChartRate/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
<template>
  <div>
    <!-- é€šè¿‡çއ/达标率 -->
    <Echart
      :options="options"
      :id="id"
      height="100px"
      width="100px"
    ></Echart>
  </div>
</template>
<script>
import Echart from '@/common/echart'
export default {
  data () {
    return {
      options: {},
    };
  },
  components: {
    Echart,
  },
  props: {
    id: {
      type: String,
      required: true,
      default: "chartRate"
    },
    tips: {
      type: Number,
      required: true,
      default: 50
    },
    colorObj: {
      type: Object,
      default: function () {
        return {
          textStyle: "#3fc0fb",
          series: {
            color: ["#00bcd44a", "transparent"],
            dataColor: {
              normal: "#03a9f4",
              shadowColor: "#97e2f5"
            }
          }
        };
      }
    }
  },
  watch: {
    // tips æ˜¯ä¼šå˜æ›´çš„æ•°æ®ï¼Œæ‰€ä»¥è¿›è¡Œç›‘听
    tips: {
      handler (newData) {
        this.options = {
          title:{
            text: newData * 1 + " ",
            x: "center",
            y: "center",
            textStyle: {
              color: this.colorObj.textStyle,
              fontSize: 28
            }
          },
          series: [
            {
              type: "pie",
              radius: ["75%", "80%"],
              center: ["50%", "50%"],
              hoverAnimation: false,
              color: this.colorObj.series.color,
              label: {
                normal: {
                  show: false
                }
              },
              data: [
                {
                  value: newData,
                  itemStyle: {
                    normal: {
                      color: this.colorObj.series.dataColor.normal,
                      shadowBlur: 10,
                      shadowColor: this.colorObj.series.dataColor.shadowColor
                    }
                  }
                },
                {
                  value: 500 - newData
                }
              ]
            }
          ]
        }
      },
      immediate: true,
      deep: true
    }
  }
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft/centerLeft1Chart/chart.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
<template>
  <div>
    <Echart
      :options="options"
      id="centreLeft1Chart"
      height="220px"
      width="260px"
    ></Echart>
  </div>
</template>
<script>
import Echart from '@/common/echart'
export default {
  data () {
    return {
      options: {},
    };
  },
  components: {
    Echart,
  },
  props: {
    cdata: {
      type: Object,
      default: () => ({})
    },
  },
  watch: {
    cdata: {
      handler (newData) {
        this.options = {
          series: [
            {
              type: "pie",
              radius: [40, 50],
              hoverAnimation: false,
              itemStyle: {
                borderColor: 'gray', // è¾¹æ¡†é¢œè‰²
                borderWidth: 1      // è¾¹æ¡†å®½åº¦
            },
              center: ["50%", "35%"],
              data: newData.seriesData,
              label: {//饼图中间文字设置
                normal: {
                    show: false,
                    position: 'center',
                    color:'#fff',
                    fontSize:'16',
                    formatter: "{d}%",
                    },
                },
            }
          ]
        }
      },
      immediate: true,
      deep: true
    }
  }
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft/centerLeft1Chart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
<template>
  <div>
    <Chart :cdata="cdata" />
  </div>
</template>
<script>
import Chart from "./chart.vue";
import axios from "@/api/ajax.js";
export default {
  data() {
    return {
      isEfficient: true,
      cdata: {
        xData: [],
        seriesData: [
          {
            value: 200,
            name: "已完成",
            itemStyle: { color: "#32c5e9" },
            label: {
              normal: {
                show: true,
                formatter: "{d}%",
                textStyle: {
                  fontSize: 16,
                  fontWeight: "bolder",
                },
              },
            },
          },
          { value: 100, name: "未完成", itemStyle: { color: "#00000000" } },
        ],
      },
    };
  },
  components: {
    Chart,
  },
  mounted() {
    // this.GetEfficient();
  },
  methods: {
    GetEfficient() {
      axios.post("/api/xxx/GetEfficient", null, "").then((x) => {
        if (x.data.status) {
          var data = x.data.data;
          this.cdata.seriesData = [
            {
              value: data.dayeta[0], //已完成值
              name: "已完成",
              itemStyle: { color: "#32c5e9" },
              label: {
                normal: {
                  show: true,
                  formatter: "{d}%",
                  textStyle: {
                    fontSize: 16,
                    fontWeight: "bolder",
                  },
                },
              },
            },
            {
              value: data.dayeta[1],//未完成值
              name: "未完成",
              itemStyle: { color: "#00000000" },
            },
          ];
          //开启定时器
          if (this.isEfficient) {
            setInterval(() => {
              this.isEfficient = false;
              this.GetEfficient();
            }, 10000);
          }
        }
      });
    },
  },
};
</script>
<style lang="scss" scoped>
.ec-font {
  font-size: 18px;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft/centerLeft2Chat/chart.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
<template>
  <div>
    <Echart
      :options="options"
      id="centreLeft1Chart"
      height="220px"
      width="260px"
    ></Echart>
  </div>
</template>
<script>
import Echart from '@/common/echart'
export default {
  data () {
    return {
      options: {},
    };
  },
  components: {
    Echart,
  },
  props: {
    cdata: {
      type: Object,
      default: () => ({})
    },
  },
  watch: {
    cdata: {
      handler (newData) {
        this.options = {
          series: [
            {
              type: "pie",
              radius: [40, 50],
              hoverAnimation: false,
              itemStyle: {
                borderColor: 'gray', // è¾¹æ¡†é¢œè‰²
                borderWidth: 1      // è¾¹æ¡†å®½åº¦
            },
              center: ["50%", "35%"],
              data: newData.seriesData,
              label: {//饼图中间文字设置
                normal: {
                    show: false,
                    position: 'center',
                    color:'#fff',
                    fontSize:'16',
                    formatter: "{d}%",
                    },
                },
            }
          ]
        }
      },
      immediate: true,
      deep: true
    }
  }
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft/centerLeft2Chat/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
<template>
  <div>
    <Chart :cdata="cdata" />
  </div>
</template>
<script>
import Chart from "./chart.vue";
import axios from "@/api/ajax.js";
export default {
  data() {
    return {
      isEfficient: true,
      cdata: {
        xData: [],
        seriesData: [
          {
            value: 2900,
            name: "已完成",
            itemStyle: { color: "#32c5e9" },
            label: {
              normal: {
                show: true,
                formatter: "{d}%",
                textStyle: {
                  fontSize: 16,
                  fontWeight: "bolder",
                },
              },
            },
          },
          { value:300, name: "未完成", itemStyle: { color: "#00000000" } },
        ],
      },
    };
  },
  components: {
    Chart,
  },
  mounted() {
    // this.GetEfficient();
  },
  methods: {
    GetEfficient() {
      axios.post("/api/xxx/GetEfficient", null, "").then((x) => {
        if (x.data.status) {
          var data = x.data.data;
          this.cdata.seriesData = [
            {
              value: data.moutheta[0], //已完成值
              name: "已完成",
              itemStyle: { color: "#32c5e9" },
              label: {
                normal: {
                  show: true,
                  formatter: "{d}%",
                  textStyle: {
                    fontSize: 16,
                    fontWeight: "bolder",
                  },
                },
              },
            },
            {
              value: data.moutheta[1],//未完成值
              name: "未完成",
              itemStyle: { color: "#00000000" },
            },
          ];
          //开启定时器
          if (this.isEfficient) {
            setInterval(() => {
              this.isEfficient = false;
              this.GetEfficient();
            }, 10000);
          }
        }
      });
    },
  },
};
</script>
<style lang="scss" scoped>
.ec-font {
  font-size: 18px;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft/centerLeft3Chart/chart.vue
ÎļþÃû´Ó ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft1Chart/chart.vue ÐÞ¸Ä
@@ -2,15 +2,15 @@
  <div>
    <Echart
      :options="options"
      id="centreLeft1Chart"
      id="centreLeft3Chart"
      height="220px"
      width="360px"
      width="260px"
    ></Echart>
  </div>
</template>
<script>
import * as echarts from 'echarts';
import Echart from '@/common/echart'
export default {
  data () {
    return {
@@ -18,7 +18,7 @@
    };
  },
  components: {
    echarts,
    Echart,
  },
  props: {
    cdata: {
@@ -33,19 +33,8 @@
          color: [
            "#37a2da",
            "#32c5e9",
            "#9fe6b8",
            "#ffdb5c",
            "#ff9f7f",
            "#fb7293",
            "#e7bcf3",
            "#8378ea"
            "#ccc",
          ],
          legend:{
            textStyle:{
              color:"#ffffff",
              fontSize:18
            }
          },
          tooltip: {
            trigger: "item",
            formatter: "{a} <br/>{b} : {c} ({d}%)"
@@ -66,11 +55,11 @@
          },
          series: [
            {
              name: "通过率统计",
              name: "货位状态",
              type: "pie",
              radius: [20, 60],
              roseType: "area",
              center: ["50%", "50%"],
              radius: [10, 50],
              // roseType: "area",
              center: ["50%", "40%"],
              data: newData.seriesData
            }
          ]
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft/centerLeft3Chart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
<template>
  <div>
    <Chart :cdata="cdata" />
  </div>
</template>
<script>
import Chart from "./chart.vue";
// import{LEDloctionList} from "@/api/http.js";
export default {
  data() {
    return {
      cdata: {
        xData: ["空货位", "已使用", "禁用"],
        seriesData: [
          { value: 30, name: "空货位" },
          { value: 5, name: "已使用" },
          { value: 15, name: "禁用" },
        ],
      },
    };
  },
  components: {
    Chart,
  },
  mounted() {
    // setInterval(() => {
    //         this.LEDloctionList();
    //       }, 3000);
  },
  methods: {
  }
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/BigScreen/src/components/echart/centerLeft1Chart/index.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/components/item-wrap/item-wrap.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/components/kong.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/components/message/message.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/components/message/message.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/components/reacquire/reacquire.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/components/scale-screen/scale-screen.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/config/UtilVar.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/directives/filters.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/lib/currency.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/lib/dd-moment.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/lib/index.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/lib/types.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/main.js
@@ -1,54 +1,37 @@
/*
 * @Author: daidai
 * @Date: 2022-01-12 14:05:56
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2023-08-07 17:12:07
 * @FilePath: \web-pc\src\pages\big-screen\main.js
 */
import Vue from "vue";
import App from "./App.vue";
import router from './router'
import store from './store'
import {loading,borderBox13,digitalFlop,capsuleChart,borderBox8} from '@jiaminghi/data-view'
import { Radio,Button,RadioGroup } from 'element-ui'
import Echart from './components/echart/index.vue'
import ItemWrap from './components/item-wrap/item-wrap.vue'
import Message from './components/message/message.vue'
import Reacquire from './components/reacquire/reacquire.vue'
import Messages from './components/message/message'
import dataV from '@jiaminghi/data-view'
import "vue-easytable/libs/theme-default/index.css";
import  '@/assets/css/public.scss'
import "@/assets/css/index.scss"
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
import dataV from '@jiaminghi/data-view';
// å¼•入全局css
import './assets/scss/style.scss';
// æŒ‰éœ€å¼•å…¥vue-awesome图标
import Icon from 'vue-awesome/components/Icon';
import 'vue-awesome/icons/chart-bar.js';
import 'vue-awesome/icons/chart-area.js';
import 'vue-awesome/icons/chart-pie.js';
import 'vue-awesome/icons/chart-line.js';
import 'vue-awesome/icons/align-left.js';
import ElementUI from 'element-ui';
import axios from 'axios';
import VueAxios from 'vue-axios';
import * as filters from '@/directives/filters'
require('./mock/mock')//是否使用mock
//引入echart
//4.x å¼•用方式
import echarts from 'echarts'
//5.x å¼•用方式为按需引用
//希望使用5.x版本的话,需要在package.json中更新版本号,并切换引用方式
//import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts
Vue.config.productionTip = false;
Vue.use(VueAxios, axios)
// å…¨å±€æ³¨å†Œ
Vue.component('icon', Icon);
Vue.use(dataV);
Vue.use(ElementUI)
// è‡ªå®šä¹‰ç»„ä»¶
Vue.component("Echart",Echart)
Vue.component("ItemWrap",ItemWrap)
Vue.component("Message",Message)
Vue.component("Reacquire",Reacquire)
Vue.prototype.$Message =  Messages
// element组件
Vue.use(Radio);
Vue.use(Button);
Vue.use(RadioGroup)
// datav组件
Vue.use(loading)
Vue.use(borderBox13)
Vue.use(borderBox8)
Vue.use(digitalFlop)
Vue.use(capsuleChart)
// å…¨å±€æ•°æ®è¿‡æ»¤å™¨
Object.keys(filters).forEach(k => Vue.filter(k, filters[k]));
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");
  render: (h) => h(App),
}).$mount('#app');
ÏîÄ¿´úÂë/BigScreen/src/mock/mock.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/router/index.js
@@ -1,36 +1,21 @@
/*
 * @Author: daidai
 * @Date: 2022-01-12 14:22:29
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-04-28 14:53:02
 * @FilePath: \web-pc\src\pages\big-screen\router\index.js
 */
import Vue from "vue";
import VueRouter from "vue-router";
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter);
Vue.use(VueRouter)
const routes = [  {
  path: '/',
  redirect: '/index',
  path: '/line',
  name: 'indexLine',
  component: () => import('../views/indexLine.vue')
},
{
  path: '/home',
  name: 'home',
  component: () => import(/* webpackChunkName: "LSD.bighome" */ '../views/home.vue'),
  children:[
    {
      path: '/index',
      name: 'index',
      component: () => import(/* webpackChunkName: "LSD.bighome" */ '../views/indexs/index.vue'),
  path:"/pick",
  name:"indexPick",
  component: () => import('../views/indexPick.vue')
    }
  ]
},
];
const router = new VueRouter({
  mode: "hash",
  base: process.env.BASE_URL,
  routes
});
})
export default router;
export default router
ÏîÄ¿´úÂë/BigScreen/src/store/index.js
@@ -1,37 +1,15 @@
/*
 * @Author: your name
 * @Date: 2021-07-26 09:32:49
 * @LastEditTime: 2022-04-26 09:12:33
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \web-pc\src\pages\big-screen\store\index.js
 */
import Vuex from 'vuex';
import Vue from 'vue';
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const modulesFiles = require.context('./modules', true, /\.js$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName]=value.default
  modules[moduleName].namespaced = true;   //打开命名空间
  return modules
}, {})
export default new Vuex.Store({
  modules,
  state: {
export default new Vuex.Store({
  state: {
  },
  mutations: {
      setCollapsed(state,value){
      },
  },
  actions: {
    getUserdata({commit}){
    },
  },
  modules: {
  }
})
ÏîÄ¿´úÂë/BigScreen/src/store/modules/setting.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/utils/drawMixin.js
@@ -1,10 +1,3 @@
/*
 * @Author: daidai
 * @Date: 2022-02-28 10:48:02
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-04-26 14:55:41
 * @FilePath: \web-pc\src\pages\big-screen\utils\drawMixin.js
 */
// å±å¹•适配 mixin å‡½æ•°
// * é»˜è®¤ç¼©æ”¾å€¼
@@ -24,18 +17,10 @@
  data() {
    return {
      // * å®šæ—¶å‡½æ•°
      drawTiming: null,
    }
  },
  computed: {
    isScale(){
      return this.$store.state.setting.isScale
      drawTiming: null
    }
  },
  mounted () {
    if(!this.isScale){
      return
    }
    this.calcRate()
    window.addEventListener('resize', this.resize)
  },
@@ -63,9 +48,6 @@
      }
    },
    resize () {
      if(!this.isScale){
        return
      }
      clearTimeout(this.drawTiming)
      this.drawTiming = setTimeout(() => {
        this.calcRate()
ÏîÄ¿´úÂë/BigScreen/src/utils/index.js
@@ -1,11 +1,3 @@
/*
 * @Author: daidai
 * @Date: 2022-02-23 08:59:26
 * @LastEditors: daidai
 * @LastEditTime: 2022-02-24 17:11:58
 * @FilePath: \big-screen-vue-datav\src\utils\index.js
 */
/**
 * @param {Function} fn é˜²æŠ–函数
 * @param {Number} delay å»¶è¿Ÿæ—¶é—´
@@ -21,6 +13,7 @@
    }, delay);
  };
}
/**
 * @param {date} time éœ€è¦è½¬æ¢çš„æ—¶é—´
 * @param {String} fmt éœ€è¦è½¬æ¢çš„æ ¼å¼ å¦‚ yyyy-MM-dd、yyyy-MM-dd HH:mm:ss
ÏîÄ¿´úÂë/BigScreen/src/utils/map/china.json
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/utils/map/xzqCode.js
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/utils/resizeMixin.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
// æ··å…¥ä»£ç  resize-mixins.js
import { debounce } from '@/utils';
const resizeChartMethod = '$__resizeChartMethod';
export default {
  data() {
    // åœ¨ç»„件内部将图表 init çš„引用映射到 chart å±žæ€§ä¸Š
    return {
      chart: null,
    };
  },
  created() {
    window.addEventListener('resize', this[resizeChartMethod], false);
  },
  activated() {
    // é˜²æ­¢ keep-alive ä¹‹åŽå›¾è¡¨å˜å½¢
    if (this.chart) {
      this.chart.resize()
    }
  },
  beforeDestroy() {
    window.removeEventListener('reisze', this[resizeChartMethod]);
  },
  methods: {
    // é˜²æŠ–函数来控制 resize çš„频率
    [resizeChartMethod]: debounce(function() {
      if (this.chart) {
        this.chart.resize();
      }
    }, 300),
  },
};
ÏîÄ¿´úÂë/BigScreen/src/views/bottomView1.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,138 @@
<template>
  <dv-border-box-12 id="content">
    <div class="Box">
      <div style="margin-top: -10px;position: absolute;top: 28px;left: 20px;">
       <span>
      <icon
        name="chart-line"
        class="text-icon"
        style="margin-left: 5px"
      ></icon>
      </span>
      <span class="fs-xl text mb-1 pl-3" style="font-size: 20px;font-weight: bold;"
        >加压动态</span>
      </div>
      <div style="width:680px;height:70px; position: absolute;left: 135px;top: 10px;background-color: red;border-radius: 15px; display: flex;justify-content: space-around;">
        <div style="width: 260px;text-align: center;">
          <span style="font-size: 30px;font-weight: bold;color: #fff;line-height: 70px;">保压压力:</span>
          <span style="font-size: 30px;font-weight: bold;color: #fff;line-height: 70px;">{{pressure_value!=""?pressure_value+"(吨)":"待保压"}}</span>
        </div>
        <div style="width: 280px;text-align: center;">
          <span style="font-size: 30px;font-weight: bold;color: #fff;line-height: 70px;">保压时间:</span>
          <span style="font-size: 30px;font-weight: bold;color: #fff;line-height: 70px;">{{pressuretime!=""?pressuretime:"待保压"}}</span>
        </div>
        <div style="width: 140px;text-align: center;">
          <span style="font-size: 30px;font-weight: bold;color: #fff;line-height: 70px;">{{ pressureresult }}</span>
        </div>
      </div>
      <div style="margin-top: -10px;position: absolute;top: 28px;right: 360px;">
       <span>
      <icon
        name="chart-bar"
        class="text-icon"
        style="margin-left: 5px"
      ></icon>
      </span>
      <span class="fs-xl text mb-1 pl-3" style="font-size: 20px;font-weight: bold;"
        >设备稼动</span>
      </div>
      <div style="position: absolute;height: 1px; width: 865px;left: 44px;top: 355px; background-color:#ffff00;">
      </div>
      <div style="position: absolute;height: 375px; width: 1px;left: 821px;top: 88px; background-color:#ffff00;">
      </div>
      <div class="bottomLeft">
        <bottomLeft />
      </div>
      <div class="bottomCenter">
        <bottomCenter />
      </div>
    </div>
  </dv-border-box-12>
</template>
  <script>
import axios from "@/api/ajax.js";
import bottomLeft from "../components/echart/bottom/bottomLeftChart";
import bottomCenter from "../components/echart/bottom/bottomCenterChart";
export default {
  components: {
    bottomLeft,
    bottomCenter,
  },
  data() {
    return {
      areaD: ["D9", "D8", "D7", "D6", "D5", "D4", "D3", "D2", "D1"],
      areaA: ["A9", "A8", "A7", "A6", "A5", "A4", "A3", "A2", "A1"],
      areaBC: [
        { name1: "C6", name2: "B6" },
        { name1: "C5", name2: "B5" },
        { name1: "C4", name2: "B4" },
        { name1: "C3", name2: "B3" },
      ],
      areaB: [
        { name1: "B2", img: require("../assets/red0.png") },
        { name1: "B1", img: require("../assets/red1.png") },
      ],
      ScStyle: {
        top: "600px",
        left: "1180px",
      },
      pressure_value:"30.5",
      pressuretime:"18时60分",
      pressureresult:"加压合格",
      IsPrevalue:true,
    };
  },
  mounted() {
    this.GetPressInfo();
  },
  methods: {
    GetPressInfo() {
      axios.post("/api/dt_WorkOrder/getPressInfo", null, "").then((res) => {
        if (res.data.status) {
          var data=res.data.data;
          if(data==null)
            return;
          this.pressure_value=data.pressure_value;
          this.pressuretime=data.pressuretime;
          this.pressureresult=data.pressureresult;
        }
        if(this.IsPrevalue){
            setInterval(() => {
              this.GetPressInfo();
            },2000);
            this.IsPrevalue=false;
          }
      });
    }
  },
};
</script>
<style lang="scss" scoped>
$box-height: 520px;
$box-width: 1420px;
#content {
  position: absolute;
  right: 20px;
  width: $box-width;
  height: $box-height;
  margin: 10px auto;
}
.bottomLeft {
  width: 920px;
  height: 520px;
  margin-top: 30px;
}
.bottomCenter {
  width: 480px;
  height: 520px;
  margin-top: 30px;
  margin-left: 10px;
}
.Box{
  width:1870px;
  margin: 0px auto;
  display: flex;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/views/centerView1.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,505 @@
<template>
  <div id="box">
    <div class="container">
      <div class="boxTop">
        <div class="boxOrder">
          <div>
            <div style="margin-top: -10px">
              <span>
                <icon
                  name="align-left"
                  class="text-icon"
                  style="margin-left: 5px"
                ></icon>
              </span>
              <span class="fs-xl text mb-1 pl-3" style="font-size: 20px;font-weight: bold;"
                >工单信息</span
              >
            </div>
            <div style="margin-top: 10px">
              <div class="row" style="font-weight: bold">
                <div class="cell">工单号</div>
                <div class="cell">标准压力(t)</div>
                <div class="cell">保压时间(h)</div>
                <div class="cell">饼总层数</div>
                <div class="cell">标准直径(mm)</div>
                <div class="cell">实际直径(mm)</div>
                <div class="cell">测宽结果</div>
                <div class="cell" style="border-right: none;">工单状态</div>
              </div>
              <div class="body">
                <div class="cell">{{ OrderInfo.work_order_no }}</div>
                <div class="cell">{{ OrderInfo.pressure }}</div>
                <div class="cell">{{ OrderInfo.holding_time }}</div>
                <div class="cell">{{ OrderInfo.total_layer }}</div>
                <div class="cell">{{ OrderInfo.diameter_res }}</div>
                <div class="cell">{{ OrderInfo.measure_diameter_res }}</div>
                <div class="cell"><span style="display: block;width: 60px;height: 25px;margin: 4px auto;border: 2px solid gray;" :class="getTolerance(OrderInfo.is_tolerance)"></span></div>
                <div class="cell" style="border-right: none;" :class="OrderInfo.status==1?'ing':'end'">{{ OrderInfo.status==1?"工单进行中":"工单已完成" }}</div>
              </div>
            </div>
          </div>
          <!-- <dv-water-level-pond :config="line" style="width:100px;height:85px;position: absolute;right: 85px;top: 20px;" /> -->
        </div>
        <div class="boxTitle">
          <span
            style="
              width: 5px;
              height: 30px;
              background-color: #f34336;
              display: block;
            "
          ></span>
          <span
            style="
              display: block;
              padding-left: 15px;
              font-size: 20px;
              font-weight: bold;
            "
            >设备状态</span
          >
        </div>
        <div style="display: flex;position: absolute;left: 10px;top: 112px; width:1400px;justify-content: space-between;">
          <dv-border-box-13 class="box" title="垒饼机">
            <div class="boxItem">
              <div class="boxLeft">
                <img src="../assets/LB.png" width="150" height="150" style="" />
              </div>
              <div class="boxRight">
                <div
                  style="
                    font-size: 22px;
                    font-weight: bold;
                    color: red;
                    width: 160px;
                    margin-top: 20px;
                  "
                >
                  åž’饼机
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >心跳信号:</span
                  >
                  <span style="display: block; width: 50px;height: 25px;text-align: left;margin: 5px 0px;" :class="LbjInfo.rboolHeart==true?'success':'info'"></span>
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >当前设备编号:</span
                  >
                  <span style="display: block; width: 100px; text-align: left"
                    >{{ LbjInfo.rintMCPDeviceID }}</span
                  >
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >当前设备状态:</span
                  >
                  <span style="display: block; width: 100px; text-align: left"
                    >{{ GetDeviceStatus(LbjInfo.rintMCPDeviceStatus) }}</span
                  >
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >当前设备流程:</span
                  >
                  <span style="display: block; width: 100px; text-align: left"
                    >{{ GetLbjStepNumber(LbjInfo.rintMCPAutoStepNumber) }}</span
                  >
                </div>
              </div>
            </div>
          </dv-border-box-13>
          <dv-border-box-13 class="box" title="翻转机">
            <div class="boxItem">
              <div class="boxLeft">
                <img src="../assets/FZ.png" width="150" height="150" style="" />
              </div>
              <div class="boxRight">
                <div
                  style="
                    font-size: 22px;
                    color: red;
                    font-weight: bold;
                    width: 180px;
                    margin-top: 20px;
                  "
                >
                  ç¿»è½¬æœº
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >心跳信号:</span
                  >
                  <span style="display: block; width: 50px;height: 25px;text-align: left;margin: 5px 0px;" :class="FzjInfo.rboolRCP1Heart==true?'success':'info'"></span>
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >当前设备编号:</span
                  >
                  <span style="display: block; width: 100px; text-align: left"
                    >{{ FzjInfo.rintRCP1DeviceID }}</span
                  >
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >当前设备状态:</span
                  >
                  <span style="display: block; width: 100px; text-align: left"
                    >{{ GetDeviceStatus(FzjInfo.rintRCP1DeviceStatus) }}</span
                  >
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right"
                    >当前设备流程:</span
                  >
                  <span style="display: block; width: 100px; text-align: left"
                    >{{ GetFzjStepNumber(FzjInfo.rintRCP1AutoStepNumber) }}</span
                  >
                </div>
              </div>
            </div>
          </dv-border-box-13>
          <dv-border-box-13 class="box" title="机械手">
            <div class="boxItem">
              <div class="boxLeft">
                <img src="../assets/JX.png" width="150" height="150" style="" />
              </div>
              <div class="boxRight">
                <div
                  style="
                    font-size: 22px;
                    color: red;
                    font-weight: bold;
                    width: 180px;
                    margin-top: 20px;
                  "
                >
                  æœºæ¢°æ‰‹
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right">心跳信号:</span>
                  <span style="display: block; width: 50px;height: 25px;text-align: left;margin: 5px 0px;" :class="JxsInfo.rboolRCP2Heart==true?'success':'info'"></span>
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right">当前设备编号:</span>
                  <span style="display: block; width: 100px; text-align: left">{{ JxsInfo.rintRCP2DeviceID }}</span>
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right">当前设备状态:</span>
                  <span style="display: block; width: 100px; text-align: left">{{ GetJxsDeviceStatus(JxsInfo.rintRCP2DeviceStatus) }}</span>
                </div>
                <div class="boxitem_down">
                  <span style="display: block; width: 160px; text-align: right">当前设备流程:</span>
                  <span style="display: block; width: 100px; text-align: left">{{ GetJxsStepNumber(JxsInfo.rintRCP2AutoStepNumber) }}</span>
                </div>
              </div>
            </div>
          </dv-border-box-13>
        </div>
      </div>
    </div>
  </div>
</template>
  <script>
import axios from "@/api/ajax.js";
export default {
  data() {
    return {
      line: {
        data: [86],
        shape: 'roundRect',
        waveOpacity:0.2,
        colors:['#00baff']
      },
      config: {
        header: [
          '<span style="font-size:18px;">层数</span>',
          '<span style="font-size:18px;">标准饼厚</span>',
          '<span style="font-size:18px;">累计饼厚</span>',
          '<span style="font-size:18px;">本层饼厚</span>'
        ],
        data: [
          [
            '<span style="color:#67e0e3;">1层</span>',
            '<span style="color:#9fe6b8;">60mm</span>',
            '<span style="color:#fb7293;">60mm</span>',
          ],
          [
            '<span style="color:#67e0e3;">1层</span>',
            '<span style="color:#9fe6b8;">60mm</span>',
            '<span style="color:#fb7293;">60mm</span>',
          ]
        ],
        waitTime: 5000,
        columnWidth: [85,115,115,115],
        align: ["center", "center", "center", "center"]
      },
      OrderInfo: {
      },
      LbjInfo:{
      },
      FzjInfo:{
      },
      JxsInfo:{
      },
      IsInterval:true,
      IsPlc:true,
    };
  },
  mounted() {
    this.GetPLCData();
    this.GetOrderInfos();
  },
  methods: {
    GetOrderInfos() {
      axios.post("/api/dt_WorkOrder/getWorkOrderInfo", null, "").then((res) => {
        if (res.data.status) {
          if(res.data.data==null && this.OrderInfo!=null){
            this.OrderInfo.status=2;
            return;
          }
          this.OrderInfo = res.data.data;
          if(this.IsInterval){
            setInterval(() => {
              this.GetOrderInfos();
            },5000);
            this.IsInterval=false;
          }
        }
      });
    },
    GetPLCData() {
      axios.post("/api/dt_WorkOrder/getPLCData", null, "").then((res) => {
        if (res.data.status) {
          var data=res.data.data;
          if(data==null)
            return console.log("data值为空");
          this.LbjInfo=data.lbj_data;
          this.FzjInfo=data.fzj_data;
          this.JxsInfo=data.zljxs_Data;
        }
        if(this.IsPlc){
            setInterval(() => {
              this.GetPLCData();
            },1500);
            this.IsPlc=false;
        }
      });
    },
    GetLbjStepNumber(val){
      switch (val) {
        case 0:
          return "无";
        case 1:
          return "回待机位";
        case (val>=10 && val<=19):
          return "测高中";
        case (val>=20 && val<=29):
          return "测高完成后返回中";
        case (val>=100 && val<=110):
          return "压紧中";
        default:
          break;
      }
    },
    GetFzjStepNumber(val){
      switch (val) {
        case 0:
          return "无";
        case 1:
          return "回待机位";
        case (val>=10 && val<=19):
          return "正向送饼中";
        case (val>=20 && val<=29):
          return "反向送饼中";
        default:
          break;
      }
    },
    GetJxsStepNumber(val){
      switch (val) {
        case 0:
          return "无";
        case 1:
          return "设备待机中";
        case 2:
          return "设备运动中";
        default:
          break;
      }
    },
    GetDeviceStatus(val){
      switch (val) {
        case 1:
          return "自动作业";
        case 2:
          return "自动待机";
        case 3:
          return "故障";
        case 4:
          return "手动";
        default:
          break;
      }
    },
    GetJxsDeviceStatus(val){
      switch (val) {
        case 1:
          return "速度模式";
        case 2:
          return "力矩模式";
        case 3:
          return "位置模式";
        case 4:
          return "故障";
        default:
          break;
      }
    },
    getTolerance(val){
      if(val==true){
        return 'success';
      }else if(val==false){
        return 'error';
      }else{
        return null;
      }
    }
  },
};
</script>
  <style lang="scss" scoped>
$box-height: 420px;
$box-width: 1420px;
#box {
  padding: 16px;
  padding-top: 10px;
  height: $box-height;
  width: $box-width;
  border-radius: 5px;
}
.container {
  height: 750px;
  width: 100%;
}
.boxTop {
  width: 100%;
  height: 300px;
  padding-top: 20px;
  display: flex;
}
.boxTop .box {
  margin-top: 38px;
  width: 450px;
  height: 260px;
}
.boxItem {
  display: flex;
  background-color: rgb(0, 59, 81,0.6);
  width: 435px;
  margin: 15px auto;
  height: 240px;
  z-index: 0;
  border-radius: 0% 5%;
}
.boxitem_down {
  display: flex;
  font-size: 20px;
  color: whitesmoke;
}
.boxLeft {
  margin-top: 50px;
  margin-left: 10px;
  width: 150px;
  height: 150px;
}
.boxRight {
  margin-left: 10px;
  width: 300px;
  height: 260px;
}
.boxRight div {
  line-height: 35px;
  text-align: right;
}
.boxOrderHeight {
  height: 40px;
  line-height: 30px;
  width: 150px;
  position: absolute;
  left: 22px;
  top: 120px;
  display: flex;
}
.boxTitle {
  height: 40px;
  line-height: 30px;
  width: 150px;
  position: absolute;
  left: 20px;
  top: 115px;
  display: flex;
}
.boxOrder {
  margin-top: -10px;
}
.row {
  display: flex;
  background-color: rgb(0, 186, 255);
  color: #fff;
  height: 30px;
  line-height: 30px;
  font-size: 18px;
}
.cell {
  width: 160px;
  border-right: #fff 1px solid;
  text-align: center;
}
.body {
  display: flex;
  background-color: rgb(0, 59, 81);
  color: #fff;
  height: 32px;
  line-height: 32px;
}
.rows {
  display: flex;
  background-color: rgb(0, 186, 255);
  color: #fff;
  height: 30px;
  line-height: 30px;
  font-size: 18px;
}
.bodys {
  display: flex;
  background-color: rgb(0, 59, 81);
  color: #fff;
  height: 32px;
  line-height: 32px;
}
.error{
  background-color: red;
}
.success{
  background-color: #67c23a;
}
.info{
  background-color: lightgray;
}
.ing{
  color: #ffff00;
}
.end{
  color: #67c23a;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/views/home.scss
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/home.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,333 @@
<template>
  <div id="index" ref="appRef">
    <div class="bg">
      <div class="myhead"></div>
      <dv-loading v-if="loading">Loading...</dv-loading>
      <div v-else class="host-body">
        <div class="d-flex jc-center" style="margin-top: 17px">
          <div class="d-flex jc-center">
            <div class="dv-dec-8"></div>
            <div class="title">
              <dv-decoration-11 class="title-text" style="
                  font-size: 75px;
                  color: #ffffff;
                  width: 600px;
                  height: 80px;
                  line-height: 80px;
                  margin-top: -30px;
                ">监 æŽ§ æ˜¾ ç¤º</dv-decoration-11>
            </div>
          </div>
        </div>
        <div class="react-right" style="margin-left: 1510px">
          <span class="text" style="width: 400px">{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span>
        </div>
        <div class="body-box">
          <div class="content-box">
            <div class="boxOrderHeight"
              style="margin-left: 0px; display: flex; align-items: center; position: relative; width: 100%;">
              <span style="
                    width: 5px;
                    height: 40px;
                    background-color: #FF4500;
                    display: block;
                  "></span>
              <span style="
                    padding-left: 15px;
                    font-size: 50px;
                    font-weight: bold;
                    color: #90EE90;
                  ">立库输送轨道原纸信息(共 å·ï¼‰</span>
              //时间
              <div style="position: absolute; right: 20px;">
                <p style="
                      display: inline-block;
                      font-size: 50px;
                      font-weight: bold;
                      color: #f7b500;
                      margin: 0;
                      padding: 5px 15px;
                    ">{{ currentTime }}</p>
              </div>
            </div>
            <!-- å·¥å•信息模块 -->
            <dv-border-box-8 :reverse="true"
              style="width: 100%; height: 415px; margin-top: 5px; margin-left: auto; margin-right: auto;">
              <dv-scroll-board :config="config" ref="scrollBoard" style="width: 100%; height: 415px; padding: 5px" />
            </dv-border-box-8>
          </div>
          <div class="content-box">
            <div class="boxOrderHeight" style="margin-left: 0px; display: flex; align-items: center; position: relative; width: 100%;">
              <span style="
                    width: 5px;
                    height: 40px;
                    background-color: #FF4500;
                    display: block;
                  "></span>
              <span style="
                    padding-left: 15px;
                    font-size: 50px;
                    font-weight: bold;
                    color: #90EE90;
                  ">排除出库原纸信息(共 å·ï¼‰</span>
            </div>
            <!-- å·¥å•信息模块 -->
            <dv-border-box-8 :reverse="true"
              style="width: 100%; height: 415px; margin-top: 5px; margin-left: auto; margin-right: auto;">
              <dv-scroll-board :config="config" ref="scrollBoard" style="width: 100%; height: 415px; padding: 5px;" />
            </dv-border-box-8>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import drawMixin from "../utils/drawMixin";
import { formatTime } from "../utils/index.js";
import centerView1 from "./centerView1.vue";
import bottomView1 from "./bottomView1.vue";
import axios from "@/api/ajax.js";
// import{GetDateForLED} from "@/api/http.js"
export default {
  mixins: [drawMixin],
  data() {
    return {
      timing: null,
      loading: true,
      dateDay: null,
      dateYear: null,
      dateWeek: null,
      currentTime: '',
      weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
      config: {
        header: [
          '<span style="font-size:50px;">纸卷条码</span>',
          '<span style="font-size:50px;">工单号</span>',
          '<span style="font-size:50px;">代码</span>',
          '<span style="font-size:50px;">上机位</span>',
          '<span style="font-size:50px;">宽幅</span>',
          '<span style="font-size:50px;">纸卷长</span>',
          '<span style="font-size:50px;">需用纸长</span>'
        ],
        data: [
          [
            '<span style="color:#FF4500; font-size:75px;">705010</span>',
            '<span style="color:#FF4500; font-size:75px;">015004</span>',
            '<span style="color:#FF4500; font-size:75px;">X2</span>',
            '<span style="color:#FF4500; font-size:75px;">1</span>',
            '<span style="color:#FF4500; font-size:75px;">1200</span>',
            '<span style="color:#FF4500; font-size:75px;;">4798</span>',
            '<span style="color:#FF4500; font-size:75px;">180</span>',
          ],
          [
           '<span style="color:#FF4500; font-size:75px;">705010</span>',
            '<span style="color:#FF4500; font-size:75px;">015004</span>',
            '<span style="color:#FF4500; font-size:75px;">X2</span>',
            '<span style="color:#FF4500; font-size:75px;">2</span>',
            '<span style="color:#FF4500; font-size:75px;">1200</span>',
            '<span style="color:#FF4500; font-size:75px;;">4798</span>',
            '<span style="color:#FF4500; font-size:75px;">180</span>',
          ],
          [
           '<span style="color:#FF4500; font-size:75px;">705010</span>',
            '<span style="color:#FF4500; font-size:75px;">015004</span>',
            '<span style="color:#FF4500; font-size:75px;">X2</span>',
            '<span style="color:#FF4500; font-size:75px;">3</span>',
            '<span style="color:#FF4500; font-size:75px;">1200</span>',
            '<span style="color:#FF4500; font-size:75px;;">4798</span>',
            '<span style="color:#FF4500; font-size:75px;">180</span>',
          ],
          [
            '<span style="color:#FF4500; font-size:75px;">705010</span>',
            '<span style="color:#FF4500; font-size:75px;">015004</span>',
            '<span style="color:#FF4500; font-size:75px;">X2</span>',
            '<span style="color:#FF4500; font-size:75px;">4</span>',
            '<span style="color:#FF4500; font-size:75px;">1200</span>',
            '<span style="color:#FF4500; font-size:75px;;">4798</span>',
            '<span style="color:#FF4500; font-size:75px;">180</span>',
          ],
          [
           '<span style="color:#FF4500; font-size:75px;">705010</span>',
            '<span style="color:#FF4500; font-size:75px;">015004</span>',
            '<span style="color:#FF4500; font-size:75px;">X2</span>',
            '<span style="color:#FF4500; font-size:75px;">5</span>',
            '<span style="color:#FF4500; font-size:75px;">1200</span>',
            '<span style="color:#FF4500; font-size:75px;;">4798</span>',
            '<span style="color:#FF4500; font-size:75px;">180</span>',
          ],
        ],
        headerHeight: 60,
        oddRowBGC: "rgba(0, 0, 0, 0.6)",
        evenRowBGC: "rgba(0, 0, 0, 0.6)",
        headerBGC: "rgba(0, 0, 0, 0.6)",
        waitTime: 5000,
        columnWidth: [350, 350, 200, 200, 250, 250, 350],
        rowNum: 4,
        align: ["center", "center", "center", "center", "center", "center", "center"],
      },
      IsDetail: true,
      OrderCreator: {},
    };
  },
  components: {
    centerView1,
    bottomView1,
  },
  mounted() {
    this.updateTime(); // åˆå§‹åŒ–æ—¶é—´
    this.timing = setInterval(() => {
      this.updateTime(); // æ¯ç§’æ›´æ–°æ—¶é—´
    }, 1000);
    this.cancelLoading();
    // this.GetOrderDetail();
  },
  beforeDestroy() {
    clearInterval(this.timing);
  },
  methods: {
    // æ›´æ–°åŒ—京时间
    updateTime() {
      const now = new Date();
      const year = now.getFullYear();
      const month = String(now.getMonth() + 1).padStart(2, '0');
      const day = String(now.getDate()).padStart(2, '0');
      const hours = String(now.getHours()).padStart(2, '0');
      const minutes = String(now.getMinutes()).padStart(2, '0');
      const seconds = String(now.getSeconds()).padStart(2, '0');
      const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
      const weekday = weekdays[now.getDay()];
      this.currentTime = `${year}-${month}-${day} ${weekday} ${hours}:${minutes}:${seconds}`;
    },
    //刷新时间
    timeFn() {
      this.timing = setInterval(() => {
        axios.post("/api/dt_WorkOrder/GetCurrentTime", null, "").then((x) => {
          if (x.data.status) {
            var data = x.data.data;
            this.dateDay = formatTime(data, "HH: mm: ss");
            this.dateYear = formatTime(data, "yyyy-MM-dd");
          }
        });
      }, 1000);
    },
    cancelLoading() {
      setTimeout(() => {
        this.loading = false;
      }, 1000);
    },
    GetOrderDetail() {
      axios.post("/api/dt_WorkOrder/getWorkOrderInfo", null, "").then((res) => {
        if (res.data.status) {
          if (res.data.data == null) {
            return;
          }
          var sp = '</span>';
          var arr = [];
          res.data.data.dt_WorkOrderDetail.forEach((x) => {
            var item = [
              '<span style="color:#67e0e3;">' + x.layer + '层' + sp,
              '<span style="color:#9fe6b8;">' + (x.lj_hight == null ? '无需测量' : x.lj_hight + 'mm') + sp,
              '<span style="color:#fb7503;">' + (x.measure_hight == null ? '无需测量' : x.measure_hight + 'mm') + sp,
              '<span style="color:#fb7503;">' + x.lj_is_tolerance + sp,
            ];
            arr.push(item);
          });
          this.OrderCreator = res.data.data;
          if (this.IsDetail) {
            this.config = {
              header: [
                '<span style="font-size:18px;">层数</span>',
                '<span style="font-size:18px;">累计标准饼厚</span>',
                '<span style="font-size:18px;">累计饼厚</span>',
                '<span style="font-size:18px;">测高结果</span>'
              ],
              data: arr,
              waitTime: 10000,
              rowNum: 15,
              columnWidth: [75, 150, 110, 110],
              align: ["center", "center", "center", "center"]
            };
          } else {
            this.$refs["scrollBoard"].updateRows(arr)
          }
          if (this.IsDetail) {
            setInterval(() => {
              this.GetOrderDetail();
            }, 10000);
            this.IsDetail = false;
          }
        }
      });
    }
  },
};
</script>
<style lang="scss">
@import "../assets/scss/index.scss";
</style>
<style lang="css" scoped>
.myhead {
  position: absolute;
  width: 100%;
  height: 100px;
  /* background-color: red; */
  top: 0;
  left: 0;
  z-index: 999;
  background-image: url("../assets/head_bg1.png");
  background-size: cover;
  background-position: center center;
}
.b-color {
  width: 1420px;
}
.boxOrderHeight {
  height: 40px;
  line-height: 40px;
  width: 400px;
  display: flex;
}
.body-box {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0 20px;
}
.content-box {
  width: 100%;
}
.rows {
  display: flex;
  background-color: rgb(0, 0, 0);
  color: #fff;
  height: 30px;
  line-height: 30px;
  font-size: 18px;
}
.cell {
  width: 160px;
  border-right: #fff 1px solid;
  text-align: center;
}
.bodys {
  display: flex;
  background-color: rgb(0, 59, 81);
  color: #fff;
  height: 32px;
  line-height: 40px;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/views/indexLine.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,389 @@
<template>
    <div id="index" ref="appRef">
        <div class="bg">
            <div class="myhead"></div>
            <dv-loading v-if="loading">Loading...</dv-loading>
            <div v-else class="host-body">
                <div class="react-right" style="margin-left: 1510px">
                    <span class="text" style="width: 400px">{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span>
                </div>
                <div class="body-box">
                    <div class="content-box">
                        <div class="boxOrderHeight"
                            style="margin-left: 0px; display: flex; align-items: center; position: relative; width: 100%;">
                            <span style="
                    width: 5px;
                    height: 40px;
                    background-color: #FF4500;
                    display: block;
                  "></span>
                            <span style="
                    padding-left: 15px;
                    font-size: 50px;
                    font-weight: bold;
                    color: #90EE90;
                  ">立库输送轨道原纸信息(共 å·ï¼‰</span>
                            //时间
                            <div style="position: absolute; right: 20px;">
                                <p style="
                      display: inline-block;
                      font-size: 50px;
                      font-weight: bold;
                      color: #f7b500;
                      margin: 0;
                      padding: 5px 15px;
                    ">{{ currentTime }}</p>
                            </div>
                        </div>
                        <!-- å·¥å•信息模块 -->
                        <dv-border-box-8 :reverse="true"
                            style="width: 100%; height: 950px; margin-top: 5px; margin-left: auto; margin-right: auto;">
                            <dv-scroll-board :config="config" ref="scrollBoard"
                                style="width: 100%; height: 950px; padding: 5px" />
                        </dv-border-box-8>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
import drawMixin from "../utils/drawMixin";
import { formatTime } from "../utils/index.js";
import centerView1 from "./centerView1.vue";
import bottomView1 from "./bottomView1.vue";
import axios from "@/api/ajax.js";
// import{GetDateForLED} from "@/api/http.js"
export default {
    mixins: [drawMixin],
    data() {
        return {
            timing: null,
            loading: true,
            dateDay: null,
            dateYear: null,
            dateWeek: null,
            currentTime: '',
            weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
            config: {
                header: [
                    '<span style="font-size:50px;">纸卷条码</span>',
                    '<span style="font-size:50px;">工单号</span>',
                    '<span style="font-size:50px;">代码</span>',
                    '<span style="font-size:50px;">上机位</span>',
                    '<span style="font-size:50px;">宽幅</span>',
                    '<span style="font-size:50px;">纸卷长</span>',
                    '<span style="font-size:50px;">需用纸长</span>'
                ],
                data: [
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">1</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">2</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">3</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">4</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">5</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">6</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">7</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">8</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">9</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">10</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">11</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">12</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">13</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">14</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">15</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                ],
                headerHeight: 60,
                oddRowBGC: "rgba(0, 0, 0, 0.6)",
                evenRowBGC: "rgba(0, 0, 0, 0.6)",
                headerBGC: "rgba(0, 0, 0, 0.6)",
                waitTime: 5000,
                columnWidth: [350, 350, 200, 200, 250, 250, 350],
                rowNum: 10,
                align: ["center", "center", "center", "center", "center", "center", "center"],
            },
            IsDetail: true,
            OrderCreator: {},
        };
    },
    components: {
        centerView1,
        bottomView1,
    },
    mounted() {
        this.updateTime(); // åˆå§‹åŒ–æ—¶é—´
        this.timing = setInterval(() => {
            this.updateTime(); // æ¯ç§’æ›´æ–°æ—¶é—´
        }, 1000);
        this.cancelLoading();
        // this.GetOrderDetail();
    },
    beforeDestroy() {
        clearInterval(this.timing);
    },
    methods: {
        // æ›´æ–°åŒ—京时间
        updateTime() {
            const now = new Date();
            const year = now.getFullYear();
            const month = String(now.getMonth() + 1).padStart(2, '0');
            const day = String(now.getDate()).padStart(2, '0');
            const hours = String(now.getHours()).padStart(2, '0');
            const minutes = String(now.getMinutes()).padStart(2, '0');
            const seconds = String(now.getSeconds()).padStart(2, '0');
            const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
            const weekday = weekdays[now.getDay()];
            this.currentTime = `${year}-${month}-${day} ${weekday} ${hours}:${minutes}:${seconds}`;
        },
        //刷新时间
        timeFn() {
            this.timing = setInterval(() => {
                axios.post("/api/dt_WorkOrder/GetCurrentTime", null, "").then((x) => {
                    if (x.data.status) {
                        var data = x.data.data;
                        this.dateDay = formatTime(data, "HH: mm: ss");
                        this.dateYear = formatTime(data, "yyyy-MM-dd");
                    }
                });
            }, 1000);
        },
        cancelLoading() {
            setTimeout(() => {
                this.loading = false;
            }, 1000);
        },
        GetOrderDetail() {
            axios.post("/api/dt_WorkOrder/getWorkOrderInfo", null, "").then((res) => {
                if (res.data.status) {
                    if (res.data.data == null) {
                        return;
                    }
                    var sp = '</span>';
                    var arr = [];
                    res.data.data.dt_WorkOrderDetail.forEach((x) => {
                        var item = [
                            '<span style="color:#67e0e3;">' + x.layer + '层' + sp,
                            '<span style="color:#9fe6b8;">' + (x.lj_hight == null ? '无需测量' : x.lj_hight + 'mm') + sp,
                            '<span style="color:#fb7503;">' + (x.measure_hight == null ? '无需测量' : x.measure_hight + 'mm') + sp,
                            '<span style="color:#fb7503;">' + x.lj_is_tolerance + sp,
                        ];
                        arr.push(item);
                    });
                    this.OrderCreator = res.data.data;
                    if (this.IsDetail) {
                        this.config = {
                            header: [
                                '<span style="font-size:18px;">层数</span>',
                                '<span style="font-size:18px;">累计标准饼厚</span>',
                                '<span style="font-size:18px;">累计饼厚</span>',
                                '<span style="font-size:18px;">测高结果</span>'
                            ],
                            data: arr,
                            waitTime: 10000,
                            rowNum: 15,
                            columnWidth: [75, 150, 110, 110],
                            align: ["center", "center", "center", "center"]
                        };
                    } else {
                        this.$refs["scrollBoard"].updateRows(arr)
                    }
                    if (this.IsDetail) {
                        setInterval(() => {
                            this.GetOrderDetail();
                        }, 10000);
                        this.IsDetail = false;
                    }
                }
            });
        }
    },
};
</script>
<style lang="scss">
@import "../assets/scss/index.scss";
</style>
<style lang="css" scoped>
.myhead {
    position: absolute;
    width: 100%;
    height: 100px;
    /* background-color: red; */
    top: 0;
    left: 0;
    z-index: 999;
    background-size: cover;
    background-position: center center;
}
.b-color {
    width: 1420px;
}
.boxOrderHeight {
    height: 40px;
    line-height: 40px;
    width: 400px;
    display: flex;
}
.body-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 20px;
}
.content-box {
    width: 100%;
}
.rows {
    display: flex;
    background-color: rgb(0, 0, 0);
    color: #fff;
    height: 30px;
    line-height: 30px;
    font-size: 18px;
}
.cell {
    width: 160px;
    border-right: #fff 1px solid;
    text-align: center;
}
.bodys {
    display: flex;
    background-color: rgb(0, 59, 81);
    color: #fff;
    height: 32px;
    line-height: 40px;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/views/indexPick.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,389 @@
<template>
    <div id="index" ref="appRef">
        <div class="bg">
            <div class="myhead"></div>
            <dv-loading v-if="loading">Loading...</dv-loading>
            <div v-else class="host-body">
                <div class="react-right" style="margin-left: 1510px">
                    <span class="text" style="width: 400px">{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span>
                </div>
                <div class="body-box">
                    <div class="content-box">
                        <div class="boxOrderHeight"
                            style="margin-left: 0px; display: flex; align-items: center; position: relative; width: 100%;">
                            <span style="
                    width: 5px;
                    height: 40px;
                    background-color: #FF4500;
                    display: block;
                  "></span>
                            <span style="
                    padding-left: 15px;
                    font-size: 50px;
                    font-weight: bold;
                    color: #90EE90;
                  ">排除出库原纸信息(共 å·ï¼‰</span>
                            //时间
                            <div style="position: absolute; right: 20px;">
                                <p style="
                      display: inline-block;
                      font-size: 50px;
                      font-weight: bold;
                      color: #f7b500;
                      margin: 0;
                      padding: 5px 15px;
                    ">{{ currentTime }}</p>
                            </div>
                        </div>
                        <!-- å·¥å•信息模块 -->
                        <dv-border-box-8 :reverse="true"
                            style="width: 100%; height: 950px; margin-top: 5px; margin-left: auto; margin-right: auto;">
                            <dv-scroll-board :config="config" ref="scrollBoard"
                                style="width: 100%; height: 950px; padding: 5px" />
                        </dv-border-box-8>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
import drawMixin from "../utils/drawMixin";
import { formatTime } from "../utils/index.js";
import centerView1 from "./centerView1.vue";
import bottomView1 from "./bottomView1.vue";
import axios from "@/api/ajax.js";
// import{GetDateForLED} from "@/api/http.js"
export default {
    mixins: [drawMixin],
    data() {
        return {
            timing: null,
            loading: true,
            dateDay: null,
            dateYear: null,
            dateWeek: null,
            currentTime: '',
            weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
            config: {
                header: [
                    '<span style="font-size:50px;">纸卷条码</span>',
                    '<span style="font-size:50px;">工单号</span>',
                    '<span style="font-size:50px;">代码</span>',
                    '<span style="font-size:50px;">上机位</span>',
                    '<span style="font-size:50px;">宽幅</span>',
                    '<span style="font-size:50px;">纸卷长</span>',
                    '<span style="font-size:50px;">需用纸长</span>'
                ],
                data: [
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">1</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">2</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">3</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">4</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">5</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">6</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">7</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">8</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">9</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">10</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">11</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">12</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">13</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">14</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                    [
                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
                        '<span style="color:#FF4500; font-size:75px;">15</span>',
                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
                        '<span style="color:#FF4500; font-size:75px;">180</span>',
                    ],
                ],
                headerHeight: 60,
                oddRowBGC: "rgba(0, 0, 0, 0.6)",
                evenRowBGC: "rgba(0, 0, 0, 0.6)",
                headerBGC: "rgba(0, 0, 0, 0.6)",
                waitTime: 5000,
                columnWidth: [350, 350, 200, 200, 250, 250, 350],
                rowNum: 10,
                align: ["center", "center", "center", "center", "center", "center", "center"],
            },
            IsDetail: true,
            OrderCreator: {},
        };
    },
    components: {
        centerView1,
        bottomView1,
    },
    mounted() {
        this.updateTime(); // åˆå§‹åŒ–æ—¶é—´
        this.timing = setInterval(() => {
            this.updateTime(); // æ¯ç§’æ›´æ–°æ—¶é—´
        }, 1000);
        this.cancelLoading();
        // this.GetOrderDetail();
    },
    beforeDestroy() {
        clearInterval(this.timing);
    },
    methods: {
        // æ›´æ–°åŒ—京时间
        updateTime() {
            const now = new Date();
            const year = now.getFullYear();
            const month = String(now.getMonth() + 1).padStart(2, '0');
            const day = String(now.getDate()).padStart(2, '0');
            const hours = String(now.getHours()).padStart(2, '0');
            const minutes = String(now.getMinutes()).padStart(2, '0');
            const seconds = String(now.getSeconds()).padStart(2, '0');
            const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
            const weekday = weekdays[now.getDay()];
            this.currentTime = `${year}-${month}-${day} ${weekday} ${hours}:${minutes}:${seconds}`;
        },
        //刷新时间
        timeFn() {
            this.timing = setInterval(() => {
                axios.post("/api/dt_WorkOrder/GetCurrentTime", null, "").then((x) => {
                    if (x.data.status) {
                        var data = x.data.data;
                        this.dateDay = formatTime(data, "HH: mm: ss");
                        this.dateYear = formatTime(data, "yyyy-MM-dd");
                    }
                });
            }, 1000);
        },
        cancelLoading() {
            setTimeout(() => {
                this.loading = false;
            }, 1000);
        },
        GetOrderDetail() {
            axios.post("/api/dt_WorkOrder/getWorkOrderInfo", null, "").then((res) => {
                if (res.data.status) {
                    if (res.data.data == null) {
                        return;
                    }
                    var sp = '</span>';
                    var arr = [];
                    res.data.data.dt_WorkOrderDetail.forEach((x) => {
                        var item = [
                            '<span style="color:#67e0e3;">' + x.layer + '层' + sp,
                            '<span style="color:#9fe6b8;">' + (x.lj_hight == null ? '无需测量' : x.lj_hight + 'mm') + sp,
                            '<span style="color:#fb7503;">' + (x.measure_hight == null ? '无需测量' : x.measure_hight + 'mm') + sp,
                            '<span style="color:#fb7503;">' + x.lj_is_tolerance + sp,
                        ];
                        arr.push(item);
                    });
                    this.OrderCreator = res.data.data;
                    if (this.IsDetail) {
                        this.config = {
                            header: [
                                '<span style="font-size:18px;">层数</span>',
                                '<span style="font-size:18px;">累计标准饼厚</span>',
                                '<span style="font-size:18px;">累计饼厚</span>',
                                '<span style="font-size:18px;">测高结果</span>'
                            ],
                            data: arr,
                            waitTime: 10000,
                            rowNum: 15,
                            columnWidth: [75, 150, 110, 110],
                            align: ["center", "center", "center", "center"]
                        };
                    } else {
                        this.$refs["scrollBoard"].updateRows(arr)
                    }
                    if (this.IsDetail) {
                        setInterval(() => {
                            this.GetOrderDetail();
                        }, 10000);
                        this.IsDetail = false;
                    }
                }
            });
        }
    },
};
</script>
<style lang="scss">
@import "../assets/scss/index.scss";
</style>
<style lang="css" scoped>
.myhead {
    position: absolute;
    width: 100%;
    height: 100px;
    /* background-color: red; */
    top: 0;
    left: 0;
    z-index: 999;
    background-size: cover;
    background-position: center center;
}
.b-color {
    width: 1420px;
}
.boxOrderHeight {
    height: 40px;
    line-height: 40px;
    width: 400px;
    display: flex;
}
.body-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 20px;
}
.content-box {
    width: 100%;
}
.rows {
    display: flex;
    background-color: rgb(0, 0, 0);
    color: #fff;
    height: 30px;
    line-height: 30px;
    font-size: 18px;
}
.cell {
    width: 160px;
    border-right: #fff 1px solid;
    text-align: center;
}
.bodys {
    display: flex;
    background-color: rgb(0, 59, 81);
    color: #fff;
    height: 32px;
    line-height: 40px;
}
</style>
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/center-bottom.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/center-map.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/index.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/left-bottom.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/left-center-right.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/left-center.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/left-top.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/pass-two.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/plan.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/right-bottom.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/right-center.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/right-top.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/station-four.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/station-one.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/station-three.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/indexs/station-two.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/setting.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/src/views/tjfx/tjfx.vue
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/BigScreen/vue.config.js
@@ -1,129 +1,16 @@
/*
 * @Author: daidai
 * @Date: 2021-11-22 14:57:15
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-04-29 15:12:50
 */
const path = require("path");
function resolve(dir) {
  return path.join(__dirname, dir);
const path = require('path')
const resolve = dir => {
  return path.join(__dirname, dir)
}
module.exports = {
  publicPath: './',
  outputDir: process.env.VUE_APP_outputDir || 'dist',
  assetsDir: 'static',
  filenameHashing: true,
  lintOnSave: false,
  runtimeCompiler: false,
  transpileDependencies: [],
  productionSourceMap: false,
  css: {
    // æ˜¯å¦ä½¿ç”¨css分离插件 ExtractTextPlugin
    extract: process.env.NODE_ENV === "production" ? true : false,//是否将组件中的 CSS æå–至一个独立的 CSS æ–‡ä»¶ä¸­ (而不是动态注入到 JavaScript ä¸­çš„ inline ä»£ç )。
    sourceMap: false,//是否为 CSS å¼€å¯ source map。设置为 true ä¹‹åŽå¯èƒ½ä¼šå½±å“æž„建的性能。
    loaderOptions: {
      sass: {
        prependData: `@import "@/assets/css/variable.scss";`
      }
    },
    requireModuleExtension: true,
  },
  chainWebpack: (config) => {
    // é…ç½®åˆ«å
    config.resolve.alias
      .set('@', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('assetsBig', resolve('src/pages/big-screen/assets'))
      .set('components', resolve('src/components'))
      .set('views', resolve('src/views'))
      .set('api', resolve('src/api'))
      .set('lib', resolve('src/lib'))
    if (process.env.NODE_ENV === "production") {
      // åˆ é™¤ç³»ç»Ÿé»˜è®¤çš„splitChunk
      config.optimization.delete("splitChunks");
    }
    // åˆ é™¤é¢„加载
    //  // ç§»é™¤ prefetch  æ’ä»¶
    //  config.plugins.delete('prefetch-index')
    //  // ç§»é™¤ preload æ’ä»¶
    //  config.plugins.delete('preload-index');
    //   config.optimization.minimizer('terser').tap((args) => {
    //     // åŽ»é™¤ç”Ÿäº§çŽ¯å¢ƒconsole
    //     args[0].terserOptions.compress.drop_console = true
    //     return args
    //   })
  },
  configureWebpack: config => {
    // ç»™è¾“出的js名称添加hash
    config.output.filename = "static/js/[name].[hash].js";
    config.output.chunkFilename = "static/js/[name].[hash].js";
    config.optimization = {
      splitChunks: {
        cacheGroups: {
          // æŠ½ç¦»æ‰€æœ‰å…¥å£çš„公用资源为一个chunk
          common: {
            name: "chunk-common",
            chunks: "initial",
            minChunks: 2,
            maxInitialRequests: 5,
            minSize: 0,
            priority: 1,
            reuseExistingChunk: true,
            enforce: true
          },
          // æŠ½ç¦»node_modules下的库为一个chunk
          // vendors: {
          //   name: "chunk-vendors",
          //   test: /[\\/]node_modules[\\/]/,
          //   chunks: "initial",
          //   priority: 2,
          //   reuseExistingChunk: true,
          //   enforce: true
          // },
          element: {
            name: "chunk-element-ui",
            test: /[\\/]node_modules[\\/]element-ui[\\/]/,
            chunks: "all",
            priority: 3,
            reuseExistingChunk: true,
            enforce: true
          },
          yhhtUi: {
            name: "chunk-yhht-ui",
            test: /[\\/]node_modules[\\/]yhht-ui[\\/]/,
            chunks: "all",
            priority: 4,
            reuseExistingChunk: true,
            enforce: true
          },
          datav: {
            name: "chunk-datav",
            test: /[\\/]node_modules[\\/]@jiaminghi[\\/]data-view[\\/]/,
            chunks: "all",
            priority: 4,
            reuseExistingChunk: true,
            enforce: true
          },
        }
      }
    };
  },
  // æ˜¯å¦ä¸º Babel æˆ– TypeScript ä½¿ç”¨ thread-loader。该选项在系统的 CPU æœ‰å¤šäºŽä¸€ä¸ªå†…核时自动启用,仅作用于生产构建。
  parallel: require('os').cpus().length > 1,
  devServer: {
    // '/api':{
    //   target: 'http://192.168.8.211:8098/',
    //   // è·¨åŸŸé…ç½®
    //   changeOrigin: true,
    //   // è·¯å¾„重写
    //   pathRewrite:{
    //         '^/api': '/'
    //     }
    // }
    host:'0.0.0.0',
    port:8090
  },
  pluginOptions: {
  }
  chainWebpack: config => {
    config.resolve.alias
      .set('_c', resolve('src/components')) // key,value自行定义,比如.set('@@', resolve('src/components'))
  },
  lintOnSave: false
}
ÏîÄ¿´úÂë/WMS/WMSClient/src/extension/taskinfo/task.js
@@ -62,6 +62,32 @@
              });
        }
      }
      let ResendTaskBtn = this.buttons.find(x => x.value == 'ResendTask');
      if (ResendTaskBtn) {
        ResendTaskBtn.onClick = function () {
          this.$confirm("是否确认重新下发任务","重新下发任务警告",{
              confirmButtonText: "确定",
              cancelButtonText: "取消",
              type: "warning",
              center: true,
              }).then(() => {
                let rows = this.$refs.table.getSelected();
                if (rows.length == 0) return this.$error("请选择数据!");
                if (rows.length > 1) return this.$error("请选择一条数据!");
                var param = rows[0].taskNum;
                this.http
                .post("api/Task/ResendTask?taskNum="+param, "")
                .then((x) => {
                    if (x.status) {
                    this.$Message.success('任务重新下发');
                    this.refresh();
                  } else {
                    return this.$error(x.message);
                  }
                });
              });
        }
      }
      },
      onInited() {
        //框架初始化配置后
ÏîÄ¿´úÂë/WMS/WMSClient/src/views/taskinfo/task.vue
@@ -1,16 +1,7 @@
<template>
  <view-grid
    ref="grid"
    :columns="columns"
    :detail="detail"
    :editFormFields="editFormFields"
    :editFormOptions="editFormOptions"
    :searchFormFields="searchFormFields"
    :searchFormOptions="searchFormOptions"
    :table="table"
    :extend="extend"
  >
  <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
    :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
    :table="table" :extend="extend">
  </view-grid>
</template>
    <script>
@@ -47,11 +38,13 @@
        { title: "任务号", field: "taskNum", type: "int" },
        { title: "条码/托盘号", field: "palletCode", type: "like" },
        { title: "RFID编号", field: "rfidCode", type: "like" },
        { title: "单据编号", field: "orderNo", type: "like" }
      ],
      [
        { title: "任务类型",field: "taskType",type: "selectList",dataKey: "taskType",data: [],},
        { title: "任务状态",field: "taskStatus",type: "selectList",dataKey: "taskStatusEnum",data: [],},
        { title: "巷道号", field: "roadway", type: "selectList",dataKey: "",data: [{key: "SC01_CP",value: "1号堆垛机-成品库"},
        {
          title: "巷道号", field: "roadway", type: "selectList", dataKey: "", data: [{ key: "SC01_CP", value: "1号堆垛机-成品库" },
        {key: "SC02_CP",value: "2号堆垛机-成品库"},
        {key: "SC03_CP",value: "3号堆垛机-成品库"},
        {key: "SC04_CP",value: "4号堆垛机-成品库"},
@@ -61,16 +54,18 @@
        {key: "SC03_YLDual",value: "3号堆垛机-原料库"},
        {key: "SC04_YLDual",value: "4号堆垛机-原料库"},
        {key: "SC05_YLDual",value: "5号堆垛机-原料库"},
      ], },
          ],
        },
        { title: "所属仓库", field: "warehouseId", type: "selectList", dataKey: "warehouses", data: [], },
      ],
      [
        { title: "起始地址", field: "sourceAddress", type: "like" },
        { title: "目标地址", field: "targetAddress", type: "like" },
        { title: "下一地址", field: "nextAddress", type: "like" },
        { title: "创建时间", field: "createDate", type: "datetime" },
      ],
      [
        { title: "创建时间", field: "createDate", type: "datetime" },
        { title: "所属仓库", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],},
        { title: "创建人", field: "creater", type: "like" },
      ],
    ]);
@@ -120,7 +115,8 @@
        type: "string",
        width: 130,
        align: "left",
        bind: { key: "", data: [
        bind: {
          key: "", data: [
        {key: "SC01_CP",value: "1号堆垛机-成品库"},
        {key: "SC02_CP",value: "2号堆垛机-成品库"},
        {key: "SC03_CP",value: "3号堆垛机-成品库"},
@@ -131,7 +127,8 @@
        {key: "SC03_YLDual",value: "3号堆垛机-原料库"},
        {key: "SC04_YLDual",value: "4号堆垛机-原料库"},
        {key: "SC05_YLDual",value: "5号堆垛机-原料库"},
        ] },
          ]
        },
      },
      {
        field: "taskType",
@@ -298,4 +295,3 @@
  },
});
</script>
ÏîÄ¿´úÂë/WMS/WMSClient/src/views/taskinfo/task_hty.vue
@@ -1,16 +1,7 @@
<template>
  <view-grid
    ref="grid"
    :columns="columns"
    :detail="detail"
    :editFormFields="editFormFields"
    :editFormOptions="editFormOptions"
    :searchFormFields="searchFormFields"
    :searchFormOptions="searchFormOptions"
    :table="table"
    :extend="extend"
  >
  <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
    :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
    :table="table" :extend="extend">
  </view-grid>
</template>
    <script>
@@ -47,11 +38,13 @@
        { title: "任务号", field: "taskNum", type: "int" },
        { title: "条码/托盘号", field: "palletCode", type: "like" },
        { title: "RFID编号", field: "rfidCode", type: "like" },
        { title: "单据编号", field: "orderNo", type: "like" },
      ],
      [
        { title: "任务类型",field: "taskType",type: "selectList",dataKey: "taskType",data: [],},
        { title: "任务状态",field: "taskStatus",type: "selectList",dataKey: "taskStatusEnum",data: [],},
        { title: "巷道号", field: "roadway", type: "selectList",dataKey: "",data: [{key: "SC01_CP",value: "1号堆垛机-成品库"},
        {
          title: "巷道号", field: "roadway", type: "selectList", dataKey: "", data: [{ key: "SC01_CP", value: "1号堆垛机-成品库" },
        {key: "SC02_CP",value: "2号堆垛机-成品库"},
        {key: "SC03_CP",value: "3号堆垛机-成品库"},
        {key: "SC04_CP",value: "4号堆垛机-成品库"},
@@ -61,16 +54,17 @@
        {key: "SC03_YLDual",value: "3号堆垛机-原料库"},
        {key: "SC04_YLDual",value: "4号堆垛机-原料库"},
        {key: "SC05_YLDual",value: "5号堆垛机-原料库"},
      ], },
          ],
        },
        { title: "所属仓库", field: "warehouseId", type: "selectList", dataKey: "warehouses", data: [], },
      ],
      [
        { title: "起始地址", field: "sourceAddress", type: "like" },
        { title: "目标地址", field: "targetAddress", type: "like" },
        { title: "下一地址", field: "nextAddress", type: "like" },
        { title: "创建时间", field: "createDate", type: "datetime" },
      ],
      [
        { title: "创建时间", field: "createDate", type: "datetime" },
        { title: "所属仓库", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],},
        { title: "创建人", field: "creater", type: "like" },
      ],
    ]);
@@ -120,7 +114,8 @@
        type: "string",
        width: 130,
        align: "left",
        bind: { key: "", data: [
        bind: {
          key: "", data: [
        {key: "SC01_CP",value: "1号堆垛机-成品库"},
        {key: "SC02_CP",value: "2号堆垛机-成品库"},
        {key: "SC03_CP",value: "3号堆垛机-成品库"},
@@ -131,7 +126,8 @@
        {key: "SC03_YLDual",value: "3号堆垛机-原料库"},
        {key: "SC04_YLDual",value: "4号堆垛机-原料库"},
        {key: "SC05_YLDual",value: "5号堆垛机-原料库"},
        ] },
          ]
        },
      },
      {
        field: "taskType",
@@ -298,4 +294,3 @@
  },
});
</script>