Commit 27e7e4c4 authored by 王奇誉's avatar 王奇誉

Merge branch 'master' of http://192.168.1.181/root/FTT_Board

# Conflicts:
#	FTT.Board.VueUI/src/config/comboxstore.js
#	FTT.Board.VueUI/src/views/board/index.vue
#	FTT.Board.VueUI/src/views/chart/Table2.vue
parents f55904be 14f09182
......@@ -15,3 +15,9 @@
/FTT.Board.VueUI/board
/Product
/MTM-zby
/FTT.Board/.vs/FTT.Board/v16/Server/sqlite3/storage.ide-wal
/FTT.Board/.vs/FTT.Board/v16/Server/sqlite3/storage.ide-shm
/FTT.Board/.vs/FTT.Board/v16/Server/sqlite3/storage.ide
/FTT.Board/.vs/FTT.Board/v16/Server/sqlite3/db.lock
/FTT.Board/.vs/FTT.Board/v16/.suo
/FTT.Board/.vs/FTT.Board/config/applicationhost.config
......@@ -48,7 +48,7 @@ exports.cssLoaders = function (options) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath:'./'
publicPath:'../../'
})
} else {
return ['vue-style-loader'].concat(loaders)
......
......@@ -4,6 +4,7 @@
const path = require('path')
var configjson = require("../static/config.json")
console.log('process.env.IsNeedConfig'+process.env.IsNeedConfig)
var baseurl=process.env.IsNeedConfig?configjson.config.ProjectName+"/":"FTT.Board/";
console.log(baseurl);
module.exports = {
......@@ -24,7 +25,7 @@ module.exports = {
},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
host: '127.0.0.1', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true,
errorOverlay: true,
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<!-- <link rel="stylesheet" href="./src/assets/font/iconfont.css"> -->
<title>board</title>
<style>
.el-progress-bar {
display: flex !important;
align-items: center;
}
.el-progress-bar__innerText {
/* font-size: 23px !important; */
display: flex !important;
align-items: center !important;
justify-content: flex-end !important;
margin: 0 !important;
box-sizing: border-box !important;
/* padding:0 0 0 35px !important; */
padding:0 0 0 18px !important;
}
.el-table .cell, .el-table th div{
overflow: hidden !important;
}
.el-progress-bar__outer{
height: 60% !important;
}
.el-progress-bar__inner{
border-radius: 11px !important;
}
.el-progress-bar__outer{
border-radius: 11px !important;
}
</style>
</head>
<body>
<div id="app"></div>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -33,11 +33,12 @@
"babel-preset-stage-3": "^6.24.1",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"css-loader": "^0.28.11",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"less-loader": "^6.2.0",
"node-notifier": "^5.1.2",
"node-sass": "^4.12.0",
"optimize-css-assets-webpack-plugin": "^3.2.0",
......@@ -50,6 +51,8 @@
"sass-loader": "^7.2.0",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"style-loader": "^1.2.1",
"stylus-loader": "^3.0.2",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
......@@ -57,7 +60,7 @@
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-dev-server": "^2.9.7",
"webpack-merge": "^4.1.0"
},
"engines": {
......
......@@ -27,6 +27,7 @@ export default {
</script>
<style>
/* @import url('../src/assets/font/iconfont.css'); */
#app {
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
......
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1595579233851'); /* IE9 */
src: url('iconfont.eot?t=1595579233851#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAW4AAsAAAAACxwAAAVsAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDHAqJSIdsATYCJAMQCwoABCAFhG0HWBtuCREVpPWR/VgoN72YE5Qh1VuTPX2bVW+mhx26AyHiEFvzuOlw53ASWeBEVL/YWrMCGxVhSji+Vfjkt3tZ4MnlngLg4Jjp0jewPNvaJTtwAxsl0IDyo5peMEDwF/EsLlQec+N6IAAcoTgEyskrqYEKBiYnXDYy2N8JNTOAdeAJqlrXcCzT0QYUqNKZ0ksAzrV/Tz8iilRAgiKD3aiiL7cHGd/wb5+TNbeGFtkKbX82AKOTABnAIQAMoIFGRxdkLztkFbwplyEOgMp/IgHf8G8yv33O7aaia1GoJA7IkPA/j3RgCg+MjUnKwDdcCqIyE1NBAr59TvQEFEwfowIIA+hygL4CU5ltqx8kqOmKyjCTr6o3MU/Gz1nkEevNuV7P2DInq5Pzg8Jl9acGF2UvPOEL7rzqPO38qwMEPGwnoNMcQsDhJ1wBZKC8xWrF2SVQw+ucN1hvDPA5BnjAIMlV8GgTjNdyEqOovt5EXsQV0bEbFFCpggPZanjawQ4nQw0/ofkJh8vZKewuks+A1xMhJZqFxKciDy6sX9PAZTHJnSccAathof7AaVuKy7+u32W9xubb0+e07fcDe2se4W+9VfP227XvvltvTXME1Nc+BC3I4QhwXeh/QfCV7+Y//XbEZW/l2JKuOna+39XPC0jZO+9MPPNOZPOmZXH3wxZc9FAMb/QPMdGlj8Yb6Ip38ngNBycuX/ioECRgIHohcAj7w0ENsvMGbrRd5SuJenHkS8Aw4kXWG7jJdh2WIVw3Ura05p5HrI/aH9YeyrLfOOTW52rX1wjikB+T1HX107Gsjt1YFNfl2bVbjWBZrFY5U1M9cz+76DvLdxd9nmse65KZcXXVflWb3VD3n7C4jRntYVUb+o/U15+diUmrjG08+pgp2PRYbtqJnAt6LvC7wI65eOXLKw+sPvDgw+1h7eZQtX+LT9xcnN8DqQ/QeVGslp2pkH3Wz4w8dnJGLbuX9Rrunk1y2cKM5aHLhs8jd7jTbj8cPw5BWnhWq1jkQUZzo9oYUtKn1Cql6kZfC6K0xlhSlVA1qo/oLe1UTMvLgxEdNnuHZ3lpsFoDd1TqlxQ+yuLzvp7epzvC6b6/+s4vGZ/4MrWEuruphHM1Twni+VPTTNLo6MR4Wqq5r/D/ze2NoOPQ5ed3dMjn6HT5eZ179ziibo+cHT8eUkI9PVRMJZ19Jcc6xICD8xH/xFZk+C9StfRLeCSiIoJt5smZ8dJz7qHMDLo4aCYrK0p8x+np70dEZEdlv56ddPya40nZ1RHPpx9RJUO44QZDmLm8NWj66TxqaaHcW/iPF7dnGSONFvmE41eUuSJeizLWGKKNb10c/nP+L3m/5P983Bhp5jnZ914Tfc1t+GWYAAC4Nfk22Qq4X5Bvl4MB9yXy73LXP38bnpi67Jt2z5S/VfHRj32Y8VCn9bs1hu2Ef18hWPg/N7GAH4V4KWZGxuZCqQyAN4HhHfgBf5sOcHAAbuzxxif7UPktYgBBJSoau3bAEkGGil1Ihj0ECgRiQAcV6cBxEPknC/hgCjKI6QEcwKkICCbcChKMeBRkmPAykmE/BgX++Bl0MJEMHHXkc06BPeSwk2xCwVjB6w+szEkJM09c+RvqJghKxZbwhVTbMCxnizJ9wYS0jwPqb71iVqAoRzijm2EIGQplh5Jnhrmc5nPV9EUzmWNrgmxCwVgBXn8AK3NSejRPKr//hroJgjr6Lji/kGq7OGCJGRYA5EWRQH3Ppbb+1iswiSmAGpXmCDgTGwaeyIDSvMmh5BnMFrFywpwMUlDF7Piq+ArPAXCwCzKSSCZGCiyD02uxSbOwv4bwb2zCamelaUTSQ7dWpErk3nxy21YL') format('woff2'),
url('iconfont.woff?t=1595579233851') format('woff'),
url('iconfont.ttf?t=1595579233851') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1595579233851#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.iconi-Mpingtaixingzhinengjichuang:before {
content: "\e7c8";
}
.iconjiandao:before {
content: "\e641";
}
.iconwnj5:before {
content: "\e60a";
}
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="i-Mpingtaixingzhinengjichuang" unicode="&#59336;" d="M933.910788 676.926355H737.182856V729.946682a10.440296 10.440296 0 0 1-10.440296 10.645008h-170.320124l20.471169 27.636077h54.043885a10.645008 10.645008 0 0 1 0 20.471169H593.884675L611.48988 814.083185a10.440296 10.440296 0 0 1 2.865964 5.527216V885.527564a10.440296 10.440296 0 0 1-11.259143 10.440296h-136.747407a10.440296 10.440296 0 0 1-10.440296-10.440296v-14.53453h-69.192551a51.382634 51.382634 0 1 1 0-102.355843h69.192551v-28.045501H90.089212a10.440296 10.440296 0 0 1-10.440296-10.645008V-66.17707a10.440296 10.440296 0 0 1 10.440296-10.440296h81.884675v-40.942338a10.440296 10.440296 0 0 1 10.440296-10.440296h116.685662a10.440296 10.440296 0 0 1 10.440296 10.440296v40.942338h404.919718v-40.942338a10.440296 10.440296 0 0 1 10.440296-10.440296h115.866815a10.440296 10.440296 0 0 1 10.440296 10.440296v40.942338h81.884675a10.440296 10.440296 0 0 1 10.440296 10.440296V666.281347a10.440296 10.440296 0 0 1-9.621449 10.645008zM476.994301 875.496692h115.662104v-52.406192l-62.846488-81.884675h-52.815616z m-90.277854-86.183621a30.29733 30.29733 0 0 0 0 61.413506h69.192551v-61.413506zM307.288313 719.506386h409.423374v-99.48988H307.288313z m0-120.575184h409.423374V204.042357H307.288313z m0-415.974149h409.423374v-99.48988H307.288313zM100.73422 719.506386H286.817144v-636.039213H100.73422zM288.659549-107.119408H193.878038v30.911465h94.781511z m541.667125 0h-94.986223v30.911465h94.986223z m92.939106 51.382634H100.73422v118.118643h822.53156z m0 138.589812H737.182856v573.192725h185.673501zM664.91963 503.330844H359.08037a10.440296 10.440296 0 0 1-10.440297-10.440296v-137.156831a10.440296 10.440296 0 0 1 10.440297-10.440296h126.511822l40.942338-42.580031a11.259143 11.259143 0 0 1 7.779044-3.275387h131.01548a10.440296 10.440296 0 0 1 10.440296 10.645008v182.807537a10.440296 10.440296 0 0 1-10.84972 10.440296zM655.298181 320.523307h-116.890373l-40.942338 42.580031a11.259143 11.259143 0 0 1-7.779044 3.275387h-119.961049V482.450252H655.298181zM466.349294 320.523307h-107.268924a10.645008 10.645008 0 0 1 0-20.471169h107.268924a10.645008 10.645008 0 1 1 0 20.471169zM775.463942 265.660575h110.134887a10.440296 10.440296 0 0 1 10.440297 10.440296V561.468963a10.440296 10.440296 0 0 1-10.440297 10.440296h-110.134887a10.440296 10.440296 0 0 1-10.645008-10.440296v-285.368092a10.440296 10.440296 0 0 1 10.645008-10.440296z m10.440296 285.16338h89.049584v-264.282788h-89.049584zM245.874806 620.016506H143.518963a10.440296 10.440296 0 0 1-10.440296-10.645008v-333.270627a10.440296 10.440296 0 0 1 10.440296-10.440296h102.355843a10.440296 10.440296 0 0 1 10.440296 10.440296V609.371498a10.440296 10.440296 0 0 1-10.440296 10.645008z m-10.645007-333.475339h-81.884675V598.931202h81.884675zM856.939193 333.420143h-32.958581a10.645008 10.645008 0 1 1 0-20.471168h32.958581a10.645008 10.645008 0 1 1 0 20.471168zM856.939193 376.819021h-32.958581a10.645008 10.645008 0 1 1 0-20.471169h32.958581a10.645008 10.645008 0 1 1 0 20.471169zM856.939193 420.217899h-32.958581a10.645008 10.645008 0 1 1 0-20.471169h32.958581a10.645008 10.645008 0 1 1 0 20.471169z" horiz-adv-x="1024" />
<glyph glyph-name="jiandao" unicode="&#58945;" d="M768 307.2c-40.96 0-76.8-12.8-107.52-35.84 0 0 0 2.56-2.56 2.56l-110.08 110.08 366.08 366.08c10.24 10.24 10.24 25.6 0 35.84-5.12 5.12-12.8 7.68-17.92 7.68s-12.8-2.56-17.92-7.68l-366.08-366.08-366.08 366.08c-5.12 5.12-12.8 7.68-17.92 7.68-7.68 0-12.8-2.56-17.92-7.68-10.24-10.24-10.24-25.6 0-35.84l366.08-366.08-110.08-110.08-2.56-2.56c-30.72 23.04-66.56 35.84-107.52 35.84-99.84 0-179.2-79.36-179.2-179.2s79.36-179.2 179.2-179.2 179.2 79.36 179.2 179.2c0 40.96-12.8 76.8-35.84 107.52 0 0 2.56 0 2.56 2.56l110.08 110.08 110.08-110.08 2.56-2.56c-23.04-30.72-35.84-66.56-35.84-107.52 0-17.92 2.56-35.84 7.68-51.2 5.12-12.8 17.92-20.48 30.72-17.92 12.8 5.12 20.48 17.92 17.92 30.72-2.56 12.8-5.12 23.04-5.12 35.84 0 71.68 56.32 128 128 128s128-56.32 128-128-56.32-128-128-128c-25.6 0-51.2 7.68-74.24 23.04-12.8 7.68-28.16 5.12-35.84-5.12-7.68-12.8-5.12-28.16 5.12-35.84 30.72-20.48 66.56-33.28 102.4-33.28 99.84 0 179.2 79.36 179.2 179.2s-76.8 181.76-176.64 181.76z m-512-307.2c-71.68 0-128 56.32-128 128s56.32 128 128 128 128-56.32 128-128-56.32-128-128-128z" horiz-adv-x="1024" />
<glyph glyph-name="wnj5" unicode="&#58890;" d="M892.17086017 657.93327719H925.77334284C971.62045007 657.93327719 1008.78342691 620.77030163 1008.78342691 574.92319312v-83.01263821c0-45.8445544-37.16297556-83.01008407-83.00752995-83.01008407h-33.44157027l0.21199489-307.13986546h33.22957538c45.8445544 0 83.00752995-37.16297556 83.00752995-83.00752996V-97.45848866999995H45.86645087v116.21411822C45.86645087 64.60273806999999 83.02942641 101.76571362000004 128.87908906 101.76571362000004h398.4484033v182.62218524c0 64.18595062-52.03327455 116.21411823-116.21411693 116.21411822h-156.64386109L228.48863609 284.38789885999995h-66.4080683v-66.40806701H112.27451787v66.40806701H45.86645087V674.53529426c4.57194023 41.94435654 39.96743997 74.70907618 83.01263819 74.70907619h33.20403285v66.408067H211.88661901v-66.408067h464.8564716v66.408067h-58.10450499V865.45848867h166.02016815v-49.80605122H726.54914053v-66.408067H809.55922462c43.04008998 0 78.43814384-32.76471835 82.59120255-74.70907619l0.01787887-16.60201707zM845.31741513 409.84040012v258.19967522c-1.83899259 18.43590142-16.14226828 31.39569105-33.25767075 31.39568976H130.21491275c-17.06176458 0-31.35737919-12.83974451-33.1018679-29.73038018L96.94957963 335.37652373000003h93.07345954l26.02685506 115.8386568h196.87948539c91.85001989 0 166.3036798-74.08586217 166.3036798-165.48379562V111.98233911H845.31741513V409.84295425zM96.94957963-46.375359900000035h863.30487489v66.41062241c0 8.80673092-3.4991939 17.24821822-9.72367309 23.47780564A33.21169652 33.21169652 0 0 1 927.05042037 53.23674125000002H130.15361248c-8.80673092 0-17.25332646-3.4991939-23.48291389-9.7236731A33.21169652 33.21169652 0 0 1 96.94957963 20.03270839000004V-46.375359900000035z m794.34265152 656.41820476v-150.69522991h33.20403285a33.05078412 33.05078412 0 0 1 23.48036106 9.80796048 33.63824041 33.63824041 0 0 1 9.72367308 23.6770299v83.72524786c0 8.8808018-3.4991939 17.39380587-9.72367308 23.6770312A33.07632537 33.07632537 0 0 1 924.496264 610.0428448600001H891.29223115z m-180.07058298-158.35769903C665.37453965 451.68514583 628.21411823 488.84812139 628.21411823 534.6952299100001s37.16297556 83.01008407 83.00752994 83.01008407c45.84710851 0 83.0126382-37.16297556 83.01263821-83.01008407S757.07130951 451.68514583 711.22164817 451.68514583z m-1.27707883 51.08312877c18.34139754 0 33.20658827 14.86519074 33.20658827 33.20403286s-14.86519074 33.20403415-33.20658827 33.20403414C691.60828005 569.1763416 676.74309061 554.31115086 676.74309061 535.97230746s14.86519074-33.20403415 33.20147873-33.20403286zM628.21411823 318.86901054h166.02016815v51.08312876h-166.02016815v-51.08312876z m0-125.15366489h166.02016815v51.08312876h-166.02016815v-51.08312876z" horiz-adv-x="1047" />
</font>
</defs></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg width="1920px" height="1080px" viewBox="0 0 1920 1080" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
<title>成型A线备份</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
<stop stop-color="#000000" offset="0%"></stop>
<stop stop-color="#01031E" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="100%" y2="0%" id="linearGradient-2">
<stop stop-color="#0CFAFA" offset="0%"></stop>
<stop stop-color="#05F3F3" stop-opacity="0" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="100%" y2="0%" id="linearGradient-3">
<stop stop-color="#0CFAFA" offset="0%"></stop>
<stop stop-color="#05F3F3" stop-opacity="0" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-4">
<stop stop-color="#0AF9F9" offset="0%"></stop>
<stop stop-color="#04F0F0" stop-opacity="0.105004371" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-5">
<stop stop-color="#0AF9F9" offset="0%"></stop>
<stop stop-color="#04F0F0" stop-opacity="0.105004371" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="100%" y2="0%" id="linearGradient-6">
<stop stop-color="#0CFAFA" offset="0%"></stop>
<stop stop-color="#05F3F3" stop-opacity="0" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="100%" y2="0%" id="linearGradient-7">
<stop stop-color="#0CFAFA" offset="0%"></stop>
<stop stop-color="#05F3F3" stop-opacity="0" offset="100%"></stop>
</linearGradient>
</defs>
<g id="成型A线备份" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect id="矩形" fill="url(#linearGradient-1)" x="0" y="0" width="1920" height="1080"></rect>
<g id="编组-2" transform="translate(1250.000000, 158.000000)" stroke="#05F3F3">
<rect id="矩形" stroke-width="7.2" opacity="0.429454985" x="4.6" y="4.6" width="581.8" height="240.8" rx="10.8"></rect>
<rect id="矩形" stroke-width="1.2" x="1.6" y="0.6" width="587.8" height="246.8" rx="15.6"></rect>
<path d="M577.10219,0 C584.225454,0 590,4.69155135 590,10.4788732 M590,237.521127 C590,243.308449 584.225454,248 577.10219,248 L13.8978102,248 C6.77454633,248 1,243.308449 1,237.521127 M1,112.647887 L1,112.647887 L1,10.4788732 C1,4.69155135 6.77454633,0 13.8978102,0" id="形状" stroke-width="7.2" opacity="0.668387277"></path>
<line x1="0.5" y1="53" x2="0.5" y2="105" id="路径-2" stroke-width="12" opacity="0.668387277"></line>
</g>
<rect id="矩形" stroke="#05F3F3" stroke-width="1.2" x="1279.6" y="183.6" width="127.2" height="169.2"></rect>
<rect id="矩形" stroke="#05F3F3" stroke-width="1.2" opacity="0.302943638" x="1272.6" y="176.6" width="138.8" height="183.8"></rect>
<g id="编组-2备份-10" transform="translate(282.000000, 113.000000)">
<polygon id="矩形备份-10" fill="#05F3F3" points="6 0 11 0 5 10 0 10"></polygon>
<polygon id="矩形备份-11" fill="#05F3F3" points="14 0 19 0 13 10 8 10"></polygon>
<polygon id="矩形备份-12" fill="#05F3F3" points="22 0 27 0 21 10 16 10"></polygon>
<polygon id="矩形备份-13" fill="#05F3F3" points="31 0 36 0 30 10 25 10"></polygon>
<line x1="28" y1="9.5" x2="486.5" y2="9.5" id="路径-5" stroke="url(#linearGradient-2)"></line>
</g>
<g id="基本信息" transform="translate(46.000000, 96.000000)" fill-rule="nonzero">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="24" height="24"></rect>
<path d="M12,1.69921875 C11.4773437,1.69921875 10.9546875,1.79765625 10.55625,1.996875 L2.1421875,6.20390625 C1.34765625,6.60234375 1.34765625,7.24921875 2.1421875,7.64765625 L10.55625,11.8546875 C10.9546875,12.0539062 11.4773437,12.1523438 12.0023437,12.1523438 C12.525,12.1523438 13.0476562,12.0539062 13.4460937,11.8546875 L21.8625,7.64765625 C22.6570312,7.24921875 22.6570312,6.60234375 21.8625,6.20390625 L13.44375,1.996875 C13.0453125,1.79765625 12.5226563,1.69921875 12,1.69921875 Z M12,17.2945312 C11.3554687,17.2945312 10.7109375,17.165625 10.1953125,16.9078125 L1.95,12.7875 C1.5515625,12.5882813 1.38984375,12.103125 1.5890625,11.7023438 C1.78828125,11.3039063 2.2734375,11.1421875 2.67421875,11.3414063 L10.9171875,15.4640625 C11.484375,15.7476563 12.515625,15.7476563 13.0851562,15.4640625 L21.328125,11.34375 C21.7265625,11.1445313 22.2117187,11.30625 22.4109375,11.7046875 C22.6101562,12.103125 22.4484375,12.5882813 22.05,12.7875 L13.8046875,16.9078125 C13.2398437,17.1726562 12.6234375,17.3039062 12,17.2945312 Z M12,22.3007812 C11.3554687,22.3007812 10.7109375,22.171875 10.1953125,21.9140625 L1.95234375,17.7914063 C1.55390625,17.5921875 1.3921875,17.1070313 1.59140625,16.7085938 C1.790625,16.3101563 2.27578125,16.1484375 2.67421875,16.3476562 L10.9171875,20.4703125 C11.484375,20.7539063 12.515625,20.7539063 13.0851562,20.4703125 L21.328125,16.3476562 C21.7265625,16.1484375 22.2117187,16.3101563 22.4109375,16.7085938 C22.6101562,17.1070313 22.4484375,17.5921875 22.05,17.7914063 L13.8046875,21.9140625 C13.2914062,22.171875 12.646875,22.3007812 12,22.3007812 Z" id="形状" fill="#05F3F3"></path>
</g>
<g id="编组-2备份-7" transform="translate(958.000000, 446.000000)">
<polygon id="矩形备份-10" fill="#05F3F3" points="6 0 11 0 5 10 0 10"></polygon>
<polygon id="矩形备份-11" fill="#05F3F3" points="14 0 19 0 13 10 8 10"></polygon>
<polygon id="矩形备份-12" fill="#05F3F3" points="22 0 27 0 21 10 16 10"></polygon>
<polygon id="矩形备份-13" fill="#05F3F3" points="31 0 36 0 30 10 25 10"></polygon>
<line x1="28" y1="9.5" x2="874.5" y2="9.5" id="路径-5" stroke="url(#linearGradient-3)"></line>
</g>
<g id="编组-2备份-9" transform="translate(192.000000, 454.000000)">
<polygon id="矩形备份-10" fill="#05F3F3" points="6 0 11 0 5 10 0 10"></polygon>
<polygon id="矩形备份-11" fill="#05F3F3" points="14 0 19 0 13 10 8 10"></polygon>
<polygon id="矩形备份-12" fill="#05F3F3" points="22 0 27 0 21 10 16 10"></polygon>
<polygon id="矩形备份-13" fill="#05F3F3" points="31 0 36 0 30 10 25 10"></polygon>
<line x1="28" y1="9.5" x2="486.5" y2="9.5" id="路径-5" stroke="url(#linearGradient-2)"></line>
</g>
<g id="奖牌排名" transform="translate(46.000000, 437.000000)" fill-rule="nonzero">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="24" height="24"></rect>
<path d="M19.8151111,14.5528889 C20.7962754,16.8915265 21.7409824,19.245293 22.6488889,21.6133333 C22.4488889,21.8017778 22.4,21.9111111 22.3013333,21.9493333 C22.2543434,21.967033 22.2022612,21.9654354 22.1564445,21.9448889 L17.7013333,19.9537778 L15.7288889,23.5004445 C15.6434154,23.6538268 15.4756496,23.742508 15.3007681,23.7267494 C15.1258867,23.7109909 14.9766767,23.5937471 14.92,23.4275556 L13.1368889,18.1777778 C15.9991111,18.3573333 18.224,17.1493333 19.8151111,14.5528889 L19.8151111,14.5528889 Z M4.19377779,14.496 C5.74044445,17.1395556 7.96355557,18.3662222 10.8631111,18.1777778 L9.07999999,23.4275556 C9.0233233,23.5937471 8.87411334,23.7109909 8.69923188,23.7267494 C8.52435041,23.742508 8.35658457,23.6538268 8.27111112,23.5004445 L6.29777777,19.9537778 L1.85066667,21.9422222 C1.80228353,21.9638059 1.74733304,21.9654033 1.69777779,21.9466667 C1.5937778,21.9075555 1.54133334,21.792 1.35288888,21.6017778 C2.12977777,19.5422222 3.07644443,17.1733333 4.19377779,14.496 Z M11.8266667,0 C16.4106667,0 20.128,3.77155556 20.128,8.42311111 C20.128,13.0755555 16.4106667,16.8462222 11.8257778,16.8462222 C7.24177779,16.8462222 3.52533333,13.0755555 3.52533333,8.42311111 C3.52533333,3.77155556 7.24177779,0 11.8266667,0 Z M11.4684444,3.41333334 L11.4266667,3.48177778 L10.1573333,6.09155555 L7.30488888,6.51199999 C7.15221089,6.5342971 7.02202215,6.63418595 6.96095719,6.77588564 C6.89989224,6.91758532 6.91668997,7.08081745 7.00533333,7.2071111 L7.05777778,7.26844444 L9.12533334,9.31288889 L8.63911111,12.1928889 C8.61315292,12.345804 8.66879014,12.5011906 8.78590969,12.6028758 C8.90302925,12.704561 9.06468753,12.7378341 9.21244444,12.6906667 L9.28622222,12.6595556 L11.8266667,11.3048889 L14.3671111,12.6595556 C14.5038422,12.732383 14.6686292,12.7287591 14.8020265,12.6499912 C14.9354239,12.5712232 15.0181812,12.4286781 15.0204444,12.2737778 L15.0142222,12.1937778 L14.5271111,9.31377778 L16.5955556,7.26844444 C16.7055257,7.16013905 16.7514301,7.0025336 16.716816,6.85211636 C16.6822019,6.70169913 16.5720263,6.5800109 16.4257778,6.53066667 L16.3475556,6.51288888 L13.496,6.09155555 L12.2257778,3.48177778 C12.1575541,3.34204665 12.0212647,3.24813186 11.866399,3.23413578 C11.7115334,3.22013971 11.5606146,3.2880979 11.4684444,3.41333334 L11.4684444,3.41333334 Z" id="形状" fill="#05F3F3"></path>
</g>
<g id="编组-2备份-11" transform="translate(1426.000000, 113.000000)">
<polygon id="矩形备份-10" fill="#05F3F3" points="6 0 11 0 5 10 0 10"></polygon>
<polygon id="矩形备份-11" fill="#05F3F3" points="14 0 19 0 13 10 8 10"></polygon>
<polygon id="矩形备份-12" fill="#05F3F3" points="22 0 27 0 21 10 16 10"></polygon>
<polygon id="矩形备份-13" fill="#05F3F3" points="31 0 36 0 30 10 25 10"></polygon>
<line x1="28" y1="9.5" x2="486.5" y2="9.5" id="路径-5" stroke="url(#linearGradient-2)"></line>
</g>
<g id="五角星" transform="translate(1250.000000, 96.000000)" fill-rule="nonzero">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="24" height="24"></rect>
<path d="M22.9557073,9.47356097 C22.8714146,9.21131707 22.6466341,9.03570731 22.3937561,8.9982439 L15.6409756,8.0195122 L12.6251707,1.89892683 C12.510439,1.66712196 12.2739512,1.5102439 12,1.5102439 C11.7237073,1.5102439 11.489561,1.66946341 11.3748293,1.89892683 L8.35902438,8.0195122 L1.60390245,8.9982439 C1.35102441,9.03570731 1.1262439,9.21365852 1.04195121,9.47356097 C0.95531707,9.73580487 1.03492683,10.0097561 1.21756097,10.1877073 L6.10185366,14.9549268 L4.94985366,21.6796098 C4.90770731,21.9301463 5.00370731,22.1994146 5.22614634,22.3586341 C5.44858538,22.5178537 5.7342439,22.529561 5.96136586,22.4101463 L12.0023415,19.2374634 L18.0409756,22.4054634 C18.270439,22.524878 18.5514146,22.5131707 18.7738537,22.3539512 C18.9939512,22.1947317 19.0946341,21.9278049 19.0501463,21.6749268 L17.8958049,14.9502439 L22.7800976,10.1877073 C22.9650732,10.0074146 23.04,9.73346341 22.9557073,9.47356097 Z" id="路径" fill="#05F3F3"></path>
</g>
<rect id="矩形备份-14" fill="url(#linearGradient-4)" opacity="0.429454985" x="784" y="484" width="1065" height="37" rx="2"></rect>
<rect id="矩形备份-15" fill="url(#linearGradient-5)" opacity="0.429454985" x="46" y="484" width="638" height="37" rx="2"></rect>
<g id="编组" transform="translate(797.000000, 120.000000)">
<ellipse id="椭圆形" stroke="#00CFFF" stroke-width="10" opacity="0.3" cx="166.5" cy="140" rx="131.5" ry="132"></ellipse>
<circle id="椭圆形备份-8" stroke="#00CFFF" stroke-width="10" opacity="0.372279576" cx="167" cy="141" r="122"></circle>
<circle id="椭圆形备份-9" stroke="#00CFFF" stroke-width="22" opacity="0.372279576" cx="167.5" cy="140.5" r="112.5"></circle>
<path d="M167,263 C234.378739,263 289,208.378739 289,141" id="路径" stroke="#05F3F3" stroke-width="13"></path>
<path d="M23.0111088,223.585147 C90.4764233,223.572967 145.177741,168.883051 145.189922,101.431802" id="路径备份" stroke="#00CFFF" stroke-width="13" opacity="0.749046689" transform="translate(84.100515, 162.508475) rotate(120.000000) translate(-84.100515, -162.508475) "></path>
<g id="编组-11" transform="translate(68.000000, 66.000000)">
<ellipse id="椭圆形" fill="#05F3F3" cx="2.7" cy="2.68085106" rx="2.7" ry="2.68085106"></ellipse>
<polyline id="路径-4" stroke="#05F3F3" points="3.08571429 3.06382979 23.9142857 36 54 36"></polyline>
</g>
<g id="编组-11备份" transform="translate(234.000000, 179.000000) scale(-1, -1) translate(-234.000000, -179.000000) translate(207.000000, 161.000000)">
<ellipse id="椭圆形" fill="#05F3F3" cx="2.7" cy="2.68085106" rx="2.7" ry="2.68085106"></ellipse>
<polyline id="路径-4" stroke="#05F3F3" points="3.08571429 3.06382979 23.9142857 36 54 36"></polyline>
</g>
<circle id="椭圆形备份-2" fill="#05F3F3" cx="56" cy="56" r="4"></circle>
<circle id="椭圆形备份-7" fill="#05F3F3" cx="173.5" cy="2.5" r="2.5"></circle>
</g>
<circle id="椭圆形备份-6" fill="#05F3F3" cx="758" cy="65" r="3"></circle>
<circle id="椭圆形备份-6" fill="#05F3F3" transform="translate(1160.000000, 65.000000) scale(-1, 1) translate(-1160.000000, -65.000000) " cx="1160" cy="65" r="3"></circle>
<g id="编组-2备份-2" transform="translate(1180.000000, 48.000000)">
<polygon id="矩形备份-10" fill="#1B54F3" points="6 0 11 0 5 10 0 10"></polygon>
<polygon id="矩形备份-11" fill="#05F3F3" points="14 0 19 0 13 10 8 10"></polygon>
<polygon id="矩形备份-12" fill="#8C30FF" points="22 0 27 0 21 10 16 10"></polygon>
<polygon id="矩形备份-13" fill="#05F3F3" points="31 0 36 0 30 10 25 10"></polygon>
<line x1="28" y1="9.5" x2="668.5" y2="9.5" id="路径-5" stroke="url(#linearGradient-6)"></line>
</g>
<g id="编组-2备份-3" transform="translate(394.000000, 57.000000) scale(-1, 1) translate(-394.000000, -57.000000) translate(46.000000, 52.000000)">
<polygon id="矩形备份-10" fill="#1B54F3" points="6 0 11 0 5 10 0 10"></polygon>
<polygon id="矩形备份-11" fill="#05F3F3" points="14 0 19 0 13 10 8 10"></polygon>
<polygon id="矩形备份-12" fill="#8C30FF" points="22 0 27 0 21 10 16 10"></polygon>
<polygon id="矩形备份-13" fill="#05F3F3" points="31 0 36 0 30 10 25 10"></polygon>
<line x1="28" y1="9.5" x2="695.5" y2="9.5" id="路径-5" stroke="url(#linearGradient-7)"></line>
</g>
<path d="M791.683617,31 L783.83205,42.7773501 L783,42.2226499 L791.148433,30 L1128.26759,30 L1136.41603,42.2226499 L1135.58397,42.7773501 L1127.73241,31 L791.683617,31 Z" id="形状结合" fill="#05F3F3" fill-rule="nonzero"></path>
<path d="M825.07695,98.5 L816.066727,86.4604779 L813.063319,98.5 L796.62734,98.5 L782.0296,81.7809136 L776.754819,86.0098326 L760.621567,67.3267855 L761.378433,66.6732145 L776.881545,84.626531 L782.152218,80.4009046 L797.081751,97.5 L812.282135,97.5 L815.606,84.1758857 L825.577596,97.5 L1094.04397,97.5 L1104.01557,84.1758857 L1107.33943,97.5 L1122.53982,97.5 L1137.46935,80.4009046 L1142.74002,84.626531 L1158.24313,66.6732145 L1159,67.3267855 L1142.86675,86.0098326 L1137.59197,81.7809136 L1122.99423,98.5 L1106.55825,98.5 L1103.55484,86.4604779 L1094.54462,98.5 L825.07695,98.5 Z" id="形状结合" fill="#05F3F3" fill-rule="nonzero"></path>
<g id="钱" transform="translate(784.000000, 428.000000)" fill="#05F3F3" fill-rule="nonzero">
<rect id="矩形" opacity="0" x="0" y="0" width="24" height="24"></rect>
<path d="M12.0234375,1.4953125 C6.24609375,1.4953125 1.56328125,6.178125 1.56328125,11.9554688 C1.56328125,17.7328125 6.24609375,22.415625 12.0234375,22.415625 C17.8007812,22.415625 22.4835937,17.7328125 22.4835937,11.9554687 C22.4835937,6.178125 17.8007812,1.4953125 12.0234375,1.4953125 Z M15.853125,8.465625 L13.9828125,10.3359375 L14.8007812,10.3359375 C15.2484375,10.3359375 15.6117187,10.6992187 15.6117187,11.146875 C15.6117187,11.5945312 15.2484375,11.9578125 14.8007812,11.9578125 L12.834375,11.9578125 L12.834375,12.99375 L14.8007812,12.99375 C15.2484375,12.99375 15.6117187,13.3570313 15.6117187,13.8046875 C15.6117187,14.2523438 15.2484375,14.615625 14.8007812,14.615625 L12.834375,14.615625 L12.834375,16.865625 C12.834375,17.3132812 12.4710937,17.6765625 12.0234375,17.6765625 C11.5757812,17.6765625 11.2125,17.3132812 11.2125,16.865625 L11.2125,14.615625 L9.24609375,14.615625 C8.7984375,14.615625 8.43515625,14.2523438 8.43515625,13.8046875 C8.43515625,13.3570313 8.7984375,12.99375 9.24609375,12.99375 L11.2125,12.99375 L11.2125,11.9578125 L9.24609375,11.9578125 C8.7984375,11.9578125 8.43515625,11.5945313 8.43515625,11.146875 C8.43515625,10.6992188 8.7984375,10.3359375 9.24609375,10.3359375 L10.0640625,10.3359375 L8.19375,8.465625 C7.87734375,8.14921875 7.87734375,7.6359375 8.19375,7.3171875 C8.51015625,7.00078125 9.0234375,7.00078125 9.3421875,7.3171875 L12.0234375,10.0007812 L14.7046875,7.31953125 C15.0210938,7.003125 15.534375,7.003125 15.853125,7.31953125 C16.1695312,7.6359375 16.1695312,8.14921875 15.853125,8.465625 Z" id="形状"></path>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 2</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-2824.000000, -1838.000000)">
<g id="编组-2" transform="translate(2825.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.0110212054" x="0" y="0" width="529" height="517"></rect>
<g id="编组" transform="translate(93.928711, 69.000000)" stroke="#0CFAFA">
<polygon id="矩形" stroke-width="12" transform="translate(192.571289, 92.500000) scale(-1, 1) translate(-192.571289, -92.500000) " points="192.071289 84 193.071289 84 193.071289 101 192.071289 101"></polygon>
<polygon id="矩形" stroke-width="12" transform="translate(148.571289, 92.500000) scale(-1, 1) translate(-148.571289, -92.500000) " points="148.071289 84 149.071289 84 149.071289 101 148.071289 101"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(173.071289, 277.500000) scale(1, -1) translate(-173.071289, -277.500000) " points="135.071289 255 211.071289 255 211.071289 300 135.071289 300"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" points="128.071289 114 212.071289 114 212.071289 149 128.071289 149"></polygon>
<polygon id="矩形" stroke-width="16.9411765" stroke-linejoin="round" points="119.326426 41 221.962087 41 221.962087 73.8916456 260.071289 114 80.0712888 114 119.326426 77.5"></polygon>
<rect id="矩形" stroke-width="20" stroke-linejoin="round" x="37.427596" y="198" width="274" height="152"></rect>
<polygon id="矩形" stroke-width="20" stroke-linejoin="round" points="-7.67386155e-13 153 341 153 311.427596 198 37.427596 198"></polygon>
<path d="M48.427596,349 L89.427596,349 C90.5321655,349 91.427596,349.895431 91.427596,351 L91.427596,382 C91.427596,383.104569 90.5321655,384 89.427596,384 L48.427596,384 C47.3230265,384 46.427596,383.104569 46.427596,382 L46.427596,351 C46.427596,349.895431 47.3230265,349 48.427596,349 Z" id="矩形" stroke-width="16"></path>
<path d="M258.427596,350 L299.427596,350 C300.532166,350 301.427596,350.895431 301.427596,352 L301.427596,383 C301.427596,384.104569 300.532166,385 299.427596,385 L258.427596,385 C257.323027,385 256.427596,384.104569 256.427596,383 L256.427596,352 C256.427596,350.895431 257.323027,350 258.427596,350 Z" id="矩形" stroke-width="16"></path>
<rect id="矩形" stroke-width="16" transform="translate(170.571289, 0.500000) scale(1, -1) translate(-170.571289, -0.500000) " x="141.071289" y="0" width="59" height="1"></rect>
<rect id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(170.571289, 22.000000) rotate(90.000000) translate(-170.571289, -22.000000) " x="159.571289" y="21.5" width="22" height="1"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 2</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-2824.000000, -1838.000000)">
<g id="编组-2" transform="translate(2825.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.0110212054" x="0" y="0" width="529" height="517"></rect>
<g id="编组" transform="translate(93.928711, 69.000000)" stroke="#F6F6F6">
<polygon id="矩形" stroke-width="12" transform="translate(192.571289, 92.500000) scale(-1, 1) translate(-192.571289, -92.500000) " points="192.071289 84 193.071289 84 193.071289 101 192.071289 101"></polygon>
<polygon id="矩形" stroke-width="12" transform="translate(148.571289, 92.500000) scale(-1, 1) translate(-148.571289, -92.500000) " points="148.071289 84 149.071289 84 149.071289 101 148.071289 101"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(173.071289, 277.500000) scale(1, -1) translate(-173.071289, -277.500000) " points="135.071289 255 211.071289 255 211.071289 300 135.071289 300"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" points="128.071289 114 212.071289 114 212.071289 149 128.071289 149"></polygon>
<polygon id="矩形" stroke-width="16.9411765" stroke-linejoin="round" points="119.326426 41 221.962087 41 221.962087 73.8916456 260.071289 114 80.0712888 114 119.326426 77.5"></polygon>
<rect id="矩形" stroke-width="20" stroke-linejoin="round" x="37.427596" y="198" width="274" height="152"></rect>
<polygon id="矩形" stroke-width="20" stroke-linejoin="round" points="-7.67386155e-13 153 341 153 311.427596 198 37.427596 198"></polygon>
<path d="M48.427596,349 L89.427596,349 C90.5321655,349 91.427596,349.895431 91.427596,351 L91.427596,382 C91.427596,383.104569 90.5321655,384 89.427596,384 L48.427596,384 C47.3230265,384 46.427596,383.104569 46.427596,382 L46.427596,351 C46.427596,349.895431 47.3230265,349 48.427596,349 Z" id="矩形" stroke-width="16"></path>
<path d="M258.427596,350 L299.427596,350 C300.532166,350 301.427596,350.895431 301.427596,352 L301.427596,383 C301.427596,384.104569 300.532166,385 299.427596,385 L258.427596,385 C257.323027,385 256.427596,384.104569 256.427596,383 L256.427596,352 C256.427596,350.895431 257.323027,350 258.427596,350 Z" id="矩形" stroke-width="16"></path>
<rect id="矩形" stroke-width="16" transform="translate(170.571289, 0.500000) scale(1, -1) translate(-170.571289, -0.500000) " x="141.071289" y="0" width="59" height="1"></rect>
<rect id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(170.571289, 22.000000) rotate(90.000000) translate(-170.571289, -22.000000) " x="159.571289" y="21.5" width="22" height="1"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 2</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-2824.000000, -1838.000000)">
<g id="编组-2" transform="translate(2825.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.0110212054" x="0" y="0" width="529" height="517"></rect>
<g id="编组" transform="translate(93.928711, 69.000000)" stroke="#FFFFFF">
<polygon id="矩形" stroke-width="12" transform="translate(192.571289, 92.500000) scale(-1, 1) translate(-192.571289, -92.500000) " points="192.071289 84 193.071289 84 193.071289 101 192.071289 101"></polygon>
<polygon id="矩形" stroke-width="12" transform="translate(148.571289, 92.500000) scale(-1, 1) translate(-148.571289, -92.500000) " points="148.071289 84 149.071289 84 149.071289 101 148.071289 101"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(173.071289, 277.500000) scale(1, -1) translate(-173.071289, -277.500000) " points="135.071289 255 211.071289 255 211.071289 300 135.071289 300"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" points="128.071289 114 212.071289 114 212.071289 149 128.071289 149"></polygon>
<polygon id="矩形" stroke-width="16.9411765" stroke-linejoin="round" points="119.326426 41 221.962087 41 221.962087 73.8916456 260.071289 114 80.0712888 114 119.326426 77.5"></polygon>
<rect id="矩形" stroke-width="20" stroke-linejoin="round" x="37.427596" y="198" width="274" height="152"></rect>
<polygon id="矩形" stroke-width="20" stroke-linejoin="round" points="-7.67386155e-13 153 341 153 311.427596 198 37.427596 198"></polygon>
<path d="M48.427596,349 L89.427596,349 C90.5321655,349 91.427596,349.895431 91.427596,351 L91.427596,382 C91.427596,383.104569 90.5321655,384 89.427596,384 L48.427596,384 C47.3230265,384 46.427596,383.104569 46.427596,382 L46.427596,351 C46.427596,349.895431 47.3230265,349 48.427596,349 Z" id="矩形" stroke-width="16"></path>
<path d="M258.427596,350 L299.427596,350 C300.532166,350 301.427596,350.895431 301.427596,352 L301.427596,383 C301.427596,384.104569 300.532166,385 299.427596,385 L258.427596,385 C257.323027,385 256.427596,384.104569 256.427596,383 L256.427596,352 C256.427596,350.895431 257.323027,350 258.427596,350 Z" id="矩形" stroke-width="16"></path>
<rect id="矩形" stroke-width="16" transform="translate(170.571289, 0.500000) scale(1, -1) translate(-170.571289, -0.500000) " x="141.071289" y="0" width="59" height="1"></rect>
<rect id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(170.571289, 22.000000) rotate(90.000000) translate(-170.571289, -22.000000) " x="159.571289" y="21.5" width="22" height="1"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 2</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-2824.000000, -1838.000000)">
<g id="编组-2" transform="translate(2825.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.0110212054" x="0" y="0" width="529" height="517"></rect>
<g id="编组" transform="translate(93.928711, 69.000000)" stroke="#A8FFFF">
<polygon id="矩形" stroke-width="12" transform="translate(192.571289, 92.500000) scale(-1, 1) translate(-192.571289, -92.500000) " points="192.071289 84 193.071289 84 193.071289 101 192.071289 101"></polygon>
<polygon id="矩形" stroke-width="12" transform="translate(148.571289, 92.500000) scale(-1, 1) translate(-148.571289, -92.500000) " points="148.071289 84 149.071289 84 149.071289 101 148.071289 101"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(173.071289, 277.500000) scale(1, -1) translate(-173.071289, -277.500000) " points="135.071289 255 211.071289 255 211.071289 300 135.071289 300"></polygon>
<polygon id="矩形" stroke-width="16" stroke-linejoin="round" points="128.071289 114 212.071289 114 212.071289 149 128.071289 149"></polygon>
<polygon id="矩形" stroke-width="16.9411765" stroke-linejoin="round" points="119.326426 41 221.962087 41 221.962087 73.8916456 260.071289 114 80.0712888 114 119.326426 77.5"></polygon>
<rect id="矩形" stroke-width="20" stroke-linejoin="round" x="37.427596" y="198" width="274" height="152"></rect>
<polygon id="矩形" stroke-width="20" stroke-linejoin="round" points="-7.67386155e-13 153 341 153 311.427596 198 37.427596 198"></polygon>
<path d="M48.427596,349 L89.427596,349 C90.5321655,349 91.427596,349.895431 91.427596,351 L91.427596,382 C91.427596,383.104569 90.5321655,384 89.427596,384 L48.427596,384 C47.3230265,384 46.427596,383.104569 46.427596,382 L46.427596,351 C46.427596,349.895431 47.3230265,349 48.427596,349 Z" id="矩形" stroke-width="16"></path>
<path d="M258.427596,350 L299.427596,350 C300.532166,350 301.427596,350.895431 301.427596,352 L301.427596,383 C301.427596,384.104569 300.532166,385 299.427596,385 L258.427596,385 C257.323027,385 256.427596,384.104569 256.427596,383 L256.427596,352 C256.427596,350.895431 257.323027,350 258.427596,350 Z" id="矩形" stroke-width="16"></path>
<rect id="矩形" stroke-width="16" transform="translate(170.571289, 0.500000) scale(1, -1) translate(-170.571289, -0.500000) " x="141.071289" y="0" width="59" height="1"></rect>
<rect id="矩形" stroke-width="16" stroke-linejoin="round" transform="translate(170.571289, 22.000000) rotate(90.000000) translate(-170.571289, -22.000000) " x="159.571289" y="21.5" width="22" height="1"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 2</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-2824.000000, -1838.000000)">
<g id="编组-2" transform="translate(2825.000000, 1839.000000)">
<rect id="矩形" stroke="" opacity="0.0110212054" x="0" y="0" width="529" height="517"></rect>
<g id="编组" transform="translate(93.928711, 69.000000)" stroke="#EFEFEF">
<polygon id="矩形" stroke-width="12" style="stroke:#EFEFEF;stroke-width:12" stroke="#EFEFEF" transform="translate(192.571289, 92.500000) scale(-1, 1) translate(-192.571289, -92.500000) " points="192.071289 84 193.071289 84 193.071289 101 192.071289 101" ></polygon>
<polygon id="矩形" stroke-width="12" style="stroke:#EFEFEF;stroke-width:12" stroke="#EFEFEF" transform="translate(148.571289, 92.500000) scale(-1, 1) translate(-148.571289, -92.500000) " points="148.071289 84 149.071289 84 149.071289 101 148.071289 101"></polygon>
<polygon id="矩形" stroke-width="16" style="stroke:#EFEFEF;stroke-width:16" stroke="#EFEFEF" stroke-linejoin="round" transform="translate(173.071289, 277.500000) scale(1, -1) translate(-173.071289, -277.500000) " points="135.071289 255 211.071289 255 211.071289 300 135.071289 300"></polygon>
<polygon id="矩形" stroke-width="16" style="stroke:#EFEFEF;stroke-width:16" stroke-linejoin="round" points="128.071289 114 212.071289 114 212.071289 149 128.071289 149"></polygon>
<polygon id="矩形" stroke-width="16.9411765" style="stroke:#EFEFEF;stroke-width:16.9411765" stroke-linejoin="round" points="119.326426 41 221.962087 41 221.962087 73.8916456 260.071289 114 80.0712888 114 119.326426 77.5"></polygon>
<rect id="矩形" stroke-width="20" stroke="#EFEFEF" stroke-linejoin="round" x="37.427596" y="198" width="274" height="152"></rect>
<polygon id="矩形" stroke-width="20" style="stroke:#EFEFEF;stroke-width:20" stroke-linejoin="round" points="-7.67386155e-13 153 341 153 311.427596 198 37.427596 198"></polygon>
<path d="M48.427596,349 L89.427596,349 C90.5321655,349 91.427596,349.895431 91.427596,351 L91.427596,382 C91.427596,383.104569 90.5321655,384 89.427596,384 L48.427596,384 C47.3230265,384 46.427596,383.104569 46.427596,382 L46.427596,351 C46.427596,349.895431 47.3230265,349 48.427596,349 Z" id="矩形" stroke-width="16" fill="#EFEFEF"></path>
<path d="M258.427596,350 L299.427596,350 C300.532166,350 301.427596,350.895431 301.427596,352 L301.427596,383 C301.427596,384.104569 300.532166,385 299.427596,385 L258.427596,385 C257.323027,385 256.427596,384.104569 256.427596,383 L256.427596,352 C256.427596,350.895431 257.323027,350 258.427596,350 Z" id="矩形" stroke-width="16" fill="#EFEFEF"></path>
<rect id="矩形" stroke="#EFEFEF" stroke-width="16" transform="translate(170.571289, 0.500000) scale(1, -1) translate(-170.571289, -0.500000) " x="141.071289" y="0" width="59" height="1"></rect>
<rect id="矩形" stroke="#EFEFEF" stroke-width="16" stroke-linejoin="round" transform="translate(170.571289, 22.000000) rotate(90.000000) translate(-170.571289, -22.000000) " x="159.571289" y="21.5" width="22" height="1"></rect>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 3备份</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-4144.000000, -1838.000000)">
<g id="编组-3备份" transform="translate(4145.000000, 1839.000000)">
<rect id="矩形备份" stroke="#979797" fill="#D8D8D8" opacity="0.0116954985" x="0" y="0" width="529" height="517"></rect>
<path d="M376.300993,284.499321 C358.978426,284.499321 343.822635,289.906127 330.832031,299.641337 C330.832031,299.641337 330.832031,298.55818 329.74838,298.55818 L283.197353,252.051615 L438.007811,97.3867341 C442.338188,93.0609718 442.338188,86.5710081 438.007811,82.2452459 C435.844208,80.0810445 432.595897,79 430.429651,79 C428.266048,79 425.017737,80.0810445 422.851491,82.2452459 L268.041033,236.909599 L113.230575,82.2452459 C111.064329,80.0810445 107.816546,79 105.652415,79 C102.404103,79 100.238386,80.0810445 98.0742547,82.2452459 C93.744406,86.5710081 93.744406,93.0609718 98.0742547,97.3867341 L252.884712,252.051615 L205.250034,299.641337 C192.25996,289.906127 177.103639,284.499321 159.781073,284.499321 C117.560424,284.499321 84,318.028071 84,360.208874 C84,402.390205 117.560424,435.918956 159.781073,435.918956 C202.001723,435.918956 235.562675,402.390205 235.562675,360.208874 C235.562675,342.903184 230.150232,327.761168 220.406355,314.783353 C220.406355,314.783353 221.490535,314.783353 221.490535,313.700196 L268.041033,267.193631 L315.675711,314.783353 C305.931834,327.761168 300.519919,342.903184 300.519919,360.208874 C300.519919,367.779882 301.601456,375.35089 303.765588,381.840854 C305.931834,387.248189 311.343748,390.492907 316.757777,389.411862 C322.17022,387.248189 325.418003,381.840854 324.335937,376.431935 C323.253871,371.025128 322.17022,366.699366 322.17022,361.289919 C322.17022,331.006414 345.988352,307.212345 376.300993,307.212345 C406.613633,307.212345 430.429651,331.006414 430.429651,361.289919 C430.429651,391.573951 406.613633,415.370132 376.300993,415.370132 C365.474521,415.370132 354.648578,412.124887 344.904172,405.634923 C339.492257,402.390205 332.996163,403.470722 329.74838,407.799124 C326.502183,413.205931 327.584249,419.695895 331.914097,422.941141 C344.904172,431.592665 360.060492,437 375.216812,437 C417.439576,437 451,403.470722 451,361.289919 C451,319.109116 418.521642,284.499321 376.300993,284.499321 Z M158.998682,414 C128.759357,414 105,390.240643 105,360.000791 C105,329.761466 128.759357,306 158.998682,306 C189.238534,306 213,329.761466 213,360.000791 C213,390.240643 189.238534,414 158.998682,414 Z" id="jiandao" fill="#0CFAFA"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 3备份</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-4144.000000, -1838.000000)">
<g id="编组-3备份" transform="translate(4145.000000, 1839.000000)">
<rect id="矩形备份" stroke="#979797" fill="#D8D8D8" opacity="0.0116954985" x="0" y="0" width="529" height="517"></rect>
<path d="M376.300993,284.499321 C358.978426,284.499321 343.822635,289.906127 330.832031,299.641337 C330.832031,299.641337 330.832031,298.55818 329.74838,298.55818 L283.197353,252.051615 L438.007811,97.3867341 C442.338188,93.0609718 442.338188,86.5710081 438.007811,82.2452459 C435.844208,80.0810445 432.595897,79 430.429651,79 C428.266048,79 425.017737,80.0810445 422.851491,82.2452459 L268.041033,236.909599 L113.230575,82.2452459 C111.064329,80.0810445 107.816546,79 105.652415,79 C102.404103,79 100.238386,80.0810445 98.0742547,82.2452459 C93.744406,86.5710081 93.744406,93.0609718 98.0742547,97.3867341 L252.884712,252.051615 L205.250034,299.641337 C192.25996,289.906127 177.103639,284.499321 159.781073,284.499321 C117.560424,284.499321 84,318.028071 84,360.208874 C84,402.390205 117.560424,435.918956 159.781073,435.918956 C202.001723,435.918956 235.562675,402.390205 235.562675,360.208874 C235.562675,342.903184 230.150232,327.761168 220.406355,314.783353 C220.406355,314.783353 221.490535,314.783353 221.490535,313.700196 L268.041033,267.193631 L315.675711,314.783353 C305.931834,327.761168 300.519919,342.903184 300.519919,360.208874 C300.519919,367.779882 301.601456,375.35089 303.765588,381.840854 C305.931834,387.248189 311.343748,390.492907 316.757777,389.411862 C322.17022,387.248189 325.418003,381.840854 324.335937,376.431935 C323.253871,371.025128 322.17022,366.699366 322.17022,361.289919 C322.17022,331.006414 345.988352,307.212345 376.300993,307.212345 C406.613633,307.212345 430.429651,331.006414 430.429651,361.289919 C430.429651,391.573951 406.613633,415.370132 376.300993,415.370132 C365.474521,415.370132 354.648578,412.124887 344.904172,405.634923 C339.492257,402.390205 332.996163,403.470722 329.74838,407.799124 C326.502183,413.205931 327.584249,419.695895 331.914097,422.941141 C344.904172,431.592665 360.060492,437 375.216812,437 C417.439576,437 451,403.470722 451,361.289919 C451,319.109116 418.521642,284.499321 376.300993,284.499321 Z M158.998682,414 C128.759357,414 105,390.240643 105,360.000791 C105,329.761466 128.759357,306 158.998682,306 C189.238534,306 213,329.761466 213,360.000791 C213,390.240643 189.238534,414 158.998682,414 Z" id="jiandao" fill="#EFEFEF"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 3</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-3386.000000, -1838.000000)">
<g id="编组-3" transform="translate(3387.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.00592912946" x="0" y="0" width="529" height="517"></rect>
<path d="M407.343644,151.250581 L420.501024,151.250581 C438.449814,151.250581 453,165.800195 453,183.748985 L453,216.250246 C453,234.199036 438.449814,248.750936 420.501024,248.750936 L407.4082,248.750936 L407.491037,369.001202 L420.501024,369.001202 C438.449814,369.001202 453,383.551387 453,401.499606 L453,447 L76,447 L76,401.499606 C76,383.551387 90.5501856,369.001202 108.501261,369.001202 L264.501143,369.001202 L264.501143,297.500827 C264.501143,272.370351 244.12894,252.000433 219.000749,252.000433 L157.672193,252.000433 L147.500374,297.500827 L121.500394,297.500827 L121.500394,323.500808 L102.000552,323.500808 L102.000552,297.500827 L76,297.500827 L76,144.749872 C77.7898516,128.327569 91.6482051,115.499823 108.501261,115.499823 L121.500394,115.499823 L121.500394,89.4998424 L140.999665,89.4998424 L140.999665,115.499823 L323.000098,115.499823 L323.000098,89.4998424 L300.25133,89.4998424 L300.25133,70 L365.250995,70 L365.250995,89.4998424 L342.499941,89.4998424 L342.499941,115.499823 L375.001202,115.499823 C391.851972,115.499823 405.710326,128.327569 407.336788,144.749872 L407.343644,151.250581 Z M389,248.381669 L389,147.291798 C388.28009,140.073655 382.680471,135 375.978668,135 L109.023621,135 C102.344137,135 96.7468066,140.026961 96.064666,146.640365 L96,277.536679 L132.439586,277.536679 L142.630492,232.184125 L219.711811,232.184125 C255.672982,232.184125 284.823049,261.189943 284.823049,296.973162 L284.823049,365 L389,365 L389,248.381669 Z M96,427 L434,427 L434,400.998857 C434,397.551044 432.630048,394.246056 430.192927,391.807163 C427.754092,389.369985 424.449182,388 421.000879,388 L109.001406,388 C105.553103,388 102.245908,389.369985 99.8070732,391.807163 C97.3699522,394.246056 96,397.551044 96,400.998857 L96,427 Z M407,170 L407,229 L420.000857,229 C423.449166,229 426.754081,227.620055 429.19292,225.160353 C431.630045,222.70238 433,219.366888 433,215.889657 L433,183.110343 C433,179.633112 431.630045,176.299925 429.19292,173.839647 C426.754081,171.38225 423.449166,170 420.000857,170 L407,170 Z M336.498572,232 C318.549689,232 304,217.449739 304,199.499143 C304,181.550261 318.549689,167 336.498572,167 C354.449739,167 369,181.550261 369,199.499143 C369,217.449739 354.449739,232 336.498572,232 Z M335.998857,212 C343.180392,212 349,206.180264 349,198.999143 C349,191.819736 343.180392,186 335.998857,186 C328.820179,186 323,191.819736 323,198.999143 C323,206.180264 328.820179,212 335.998857,212 Z M304,284 L369,284 L369,264 L304,264 L304,284 Z M304,333 L369,333 L369,313 L304,313 L304,333 Z" id="ic_feng" fill="#0CFAFA"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 3</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-3386.000000, -1838.000000)">
<g id="编组-3" transform="translate(3387.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.00592912946" x="0" y="0" width="529" height="517"></rect>
<path d="M407.343644,151.250581 L420.501024,151.250581 C438.449814,151.250581 453,165.800195 453,183.748985 L453,216.250246 C453,234.199036 438.449814,248.750936 420.501024,248.750936 L407.4082,248.750936 L407.491037,369.001202 L420.501024,369.001202 C438.449814,369.001202 453,383.551387 453,401.499606 L453,447 L76,447 L76,401.499606 C76,383.551387 90.5501856,369.001202 108.501261,369.001202 L264.501143,369.001202 L264.501143,297.500827 C264.501143,272.370351 244.12894,252.000433 219.000749,252.000433 L157.672193,252.000433 L147.500374,297.500827 L121.500394,297.500827 L121.500394,323.500808 L102.000552,323.500808 L102.000552,297.500827 L76,297.500827 L76,144.749872 C77.7898516,128.327569 91.6482051,115.499823 108.501261,115.499823 L121.500394,115.499823 L121.500394,89.4998424 L140.999665,89.4998424 L140.999665,115.499823 L323.000098,115.499823 L323.000098,89.4998424 L300.25133,89.4998424 L300.25133,70 L365.250995,70 L365.250995,89.4998424 L342.499941,89.4998424 L342.499941,115.499823 L375.001202,115.499823 C391.851972,115.499823 405.710326,128.327569 407.336788,144.749872 L407.343644,151.250581 Z M389,248.381669 L389,147.291798 C388.28009,140.073655 382.680471,135 375.978668,135 L109.023621,135 C102.344137,135 96.7468066,140.026961 96.064666,146.640365 L96,277.536679 L132.439586,277.536679 L142.630492,232.184125 L219.711811,232.184125 C255.672982,232.184125 284.823049,261.189943 284.823049,296.973162 L284.823049,365 L389,365 L389,248.381669 Z M96,427 L434,427 L434,400.998857 C434,397.551044 432.630048,394.246056 430.192927,391.807163 C427.754092,389.369985 424.449182,388 421.000879,388 L109.001406,388 C105.553103,388 102.245908,389.369985 99.8070732,391.807163 C97.3699522,394.246056 96,397.551044 96,400.998857 L96,427 Z M407,170 L407,229 L420.000857,229 C423.449166,229 426.754081,227.620055 429.19292,225.160353 C431.630045,222.70238 433,219.366888 433,215.889657 L433,183.110343 C433,179.633112 431.630045,176.299925 429.19292,173.839647 C426.754081,171.38225 423.449166,170 420.000857,170 L407,170 Z M336.498572,232 C318.549689,232 304,217.449739 304,199.499143 C304,181.550261 318.549689,167 336.498572,167 C354.449739,167 369,181.550261 369,199.499143 C369,217.449739 354.449739,232 336.498572,232 Z M335.998857,212 C343.180392,212 349,206.180264 349,198.999143 C349,191.819736 343.180392,186 335.998857,186 C328.820179,186 323,191.819736 323,198.999143 C323,206.180264 328.820179,212 335.998857,212 Z M304,284 L369,284 L369,264 L304,264 L304,284 Z M304,333 L369,333 L369,313 L304,313 L304,333 Z" id="ic_feng" fill="#F6F6F6"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 3</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-3386.000000, -1838.000000)">
<g id="编组-3" transform="translate(3387.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.00592912946" x="0" y="0" width="529" height="517"></rect>
<path d="M407.343644,151.250581 L420.501024,151.250581 C438.449814,151.250581 453,165.800195 453,183.748985 L453,216.250246 C453,234.199036 438.449814,248.750936 420.501024,248.750936 L407.4082,248.750936 L407.491037,369.001202 L420.501024,369.001202 C438.449814,369.001202 453,383.551387 453,401.499606 L453,447 L76,447 L76,401.499606 C76,383.551387 90.5501856,369.001202 108.501261,369.001202 L264.501143,369.001202 L264.501143,297.500827 C264.501143,272.370351 244.12894,252.000433 219.000749,252.000433 L157.672193,252.000433 L147.500374,297.500827 L121.500394,297.500827 L121.500394,323.500808 L102.000552,323.500808 L102.000552,297.500827 L76,297.500827 L76,144.749872 C77.7898516,128.327569 91.6482051,115.499823 108.501261,115.499823 L121.500394,115.499823 L121.500394,89.4998424 L140.999665,89.4998424 L140.999665,115.499823 L323.000098,115.499823 L323.000098,89.4998424 L300.25133,89.4998424 L300.25133,70 L365.250995,70 L365.250995,89.4998424 L342.499941,89.4998424 L342.499941,115.499823 L375.001202,115.499823 C391.851972,115.499823 405.710326,128.327569 407.336788,144.749872 L407.343644,151.250581 Z M389,248.381669 L389,147.291798 C388.28009,140.073655 382.680471,135 375.978668,135 L109.023621,135 C102.344137,135 96.7468066,140.026961 96.064666,146.640365 L96,277.536679 L132.439586,277.536679 L142.630492,232.184125 L219.711811,232.184125 C255.672982,232.184125 284.823049,261.189943 284.823049,296.973162 L284.823049,365 L389,365 L389,248.381669 Z M96,427 L434,427 L434,400.998857 C434,397.551044 432.630048,394.246056 430.192927,391.807163 C427.754092,389.369985 424.449182,388 421.000879,388 L109.001406,388 C105.553103,388 102.245908,389.369985 99.8070732,391.807163 C97.3699522,394.246056 96,397.551044 96,400.998857 L96,427 Z M407,170 L407,229 L420.000857,229 C423.449166,229 426.754081,227.620055 429.19292,225.160353 C431.630045,222.70238 433,219.366888 433,215.889657 L433,183.110343 C433,179.633112 431.630045,176.299925 429.19292,173.839647 C426.754081,171.38225 423.449166,170 420.000857,170 L407,170 Z M336.498572,232 C318.549689,232 304,217.449739 304,199.499143 C304,181.550261 318.549689,167 336.498572,167 C354.449739,167 369,181.550261 369,199.499143 C369,217.449739 354.449739,232 336.498572,232 Z M335.998857,212 C343.180392,212 349,206.180264 349,198.999143 C349,191.819736 343.180392,186 335.998857,186 C328.820179,186 323,191.819736 323,198.999143 C323,206.180264 328.820179,212 335.998857,212 Z M304,284 L369,284 L369,264 L304,264 L304,284 Z M304,333 L369,333 L369,313 L304,313 L304,333 Z" id="ic_feng" fill="#FFFFFF"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="531px" height="519px" viewBox="0 0 531 519" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>编组 3</title>
<desc>Created with Sketch.</desc>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="画板" transform="translate(-3386.000000, -1838.000000)">
<g id="编组-3" transform="translate(3387.000000, 1839.000000)">
<rect id="矩形" stroke="#979797" opacity="0.00592912946" x="0" y="0" width="529" height="517"></rect>
<path d="M407.343644,151.250581 L420.501024,151.250581 C438.449814,151.250581 453,165.800195 453,183.748985 L453,216.250246 C453,234.199036 438.449814,248.750936 420.501024,248.750936 L407.4082,248.750936 L407.491037,369.001202 L420.501024,369.001202 C438.449814,369.001202 453,383.551387 453,401.499606 L453,447 L76,447 L76,401.499606 C76,383.551387 90.5501856,369.001202 108.501261,369.001202 L264.501143,369.001202 L264.501143,297.500827 C264.501143,272.370351 244.12894,252.000433 219.000749,252.000433 L157.672193,252.000433 L147.500374,297.500827 L121.500394,297.500827 L121.500394,323.500808 L102.000552,323.500808 L102.000552,297.500827 L76,297.500827 L76,144.749872 C77.7898516,128.327569 91.6482051,115.499823 108.501261,115.499823 L121.500394,115.499823 L121.500394,89.4998424 L140.999665,89.4998424 L140.999665,115.499823 L323.000098,115.499823 L323.000098,89.4998424 L300.25133,89.4998424 L300.25133,70 L365.250995,70 L365.250995,89.4998424 L342.499941,89.4998424 L342.499941,115.499823 L375.001202,115.499823 C391.851972,115.499823 405.710326,128.327569 407.336788,144.749872 L407.343644,151.250581 Z M389,248.381669 L389,147.291798 C388.28009,140.073655 382.680471,135 375.978668,135 L109.023621,135 C102.344137,135 96.7468066,140.026961 96.064666,146.640365 L96,277.536679 L132.439586,277.536679 L142.630492,232.184125 L219.711811,232.184125 C255.672982,232.184125 284.823049,261.189943 284.823049,296.973162 L284.823049,365 L389,365 L389,248.381669 Z M96,427 L434,427 L434,400.998857 C434,397.551044 432.630048,394.246056 430.192927,391.807163 C427.754092,389.369985 424.449182,388 421.000879,388 L109.001406,388 C105.553103,388 102.245908,389.369985 99.8070732,391.807163 C97.3699522,394.246056 96,397.551044 96,400.998857 L96,427 Z M407,170 L407,229 L420.000857,229 C423.449166,229 426.754081,227.620055 429.19292,225.160353 C431.630045,222.70238 433,219.366888 433,215.889657 L433,183.110343 C433,179.633112 431.630045,176.299925 429.19292,173.839647 C426.754081,171.38225 423.449166,170 420.000857,170 L407,170 Z M336.498572,232 C318.549689,232 304,217.449739 304,199.499143 C304,181.550261 318.549689,167 336.498572,167 C354.449739,167 369,181.550261 369,199.499143 C369,217.449739 354.449739,232 336.498572,232 Z M335.998857,212 C343.180392,212 349,206.180264 349,198.999143 C349,191.819736 343.180392,186 335.998857,186 C328.820179,186 323,191.819736 323,198.999143 C323,206.180264 328.820179,212 335.998857,212 Z M304,284 L369,284 L369,264 L304,264 L304,284 Z M304,333 L369,333 L369,313 L304,313 L304,333 Z" id="ic_feng" fill="#EFEFEF"></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<template>
<!--头部-->
<div class="header">
<!-- 飞天兔数字工厂大数据展示 -->
<div class="header_title">
<!-- 针车一组 -->
{{title}}
</div>
<!-- <a href="javascript:;" class="a-access">
<button class="button type1" @click="created">生成</button>
</a> -->
</div>
</template>
<script>
export default {
name: "chartHeader",
props:['title'],
data() {
return {
input: ""
};
},
// props:{
// chartList:Array,
// selectChartList:Array
// },
methods: {
created() {
// this.$emit("created",this.input);
// console.log("我要去生成了",this.input);
}
}
};
</script>
<style scoped="scoped">
.header {
height: 70px;
/* position: relative; */
/* padding-top: 13px; */
/* width: 1920px; */
font-size: 38px;
color: #ffffff;
text-align: center;
background: url(../../assets/image/biaoti.png) center no-repeat;
background-size: auto 100%;
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
}
.header a.a-access {
position: absolute;
right: 3%;
top: -18%;
}
.header_title {
/* height: 50px; */
/* width: 28%; */
display: flex;
justify-content: center;
align-items: center;
font-weight: bold;
margin-left: 20px;
}
.button {
position: relative;
padding: 0.5em 1.5em;
border: none;
background-color: transparent;
cursor: pointer;
outline: none;
font-size: 18px;
margin: 1em 0.8em;
}
.button.type1 {
color: #00ffff;
}
.button.type1.type1::after,
.button.type1.type1::before {
content: "";
display: block;
position: absolute;
width: 20%;
height: 20%;
border: 2px solid;
transition: all 0.6s ease;
border-radius: 2px;
}
.button.type1.type1::after {
bottom: 0;
right: 0;
border-top-color: transparent;
border-left-color: transparent;
border-bottom-color: #566473;
border-right-color: #566473;
}
.button.type1.type1::before {
top: 0;
left: 0;
border-bottom-color: transparent;
border-right-color: transparent;
border-top-color: #566473;
border-left-color: #566473;
}
.button.type1.type1:hover:after,
.button.type1.type1:hover:before {
width: 100%;
height: 100%;
}
</style>
......@@ -46,12 +46,13 @@ export default {
{ ID: 3, Text: "Panle1" ,name:"panle1",src:require("@/assets/image/panle1.jpg")},
{ ID: 4, Text: "Panle2" ,name:"panle2",src:require("@/assets/image/panle2.jpg")},
{ ID: 5, Text: "Table1" ,name:"table1",src:require("@/assets/image/table1.jpg")},
{ ID: 6, Text: "pie" ,name:"pie",src:require("@/assets/image/table1.jpg")},
{ ID: 7, Text: "radar" ,name:"雷达图",src:require("@/assets/image/table1.jpg")},
{ ID: 8, Text: "bar" ,name:"柱状图",src:require("@/assets/image/table1.jpg")},
{ ID: 9, Text: "scatter" ,name:"散点图",src:require("@/assets/image/table1.jpg")},
{ ID: 10, Text: "chartLine" ,name:"折线图",src:require("@/assets/image/table1.jpg")},
{ ID: 11, Text: "Table2" ,name:"table2",src:require("@/assets/image/table1.jpg")},
{ ID: 6, Text: "Table2" ,name:"table2",src:require("@/assets/image/table1.jpg")},
// { ID: 6, Text: "pie" ,name:"pie",src:require("@/assets/image/table1.jpg")},
{ ID: 7, Text: "ViewBoard" ,name:"针车车间",src:require("@/assets/image/back-img.png")},
// { ID: 8, Text: "bar" ,name:"柱状图",src:require("@/assets/image/table1.jpg")},
// { ID: 9, Text: "scatter" ,name:"散点图",src:require("@/assets/image/table1.jpg")},
// { ID: 10, Text: "chartLine" ,name:"折线图",src:require("@/assets/image/table1.jpg")},
],
RefreshTypeCombox: [
......
......@@ -3,7 +3,7 @@
import Vue from 'vue'
import App from './App'
import router from './router'
import './assets/font/iconfont.css'
//文字滚动https://chenxuan0000.github.io/component-document/index_prod.html#/component/seamless-default
import scroll from 'vue-seamless-scroll'
......@@ -18,6 +18,11 @@ import utils from '@/function/utils.js'
Vue.prototype.$utils = utils
import UtilityTools from "@/function/UtilityTools"
/* eslint-disable no-new */
// 引入echarts
import echarts from 'echarts'
Vue.use(echarts)
Vue.prototype.echarts = echarts
new Vue({
el: '#app',
router,
......
......@@ -14,6 +14,12 @@ import chartDemo from '../views/board/chartDemo'
import chartDemo1 from '../views/board/chartDemo1'
import test from '../views/test/index'
import chartDemoList from '../views/board/chartdemoList'
import ZCList from '../views/board/workShopList/index.vue'
import ViewZC from '../views/board/workShopList/kanbanView.vue'
import ViewCX from '../views/board/workShopList/kanbanViewCX.vue'
import ViewXY from '../views/board/workShopList/kanbanViewXY.vue'
import Efficiency from '../views/board/workShopList/dynamicEfficiency.vue'
import DataShow from '../views/board/workShopList/dataShow.vue'
Vue.use(Router)
......@@ -51,7 +57,15 @@ export default new Router({
},
component: chartDemoList,
},
{
path:'/zcList',
name:'zcList',
meta: {
title: '车间配置',
},
component: ZCList,
},
]
},
{
......@@ -125,6 +139,54 @@ export default new Router({
},
component: chartDemo1,
},
{
path:'/zcList',
name:'zcList',
meta: {
title: '车间选择',
},
component: ZCList,
},
{
path:'/viewZC',
name:'viewZC',
meta: {
title: '车间展示',
},
component: ViewZC,
},
{
path:'/viewCX',
name:'viewCX',
meta: {
title: '车间展示',
},
component: ViewCX,
},
{
path:'/viewXY',
name:'viewXY',
meta: {
title: '鑫源看板',
},
component: ViewXY,
},
{
path:'/Efficiency',
name:'Efficiency',
meta:{
title:'工厂动态效率展示'
},
component:Efficiency
},
{
path:'/dataShow',
name:'dataShow',
meta:{
title:'样品运行控制中心'
},
component:DataShow
}
],
})
......@@ -99,7 +99,7 @@
<el-input-number v-model="ruleForm.RefreshTime" :min="0"></el-input-number>
</el-form-item>
<el-form-item label="刷新类别" v-if="ruleForm.ChartType==5">
<el-form-item label="刷新类别" v-if="ruleForm.ChartType==5 || ruleForm.ChartType==6">
<el-select v-model="ruleForm.RefreshType" placeholder="请选择容器刷新类别">
<el-option
v-for="item in comboxstore.RefreshTypeCombox"
......@@ -241,7 +241,7 @@ export default {
},
{ value: "BackgroundColor", label: "背景色" },
{ value: "FontColor1", label: "1号字体颜色" },
{ value: "FontSize1", label: "1号字体大小", width: 50 },
{ value: "FontSize1", label: "1号字体大小", width: 50 },
{ value: "FontColor2", label: "2号字体颜色" },
{ value: "FontSize2", label: "2号字体大小", width: 50 },
......@@ -396,6 +396,7 @@ export default {
},
Action(actionname) {
var me = this;
console.log('me.ruleForm'+me.ruleForm)
const post = (url, entity) => {
Axios({
method: "post",
......
......@@ -80,6 +80,7 @@ import comFoot from "@/views/chart/foot";
import Panle1 from "@/views/chart/Panle1";
import Panle2 from "@/views/chart/Panle2";
import Table1 from "@/views/chart/Table1";
import Table2 from "@/views/chart/Table1";
import pie from "@/views/chart/echarts/pie/index";
export default {
name: "board",
......@@ -89,6 +90,7 @@ export default {
Panle1,
Panle2,
Table1,
Table2,
pie
},
data() {
......
......@@ -89,6 +89,7 @@ import radar from "@/views/chart/echarts/radar/index";
import bar from "@/views/chart/echarts/bar/index";
import scatter from "@/views/chart/echarts/scatter/index";
import chartLine from "@/views/chart/echarts/line/index";
import ViewBoard from '@/views/board/workShopList/kanbanView'
export default {
name: "board",
components: {
......@@ -97,12 +98,13 @@ export default {
Panle1,
Panle2,
Table1,
Table2,
pie,
radar,
bar,
scatter,
chartLine,
Table2
ViewBoard
},
data() {
return {
......@@ -156,14 +158,16 @@ export default {
},
methods: {
Load(id) {
console.log("请求数据。。。")
console.log("请求数据。。。")
// console.log('sdfsdff'+this.GetLayout().TagData);
var me = this;
Axios({
method: "get",
url: me.Api.get.url,
params: { MID: id }
}).then(res => {
console.log('rows'+JSON.stringify(res))
if (res.success) {
me.ruleForm = res.rows[0];
console.log(JSON.stringify( me.ruleForm))
......@@ -182,6 +186,8 @@ export default {
return layout;
},
GetChartStore(item) {
console.log('item+++++'+JSON.stringify(item));
var chart = null;
switch (item) {
case "head":
......
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts')) :
typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :
(factory((global.bmap = {}),global.echarts));
}(this, (function (exports,echarts) { 'use strict';
/*
* 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.
*/
/* global BMap */
function BMapCoordSys(bmap, api) {
this._bmap = bmap;
this.dimensions = ['lng', 'lat'];
this._mapOffset = [0, 0];
this._api = api;
this._projection = new BMap.MercatorProjection();
}
BMapCoordSys.prototype.dimensions = ['lng', 'lat'];
BMapCoordSys.prototype.setZoom = function (zoom) {
this._zoom = zoom;
};
BMapCoordSys.prototype.setCenter = function (center) {
this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));
};
BMapCoordSys.prototype.setMapOffset = function (mapOffset) {
this._mapOffset = mapOffset;
};
BMapCoordSys.prototype.getBMap = function () {
return this._bmap;
};
BMapCoordSys.prototype.dataToPoint = function (data) {
var point = new BMap.Point(data[0], data[1]);
// TODO mercator projection is toooooooo slow
// var mercatorPoint = this._projection.lngLatToPoint(point);
// var width = this._api.getZr().getWidth();
// var height = this._api.getZr().getHeight();
// var divider = Math.pow(2, 18 - 10);
// return [
// Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),
// Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)
// ];
var px = this._bmap.pointToOverlayPixel(point);
var mapOffset = this._mapOffset;
return [px.x - mapOffset[0], px.y - mapOffset[1]];
};
BMapCoordSys.prototype.pointToData = function (pt) {
var mapOffset = this._mapOffset;
var pt = this._bmap.overlayPixelToPoint({
x: pt[0] + mapOffset[0],
y: pt[1] + mapOffset[1]
});
return [pt.lng, pt.lat];
};
BMapCoordSys.prototype.getViewRect = function () {
var api = this._api;
return new echarts.graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
};
BMapCoordSys.prototype.getRoamTransform = function () {
return echarts.matrix.create();
};
BMapCoordSys.prototype.prepareCustoms = function (data) {
var rect = this.getViewRect();
return {
coordSys: {
// The name exposed to user is always 'cartesian2d' but not 'grid'.
type: 'bmap',
x: rect.x,
y: rect.y,
width: rect.width,
height: rect.height
},
api: {
coord: echarts.util.bind(this.dataToPoint, this),
size: echarts.util.bind(dataToCoordSize, this)
}
};
};
function dataToCoordSize(dataSize, dataItem) {
dataItem = dataItem || [0, 0];
return echarts.util.map([0, 1], function (dimIdx) {
var val = dataItem[dimIdx];
var halfSize = dataSize[dimIdx] / 2;
var p1 = [];
var p2 = [];
p1[dimIdx] = val - halfSize;
p2[dimIdx] = val + halfSize;
p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
}, this);
}
var Overlay;
// For deciding which dimensions to use when creating list data
BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;
function createOverlayCtor() {
function Overlay(root) {
this._root = root;
}
Overlay.prototype = new BMap.Overlay();
/**
* 初始化
*
* @param {BMap.Map} map
* @override
*/
Overlay.prototype.initialize = function (map) {
map.getPanes().labelPane.appendChild(this._root);
return this._root;
};
/**
* @override
*/
Overlay.prototype.draw = function () {};
return Overlay;
}
BMapCoordSys.create = function (ecModel, api) {
var bmapCoordSys;
var root = api.getDom();
// TODO Dispose
ecModel.eachComponent('bmap', function (bmapModel) {
var painter = api.getZr().painter;
var viewportRoot = painter.getViewportRoot();
if (typeof BMap === 'undefined') {
throw new Error('BMap api is not loaded');
}
Overlay = Overlay || createOverlayCtor();
if (bmapCoordSys) {
throw new Error('Only one bmap component can exist');
}
if (!bmapModel.__bmap) {
// Not support IE8
var bmapRoot = root.querySelector('.ec-extension-bmap');
if (bmapRoot) {
// Reset viewport left and top, which will be changed
// in moving handler in BMapView
viewportRoot.style.left = '0px';
viewportRoot.style.top = '0px';
root.removeChild(bmapRoot);
}
bmapRoot = document.createElement('div');
bmapRoot.style.cssText = 'width:100%;height:100%';
// Not support IE8
bmapRoot.classList.add('ec-extension-bmap');
root.appendChild(bmapRoot);
var bmap = bmapModel.__bmap = new BMap.Map(bmapRoot);
var overlay = new Overlay(viewportRoot);
bmap.addOverlay(overlay);
// Override
painter.getViewportRootOffset = function () {
return {offsetLeft: 0, offsetTop: 0};
};
}
var bmap = bmapModel.__bmap;
// Set bmap options
// centerAndZoom before layout and render
var center = bmapModel.get('center');
var zoom = bmapModel.get('zoom');
if (center && zoom) {
var pt = new BMap.Point(center[0], center[1]);
bmap.centerAndZoom(pt, zoom);
}
bmapCoordSys = new BMapCoordSys(bmap, api);
bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);
bmapCoordSys.setZoom(zoom);
bmapCoordSys.setCenter(center);
bmapModel.coordinateSystem = bmapCoordSys;
});
ecModel.eachSeries(function (seriesModel) {
if (seriesModel.get('coordinateSystem') === 'bmap') {
seriesModel.coordinateSystem = bmapCoordSys;
}
});
};
/*
* 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 v2Equal(a, b) {
return a && b && a[0] === b[0] && a[1] === b[1];
}
echarts.extendComponentModel({
type: 'bmap',
getBMap: function () {
// __bmap is injected when creating BMapCoordSys
return this.__bmap;
},
setCenterAndZoom: function (center, zoom) {
this.option.center = center;
this.option.zoom = zoom;
},
centerOrZoomChanged: function (center, zoom) {
var option = this.option;
return !(v2Equal(center, option.center) && zoom === option.zoom);
},
defaultOption: {
center: [104.114129, 37.550339],
zoom: 5,
mapStyle: {},
roam: false
}
});
/*
* 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.
*/
echarts.extendComponentView({
type: 'bmap',
render: function (bMapModel, ecModel, api) {
var rendering = true;
var bmap = bMapModel.getBMap();
var viewportRoot = api.getZr().painter.getViewportRoot();
var coordSys = bMapModel.coordinateSystem;
var moveHandler = function (type, target) {
if (rendering) {
return;
}
var offsetEl = viewportRoot.parentNode.parentNode.parentNode;
var mapOffset = [
-parseInt(offsetEl.style.left, 10) || 0,
-parseInt(offsetEl.style.top, 10) || 0
];
viewportRoot.style.left = mapOffset[0] + 'px';
viewportRoot.style.top = mapOffset[1] + 'px';
coordSys.setMapOffset(mapOffset);
bMapModel.__mapOffset = mapOffset;
api.dispatchAction({
type: 'bmapRoam'
});
};
function zoomEndHandler() {
if (rendering) {
return;
}
api.dispatchAction({
type: 'bmapRoam'
});
}
bmap.removeEventListener('moving', this._oldMoveHandler);
// FIXME
// Moveend may be triggered by centerAndZoom method when creating coordSys next time
// bmap.removeEventListener('moveend', this._oldMoveHandler);
bmap.removeEventListener('zoomend', this._oldZoomEndHandler);
bmap.addEventListener('moving', moveHandler);
// bmap.addEventListener('moveend', moveHandler);
bmap.addEventListener('zoomend', zoomEndHandler);
this._oldMoveHandler = moveHandler;
this._oldZoomEndHandler = zoomEndHandler;
var roam = bMapModel.get('roam');
if (roam && roam !== 'scale') {
bmap.enableDragging();
}
else {
bmap.disableDragging();
}
if (roam && roam !== 'move') {
bmap.enableScrollWheelZoom();
bmap.enableDoubleClickZoom();
bmap.enablePinchToZoom();
}
else {
bmap.disableScrollWheelZoom();
bmap.disableDoubleClickZoom();
bmap.disablePinchToZoom();
}
var originalStyle = bMapModel.__mapStyle;
var newMapStyle = bMapModel.get('mapStyle') || {};
// FIXME, Not use JSON methods
var mapStyleStr = JSON.stringify(newMapStyle);
if (JSON.stringify(originalStyle) !== mapStyleStr) {
// FIXME May have blank tile when dragging if setMapStyle
if (Object.keys(newMapStyle).length) {
bmap.setMapStyle(newMapStyle);
}
bMapModel.__mapStyle = JSON.parse(mapStyleStr);
}
rendering = false;
}
});
/*
* 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.
*/
/**
* BMap component extension
*/
echarts.registerCoordinateSystem('bmap', BMapCoordSys);
// Action
echarts.registerAction({
type: 'bmapRoam',
event: 'bmapRoam',
update: 'updateLayout'
}, function (payload, ecModel) {
ecModel.eachComponent('bmap', function (bMapModel) {
var bmap = bMapModel.getBMap();
var center = bmap.getCenter();
bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());
});
});
var version = '1.0.0';
exports.version = version;
})));
//# sourceMappingURL=bmap.js.map
/*
* 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) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
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('china', {"type":"FeatureCollection","features":[{"id":"710000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@°Ü¯Û"],["@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ"],["@@\\p|WoYG¿¥I†j@¢"],["@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I"],["@@ÆEE—„kWqë @œ"],["@@fced"]],"encodeOffsets":[[[122886,24033]],[[123335,22980]],[[122375,24193]],[[122518,24117]],[[124427,22618]],[[124862,26043]]]},"properties":{"cp":[121.509062,25.044332],"name":"台湾","childNum":6}},{"id":"130000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e"],["@@U`Ts¿m‚"],["@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~žKŨ¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„^®’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–ZÔ’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€T̒Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧˏfŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgƊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇O¡“gÚ¡IwÃ鑦ÅB‡Ï|ǰ…N«úmH¯‹âŸDùŽyŜžŲIÄuШDž•¸dɂ‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃ͚¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\tŽa\\tĕtû{ġŒȧXýĪÓjùÎRb›š^ΛfK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”pŞlNut®Etq‚nsÁŠgA‹iú‹oH‡qCX‡”hfgu“~ϋWP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\mĆJfl@c̬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®Vйd^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qáµ§š™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚"]],"encodeOffsets":[[[119712,40641]],[[121616,39981]],[[116462,37237]]]},"properties":{"cp":[114.502461,38.045474],"name":"河北","childNum":3}},{"id":"140000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@Þĩ҃S‰ra}Á€yWix±Üe´lè“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Yӎ•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœn±“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَUȌ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz"],"encodeOffsets":[[116874,41716]]},"properties":{"cp":[112.549248,37.857014],"name":"山西","childNum":1}},{"id":"150000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@Č^â£Ăh–šĖMÈÄw‚\\fŦ°W ¢¾luŸD„wŠ\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ–›¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–R붛ijʕ…Œů`çõh]y»ǃŸǛҤxÒm~zf}pf|ÜroÈzrKÈĵSƧ„ż؜Ġu¦ö"],["@@sKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„_¹„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚǏĞGȖƴƀj`ĢçĶāàŃºē̃ĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTĞªŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄN¦¾O¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣFʉɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†^¦–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚r¤–`[|òDŞĔöxElÖdH„ÀI`„Ď\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFǜƌXƲąo½Ę‘\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ż؛Ç@Vu»A—ylßí¹ĵê…ÝlISò³C¹Ìâ„²i¶’Ìoú^H“²CǜңDŽ z¼g^èöŰ_‹‚–†IJĕꄜ}gÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸkŇ¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉ™Š³MEˆĸÅĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\ƒ‡@áügQ͋u¥Fƒ“T՛¿Jû‡]|mvāÎYua^WoÀa·­ząÒot×¶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’_ĥ‘¿ãZ•»X\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚ᠞ŒG°ùnM¬¯†{ÈˆÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µ"]],"encodeOffsets":[[[127444,52594]],[[113793,40312]]]},"properties":{"cp":[111.670801,40.818311],"name":"内蒙古","childNum":2}},{"id":"210000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@L–Ž@@s™a"],["@@MnNm"],["@@d‚c"],["@@eÀ‚C@b‚“‰"],["@@f‡…Xwkbr–Ä`qg"],["@@^jtW‘Q"],["@@~ Y]c"],["@@G`ĔN^_¿Z‚ÃM"],["@@iX¶B‹Y"],["@@„YƒZ"],["@@L_{Epf"],["@@^WqCT\\"],["@@\\[“‹§t|”¤_"],["@@m`n_"],["@@Ïxnj{q_×^Giip"],["@@@œé^B†‡ntˆaÊU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–C¨¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\ÀøíDm¦ÎbŨab‰œaĘ\\ľã‚¸a˜tÎSƐ´©v\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œhæm‰–sHy¨SðÑÌ\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] Â¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA"]],"encodeOffsets":[[[123686,41445]],[[126019,40435]],[[124393,40128]],[[126117,39963]],[[125322,40140]],[[126686,40700]],[[126041,40374]],[[125584,40168]],[[125453,40165]],[[125362,40214]],[[125280,40291]],[[125774,39997]],[[125976,40496]],[[125822,39993]],[[125509,40217]],[[122731,40949]]]},"properties":{"cp":[123.429096,41.796767],"name":"辽宁","childNum":16}},{"id":"220000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@‘p䔳PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHlEŕ‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\rµÄl”iˆdā]|DÂVŒœH¹ˆÞ®ÜWnŒC”Œķ W‹§@\\¸‹ƒ~¤‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia É‰™È¹`\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚OðŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWžvЉˆzƦZЎ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@veň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹}Ǟ“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae^§„GK}iã\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗYƅŒ»…é\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘L¡‘ýŸqT^rme™\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG"],"encodeOffsets":[[130196,42528]]},"properties":{"cp":[125.3245,43.886841],"name":"吉林","childNum":1}},{"id":"230000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ƨƒĶTLÇyqpÇÛqe{~oyen}s‰`q‡iXG”ù]Ëp½“©lɇÁp]Þñ´FÔ^f‘äîºkà˜z¼BUvÈ@"],["@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐZ΋ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tޏĻN_yŸX`biN™Ku…P›£k‚ZĮ—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFćš}¢‰A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”Oµ—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡yϊu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰}ć…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUΠlkš^p{f¤lˆºlÆW –€A²˜PVܜPH”Êâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi†`¶—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆Oƒ‡ŊŒvŞ”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹšL¤‹¤‡eˌƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\kzţ¦šnņäÔVĂîά|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”eŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”ƦYĜ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]"]],"encodeOffsets":[[[127123,51780]],[[134456,44547]]]},"properties":{"cp":[126.642464,45.756967],"name":"黑龙江","childNum":2}},{"id":"320000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@cþÅPiŠ`ZŸRu¥É\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’|ДiZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@ƹhågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœR®òLh‰›Ěs©»œ}OӌGZz¶A\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ"],"encodeOffsets":[[121740,32276]]},"properties":{"cp":[118.767413,32.041544],"name":"江苏","childNum":1}},{"id":"330000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@E^dQ]K"],["@@jX^j‡"],["@@sfŠbU‡"],["@@qP\\xz[ck"],["@@‘Rƒ¢‚FX}°[s_"],["@@Cbœ\\—}"],["@@e|v\\la{u"],["@@v~u}"],["@@QxÂF¯}"],["@@¹nŒvÞs¯o"],["@@rSkUEj"],["@@bi­ZŒP"],["@@p[}INf"],["@@À¿€"],["@@¹dnbŒ…"],["@@rSŸBnR"],["@@g~h}"],["@@FlEk"],["@@OdPc"],["@@v[u\\"],["@@FjâL~wyoo~›sµL–\\"],["@@¬e¹aNˆ"],["@@\\nÔ¡q]L³ë\\ÿ®ŒQ֎"],["@@ÊA­©[¬"],["@@KxŒv­"],["@@@hlIk]"],["@@pW{o||j"],["@@Md|_mC"],["@@¢…X£ÏylD¼XˆtH"],["@@hlÜ[LykAvyfw^Ež›¤"],["@@fp¤Mus“R"],["@@®_ma~•LÁ¬šZ"],["@@iM„xZ"],["@@ZcYd"],["@@Z~dOSo|A¿qZv"],["@@@`”EN¡v"],["@@|–TY{"],["@@@n@m"],["@@XWkCT\\"],["@@ºwšZRkĕWO¢"],["@@™X®±Grƪ\\ÔáXq{‹"],["@@ůTG°ĄLHm°UC‹"],["@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВj碷ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰Qª…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•L¨¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈÚœĒ±„hŖ‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst"],["@@o\\V’zRZ}y"],["@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™"]],"encodeOffsets":[[[125592,31553]],[[125785,31436]],[[125729,31431]],[[125513,31380]],[[125223,30438]],[[125115,30114]],[[124815,29155]],[[124419,28746]],[[124095,28635]],[[124005,28609]],[[125000,30713]],[[125111,30698]],[[125078,30682]],[[125150,30684]],[[124014,28103]],[[125008,31331]],[[125411,31468]],[[125329,31479]],[[125626,30916]],[[125417,30956]],[[125254,30976]],[[125199,30997]],[[125095,31058]],[[125083,30915]],[[124885,31015]],[[125218,30798]],[[124867,30838]],[[124755,30788]],[[124802,30809]],[[125267,30657]],[[125218,30578]],[[125200,30562]],[[124968,30474]],[[125167,30396]],[[124955,29879]],[[124714,29781]],[[124762,29462]],[[124325,28754]],[[123990,28459]],[[125366,31477]],[[125115,30363]],[[125369,31139]],[[122495,31878]],[[125329,30690]],[[125192,30787]]]},"properties":{"cp":[120.153576,30.287459],"name":"浙江","childNum":45}},{"id":"340000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@^iuLX^"],["@@‚e©Ehl"],["@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆx¢„gPícOl_iCveaOjCh߸i݋bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDEzAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥f¥—őaSÕė™NµñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜÆ¶ĊJhšp“c¹˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆßŽF¶žX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴ˶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´"]],"encodeOffsets":[[[121722,32278]],[[119475,30423]],[[119168,35472]]]},"properties":{"cp":[117.283042,31.86119],"name":"安徽","childNum":3}},{"id":"350000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@“zht´‡]"],["@@aj^~ĆG—©O"],["@@ed¨„C}}i"],["@@@vˆPGsQ"],["@@‰sBz‚ddW]Q"],["@@SލQ“{"],["@@NŽVucW"],["@@qptBAq"],["@@‰’¸[mu"],["@@Q\\pD]_"],["@@jSwUadpF"],["@@eXª~ƒ•"],["@@AjvFso"],["@@fT–›_Çí\\Ÿ™—v|ba¦jZÆy€°"],["@@IjJi"],["@@wJI€ˆxš«¼AoNe{M­"],["@@K‰±¡Óˆ”ČäeZ"],["@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\@ åA¬ˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž`¶“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸m±“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\_"]],"encodeOffsets":[[[123250,27563]],[[122541,27268]],[[123020,27189]],[[122916,27125]],[[122887,26845]],[[122808,26762]],[[122568,25912]],[[122778,26197]],[[122515,26757]],[[122816,26587]],[[123388,27005]],[[122450,26243]],[[122578,25962]],[[121255,25103]],[[120987,24903]],[[122339,25802]],[[121042,25093]],[[122439,26024]]]},"properties":{"cp":[119.306239,26.075302],"name":"福建","childNum":18}},{"id":"360000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ĢĨƐgÂMD~ņªe^\\^§„ý©j׍cZ†Ø¨zdÒa¶ˆlҍJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ð딠¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\OkxtL E¢‹ƒ‘Ú^~ýê‹Pó–qo슱_Êw§ÑªåƗ⼋mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\˜„L‚‘²"],"encodeOffsets":[[116689,26234]]},"properties":{"cp":[115.892151,28.676493],"name":"江西","childNum":1}},{"id":"370000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@Xjd]{K"],["@@itbFHy"],["@@HlGk"],["@@T‚ŒGŸy"],["@@K¬˜•‹U"],["@@WdXc"],["@@PtOs"],["@@•LnXhc"],["@@ppVƒu]Or"],["@@cdzAUa"],["@@udRhnCI‡"],["@@ˆoIƒpR„"],["@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞÆ„LĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌǜbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐ˹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡¶d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPkMôlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøCǷ돡ąuhÛ¡^Kx•C`C\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~ݏY’I“] P‰umŝrƿ›‰›Iā‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuٌg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰`Ä Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ"]],"encodeOffsets":[[[123806,39303]],[[123821,39266]],[[123742,39256]],[[123702,39203]],[[123649,39066]],[[123847,38933]],[[123580,38839]],[[123894,37288]],[[123043,36624]],[[123344,38676]],[[123522,38857]],[[123628,38858]],[[118260,36742]]]},"properties":{"cp":[117.000923,36.675807],"name":"山东","childNum":13}},{"id":"410000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@•ýL™ùµP³swIÓxcŢĞð†´E®žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡nύ­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„tĠ—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”~؋ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\d\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\ÀœEhŽİgÞē X¼Pk–„|m"],"encodeOffsets":[[118256,37017]]},"properties":{"cp":[113.665412,34.757975],"name":"河南","childNum":1}},{"id":"420000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AB‚"],["@@lskt"],["@@¾«}{ra®pîÃ\\™›{øCŠËyyB±„b\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙæŠšŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYЧHK„«Qy‰]¢“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\É[T·™k¹œ©oĕ@A¾w•ya¥Y\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊUeD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆ̶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ ^²­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤"]],"encodeOffsets":[[[113712,34000]],[[115612,30507]],[[113649,34054]]]},"properties":{"cp":[114.298572,30.584355],"name":"湖北","childNum":3}},{"id":"430000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@—n„FTs"],["@@ßÅÆá‰½ÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–̾ŠedžÄ©ĸG…œàGh‚€M¤–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M"],["@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹MąıuZœmZcÒ IJβSÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUоÅ‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPᜣEXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\Ø  i”ćymnú¨cj ¢»–GČìƊÿШXeĈ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\Ĕ[N¥ˀmĎă’J\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎۃƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\pē˜XhÆRC­üWGġu…T靧Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Rşs·€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ"]],"encodeOffsets":[[[115640,30489]],[[112543,27312]],[[116690,26230]]]},"properties":{"cp":[112.982279,28.19409],"name":"湖南","childNum":3}},{"id":"440000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@QdˆAua"],["@@ƒlxDLo"],["@@sbhNLo"],["@@Ă āŸ"],["@@WltO[["],["@@Krœ]S"],["@@e„„I]y"],["@@I|„Mym"],["@@ƒÛ³LSŒž¼Y"],["@@nvºB–ëui©`¾"],["@@zdšÛ›Jw®"],["@@†°…¯"],["@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o"],["@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh"],["@@‹¶Ý’Ì‚vmĞh­ı‡Q"],["@@HœŠdSjĒ¢D}war…“u«ZqadYM"],["@@elŒ\\LqqU"],["@@~rMo\\"],["@@f„^ƒC"],["@@øPªoj÷ÍÝħXČx”°Q¨ıXNv"],["@@gÇƳˆŽˆ”oˆŠˆ[~tly"],["@@E–ÆC¿‘"],["@@OŽP"],["@@w‹†đóg‰™ĝ—[³‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š–FĤ–‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžEÀˆ˜©Œž\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéƌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i"]],"encodeOffsets":[[[117381,22988]],[[116552,22934]],[[116790,22617]],[[116973,22545]],[[116444,22536]],[[116931,22515]],[[116496,22490]],[[116453,22449]],[[113301,21439]],[[118726,21604]],[[118709,21486]],[[113210,20816]],[[115482,22082]],[[113171,21585]],[[113199,21590]],[[115232,22102]],[[115739,22373]],[[115134,22184]],[[113056,21175]],[[119573,21271]],[[119957,24020]],[[115859,22356]],[[116561,22649]],[[116285,22746]]]},"properties":{"cp":[113.280637,23.125178],"name":"广东","childNum":24}},{"id":"450000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@H– TQ§•A"],["@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝz¯šlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloޤ™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹qǀcz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆÌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FϼĹ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…C̀Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•E쉕E“ďs‡’mǖŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠhŒ‹\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…qĂXËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢Jî¶²"]],"encodeOffsets":[[[111707,21520]],[[107619,25527]]]},"properties":{"cp":[108.320004,22.82402],"name":"广西","childNum":2}},{"id":"460000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒšZdž™zÐŘΰH¨Ƣb²_Ġ "],"encodeOffsets":[[112750,20508]]},"properties":{"cp":[110.33119,20.031971],"name":"海南","childNum":1}},{"id":"510000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@LqKr"],["@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽiÍıƣıĻmHH}siaX@iǰÁÃ×t«ƒ­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žB²ŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–uå‡mni{fk”\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†y£„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›Zϕ‹œÅĭ€Ƌ•ěpwDóÖሯneQˌq·•GCœýS]xŸ·ý‹q³•O՜Œ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZްIä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎkµ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºT£ڿœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïžPȆ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“sÖ×_͖_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`Šz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„NΆL€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒu¨ŦyhoÚD®¯¢˜ WòàFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\Z{åû^›"]],"encodeOffsets":[[[108815,30935]],[[110617,31811]]]},"properties":{"cp":[104.065735,30.659462],"name":"四川","childNum":2}},{"id":"520000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@†G\\†lY£‘in"],["@@q‚|ˆ‚mc¯tχVSÎ"],["@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\}—ƒG®u\\åPFq‹wÅaD…žK°ºâ_£ùbµ”mÁ‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„cȁbe¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pН`oÒh޶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KгŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„z¤…ž£Tl®ctĽÚó{G­A‡ŒÇgeš~Αd¿æaSba¥KKûj®_ć^\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}ޱžGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝÆ€‚sª–B`„s¶œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½"]],"encodeOffsets":[[[112158,27383]],[[112105,27474]],[[112095,27476]]]},"properties":{"cp":[106.713478,26.578343],"name":"贵州","childNum":3}},{"id":"530000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚cʋlHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèÆ¶StǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ  ¶®dNœĄÄpªyސ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†}®BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށqóžSᝑ³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀžaü„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\μģUsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\_gz—]W¼ž~CÔē]bµogpў_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\lˆMFlư£Ĝ„ÆyH“„F¨‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇W¥˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`"],"encodeOffsets":[[104636,22969]]},"properties":{"cp":[102.712251,25.040609],"name":"云南","childNum":1}},{"id":"540000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@hžľxŽŖ‰xƒÒVކºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœdĊ…œ\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´|٘¦Avަw`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdЉªB]pj„•TO–tĊ‚n¤}®¦ƒČ¥d¢¼»ddš”Y¼Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀݦ¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒIij€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…v½ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īèsZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVе‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£à貋ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæÅ„hnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™n鄧żćŠ˜ĆK„ǰ¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜Uú´xx[xˆvĐCûŠìÖT¬¸^}Ìsòd´_އKgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxжF”œkĄźRzŀˆ~[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀRšŶUńšĖ[QhlLüA†‹Ü\\†qR›Ą©"],"encodeOffsets":[[90849,37210]]},"properties":{"cp":[91.132212,29.660361],"name":"西藏","childNum":1}},{"id":"610000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@˜p¢—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎwܔ¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’Y¹‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍKù’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸwƇˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡tƇÏ˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸX¡—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OϹS|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cϰÂ[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~ЦUbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆY§‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj"],"encodeOffsets":[[110234,38774]]},"properties":{"cp":[108.948024,34.263161],"name":"陕西","childNum":1}},{"id":"620000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@VuUv"],["@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡ŠjΑBаaZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„K¨jWk’ɱŠOq›Wij\\a­‹Q\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aйcčecÇN•ĊãÁ\\蝗dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒE·®ƒ«|@Xwg]A챝‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒUŻ”Å}QÂ|̋°ƅ¤ĩŪU ęĄžÌZҞ\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”]ȏb•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v†·À|\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮްƝ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰Iɐ_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹tÓ̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹D½†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK"]],"encodeOffsets":[[[108619,36299]],[[108589,36341]]]},"properties":{"cp":[103.823557,36.058039],"name":"甘肃","childNum":2}},{"id":"630000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@InJm"],["@@CƒÆ½OŃĦsΰ~dz¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNΌĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\m `Un„˜~ʌŸ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\ZŽjҕ¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoᣟÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Ó祖•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒs»”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSò뚣˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\_»™kϊ±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›[ĉ†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\ijŬű”YÂÿ¬jĖqŽßbЏ•L«¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹b¯‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňb̰ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\ªÚŒU\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\oäõ–F礻Ŷ×h¹]Clـ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌζƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg"]],"encodeOffsets":[[[105308,37219]],[[95370,40081]]]},"properties":{"cp":[101.778916,36.623178],"name":"青海","childNum":2}},{"id":"640000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\âÙH\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥Že֎ŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEuj¨‚IÆ¢¥dXªƅx¿]mtÏwßR͌X¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–r°Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀ˾iİbjÕ"],["@@mfwěwMrŢªv@G‰"]],"encodeOffsets":[[[109366,40242]],[[108600,36303]]]},"properties":{"cp":[106.278179,38.46637],"name":"宁夏","childNum":2}},{"id":"650000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@QØĔ²X¨”~ǘBºjʐߨvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZ̓èH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYw獃{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\‚ś’nkO›w¥±ƒT»ƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\“}µĿ‡QyŹl㓛µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\wwwù³—V›LŕƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~Ꝛf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\ªÑò˜Üìc\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆÂšońéŒGš\\”¼C°ÌƁn´nxšÊOĨ’ہƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FއRěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜S¤„s²‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ"],"encodeOffsets":[[88824,50096]]},"properties":{"cp":[87.617733,43.792818],"name":"新疆","childNum":1}},{"id":"110000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`й­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwڍUd®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\‡¥A¨Ï‘Ѩj¯ŠX\\¯œMK‘pA³[H…īu}}"],"encodeOffsets":[[120023,41045]]},"properties":{"cp":[116.405285,39.904989],"name":"北京","childNum":1}},{"id":"120000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒpù‚Š^L‚ˆrzWxˆZ^¨´T\\|~@I‰zƒ–bĤ‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~"],"encodeOffsets":[[120237,41215]]},"properties":{"cp":[117.190182,39.125596],"name":"天津","childNum":1}},{"id":"310000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ɧư¬EpƸÁxc‡"],["@@©„ªƒ"],["@@”MA‹‘š"],["@@Qp݁E§ÉC¾"],["@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó"],["@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį"]],"encodeOffsets":[[[124702,32062]],[[124547,32200]],[[124808,31991]],[[124726,32110]],[[124903,32376]],[[124438,32149]]]},"properties":{"cp":[121.472644,31.231706],"name":"上海","childNum":6}},{"id":"500000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚S栓Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”F¦›L‘ØgTkïƵNï¶}Gy“w\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\ÂoVnŽÓØÍ™²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\¨\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBЦzG¸rHe‚„N\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN"],["@@ifjN@s"]],"encodeOffsets":[[[109628,30765]],[[111725,31320]]]},"properties":{"cp":[106.504962,29.533155],"name":"重庆","childNum":2}},{"id":"810000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AlBk"],["@@mŽn"],["@@EpFo"],["@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒfёKްä¬XJmРđhI®æÔtSHn€Eˆ„ÒrÈc"],["@@rMUw‡AS®€e"]],"encodeOffsets":[[[117111,23002]],[[117072,22876]],[[117045,22887]],[[116975,23082]],[[116882,22747]]]},"properties":{"cp":[114.173355,22.320048],"name":"香港","childNum":5}},{"id":"820000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@kÊd°å§s"],"encodeOffsets":[[116279,22639]]},"properties":{"cp":[113.54909,22.198951],"name":"澳门","childNum":1}}],"UTF8Encoding":true});
}));
\ No newline at end of file
<template>
<div class="cont">
<Vtitle :title="Title"></Vtitle>
<div class="e_main">
<div class="left">
<div class="nowShow">
<h3>现有来样展示图</h3>
<div
id="nowPie"
:style="{ width: '330px', height: '360px' }"
ref="chart">
</div>
</div>
<div class="monthSpeed">
<h3>月试版进度</h3>
<div
id="monthPie"
:style="{ width: '330px', height: '300px' }"
ref="chart">
</div>
</div>
</div>
<div class="middle">
<div class="dataMap">
<h1>客户样品总数</h1>
<div
id="CustomMap"
:style="{ width: '1150px', height: '530px' }"
ref="chart">
</div>
</div>
<div class="speedTrack">
<h1>实时进度追踪</h1>
<div
id="myChart"
:style="{ width: '1200px', height: '300px' }"
ref="chart">
</div>
</div>
</div>
<div class="right">
<div class="attendance">
<h3>部门出勤人数</h3>
<div class="list" v-for="(item, index) in list" :key="index">{{item.TypeName}}:{{item.Count}}</div>
</div>
<div class="situation">
<h3>生产装况</h3>
<div class="jihua">
<span class="list"></span>
<span class="list">计划</span>
<span class="list">完工</span>
</div>
<div class="production" v-for="(item, index) in list1" :key="index">
<span class="list">{{item.WorkSectionName}}</span>
<span class="list">{{item.PlanQty}}</span>
<span class="list">{{item.ReportQty}}</span>
</div>
</div>
<div class="risk">
<h3>交期延误风险</h3>
</div>
</div>
</div>
</div>
</template>
<script>
var _this;
import qs from "qs";
import Axios from "@/function/axios.js";
import Vtitle from "@/components/view/header.vue";
import "echarts/map/js/china.js"
export default {
components: {
Vtitle
},
data() {
return {
Title: '',
StationBoards: [],
time: 0,
itemNow: '',
itemMonth: '',
itemTrackings: '',
itemCustom: '',
Customs: '',
list: [],
list1: []
}
},
created() {
// this.getData();
var arr = window.location.href.split("?");
var ss = arr[1].split("&");
// console.log(arr);
// console.log(ss)
this.time = ss[0].split('=')[1] * 1000
// console.log(this.time)
if(this.time == 0){
this.time = 6000000
}
},
beforeRouteLeave(to, form, next) {
window.clearInterval(this.timer);
next()
},
mounted() {
this.getData();
this.timer = window.setInterval(() => {
this.getData();
}, this.time);
},
methods: {
getData () {
var url = "api/FactoryBoardXYStyleWorking/Get"
var data = {}
Axios({
method: "get",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
// console.log(res)
this.Title = res.Title
this.itemNow = res.SampleDynamics
this.itemMonth = res.StyleTryEditions
this.itemCustom = res.CustomStyles
this.Customs = res.Customs
this.itemTrackings = res.ProgressTrackings
this.list = res.Attendances
this.list1 = res.ProductionStatuss
let STArr = []
let CountArr = []
let DesignerArr = []
let Count1Arr = []
let DataCustom = []
let geoCoordMap = this.Customs
let DateMonthArr = []
let TKCountArr1 = []
let TKCountArr2 = []
let TKCountArr3 = []
this.itemCustom.forEach((item, index) => {
let obj = {
name: item.CustomName,
value: item.Count
}
// let obj1 = {
// name: item.CustomName,
// value: item.customLocation,
// num: item.Count
// }
DataCustom.push(obj)
// geoCoordMap.push(obj1)
})
this.itemNow.forEach((item, index) => {
let obj = {
name: item.SampleTypeName,
value: item.Count
}
STArr.push(item.SampleTypeName)
CountArr.push(obj)
})
this.itemMonth.forEach((item, index) => {
let obj = {
name: item.Designer,
value: item.Count
}
DesignerArr.push(item.Designer)
Count1Arr.push(obj)
})
this.itemTrackings.forEach((item, index) => {
DateMonthArr.push(item.DateMonth)
TKCountArr1.push(item.Count1)
TKCountArr2.push(item.Count2)
TKCountArr3.push(item.Count3)
})
this.CustomMap(DataCustom, geoCoordMap)
this.nowPie(STArr, CountArr)
this.monthPie(DesignerArr, Count1Arr)
this.Trackings(DateMonthArr, TKCountArr1, TKCountArr2, TKCountArr3)
})
},
nowPie (STArr, CountArr) {
var myChart = this.echarts.init(document.getElementById("nowPie"));
var option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
left: 'center',
top: 'bottom',
itemWidth: 12, // 设置图例图形的宽
itemHeight: 8,
textStyle: {
color: '#fff' // 图例文字颜色
},
data: STArr
},
series: [
{
name: '',
type: 'pie',
radius: [20, 100],
center: ['50%', '30%'],
roseType: 'radius',
label: {
show: false
},
emphasis: {
label: {
show: true
}
},
itemStyle: {
normal: {
label: {
show: false,
color: '#fff'
}
}
},
color: ['#0000cd', '#00bfff', '#7b68ee', '#b0e0e6'],
data: CountArr
},
]
};
myChart.setOption(option);
},
monthPie (DesignerArr, Count1Arr) {
var myChart = this.echarts.init(document.getElementById("monthPie"));
var option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
left: 'center',
top: 'bottom',
textStyle: {
color: '#fff' // 图例文字颜色
},
data: DesignerArr
},
series: [
{
name: '次数',
type: 'pie',
radius: [20, 110],
center: ['50%', '40%'],
roseType: 'radius',
label: {
show: false
},
emphasis: {
label: {
show: true
}
},
itemStyle: {
normal: {
label: {
show: false,
color: '#fff'
}
}
},
color: ['#0000cd', '#00bfff', '#7b68ee', '#b0e0e6'],
data: Count1Arr
},
]
};
myChart.setOption(option);
},
CustomMap (DataCustom, geoCoordMap) {
var data = DataCustom
var convertData = function(data) {
var res = []
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
})
}
}
return res
}
var myChart = this.echarts.init(document.getElementById("CustomMap"));
window.onresize = myChart.resize
myChart.setOption({ // 进行相关配置
geo: { // 这个是重点配置区
map: 'china', // 表示中国地图
label: {
normal:{
show: true, // 是否显示对应地名
textStyle: { //字体颜色
color: '#05f6f1'
}
},
emphasis: {
show: false,
textStyle: {
color: '#fff'
}
}
},
roam: true,
zoom: 1.2, // 地图大小
itemStyle: {
normal: {
borderWidth: 1, // 地图边框宽度
borderColor: '#014888', // 地图边框颜色
areaColor: '#026295' // 地图颜色
},
emphasis: {//选中省份的颜色
areaColor: '#026295',
shadowOffsetX: 0,
shadowOffsetY: 0,
shadowBlur: 0,
borderWidth: 1,
shadowColor: '#fff'
}
}
},
// 滑动显示数据
tooltip: {
trigger: 'item',
formatter (params) {
// return params.name +'<br>'+ params.data.value[2]
return params.name +':'+ params.data.value[2]
}
},
series: [{
// name: '散点',
type: 'scatter',
coordinateSystem: 'geo',
color:"#e1ebe3",//点的颜色
data: convertData(data),
// data: data.map(item => {
// return {
// name: item.name,
// value: item.value,
// showAllSymbol: true,
// symbolSize: 0.1,
// };
// }),
symbolSize: 25,//点的大小
symbol:"pin",//点的样式
cursor:"pointer",//鼠标放上去的效果
label: {
normal: {//默认展示
show: false
},
emphasis: {//滑过展示
show: false
}
},
itemStyle: {
emphasis: {
borderColor: '#5c8f6e',
borderWidth: 5
}
}
},
{
type: 'map',
map: 'china',
geoIndex: 0,
aspectScale: 0.75,
tooltip: {
show: false
}
},
],
})
},
Trackings (DateMonthArr, TKCountArr1, TKCountArr2, TKCountArr3) {
var myChart = this.echarts.init(document.getElementById("myChart"));
var option = {
tooltip: {},
legend: {
textStyle: {
color: '#fff' // 图例文字颜色
},
data:['试版数', '手剪/斩刀之外数量', '手剪/斩刀数量']
},
grid: {
left: '1%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: DateMonthArr,
axisLabel: {
show: true,
textStyle: {
color: '#fff', //更改坐标轴文字颜色
fontSize : 14 //更改坐标轴文字大小
}
}
}
],
yAxis: [
{
type: 'value',
axisLabel: {
show: true,
textStyle: {
color: '#fff', //更改坐标轴文字颜色
fontSize : 14 //更改坐标轴文字大小
}
}
}
],
color: ['#0000cd', '#00bfff', '#7b68ee', '#b0e0e6'],
series: [
{
name: '试版数',
type: 'bar',
data: TKCountArr1
},
{
name: '手剪/斩刀之外数量',
type: 'bar',
data: TKCountArr2
},
{
name: '手剪/斩刀数量',
type: 'bar',
data: TKCountArr3
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
}
};
</script>
<style scoped>
.cont {
min-width: 1920px !important;
/* height: auto !important; */
min-height: 1080px !important;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(1, 3, 30, 1) 100%
);
box-sizing: border-box;
padding: 10px 30px 0px;
}
.e_main {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20px;
}
.left,
.right,
.middle {
width: 18%;
height: 980px;
border: 1px solid #0cfafa;
border-radius: 6px;
overflow: hidden;
box-sizing: border-box;
}
.middle {
width: 62.8%;
}
h1, h3 {
margin-bottom: 10px;
color: #05f3f3;
}
.nowShow, .attendance {
padding: 10px;
box-sizing: border-box;
width: 100%;
height: 270px;
border-bottom: 1px solid #05f3f3;
}
.nowShow {
height: 420px;
}
.attendance .list {
width: 80%;
height: 36px;
font-size: 20px;
color: white;
}
.situation .list {
width: 80%;
height: 36px;
font-size: 20px;
color: white;
}
.situation .jihua {
padding-left: 120px;
}
.jihua span:nth-child(3) {
padding-left: 70px;
}
.production {
height: 36px;
line-height: 36px;
}
.production span:nth-child(2) {
padding-left: 90px;
}
.production span:nth-child(3) {
padding-left: 100px;
}
img {
width: 160%;
}
.monthSpeed, .situation {
padding: 10px;
box-sizing: border-box;
width: 100%;
height: 320px;
border-bottom: 1px solid #05f3f3;
}
.monthSpeed {
height: 360px;
}
.dataMap {
padding: 10px;
width: 100%;
height: 580px;
border-bottom: 1px solid #05f3f3;
}
.speedTrack, .risk {
padding: 10px;
}
</style>
<template>
<div class="cont">
<Vtitle :title="BoardName"></Vtitle>
<div class="e_main">
<div class="left">
<div class="nowShow">
<img src="@/assets/image/chejian.png" alt="" />
<div
id="nowPie"
:style="{ width: '330px', height: '230px' }"
ref="chart">
</div>
</div>
<div class="monthSpeed">
<img src="@/assets/image/chejian.png" alt="" />
<div
id="monthPie"
:style="{ width: '330px', height: '280px' }"
ref="chart">
</div>
</div>
</div>
<div class="middle">
<div class="dataMap">
<img src="@/assets/image/chejian.png" alt="" />
<div
id="TestMap"
:style="{ width: '400px', height: '400px' }"
ref="chart">
</div>
</div>
<div class="speedTrack">
<img src="@/assets/image/chejian.png" alt="" />
<div
id="myChart"
:style="{ width: '400px', height: '400px' }"
ref="chart">
</div>
</div>
</div>
<div class="right">
<div class="attendance">
<img src="@/assets/image/chejian.png" alt="" />
<div class="list first">应出勤:50</div>
<div class="list">实出勤:48</div>
<div class="list">缺席:2</div>
</div>
<div class="situation">
<img src="@/assets/image/chejian.png" alt="" />
<div class="list first">生产状况</div>
<div class="jihua">
<span class="list"></span>
<span class="list">计划</span>
<span class="list">完工</span>
</div>
<div>
<span class="list">裁断</span>
<span class="list"></span>
<span class="list"></span>
</div>
<div>
<span class="list">针车</span>
<span class="list"></span>
<span class="list"></span>
</div>
<div>
<span class="list">成型</span>
<span class="list"></span>
<span class="list"></span>
</div>
</div>
<div class="risk">
<img src="@/assets/image/chejian.png" alt="" />
</div>
</div>
</div>
</div>
</template>
<script>
var _this;
import qs from "qs";
var echarts = require("echarts");
import Axios from "@/function/axios.js";
import Vtitle from "@/components/view/header.vue";
import "./china.js"
export default {
components: {
Vtitle
},
data() {
return {
BoardName: "样品运行控制中心",
StationBoards: [],
time:0,
// mapList: [
// {name: '海门', value: 9},
// {name: '鄂尔多斯', value: 12},
// {name: '招远', value: 12},
// {name: '舟山', value: 12},
// {name: '齐齐哈尔', value: 14},
// {name: '盐城', value: 15},
// {name: '赤峰', value: 16},
// {name: '青岛', value: 18},
// {name: '乳山', value: 18},
// {name: '金昌', value: 19},
// {name: '泉州', value: 21},
// {name: '莱西', value: 21},
// {name: '日照', value: 21},
// {name: '胶南', value: 22},
// {name: '南通', value: 23},
// {name: '拉萨', value: 24},
// {name: '云浮', value: 24},
// {name: '梅州', value: 25},
// {name: '文登', value: 25},
// {name: '上海', value: 25},
// {name: '攀枝花', value: 25},
// {name: '威海', value: 25},
// {name: '承德', value: 25},
// {name: '厦门', value: 26},
// {name: '汕尾', value: 26},
// {name: '潮州', value: 26},
// {name: '丹东', value: 27},
// {name: '太仓', value: 27},
// {name: '曲靖', value: 27},
// {name: '烟台', value: 28},
// {name: '福州', value: 29},
// {name: '瓦房店', value: 30},
// {name: '即墨', value: 30},
// {name: '抚顺', value: 31},
// {name: '玉溪', value: 31},
// {name: '张家口', value: 31},
// {name: '阳泉', value: 31},
// {name: '莱州', value: 32},
// {name: '湖州', value: 32},
// {name: '汕头', value: 32},
// {name: '昆山', value: 33},
// {name: '宁波', value: 33},
// {name: '湛江', value: 33},
// {name: '揭阳', value: 34},
// {name: '荣成', value: 34},
// {name: '连云港', value: 35},
// {name: '葫芦岛', value: 35},
// {name: '常熟', value: 36},
// {name: '东莞', value: 36},
// {name: '河源', value: 36},
// {name: '淮安', value: 36},
// {name: '泰州', value: 36},
// {name: '南宁', value: 37},
// {name: '营口', value: 37},
// {name: '惠州', value: 37},
// {name: '江阴', value: 37},
// {name: '蓬莱', value: 37},
// {name: '韶关', value: 38},
// {name: '嘉峪关', value: 38},
// {name: '广州', value: 38},
// {name: '延安', value: 38},
// {name: '太原', value: 39},
// {name: '清远', value: 39},
// {name: '中山', value: 39},
// {name: '昆明', value: 39},
// {name: '寿光', value: 40},
// {name: '盘锦', value: 40},
// {name: '长治', value: 41},
// {name: '深圳', value: 41},
// {name: '珠海', value: 42},
// {name: '宿迁', value: 43},
// {name: '咸阳', value: 43},
// {name: '铜川', value: 44},
// {name: '平度', value: 44},
// {name: '佛山', value: 44},
// {name: '海口', value: 44},
// {name: '江门', value: 45},
// {name: '章丘', value: 45},
// {name: '肇庆', value: 46},
// {name: '大连', value: 47},
// {name: '临汾', value: 47},
// {name: '吴江', value: 47},
// {name: '石嘴山', value: 49},
// {name: '沈阳', value: 50},
// {name: '苏州', value: 50},
// {name: '茂名', value: 50},
// {name: '嘉兴', value: 51},
// {name: '长春', value: 51},
// {name: '胶州', value: 52},
// {name: '银川', value: 52},
// {name: '张家港', value: 52},
// {name: '三门峡', value: 53},
// {name: '锦州', value: 54},
// {name: '南昌', value: 54},
// {name: '柳州', value: 54},
// {name: '三亚', value: 54},
// {name: '自贡', value: 56},
// {name: '吉林', value: 56},
// {name: '阳江', value: 57},
// {name: '泸州', value: 57},
// {name: '西宁', value: 57},
// {name: '宜宾', value: 58},
// {name: '呼和浩特', value: 58},
// {name: '成都', value: 58},
// {name: '大同', value: 58},
// {name: '镇江', value: 59},
// {name: '桂林', value: 59},
// {name: '张家界', value: 59},
// {name: '宜兴', value: 59},
// {name: '北海', value: 60},
// {name: '西安', value: 61},
// {name: '金坛', value: 62},
// {name: '东营', value: 62},
// {name: '牡丹江', value: 63},
// {name: '遵义', value: 63},
// {name: '绍兴', value: 63},
// {name: '扬州', value: 64},
// {name: '常州', value: 64},
// {name: '潍坊', value: 65},
// {name: '重庆', value: 66},
// {name: '台州', value: 67},
// {name: '南京', value: 67},
// {name: '滨州', value: 70},
// {name: '贵阳', value: 71},
// {name: '无锡', value: 71},
// {name: '本溪', value: 71},
// {name: '克拉玛依', value: 72},
// {name: '渭南', value: 72},
// {name: '马鞍山', value: 72},
// {name: '宝鸡', value: 72},
// {name: '焦作', value: 75},
// {name: '句容', value: 75},
// {name: '北京', value: 79},
// {name: '徐州', value: 79},
// {name: '衡水', value: 80},
// {name: '包头', value: 80},
// {name: '绵阳', value: 80},
// {name: '乌鲁木齐', value: 84},
// {name: '枣庄', value: 84},
// {name: '杭州', value: 84},
// {name: '淄博', value: 85},
// {name: '鞍山', value: 86},
// {name: '溧阳', value: 86},
// {name: '库尔勒', value: 86},
// {name: '安阳', value: 90},
// {name: '开封', value: 90},
// {name: '济南', value: 92},
// {name: '德阳', value: 93},
// {name: '温州', value: 95},
// {name: '九江', value: 96},
// {name: '邯郸', value: 98},
// {name: '临安', value: 99},
// {name: '兰州', value: 99},
// {name: '沧州', value: 100},
// {name: '临沂', value: 103},
// {name: '南充', value: 104},
// {name: '天津', value: 105},
// {name: '富阳', value: 106},
// {name: '泰安', value: 112},
// {name: '诸暨', value: 112},
// {name: '郑州', value: 113},
// {name: '哈尔滨', value: 114},
// {name: '聊城', value: 116},
// {name: '芜湖', value: 117},
// {name: '唐山', value: 119},
// {name: '平顶山', value: 119},
// {name: '邢台', value: 119},
// {name: '德州', value: 120},
// {name: '济宁', value: 120},
// {name: '荆州', value: 127},
// {name: '宜昌', value: 130},
// {name: '义乌', value: 132},
// {name: '丽水', value: 133},
// {name: '洛阳', value: 134},
// {name: '秦皇岛', value: 136},
// {name: '株洲', value: 143},
// {name: '石家庄', value: 147},
// {name: '莱芜', value: 148},
// {name: '常德', value: 152},
// {name: '保定', value: 153},
// {name: '湘潭', value: 154},
// {name: '金华', value: 157},
// {name: '岳阳', value: 169},
// {name: '长沙', value: 175},
// {name: '衢州', value: 177},
// {name: '廊坊', value: 193},
// {name: '菏泽', value: 194},
// {name: '合肥', value: 229},
// {name: '武汉', value: 273},
// {name: '大庆', value: 279}
// ],
// geoCoordMap: {
// '海门':[121.15,31.89],
// '鄂尔多斯':[109.781327,39.608266],
// '招远':[120.38,37.35],
// '舟山':[122.207216,29.985295],
// '齐齐哈尔':[123.97,47.33],
// '盐城':[120.13,33.38],
// '赤峰':[118.87,42.28],
// '青岛':[120.33,36.07],
// '乳山':[121.52,36.89],
// '金昌':[102.188043,38.520089],
// '泉州':[118.58,24.93],
// '莱西':[120.53,36.86],
// '日照':[119.46,35.42],
// '胶南':[119.97,35.88],
// '南通':[121.05,32.08],
// '拉萨':[91.11,29.97],
// '云浮':[112.02,22.93],
// '梅州':[116.1,24.55],
// '文登':[122.05,37.2],
// '上海':[121.48,31.22],
// '攀枝花':[101.718637,26.582347],
// '威海':[122.1,37.5],
// '承德':[117.93,40.97],
// '厦门':[118.1,24.46],
// '汕尾':[115.375279,22.786211],
// '潮州':[116.63,23.68],
// '丹东':[124.37,40.13],
// '太仓':[121.1,31.45],
// '曲靖':[103.79,25.51],
// '烟台':[121.39,37.52],
// '福州':[119.3,26.08],
// '瓦房店':[121.979603,39.627114],
// '即墨':[120.45,36.38],
// '抚顺':[123.97,41.97],
// '玉溪':[102.52,24.35],
// '张家口':[114.87,40.82],
// '阳泉':[113.57,37.85],
// '莱州':[119.942327,37.177017],
// '湖州':[120.1,30.86],
// '汕头':[116.69,23.39],
// '昆山':[120.95,31.39],
// '宁波':[121.56,29.86],
// '湛江':[110.359377,21.270708],
// '揭阳':[116.35,23.55],
// '荣成':[122.41,37.16],
// '连云港':[119.16,34.59],
// '葫芦岛':[120.836932,40.711052],
// '常熟':[120.74,31.64],
// '东莞':[113.75,23.04],
// '河源':[114.68,23.73],
// '淮安':[119.15,33.5],
// '泰州':[119.9,32.49],
// '南宁':[108.33,22.84],
// '营口':[122.18,40.65],
// '惠州':[114.4,23.09],
// '江阴':[120.26,31.91],
// '蓬莱':[120.75,37.8],
// '韶关':[113.62,24.84],
// '嘉峪关':[98.289152,39.77313],
// '广州':[113.23,23.16],
// '延安':[109.47,36.6],
// '太原':[112.53,37.87],
// '清远':[113.01,23.7],
// '中山':[113.38,22.52],
// '昆明':[102.73,25.04],
// '寿光':[118.73,36.86],
// '盘锦':[122.070714,41.119997],
// '长治':[113.08,36.18],
// '深圳':[114.07,22.62],
// '珠海':[113.52,22.3],
// '宿迁':[118.3,33.96],
// '咸阳':[108.72,34.36],
// '铜川':[109.11,35.09],
// '平度':[119.97,36.77],
// '佛山':[113.11,23.05],
// '海口':[110.35,20.02],
// '江门':[113.06,22.61],
// '章丘':[117.53,36.72],
// '肇庆':[112.44,23.05],
// '大连':[121.62,38.92],
// '临汾':[111.5,36.08],
// '吴江':[120.63,31.16],
// '石嘴山':[106.39,39.04],
// '沈阳':[123.38,41.8],
// '苏州':[120.62,31.32],
// '茂名':[110.88,21.68],
// '嘉兴':[120.76,30.77],
// '长春':[125.35,43.88],
// '胶州':[120.03336,36.264622],
// '银川':[106.27,38.47],
// '张家港':[120.555821,31.875428],
// '三门峡':[111.19,34.76],
// '锦州':[121.15,41.13],
// '南昌':[115.89,28.68],
// '柳州':[109.4,24.33],
// '三亚':[109.511909,18.252847],
// '自贡':[104.778442,29.33903],
// '吉林':[126.57,43.87],
// '阳江':[111.95,21.85],
// '泸州':[105.39,28.91],
// '西宁':[101.74,36.56],
// '宜宾':[104.56,29.77],
// '呼和浩特':[111.65,40.82],
// '成都':[104.06,30.67],
// '大同':[113.3,40.12],
// '镇江':[119.44,32.2],
// '桂林':[110.28,25.29],
// '张家界':[110.479191,29.117096],
// '宜兴':[119.82,31.36],
// '北海':[109.12,21.49],
// '西安':[108.95,34.27],
// '金坛':[119.56,31.74],
// '东营':[118.49,37.46],
// '牡丹江':[129.58,44.6],
// '遵义':[106.9,27.7],
// '绍兴':[120.58,30.01],
// '扬州':[119.42,32.39],
// '常州':[119.95,31.79],
// '潍坊':[119.1,36.62],
// '重庆':[106.54,29.59],
// '台州':[121.420757,28.656386],
// '南京':[118.78,32.04],
// '滨州':[118.03,37.36],
// '贵阳':[106.71,26.57],
// '无锡':[120.29,31.59],
// '本溪':[123.73,41.3],
// '克拉玛依':[84.77,45.59],
// '渭南':[109.5,34.52],
// '马鞍山':[118.48,31.56],
// '宝鸡':[107.15,34.38],
// '焦作':[113.21,35.24],
// '句容':[119.16,31.95],
// '北京':[116.46,39.92],
// '徐州':[117.2,34.26],
// '衡水':[115.72,37.72],
// '包头':[110,40.58],
// '绵阳':[104.73,31.48],
// '乌鲁木齐':[87.68,43.77],
// '枣庄':[117.57,34.86],
// '杭州':[120.19,30.26],
// '淄博':[118.05,36.78],
// '鞍山':[122.85,41.12],
// '溧阳':[119.48,31.43],
// '库尔勒':[86.06,41.68],
// '安阳':[114.35,36.1],
// '开封':[114.35,34.79],
// '济南':[117,36.65],
// '德阳':[104.37,31.13],
// '温州':[120.65,28.01],
// '九江':[115.97,29.71],
// '邯郸':[114.47,36.6],
// '临安':[119.72,30.23],
// '兰州':[103.73,36.03],
// '沧州':[116.83,38.33],
// '临沂':[118.35,35.05],
// '南充':[106.110698,30.837793],
// '天津':[117.2,39.13],
// '富阳':[119.95,30.07],
// '泰安':[117.13,36.18],
// '诸暨':[120.23,29.71],
// '郑州':[113.65,34.76],
// '哈尔滨':[126.63,45.75],
// '聊城':[115.97,36.45],
// '芜湖':[118.38,31.33],
// '唐山':[118.02,39.63],
// '平顶山':[113.29,33.75],
// '邢台':[114.48,37.05],
// '德州':[116.29,37.45],
// '济宁':[116.59,35.38],
// '荆州':[112.239741,30.335165],
// '宜昌':[111.3,30.7],
// '义乌':[120.06,29.32],
// '丽水':[119.92,28.45],
// '洛阳':[112.44,34.7],
// '秦皇岛':[119.57,39.95],
// '株洲':[113.16,27.83],
// '石家庄':[114.48,38.03],
// '莱芜':[117.67,36.19],
// '常德':[111.69,29.05],
// '保定':[115.48,38.85],
// '湘潭':[112.91,27.87],
// '金华':[119.64,29.12],
// '岳阳':[113.09,29.37],
// '长沙':[113,28.21],
// '衢州':[118.88,28.97],
// '廊坊':[116.7,39.53],
// '菏泽':[115.480656,35.23375],
// '合肥':[117.27,31.86],
// '武汉':[114.31,30.52],
// '大庆':[125.03,46.58]
// }
};
},
created() {
// this.getData();
var arr = window.location.href.split("?");
var ss = arr[1].split("&");
// console.log(arr);
// console.log(ss)
this.time = ss[0].split('=')[1] * 1000
// console.log(this.time)
if(this.time == 0){
this.time = 6000000
}
},
beforeRouteLeave(to, form, next) {
window.clearInterval(this.timer);
next()
},
mounted() {
this.getData();
this.timer = window.setInterval(() => {
this.getData();
}, this.time);
},
methods: {
getData () {
this.TestMap()
this.testMap()
this.nowPie()
this.monthPie()
},
nowPie () {
var myChart = echarts.init(document.getElementById("nowPie"));
var option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
left: 'center',
top: 'bottom',
data: ['rose1', 'rose2', 'rose3', 'rose4', 'rose5', 'rose6', 'rose7', 'rose8']
},
series: [
{
name: '半径模式',
type: 'pie',
radius: [20, 100],
center: ['50%', '50%'],
roseType: 'radius',
label: {
show: false
},
emphasis: {
label: {
show: true
}
},
data: [
{value: 10},
{value: 5},
{value: 15},
{value: 25},
{value: 20},
{value: 35},
{value: 30},
{value: 40}
]
},
]
};
myChart.setOption(option);
},
monthPie () {
var myChart = echarts.init(document.getElementById("monthPie"));
var option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
left: 'center',
top: 'bottom',
data: ['rose1', 'rose2', 'rose3', 'rose4', 'rose5', 'rose6', 'rose7', 'rose8']
},
series: [
{
name: '半径模式',
type: 'pie',
radius: [20, 110],
center: ['50%', '50%'],
roseType: 'radius',
label: {
show: false
},
emphasis: {
label: {
show: true
}
},
data: [
{value: 10},
{value: 5},
{value: 15},
{value: 25},
{value: 20},
{value: 35},
{value: 30},
{value: 40}
]
},
]
};
myChart.setOption(option);
},
TestMap () {
var myChart = echarts.init(document.getElementById("TestMap"));
// console.log(this.mapList)
var data = this.mapList
var geoCoordMap = this.geoCoordMap
// console.log(geoCoordMap)
var convertData = function (data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
});
}
}
return res;
};
function renderItem(params, api) {
var coords = [];
var points = [];
for (var i = 0; i < coords.length; i++) {
points.push(api.coord(coords[i]));
}
var color = api.visual('color');
return {
type: 'polygon',
shape: {
points: echarts.graphic.clipPointsByRect(points, {
// x: params.coordSys.x,
// y: params.coordSys.y,
// width: params.coordSys.width,
// height: params.coordSys.height
})
},
style: api.style({
fill: color,
stroke: echarts.color.lift(color)
})
};
}
var option = {
backgroundColor: 'transparent',
tooltip : {
trigger: 'item'
},
bmap: {
center: [104.114129, 37.550339],
zoom: 5,
roam: true,
mapStyle: {
styleJson: [
{
"featureType": "water",
"elementType": "all",
"stylers": {
"color": "#044161"
}
},
{
"featureType": "land",
"elementType": "all",
"stylers": {
"color": "#004981"
}
},
{
"featureType": "boundary",
"elementType": "geometry",
"stylers": {
"color": "#064f85"
}
},
{
"featureType": "railway",
"elementType": "all",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "highway",
"elementType": "geometry",
"stylers": {
"color": "#004981"
}
},
{
"featureType": "highway",
"elementType": "geometry.fill",
"stylers": {
"color": "#005b96",
"lightness": 1
}
},
{
"featureType": "highway",
"elementType": "labels",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "arterial",
"elementType": "geometry",
"stylers": {
"color": "#004981"
}
},
{
"featureType": "arterial",
"elementType": "geometry.fill",
"stylers": {
"color": "#00508b"
}
},
{
"featureType": "poi",
"elementType": "all",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "green",
"elementType": "all",
"stylers": {
"color": "#056197",
"visibility": "off"
}
},
{
"featureType": "subway",
"elementType": "all",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "manmade",
"elementType": "all",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "local",
"elementType": "all",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "arterial",
"elementType": "labels",
"stylers": {
"visibility": "off"
}
},
{
"featureType": "boundary",
"elementType": "geometry.fill",
"stylers": {
"color": "#029fd4"
}
},
{
"featureType": "building",
"elementType": "all",
"stylers": {
"color": "#1a5787"
}
},
{
"featureType": "label",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}
]
}
},
series : [
{
type: 'scatter',
coordinateSystem: 'bmap',
data: convertData(data),
encode: {
value: 2
},
label: {
formatter: '{b}',
position: 'right'
},
itemStyle: {
color: '#ddb926'
},
},
{
type: 'effectScatter',
coordinateSystem: 'bmap',
data: convertData(data.sort(function (a, b) {
return b.value - a.value;
}).slice(0, 6)),
// hoverAnimation: true,
label: {
formatter: '{b}',
position: 'right',
show: true
},
itemStyle: {
color: '#f4e925',
},
zlevel: 1
},
{
type: 'custom',
coordinateSystem: 'bmap',
renderItem: renderItem,
itemStyle: {
opacity: 0.5
},
animation: false,
silent: true,
data: [0],
z: -10
}
]
};
myChart.setOption(option);
},
testMap () {
var myChart = echarts.init(document.getElementById("myChart"));
var option = {
title: {
text: '实时进度追踪'
},
tooltip: {},
legend: {
data:['销量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
}
};
</script>
<style scoped>
.cont {
min-width: 1920px !important;
/* height: auto !important; */
min-height: 1080px !important;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(1, 3, 30, 1) 100%
);
box-sizing: border-box;
padding: 10px 30px 0px;
}
.e_main {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20px;
}
.left,
.right,
.middle {
width: 18%;
height: 960px;
border: 1px solid #0cfafa;
border-radius: 6px;
overflow: hidden;
}
.middle {
width: 62.8%;
}
.nowShow, .attendance {
padding: 10px;
box-sizing: border-box;
width: 100%;
height: 270px;
border: 1px solid lime;
}
.attendance .list {
width: 80%;
height: 36px;
font-size: 20px;
color: white;
}
.situation .list {
width: 80%;
height: 36px;
font-size: 20px;
color: white;
}
.situation .jihua {
padding-left: 120px;
}
.jihua span:nth-child(3) {
padding-left: 70px;
}
.attendance .first{
margin-top: 20px;
}
img {
width: 160%;
}
.monthSpeed, .situation {
box-sizing: border-box;
width: 100%;
height: 320px;
border: 1px solid pink;
}
.dataMap {
width: 100%;
height: 520px;
background-color: #567;
}
.speedTrack {
}
</style>
<template>
<div class="cont">
<Vtitle :title="BoardName"></Vtitle>
<div class="e_main">
<div class="left" v-for="(item, index) in StationBoards" :key="index">
<div class="factory_title">{{ item.Title }}</div>
<div class="f_main" v-if="item.WorkSectionID == 800">
<div class="f_left">
<div
class="f_left_list"
v-for="(key, val) in item.EquipmentStationTeams[0]
.LEquipmentStationDetail"
:key="val"
>
<div class="f_left_list_icon iconfont iconi-Mpingtaixingzhinengjichuang" :style="{ color: 'rgb(' + key.Color + ')' }" >
</div>
<div class="f_left_list_msg">
<div class="number" :style="{ color: 'rgb(' + key.Color + ')' }">{{ key.StationCode }}</div>
<div class="name" :style="{ color: 'rgb(' + key.Color + ')' }">{{ key.MachineName }}</div>
</div>
</div>
</div>
<div class="f_middle"></div>
<div class="f_right">
<div
class="f_left_list"
v-for="(key, val) in item.EquipmentStationTeams[0]
.REquipmentStationDetail"
:key="val"
>
<div class="f_left_list_icon iconfont iconi-Mpingtaixingzhinengjichuang" :style="{ color: 'rgb(' + key.Color + ')' }" >
</div>
<div class="f_left_list_msg">
<div class="number" :style="{ color: 'rgb(' + key.Color + ')' }">{{ key.StationCode }}</div>
<div class="name" :style="{ color: 'rgb(' + key.Color + ')' }">{{ key.MachineName }}</div>
</div>
</div>
</div>
</div>
<div class="f_main zc" v-if="item.WorkSectionID == 801">
<div
class="f_zc_list"
v-for="(key, val) in item.EquipmentStationTeams"
:key="val"
>
<div class="f_list_name">{{ key.FactoryWorkShopTeamName }}</div>
<div class="f_list_main">
<div class="f_list_main_top">
<div
class="f_left_list"
v-for="(m, n) in key.LEquipmentStationDetail"
:key="n"
>
<div class="f_left_list_icon iconfont" >
<div class="iconfont" :style="{ color: 'rgb(' + m.Color + ')' }" :class="[m.MachineName == '手工' ? 'iconjiandao': 'iconwnj5']"></div>
<div class="number" :style="{ color: 'rgb(' + m.Color + ')' }">{{ m.StationCode }}</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="f_list_main_bottom">
<div
class="f_left_list"
v-for="(m, n) in key.REquipmentStationDetail"
:key="n"
>
<div class="f_left_list_icon" >
<div class="iconfont" :style="{ color: 'rgb(' + m.Color + ')' }" :class="[m.MachineName == '手工' ? 'iconjiandao': 'iconwnj5']"></div>
<div class="number" :style="{ color: 'rgb(' + m.Color + ')' }">{{ m.StationCode }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="factory_title">{{ item.Statistics }}</div>
</div>
</div>
</div>
</template>
<script>
var _this;
import qs from "qs";
import Axios from "@/function/axios.js";
import Vtitle from "@/components/view/header.vue";
export default {
components: {
Vtitle
},
data() {
return {
BoardName: "工厂动态效率展示",
StationBoards: [],
time:0
};
},
created() {
// this.getData();
var arr = window.location.href.split("?");
var ss = arr[1].split("&");
console.log(arr);
console.log(ss)
this.time = ss[0].split('=')[1] * 1000
console.log(this.time)
if(this.time == 0){
this.time = 6000000
}
},
beforeRouteLeave(to, form, next) {
window.clearInterval(this.timer);
next()
},
mounted() {
this.getData();
this.timer = window.setInterval(() => {
this.getData();
}, this.time);
},
methods: {
getData() {
var me = this;
var url = "api/FactoryStationBoard/GetBoardData";
var data = {};
Axios({
method: "get",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
console.log(res);
this.BoardName = res.BoardName;
this.StationBoards = res.StationBoards;
console.log(this.StationBoards);
this.changecolor();
});
},
changecolor() {
for (var i = 0; i < this.StationBoards.length; i++) {
for(var m = 0;m<this.StationBoards[i].EquipmentStationTeams.length;m++){
for (
var j = 0;
j <
this.StationBoards[i].EquipmentStationTeams[m].LEquipmentStationDetail
.length;
j++
) {
this.StationBoards[
i
].EquipmentStationTeams[m].LEquipmentStationDetail[j].Color =
this.StationBoards[i].EquipmentStationTeams[m]
.LEquipmentStationDetail[j].Color == ("" || null)
? ""
: this.StationBoards[
i
].EquipmentStationTeams[m].LEquipmentStationDetail[
j
].Color.replace(/:/g, ",");
}
for (
var j = 0;
j <
this.StationBoards[i].EquipmentStationTeams[m].REquipmentStationDetail
.length;
j++
) {
this.StationBoards[
i
].EquipmentStationTeams[m].REquipmentStationDetail[j].Color =
this.StationBoards[i].EquipmentStationTeams[m]
.REquipmentStationDetail[j].Color == ("" || null)
? ""
: this.StationBoards[
i
].EquipmentStationTeams[m].REquipmentStationDetail[
j
].Color.replace(/:/g, ",");
}
}
}
}
}
};
</script>
<style scoped>
.cont {
min-width: 1920px !important;
/* height: auto !important; */
min-height: 1080px !important;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(1, 3, 30, 1) 100%
);
box-sizing: border-box;
padding: 10px 30px 0px;
}
.e_main {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20px;
}
.left,
.right,
.middle {
width: 32.6%;
height: 960px;
border: 1px solid #0cfafa;
border-radius: 6px;
}
.factory_title {
width: 100%;
height: 60px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 30px;
font-weight: 600;
}
.f_main {
width: 100%;
height: 835px;
display: flex;
justify-content: space-between;
margin-top: 10px;
flex-wrap: wrap;
}
.f_left,
.f_right,
.f_middle {
width: 33%;
height: 835px;
}
.f_middle {
box-sizing: border-box;
border-radius: 100px;
border: 2px solid #0cfafa;
}
.f_left,
.f_right {
box-sizing: border-box;
padding: 10px;
}
.f_left_list {
width: 100%;
height: 52px;
border: 1px solid #0cfafa;
border-radius: 12px;
display: flex;
box-sizing: border-box;
padding: 4px;
position: relative;
margin-bottom: 4px;
}
.f_left_list_icon {
width: 30%;
height: 100%;
font-size: 30px;
text-align: center;
line-height: 42px;
}
.zc .f_left_list_icon {
width: 100%;
height: 100%;
font-size: 30px;
}
.f_left_list_icon > img {
width: 100%;
/* height: 100%; */
}
.f_left_list_msg {
width: 66%;
height: 100%;
/* display: flex;
align-items: center;
justify-content: center; */
color: #ffffff;
font-size: 20px;
vertical-align: top;
}
.number,
.name {
height: 22px;
width: 100%;
color: #ffffff;
font-size: 16px;
display: flex;
align-items: center;
justify-content: center;
}
.circle {
position: absolute;
top: 10px;
right: 10px;
width: 10px;
height: 10px;
border-radius: 50%;
background: red;
}
.f_zc_list {
width: 100%;
height: 130px;
/* border: 1px solid red; */
flex-shrink: 0;
display: flex;
box-sizing: border-box;
padding: 0 0px 0 0;
box-sizing: border-box;
border: 1px solid #ffffff;
border-radius: 10px;
}
.f_list_name {
width: 50px;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
color: #ffffff;
}
.f_list_main {
width: calc(100% - 50px);
height: 100%;
}
.f_list_main_top,
.f_list_main_bottom {
width: 100%;
height: 64px;
display: flex;
/* justify-content: space-between; */
align-items: center;
}
.line {
width: 96%;
height: 1px;
margin: 0px auto 0px;
background: #ffffff;
}
.f_list_main_bottom>.f_left_list{
/* margin-right: 10px; */
font-size: 16px !important;
height: 54px;
margin-bottom: 0;
}
.f_list_main_top>.f_left_list{
/* margin-right: 2px; */
height: 54px;
margin-bottom: 0;
}
.f_list_main_top .number{
font-size: 14px !important;
height: 24px;
height: 25px;
width: 100%;
}
.f_list_main_top .name{
font-size: 16px !important;
height: 24px;
}
.f_list_main_bottom .number{
font-size: 14px !important;
height: 24px;
height: 25px;
width: 100%;
}
.f_list_main_bottom .name{
font-size: 16px !important;
height: 24px;
height: 25px;
}
.f_list_main_bottom .iconfont{
font-size: 24px !important;
height: 25px;
text-align: center;
line-height: 25px;
}
.f_list_main_top .iconfont{
font-size: 24px !important;
height: 25px;
text-align: center;
line-height: 25px;
}
.zc .f_left_list_icon{
width: 100%;
}
.zc .f_left_list{
width: 6.66%;
padding: 0;
border-radius: 4px;
border: none;
}
.zc{
box-sizing: border-box;
padding: 5px;
}
</style>
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<div class="main">
<el-main>
<!-- <div>
<label for="">车间选择:</label
><el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div> -->
<div style="width:400px;margin-bottom:20px">
<label for="" style="display:inline-block">车间ID:</label>
<div style="display:inline-block;width:150px">
<el-input
v-model="FactoryWorkShopTeamID"
placeholder="请输入车间ID"
></el-input>
</div>
</div>
<div style="width:400px;margin-bottom:20px">
<label for="" style="display:inline-block">切换时间:</label>
<div style="display:inline-block;width:150px">
<el-input v-model="time" placeholder="请输入车间ID"></el-input>
</div>
</div>
<!-- <div class="asd iconfont iconwnj5"></div> -->
<el-button type="primary" @click="goNext()">针车车间</el-button>
<el-button type="primary" @click="goNextCX()">成型车间</el-button>
<el-button type="primary" @click="goNextXY()">鑫源看板</el-button>
<el-button type="primary" @click="goNextDE()">动态效率</el-button>
<el-button type="primary" @click="goNextSJ()">数据展示</el-button>
</el-main>
</div>
</template>
<script>
export default {
data() {
return {
options: [
{
value: "1",
label: "针车车间"
},
{
value: "2",
label: "成型车间"
}
],
value: "",
FactoryWorkShopTeamID: "",
time: 0
};
},
methods: {
goNext() {
if (!this.FactoryWorkShopTeamID) {
this.$message({
message: "请输入车间ID",
type: "warning"
});
return;
}
this.$router.push({
name: "viewZC",
query: {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
time: this.time
}
});
},
goNextCX() {
if (!this.FactoryWorkShopTeamID) {
this.$message({
message: "请输入车间ID",
type: "warning"
});
return;
}
// if (this.time <= 0) {
// this.$message({
// message: "请输入合适的时间",
// type: "warning"
// });
// return;
// }
this.$router.push({
name: "viewCX",
query: {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
time: this.time
}
});
},
goNextXY() {
if (!this.FactoryWorkShopTeamID) {
this.$message({
message: "请输入车间ID",
type: "warning"
});
return;
}
// if (this.time <= 0) {
// this.$message({
// message: "请输入合适的时间",
// type: "warning"
// });
// return;
// }
this.$router.push({
name: "viewXY",
query: {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
time: this.time
}
});
},
goNextDE(){
this.$router.push({
name: "Efficiency",
query: {
time: this.time,
}
});
},
goNextSJ(){
if (!this.FactoryWorkShopTeamID) {
this.$message({
message: "请输入车间ID",
type: "warning"
});
return
}
this.$router.push({
name: "dataShow",
query: {
time: this.time,
}
})
}
}
};
</script>
<style>
.main {
width: 100%;
height: 100%;
}
.asd{
font-size: 15px;
color: red;
}
</style>
<template>
<div class="main_view">
<!-- <el-main> -->
<Vtitle :title="item.FactoryWorkShopTeamName"></Vtitle>
<div class="contain">
<div class="main_top">
<div class="basic_main">
<img src="@/assets/image/chejian.png" alt="" />
<div class="top_title">
<div class="list">在岗人数</div>
<div class="list">最高工资</div>
<div class="list">最低工资</div>
<div class="list">平均工资</div>
<div class="list">车间排名</div>
</div>
<div class="top_msg ">
<div class="list text_style">{{ item.OnJobCount }}</div>
<div class="list text_style">{{ item.MaxWage }}</div>
<div class="list text_style">{{ item.MinWage }}</div>
<div class="list text_style">{{ item.AverageWage }}</div>
<div class="list text_style">{{ item.ranking }}</div>
</div>
<div class="top_title" style="margin-top:36px;">
<div class="list">本月计划</div>
<div class="list">本月产量</div>
<div class="list">在产数量</div>
<div class="list">待产数量</div>
<div class="list">完成比率</div>
</div>
<div class="top_msg ">
<div class="list text_style">{{ item.MonthPlan }}</div>
<div class="list text_style">{{ item.MonthYield }}</div>
<div class="list text_style">{{ item.MonthInProduction }}</div>
<div class="list text_style">{{ item.MonthWaiting }}</div>
<div class="list text_style">{{ item.MonthPercent }}</div>
</div>
</div>
<div class="today_production">
<div class="today_title">今日产量</div>
<div class="today_msg">{{ DayYield }}</div>
</div>
<div class="star_month">
<img src="@/assets/image/benyuezhixing.png" alt="" />
<div class="personal_msg">
<div class="personal_photo">
<img :src="item1.Photo" alt="" />
</div>
<div class="personal_main">
<div class="personal_main_top">
<div class="list1">
姓名:<span>{{ item1.UserName }}</span>
</div>
<div class="list1">
工号:<span class="num">{{ item1.UserCode }}</span>
</div>
</div>
<div class="personal_main_bottom">
<span class="title_label">工序:</span>
<div class="charts">
<div
id="myChart"
:style="{ width: '260px', height: '160px' }"
ref="chart"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="workshop_msg">
<div class="ranking">
<img src="@/assets/image/paihangbang.png" alt="" />
<div class="ranking_title">
<div class="list2 ranking_title_text">排名</div>
<div class="list2 ranking_title_text">姓名</div>
<div class="list2 ranking_title_text">薪酬</div>
</div>
<div class="salary">
<div class="list_cell" v-for="(item, index) in list" :key="index">
<div class="list2 salary_text num">
<div
:class="[
item.Ranking == 1 ? 'circle1' : '',
item.Ranking == 2 ? 'circle2' : '',
item.Ranking == 3 ? 'circle3' : ''
]"
>
{{ item.Ranking }}
</div>
</div>
<div class="list2 salary_text">{{ item.UserName }}</div>
<div class="list2 salary_text num">{{ item.SubMoney }}</div>
</div>
</div>
</div>
<div class="salary_all">
<img src="@/assets/image/shishixinzi.png" alt="" />
<div class="salary_title">
<div class="list3 ranking_title_text">时间</div>
<div class="list3 ranking_title_text">姓名</div>
<div class="list4 ranking_title_text">工序</div>
<div class="list3 ranking_title_text">单价</div>
<div class="list3 ranking_title_text">薪酬</div>
</div>
<div class="salary_list">
<div class="list_cell" v-for="(item, index) in list1" :key="index">
<div class="list3 salary_text">
{{ item.CreateDate}}
</div>
<div class="list3 salary_text">{{ item.UserName }}</div>
<div class="list4 salary_text">{{ item.IEName }}</div>
<div class="list3 salary_text num">{{ item.Price }}</div>
<div class="list3 salary_text num">{{ item.SubMoney }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
var _this;
import qs from "qs";
var echarts = require("echarts");
import Vtitle from "@/components/view/header.vue";
import Axios from "@/function/axios.js";
export default {
// inject: ["reload"],
// props: ["boardstore", "chart", "Api"],
components: {
Vtitle
},
data() {
return {
list: [],
list1: [],
item: {},
item1: {},
item2: {},
DayYield: 0,
row: "",
FactoryWorkShopTeamID: 73,
PageIndex: 1,
PageSize: 10,
MonthStarIEPercent: [],
timer: 0,
time:0
};
},
beforeRouteLeave(to, form, next) {
window.clearInterval(me.timer);
next()
},
created() {
var arr = window.location.href.split("?");
var ss = arr[1].split("&");
console.log(arr);
console.log(ss)
this.FactoryWorkShopTeamID = ss[0].split('=')[1];
this.time = ss[1].split('=')[1] * 1000
console.log(ss[1]);
if(this.time == 0){
this.time = 5000
}
},
mounted() {
this.loadData();
this.timer = window.setInterval(() => {
this.loadData();
}, this.time);
},
methods: {
GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null) context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined"
? ""
: context;
},
loadData() {
var me = this;
var url = "api/FactoryBoard/PostZC";
var data = {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
PageSize: this.PageSize,
PageIndex: this.PageIndex++
};
Axios({
method: "post",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
// console.log(res)
// if (res.success) {
console.log(res);
this.item = res.ZCFactoryWageInfo;
this.DayYield = res.DayYield;
if (res.MonthStar) {
this.item1 = res.MonthStar;
if (this.item1) {
this.item1.Photo = null;
}
}
// this.item1 = res.MonthStar;
this.list = res.UserWageRanking;
this.list1 = res.ConstantlyWage;
this.MonthStarIEPercent = res.MonthStarIEPercent;
let legendArr = [];
let dataArr = [];
res.MonthStarIEPercent.forEach((item,index) => {
let obj = {
name: item.IEName,
value: item.IENameSubMoney
};
if(index<6){
legendArr.push(item.IEName);
}
dataArr.push(obj);
});
me.drawPie(legendArr, dataArr);
if (res.UserWageRanking.length < 10 || res.ConstantlyWage.length == 0) {
if (res.UserWageRanking.length == 0) {
console.log(123654);
window.clearInterval(me.timer);
me.PageIndex = 1;
// me.timer = window.setInterval(() => {
me.loadData();
me.timer = window.setInterval(() => {
me.loadData();
}, this.time);
// }, 5000);
} else {
console.log(123654);
window.clearInterval(me.timer);
me.PageIndex = 1;
me.timer = window.setInterval(() => {
me.loadData();
}, this.time);
}
}
// } else {
// console.log(res.message)
// }
});
},
drawPie(legendArr, dataArr) {
var bar_dv = this.$refs.chart;
// console.log(bar_dv);
if (bar_dv) {
var myChart = echarts.init(document.getElementById("myChart"));
// console.log(myChart);
var option = {
backgroundColor: "transparent",
// tooltip: {
// trigger: "item",
// formatter: "{a} <br/>{b} : {c} ({d}%)"
// },
legend: {
orient: "vertical",
left: "right",
top: "middle",
data: legendArr,
align: "left",
itemWidth: 10,
itemHeight: 10,
textStyle: {
fontSize: 16,
color: "#fff"
}
},
series: [
{
name: "访问来源",
type: "pie",
radius: "55%",
center: ["20%", "60%"],
data: dataArr,
label: {
show: false
},
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)"
}
}
}
],
color:['#05F3F3','#00CEFF',"#5045f6","#4777f5","#44aff0","#45dbf7"]
};
myChart.setOption(option);
}
}
}
};
</script>
<style scoped>
.main_view {
/* width: 100%; */
height: 100%;
/* height: auto; */
/* min-height: 1080px !important; */
min-width: 1920px !important;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(1, 3, 30, 1) 100%
);
/* background: url(../../../assets/image/back-img.png) top center no-repeat; */
/* background-size: 100% 100%; */
box-sizing: border-box;
padding: 10px 71px 0px 30px;
/* overflow-y: scroll !important; */
}
.contain {
width: 100%;
height: auto;
/* position: relative; */
}
.num {
font-style: italic;
}
.main_top {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.title_style {
font-size: 30px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(5, 243, 243, 1);
line-height: 30px;
}
.basic_main > img {
width: 652px;
margin-bottom: 50px;
}
.basic_msg {
width: 180px;
height: 30px;
position: absolute;
top: 15px;
left: 96px;
}
.star_month {
width: 590px;
}
.star_month > img {
width: 590px;
}
.basic_main {
width: 652px;
/* height: 220px; */
/* position: absolute; */
/* top: 80px;/ */
/* left: 50px; */
}
.top_title,
.top_msg {
width: 100%;
display: flex;
justify-content: space-between;
}
.list {
width: 25%;
text-align: center;
font-size: 26px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 31px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: normal;
}
.text_style {
font-size: 32px;
font-family: ArsonPro-BlackItalic, ArsonPro;
font-weight: normal;
color: rgba(5, 243, 243, 1) !important;
line-height: 31px;
margin-top: 30px;
font-style: italic;
}
#myChart,
.charts {
width: 260px !important;
height: 160px !important;
}
.today_production {
width: 265px;
height: 268px;
/* margin: 0px auto 0; */
box-sizing: border-box;
/* padding: 70px 0; */
display: flex;
align-items: stretch;
flex-direction: column;
/* top: 55px; */
background: url(../../../assets/image/yuanhuan.png) top center no-repeat;
background-size: 100%;
}
.today_title {
font-size: 32px;
color: #ffffff;
text-align: center;
width: 100%;
height: auto;
margin-top: 71px;
}
.today_msg {
font-size: 60px;
font-style: italic;
color: #ffffff;
font-weight: 600;
text-align: center;
margin-top: 15px;
height: auto;
}
.personal_msg {
width: 596px;
height: 250px;
background: url(../../../assets/image/fangkuang.png) top center no-repeat;
background-size: 100%;
margin-top: 35px;
box-sizing: border-box;
padding: 30px 18px 0px 33px;
display: flex;
justify-content: space-between;
/* align-items: center; */
}
.personal_photo {
width: 125px;
height: 165px;
border: 1px solid #05f3f3;
}
.personal_photo > img {
width: 123px;
height: 163px;
}
.personal_main {
width: 384px;
height: 170px;
/* background: red; */
}
.personal_main_top {
width: 100%;
height: auto;
display: flex;
justify-content: space-between;
}
.list1 {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 32px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: normal;
width: 50%;
text-align: left;
height: 32px;
}
.list1 > span {
color: #ffffff;
font-size: 24px;
height: auto;
}
.personal_main_bottom {
width: 100%;
height: 160px;
display: flex;
justify-content: space-between;
align-items: center;
/* margin-top: 50px; */
}
.title_label {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 32px;
}
.workshop_msg {
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 25px;
}
.ranking {
width: 638px;
height: auto;
}
.ranking > img {
width: 638px;
}
.ranking_title {
width: 100%;
height: 37px;
background: linear-gradient(
180deg,
rgba(10, 249, 249, 0.44) 0%,
rgba(4, 240, 240, 0.04) 100%
);
border-radius: 2px;
/* opacity:0.42; */
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.list2 {
width: 33%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
height: auto;
}
.ranking_title_text {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 45px;
}
.salary {
width: 638px;
margin-top: 32px;
}
.list_cell {
width: 100%;
height: 39px;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.salary_text {
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 32px;
}
.circle1 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: rgba(254, 68, 255, 1);
}
.circle2 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: #ffcc00;
}
.circle3 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: #00c4ba;
}
.salary_all {
width: 1065px;
}
.salary_all > img {
width: 1065px;
}
.salary_title {
margin-top: 20px;
width: 1065px;
height: 37px;
background: linear-gradient(
180deg,
rgba(10, 249, 249, 0.42) 0%,
rgba(4, 240, 240, 0.04) 100%
);
border-radius: 2px;
display: flex;
justify-content: space-between;
align-items: center;
}
.list3 {
width: 15%;
text-align: center;
height: auto;
}
.list4 {
width: 40%;
text-align: center;
height: auto;
}
.salary_list {
width: 1065px;
margin-top: 32px;
height: auto;
}
</style>
<template>
<div class="main_view">
<!-- <el-main> -->
<Vtitle :title="item.FactoryWorkShopTeamName"></Vtitle>
<div class="contain">
<div class="main_top">
<div class="basic_main">
<img src="@/assets/image/chejian.png" alt="" />
<div class="top_title">
<div class="list">在岗人数</div>
<div class="list">最高工资</div>
<div class="list">最低工资</div>
<div class="list">平均工资</div>
<div class="list">车间排名</div>
</div>
<div class="top_msg ">
<div class="list text_style">{{ item.OnJobCount }}</div>
<div class="list text_style">{{ item.MaxWage }}</div>
<div class="list text_style">{{ item.MinWage }}</div>
<div class="list text_style">{{ item.AverageWage }}</div>
<div class="list text_style">{{ item.ranking }}</div>
</div>
<div class="top_title" style="margin-top:36px;">
<div class="list">当日计划</div>
<div class="list">昨日遗留</div>
<div class="list">实报产量</div>
<div class="list">不合格数</div>
<div class="list">合格比率</div>
</div>
<div class="top_msg ">
<div class="list text_style">{{ item.DayPlan }}</div>
<div class="list text_style">{{ item.YesterDayMargin }}</div>
<div class="list text_style">{{ item.DayPercent }}</div>
<div class="list text_style">{{ item.UnInspectionQty }}</div>
<div class="list text_style">{{ item.InspectionPercent }}</div>
</div>
</div>
<div class="today_production">
<div class="today_title">扫描产量</div>
<div class="today_msg">{{ DayYield }}</div>
</div>
<div class="star_month">
<img src="@/assets/image/benyuezhixing.png" alt="" />
<div class="personal_msg">
<div class="personal_photo">
<img v-if="item1.Photo" :src="item1.Photo" alt="" />
</div>
<div class="personal_main">
<div class="personal_main_top">
<div class="list1">
姓名:<span>{{ item1.UserName }}</span>
</div>
<div class="list1">
工号:<span class="num">{{ item1.UserCode }}</span>
</div>
</div>
<div class="personal_main_bottom">
<span class="title_label">工序:</span>
<div class="charts">
<div
id="myChart"
:style="{ width: '260px', height: '160px' }"
ref="chart"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="workshop_msg">
<div class="ranking">
<img src="@/assets/image/paihangbang.png" alt="" />
<div class="ranking_title">
<div class="list2 ranking_title_text">排名</div>
<div class="list2 ranking_title_text">姓名</div>
<div class="list2 ranking_title_text">薪酬</div>
</div>
<div class="salary">
<div class="list_cell" v-for="(item, index) in list" :key="index">
<div class="list2 salary_text num">
<div
:class="[
item.Ranking == 1 ? 'circle1' : '',
item.Ranking == 2 ? 'circle2' : '',
item.Ranking == 3 ? 'circle3' : ''
]"
>
{{ item.Ranking }}
</div>
</div>
<div class="list2 salary_text">{{ item.UserName }}</div>
<div class="list2 salary_text num">{{ item.SubMoney }}</div>
</div>
</div>
</div>
<div class="salary_all">
<img src="@/assets/image/pinjianxiangqing.png" alt="" />
<div class="salary_title">
<div class="list3 ranking_title_text">时间</div>
<div class="list5 ranking_title_text">货号</div>
<div class="list4 ranking_title_text">品检项目</div>
<div class="list3 ranking_title_text">数量</div>
<div class="list3 ranking_title_text">类型</div>
</div>
<div class="salary_list">
<div class="list_cell" v-for="(item, index) in list1" :key="index">
<div class="list3 salary_text">
{{ item.CreateDate }}
</div>
<div class="list5 salary_text">{{ item.StyleCode }}</div>
<div class="list4 salary_text">{{ item.QIItemName }}</div>
<div class="list3 salary_text num">{{ item.Qty }}</div>
<div class="list3 salary_text num">{{ item.ProcessingType }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
var _this;
import qs from "qs";
var echarts = require("echarts");
import Vtitle from "@/components/view/header.vue";
import Axios from "@/function/axios.js";
export default {
// inject: ["reload"],
// props: ["boardstore", "chart", "Api"],
components: {
Vtitle
},
filters: {},
data() {
return {
list: [],
list1: [],
item: {},
item1: {
Photo: ""
},
item2: {},
DayYield: 0,
row: "",
FactoryWorkShopTeamID: 73,
PageIndex: 1,
PageSize: 10,
PageIndexLeft: 1,
PageIndexInspection: 1,
MonthStarIEPercent: [],
timer: 0,
timer1: 0,
time:0
};
},
beforeRouteLeave(to, form, next) {
window.clearInterval(me.timer1);
window.clearInterval(me.timer);
next();
},
created() {
var arr = window.location.href.split("?");
var ss = arr[1].split("&");
// console.log(arr);
// console.log(ss)
this.FactoryWorkShopTeamID = ss[0].split('=')[1];
this.time = ss[1].split('=')[1] * 1000
// console.log(ss[1]);
if(this.time == 0){
this.time = 5000
}
},
mounted() {
this.loadData();
this.loadDataLeft();
this.timer = window.setInterval(() => {
this.loadData();
}, this.time);
this.timer1 = window.setInterval(() => {
this.loadDataLeft();
}, this.time);
},
methods: {
GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null) context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined"
? ""
: context;
},
formatDate(date) {
let a = new Date(date);
return a.getHours() + ":" + a.getMinutes();
},
loadDataLeft() {
var me = this;
var url = "api/FactoryBoard/PostCXInspection";
var data = {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
PageSize: this.PageSize,
PageIndex: this.PageIndexLeft++
};
Axios({
method: "post",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
// console.log(res);
this.list1 = res;
// this.list1.forEach(item => {
// item.CreateDate = this.formatDate(item.CreateDate);
// });
if (res.length < 10) {
if (res.length == 0) {
window.clearInterval(me.timer1);
me.PageIndexLeft = 1;
me.loadDataLeft();
me.timer1 = window.setInterval(() => {
me.loadDataLeft();
}, this.time);
} else {
setTimeout(() => {
window.clearInterval(me.timer1);
me.PageIndexLeft = 1;
me.timer1 = window.setInterval(() => {
me.loadDataLeft();
}, this.time);
}, this.time);
// me.PageIndexLeft = 1;
// me.timer1 = window.setInterval(() => {
// me.loadDataLeft();
// }, 5000);
}
}
});
},
loadData() {
var me = this;
var url = "api/FactoryBoard/PostCX";
var data = {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
PageSize: this.PageSize,
PageIndex: this.PageIndex++
};
Axios({
method: "post",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
// console.log(res)
// if (res.success) {
console.log(res);
this.item = res.CXFactoryWageInfo;
this.DayYield = res.DayYield;
if (res.MonthStar) {
this.item1 = res.MonthStar;
if (this.item1) {
this.item1.Photo = null;
}
}
this.list = res.UserWageRanking;
// this.list1 = res.ConstantlyInspection;
this.MonthStarIEPercent = res.MonthStarIEPercent;
let legendArr = [];
let dataArr = [];
res.MonthStarIEPercent.forEach((item, index) => {
let obj = {
name: item.IEName,
value: item.IENameSubMoney
};
legendArr.push(item.IEName);
if (index < 6) {
legendArr.push(item.IEName);
dataArr.push(obj);
}
});
me.drawPie(legendArr, dataArr);
if (res.UserWageRanking.length < 10) {
if (res.UserWageRanking.length == 0) {
// console.log(123654);
window.clearInterval(me.timer);
me.PageIndex = 1;
me.loadData();
me.timer = window.setInterval(() => {
me.loadData();
}, this.time);
} else {
// console.log(123654);
setTimeout(() => {
window.clearInterval(me.timer);
}, this.time);
me.PageIndex = 1;
me.timer = window.setInterval(() => {
me.loadData();
}, this.time);
}
}
});
},
drawPie(legendArr, dataArr) {
var bar_dv = this.$refs.chart;
// console.log(bar_dv);
if (bar_dv) {
var myChart = echarts.init(document.getElementById("myChart"));
// console.log(myChart);
var option = {
backgroundColor: "transparent",
// tooltip: {
// trigger: "item",
// formatter: "{a} <br/>{b} : {c} ({d}%)"
// },
legend: {
orient: "vertical",
left: "right",
top: "middle",
data: legendArr,
align: "left",
itemWidth: 10,
itemHeight: 10,
textStyle: {
fontSize: 16,
color: "#fff"
}
},
series: [
{
name: "访问来源",
type: "pie",
radius: "55%",
center: ["20%", "60%"],
data: dataArr,
label: {
show: false
},
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)"
}
}
}
],
color: [
"#05F3F3",
"#00CEFF",
"#5045f6",
"#4777f5",
"#44aff0",
"#45dbf7"
]
};
myChart.setOption(option);
}
}
}
};
</script>
<style scoped>
.main_view {
/* width: 100%; */
height: 100%;
/* height: auto; */
/* min-height: 1080px !important; */
min-width: 1920px !important;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(1, 3, 30, 1) 100%
);
/* background: url(../../../assets/image/back-img.png) top center no-repeat; */
/* background-size: 100% 100%; */
box-sizing: border-box;
padding: 10px 71px 0px 30px;
/* overflow-y: scroll !important; */
}
.contain {
width: 100%;
height: auto;
/* position: relative; */
}
.num {
font-style: italic;
}
.main_top {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.title_style {
font-size: 30px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(5, 243, 243, 1);
line-height: 30px;
}
.basic_main > img {
width: 652px;
margin-bottom: 50px;
}
.basic_msg {
width: 180px;
height: 30px;
position: absolute;
top: 15px;
left: 96px;
}
.star_month {
width: 590px;
}
.star_month > img {
width: 590px;
}
.basic_main {
width: 652px;
/* height: 220px; */
/* position: absolute; */
/* top: 80px;/ */
/* left: 50px; */
}
.top_title,
.top_msg {
width: 100%;
display: flex;
justify-content: space-between;
}
.list {
width: 25%;
text-align: center;
font-size: 26px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 31px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: normal;
}
.text_style {
font-size: 32px;
font-family: ArsonPro-BlackItalic, ArsonPro;
font-weight: normal;
color: rgba(5, 243, 243, 1) !important;
line-height: 31px;
margin-top: 30px;
font-style: italic;
}
#myChart,
.charts {
width: 260px !important;
height: 160px !important;
}
.today_production {
width: 265px;
height: 268px;
/* margin: 0px auto 0; */
box-sizing: border-box;
/* padding: 70px 0; */
display: flex;
align-items: stretch;
flex-direction: column;
/* top: 55px; */
background: url(../../../assets/image/yuanhuan.png) top center no-repeat;
background-size: 100%;
}
.today_title {
font-size: 32px;
color: #ffffff;
text-align: center;
width: 100%;
height: auto;
margin-top: 71px;
}
.today_msg {
font-size: 60px;
font-style: italic;
color: #ffffff;
font-weight: 600;
text-align: center;
margin-top: 15px;
height: auto;
}
.personal_msg {
width: 596px;
height: 250px;
background: url(../../../assets/image/fangkuang.png) top center no-repeat;
background-size: 100%;
margin-top: 35px;
box-sizing: border-box;
padding: 30px 18px 0px 33px;
display: flex;
justify-content: space-between;
/* align-items: center; */
}
.personal_photo {
width: 125px;
height: 165px;
border: 1px solid #05f3f3;
}
.personal_photo > img {
width: 123px;
height: 163px;
}
.personal_main {
width: 384px;
height: 170px;
/* background: red; */
}
.personal_main_top {
width: 100%;
height: auto;
display: flex;
justify-content: space-between;
}
.list1 {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 32px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: normal;
width: 50%;
text-align: left;
height: 32px;
}
.list1 > span {
color: #ffffff;
font-size: 24px;
height: auto;
}
.personal_main_bottom {
width: 100%;
height: 160px;
display: flex;
justify-content: space-between;
align-items: center;
/* margin-top: 50px; */
}
.title_label {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 32px;
}
.workshop_msg {
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 25px;
}
.ranking {
width: 638px;
height: auto;
}
.ranking > img {
width: 638px;
}
.ranking_title {
width: 100%;
height: 37px;
background: linear-gradient(
180deg,
rgba(10, 249, 249, 0.44) 0%,
rgba(4, 240, 240, 0.04) 100%
);
border-radius: 2px;
/* opacity:0.42; */
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.list2 {
width: 33%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
height: auto;
}
.ranking_title_text {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 45px;
}
.salary {
width: 638px;
margin-top: 32px;
}
.list_cell {
width: 100%;
height: 39px;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.salary_text {
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 32px;
white-space: nowrap;
text-overflow: ellipsis;
}
.circle1 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: rgba(254, 68, 255, 1);
}
.circle2 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: #ffcc00;
}
.circle3 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: #00c4ba;
}
.salary_all {
width: 1065px;
}
.salary_all > img {
width: 1065px;
}
.salary_title {
margin-top: 20px;
width: 1065px;
height: 37px;
background: linear-gradient(
180deg,
rgba(10, 249, 249, 0.42) 0%,
rgba(4, 240, 240, 0.04) 100%
);
border-radius: 2px;
display: flex;
justify-content: space-between;
align-items: center;
}
.list3 {
width: 15%;
text-align: center;
height: auto;
}
.list4 {
width: 38%;
text-align: center;
height: auto;
}
.list5 {
width: 17%;
text-align: center;
height: auto;
}
.salary_list {
width: 1065px;
margin-top: 32px;
height: auto;
}
</style>
<template>
<div class="main_view">
<!-- <el-main> -->
<Vtitle :title="FactoryWorkShopTeamName"></Vtitle>
<div class="contain">
<div class="main_top">
<div class="basic_main">
<img src="@/assets/image/llcl.png" alt="" />
<div class="ranking_title">
<div class="list2 ranking_title_text">时间</div>
<div class="list6 ranking_title_text">型体</div>
<div class="list2 ranking_title_text">计划产量</div>
<div class="list7 ranking_title_text">实际</div>
<div class="list2 ranking_title_text">百分比</div>
</div>
<div class="salary1">
<div class="list_cell" v-for="(item,index) in YieldInfo" :key="index" v-if="index<4">
<div class="list2 salary_text">{{item.PlanDate}}</div>
<div class="list6 salary_text">{{item.StyleCode}}</div>
<div class="list2 salary_text num text_blod">{{item.PlanQty}}</div>
<div class="list7 salary_text num text_blod text_style">{{item.ReportQty}}</div>
<div class="list2 salary_text num text_blod">{{item.PlanPercent}}</div>
</div>
</div>
</div>
<div class="today_production">
<div class="today_title">成品数量</div>
<div class="today_msg">{{ DayYield }}</div>
</div>
<div class="star_month">
<img src="@/assets/image/clqs.png" alt="" />
<div class="personal_msg">
<div
id="myChart"
:style="{ width: '580px', height: '300px' }"
ref="chart"
></div>
</div>
</div>
</div>
<div class="workshop_msg">
<div class="ranking">
<img src="@/assets/image/jjgz.png" alt="" />
<div class="ranking_title">
<!-- <div class="list2 ranking_title_text">日期</div> -->
<div class="list2 ranking_title_text">排名</div>
<div class="list2 ranking_title_text">姓名</div>
<div class="list2 ranking_title_text">薪酬</div>
</div>
<div class="salary">
<div class="list_cell" v-for="(item, index) in list" :key="index">
<!-- <div class="list2 salary_text">{{ item.UserName }}</div> -->
<div class="list2 salary_text num">
<div
:class="[
item.Ranking == 1 ? 'circle1' : '',
item.Ranking == 2 ? 'circle2' : '',
item.Ranking == 3 ? 'circle3' : ''
]"
>
{{ item.Ranking }}
</div>
</div>
<div class="list2 salary_text">{{ item.UserName }}</div>
<div class="list2 salary_text num">{{ item.SubMoney }}</div>
</div>
</div>
</div>
<div class="salary_all">
<img src="@/assets/image/ssxz.png" alt="" />
<div class="salary_title">
<div class="list3 ranking_title_text">时间</div>
<div class="list3 ranking_title_text">姓名</div>
<div class="list4 ranking_title_text">工序</div>
<div class="list3 ranking_title_text">单价</div>
<div class="list3 ranking_title_text">薪酬</div>
</div>
<div class="salary_list">
<div class="list_cell" v-for="(item, index) in list1" :key="index">
<div class="list3 salary_text">
{{ item.CreateDate}}
</div>
<div class="list3 salary_text">{{ item.UserName }}</div>
<div class="list4 salary_text">{{ item.IEName }}</div>
<div class="list3 salary_text num">{{ item.Price }}</div>
<div class="list3 salary_text num">{{ item.SubMoney }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
var _this;
import qs from "qs";
var echarts = require("echarts");
import Vtitle from "@/components/view/header.vue";
import Axios from "@/function/axios.js";
export default {
// inject: ["reload"],
// props: ["boardstore", "chart", "Api"],
components: {
Vtitle
},
filters: {},
data() {
return {
list: [],
list1: [],
YieldInfo:[],
item: {},
item1: {
Photo: ""
},
item2: {},
DayYield: 0,
row: "",
FactoryWorkShopTeamID: 73,
PageIndex: 1,
PageSize: 10,
PageIndexLeft: 1,
PageIndexInspection: 1,
MonthStarIEPercent: [],
timer: 0,
timer1: 0,
FactoryWorkShopTeamName:'',
time:0
};
},
beforeRouteLeave(to, form, next) {
window.clearInterval(me.timer1);
window.clearInterval(me.timer);
next();
},
created() {
var arr = window.location.href.split("?");
var ss = arr[1].split("&");
console.log(arr);
console.log(ss)
this.FactoryWorkShopTeamID = ss[0].split('=')[1];
this.time = ss[1].split('=')[1] * 1000
if(this.time == 0){
this.time = 5000
}
console.log(ss[1]);
},
mounted() {
this.drawPie();
this.loadData();
this.loadDataLeft();
this.timer = window.setInterval(() => {
this.loadData();
}, this.time);
this.timer1 = window.setInterval(() => {
this.loadDataLeft();
}, this.time);
},
methods: {
GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null) context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined"
? ""
: context;
},
formatDate(date) {
let a = new Date(date);
return a.getHours() + ":" + a.getMinutes();
},
loadDataLeft() {
var me = this;
var url = "api/FactoryBoardXY/PostCXInspection";
var data = {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
PageSize: this.PageSize,
PageIndex: this.PageIndexLeft++
};
Axios({
method: "post",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
console.log(res);
this.list1 = res;
// this.list1.forEach(item => {
// item.CreateDate = this.formatDate(item.CreateDate);
// });
if (res.length < 10) {
if (res.length == 0) {
window.clearInterval(me.timer1);
me.PageIndexLeft = 1;
me.loadDataLeft();
me.timer1 = window.setInterval(() => {
me.loadDataLeft();
}, this.time);
} else {
setTimeout(() => {
window.clearInterval(me.timer1);
me.PageIndexLeft = 1;
me.timer1 = window.setInterval(() => {
me.loadDataLeft();
}, this.time);
}, this.time);
// me.PageIndexLeft = 1;
// me.timer1 = window.setInterval(() => {
// me.loadDataLeft();
// }, 5000);
}
}
});
},
loadData() {
var me = this;
var url = "api/FactoryBoardXY/PostCX";
var data = {
FactoryWorkShopTeamID: this.FactoryWorkShopTeamID,
PageSize: this.PageSize,
PageIndex: this.PageIndex++
};
Axios({
method: "post",
url: url,
transformRequest: [
function(data) {
return qs.stringify(data);
}
],
data: data
}).then(res => {
// console.log(res)
// if (res.success) {
console.log(res);
this.item = res.CXFactoryWageInfo;
this.DayYield = res.DayYield;
this.YieldInfo = res.YieldInfo
this.FactoryWorkShopTeamName = res.Title
// if (res.MonthStar) {
// this.item1 = res.MonthStar;
// if (this.item1) {
// this.item1.Photo = null;
// }
// }
this.list = res.UserWageRanking;
// this.list1 = res.ConstantlyInspection;
this.MonthStarIEPercent = res.MonthStarIEPercent;
let legendArr = [];
let dataArr = [];
res.LineChart.forEach((item, index) => {
legendArr.push(item.PlanDate);
dataArr.push(item.ReportQty);
});
me.drawPie(legendArr, dataArr);
if (res.UserWageRanking.length < 10) {
if (res.UserWageRanking.length == 0) {
console.log(123654);
window.clearInterval(me.timer);
me.PageIndex = 1;
me.loadData();
me.timer = window.setInterval(() => {
me.loadData();
}, this.time);
} else {
console.log(123654);
setTimeout(() => {
window.clearInterval(me.timer);
}, this.time);
me.PageIndex = 1;
me.timer = window.setInterval(() => {
me.loadData();
}, this.time);
}
}
});
},
drawPie(legendArr, dataArr) {
var bar_dv = this.$refs.chart;
// console.log(bar_dv);
if (bar_dv) {
var myChart = echarts.init(document.getElementById("myChart"));
// console.log(myChart);
var option = {
// backgroundColor: '#080b30',
legend: {
color: ["#17B4FA", "#47D8BE", "#F9A589"],
show:false,
// data: ["日用气量分析"],
// left: "center",
// top: "8%",
// textStyle: {
// color: "#ffffff"
// }
},
tooltip: {
trigger: "axis",
axisPointer: {
lineStyle: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "rgba(0, 255, 233,0)"
},
{
offset: 0.5,
color: "rgba(255, 255, 255,1)"
},
{
offset: 1,
color: "rgba(0, 255, 233,0)"
}
],
global: false
}
}
}
},
grid: {
top: "15%",
// left: "5%",
// right: "5%",
bottom: "15%"
// containLabel: true
},
xAxis: [
{
type: "category",
name:'时间',
nameTextStyle:{
fontSize:20
},
axisLine: {
show: true,
lineStyle: {
color: "#05F3F3"
}
},
splitArea: {
// show: true,
color: "#f00",
lineStyle: {
color: "#f00"
}
},
axisLabel: {
color: "#fff",
fontSize:20
},
splitLine: {
show: false
},
boundaryGap: false,
data: legendArr
}
],
yAxis: [
{
type: "value",
min: 0,
name:'产量',
nameTextStyle:{
fontSize:20
},
// max: 140,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "rgba(255,255,255,.8)",
type:'dashed'
}
},
axisLine: {
show: true,
lineStyle: {
color: "#05F3F3"
}
},
axisLabel: {
show: true,
margin: 20,
fontSize:20,
textStyle: {
color: "#d1e6eb"
}
},
axisTick: {
show: true
}
}
],
series: [
{
name: "日用气量分析",
type: "line",
// smooth: true, //是否平滑
showAllSymbol: false,
// symbol: 'image://./static/images/guang-circle.png',
symbol: "circle",
symbolSize: 5,
lineStyle: {
normal: {
color: "#05F3F3",
shadowColor: "rgba(0, 0, 0, .3)",
shadowBlur: 0,
shadowOffsetY: 0,
shadowOffsetX: 0
}
},
label: {
show: true,
position: "top",
fontSize:16,
textStyle: {
color: "#0CFAFA"
}
},
itemStyle: {
color: "#ffffff",
borderColor: "#05F3F3",
borderWidth: 2,
// shadowColor: "rgba(0, 0, 0, .3)",
shadowBlur: 0,
shadowOffsetY: 2,
shadowOffsetX: 2
},
tooltip: {
show: true
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#0CFAFA"
},
{
offset: 1,
color: "#000000"
}
],
false
),
// shadowColor: "rgba(108,80,243, 0.9)",
shadowBlur: 20
}
},
data: dataArr
}
]
};
myChart.setOption(option);
}
}
}
};
</script>
<style scoped>
.main_view {
/* width: 100%; */
height: 100%;
/* height: auto; */
/* min-height: 1080px !important; */
min-width: 1920px !important;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(1, 3, 30, 1) 100%
);
/* background: url(../../../assets/image/back-img.png) top center no-repeat; */
/* background-size: 100% 100%; */
box-sizing: border-box;
padding: 10px 71px 0px 30px;
/* overflow-y: scroll !important; */
}
.contain {
width: 100%;
height: auto;
/* position: relative; */
}
.num {
font-style: italic;
}
.text_blod{
font-weight: bolder !important;
}
.main_top {
width: 100%;
height: 325px;
display: flex;
justify-content: space-between;
align-items: center;
}
.title_style {
font-size: 30px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: rgba(5, 243, 243, 1);
line-height: 30px;
}
.basic_main > img {
width: 700px;
/* margin-bottom: 50px; */
}
.basic_msg {
width: 180px;
height: 30px;
position: absolute;
top: 15px;
left: 96px;
}
.star_month {
width: 590px;
}
.star_month > img {
width: 590px;
}
.basic_main {
width: 700px;
height: 100%;
/* height: 220px; */
/* position: absolute; */
/* top: 80px;/ */
/* left: 50px; */
}
.top_title,
.top_msg {
width: 100%;
display: flex;
justify-content: space-between;
}
.list {
width: 25%;
text-align: center;
font-size: 26px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 31px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: normal;
}
.text_style {
font-size: 32px;
font-family: ArsonPro-BlackItalic, ArsonPro;
font-weight: normal;
color: rgba(5, 243, 243, 1) !important;
/* line-height: 31px; */
/* margin-top: 30px; */
font-style: italic;
}
#myChart,
.charts {
width: 580px !important;
height: 300px !important;
}
.today_production {
width: 265px;
height: 268px;
/* margin: 0px auto 0; */
box-sizing: border-box;
/* padding: 70px 0; */
display: flex;
align-items: stretch;
flex-direction: column;
/* top: 55px; */
background: url(../../../assets/image/yuanhuan.png) top center no-repeat;
background-size: 100%;
}
.today_title {
font-size: 32px;
color: #ffffff;
text-align: center;
width: 100%;
height: auto;
margin-top: 71px;
}
.today_msg {
font-size: 60px;
font-style: italic;
color: #ffffff;
font-weight: 600;
text-align: center;
margin-top: 15px;
height: auto;
}
.personal_msg {
width: 596px;
height: 300px;
/* background: url(../../../assets/image/fangkuang.png) top center no-repeat; */
background-size: 100%;
/* margin-top: 35px; */
box-sizing: border-box;
/* padding: 30px 18px 0px 33px; */
display: flex;
justify-content: space-between;
/* align-items: center; */
}
.personal_photo {
width: 125px;
height: 165px;
border: 1px solid #05f3f3;
}
.personal_photo > img {
width: 123px;
height: 163px;
}
.personal_main {
width: 384px;
height: 170px;
/* background: red; */
}
.personal_main_top {
width: 100%;
height: auto;
display: flex;
justify-content: space-between;
}
.list1 {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 32px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: normal;
width: 50%;
text-align: left;
height: 32px;
}
.list1 > span {
color: #ffffff;
font-size: 24px;
height: auto;
}
.personal_main_bottom {
width: 100%;
height: 160px;
display: flex;
justify-content: space-between;
align-items: center;
/* margin-top: 50px; */
}
.title_label {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 32px;
}
.workshop_msg {
width: 100%;
display: flex;
justify-content: space-between;
margin-top: 25px;
}
.ranking {
width: 700px;
height: auto;
}
.ranking > img {
width: 638px;
}
.ranking_title {
width: 100%;
height: 37px;
background: linear-gradient(
180deg,
rgba(10, 249, 249, 0.44) 0%,
rgba(4, 240, 240, 0.04) 100%
);
border-radius: 2px;
/* opacity:0.42; */
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.list2 {
width: 33%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
height: auto;
}
.list6{
width: 40%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
height: auto;
}
.list7{
width: 25%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
height: auto;
}
.ranking_title_text {
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(5, 243, 243, 1);
line-height: 45px;
}
.salary1 {
width: 700px;
margin-top: 32px;
}
.salary {
width: 700px;
margin-top: 32px;
}
.list_cell {
width: 100%;
height: 39px;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.salary_text {
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 32px;
white-space: nowrap;
text-overflow: ellipsis;
}
.circle1 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: rgba(254, 68, 255, 1);
}
.circle2 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: #ffcc00;
}
.circle3 {
width: 39px;
height: 39px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background: #00c4ba;
}
.salary_all {
width: 1065px;
}
.salary_all > img {
width: 1065px;
}
.salary_title {
margin-top: 20px;
width: 1065px;
height: 37px;
background: linear-gradient(
180deg,
rgba(10, 249, 249, 0.42) 0%,
rgba(4, 240, 240, 0.04) 100%
);
border-radius: 2px;
display: flex;
justify-content: space-between;
align-items: center;
}
.list3 {
width: 15%;
text-align: center;
height: auto;
}
.list4 {
width: 38%;
text-align: center;
height: auto;
}
.list5 {
width: 17%;
text-align: center;
height: auto;
}
.salary_list {
width: 1065px;
margin-top: 32px;
height: auto;
}
</style>
<template>
<div style="font-size:30px" :style="{color:chart.FontColor,background:chart.BackgroundColor}">
<div style="width:100%">
<table style="width:100%;height:100%">
<table style="width:100%;height:100%;border-collapse:collapse">
<tr style="height:8%" :style="{fontSize:chart.FontSize1!=0?chart.FontSize1+'px':'30px'}">
<td
v-for="(item,index) in titlestore"
class="tableclass"
:key="index"
:style="{color:item.Color,width:item.Width+'%'}"
:style="{color:item.Color,width:item.Width+'%',border:'1px'+' solid '+item.Color,borderColor:boardstore.BorderColor==null?'red':boardstore.BorderColor}"
>{{item.Key}}</td>
</tr>
<!-- <el-progress :text-inside="true" :stroke-width="20" color="#000" :percentage="90" status="exception"></el-progress> -->
<template v-for="(item,index) in itemdata">
<tr
:key="index"
......@@ -19,9 +20,17 @@
<td
:key="index1"
class="tableclass"
:style="{width:getwidth(obj)+'%'}"
v-if="obj.Key.indexOf('_')>0"
:style="{width:getwidth(obj)+'%',border:'1px'+' solid '+getfontcolor(item),borderColor:boardstore.BorderColor==null?'red':boardstore.BorderColor}"
v-if="obj.Key.indexOf('_')>0 && obj.Key.indexOf('_percent')<0"
>{{obj.Value}}</td>
<td
:key="index1"
class="tableclass"
:style="{width:getwidth(obj)+'%',border:'1px'+' solid '+getfontcolor(item),borderColor:boardstore.BorderColor==null?'red':boardstore.BorderColor}"
v-if="obj.Key.indexOf('_percent')>0"
>
<el-progress :text-inside="true" :style="{color:getfontcolor(item)}" :stroke-width="20" type="line" :color="obj.Key.indexOf('#') ? '#'+obj.Value.split('#')[1] : '#409EFF'" :percentage="obj.Key.indexOf('#') ? parseInt(obj.Value.split('#')[0]) : parseInt(obj.Value)" status="exception"></el-progress>
</td>
</template>
</tr>
</template>
......@@ -206,6 +215,7 @@ export default {
if (this.chart.RefreshType == 1) {
this.itemdata = me._changeDataType(res.rows);
}
console.log('itemdata'+JSON.stringify(me.itemdata))
} else {
console.log(res.message);
}
......@@ -346,6 +356,8 @@ table {
}
.tableclass {
text-align: center;
box-sizing: border-box;
padding:0 10px;
/* border:1px solid blue; */
/* display: inline-block; */
/* 不换行 */
......
......@@ -26,7 +26,11 @@
</tr>
</template>
<template v-if="itemdata.length<chart.PageSize">
<tr v-for="(tt,index) in (chart.PageSize-itemdata.length)" :key="'tt'+index" :style="{fontSize:chart.FontSize2!=0?chart.FontSize2+'px':'30px'}">
<tr
v-for="(tt,index) in (chart.PageSize-itemdata.length)"
:key="'tt'+index"
:style="{fontSize:chart.FontSize2!=0?chart.FontSize2+'px':'30px'}"
>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
......@@ -45,7 +49,7 @@ import Axios from "@/function/axios.js";
import qs from "qs";
var _this;
export default {
name: "charttable1",
name: "charttable2",
inject: ["reload"],
props: ["boardstore", "chart", "Api"],
data() {
......@@ -259,6 +263,7 @@ export default {
//换行
_changeItemData() {
console.log('chart'+JSON.stringify(this.chart))
if (this.chart.RefreshType == 2) {
console.log(this.chart.PositionIndex + "换行");
if (this.itemdata.length == 0) return;
......@@ -319,6 +324,13 @@ export default {
};
</script>
<style >
<<<<<<< HEAD
=======
.el-progress-bar{
display: flex;
align-items: center;
}
>>>>>>> 14f09182f403625ae423bf2b3e12000d1ae64703
.seamless-warp {
height: 95%;
overflow: hidden;
......
......@@ -69,6 +69,22 @@ export default {
path: "chartDemoList"
},
]
},
{
text: "车间看板",
iconCls: "el-icon-video-camera-solid",
children: [
{
text: "车间选择",
name: "zcList",
path: "zcList"
},
// {
// text: "鑫源看板",
// name: "xyList",
// path: "xyList"
// },
]
}
]
};
......
using FTT.Board.Common;
using FTT.Board.Models;
using FttCloud.Public.Database;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace FTT.Board.Controllers.API
{
public class FactoryBoardController : ApiController
{
public ModuleModel ModuleName => ModuleModel.MES;
public string GetZC(int FactoryWorkShopTeamID)
{
FactoryBoardZCResponse model = new FactoryBoardZCResponse();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoardZC]", new
{
WorkTeamID = FactoryWorkShopTeamID
}, true);
model.UserWageRanking = Table2Model.ToModelList<UserWageRanking>(dataSet.Tables[0]);
model.ConstantlyWage = Table2Model.ToModelList<ConstantlyWage>(dataSet.Tables[1]);
model.ZCFactoryWageInfo = Table2Model.ToModel<ZCFactoryWageInfo>(dataSet.Tables[2]);
model.MonthStar = Table2Model.ToModel<MonthStar>(dataSet.Tables[3]);
model.MonthStarIEPercent = Table2Model.ToModelList<MonthStarIEPercent>(dataSet.Tables[4]);
model.DayYield = (int)dataSet.Tables[5].Rows[0][0];
return model.ToString();
}
public string GetCX(int FactoryWorkShopTeamID)
{
FactoryBoardCXResponse model = new FactoryBoardCXResponse();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoardCX]", new
{
WorkTeamID = FactoryWorkShopTeamID
}, true);
model.UserWageRanking = Table2Model.ToModelList<UserWageRanking>(dataSet.Tables[0]);
model.ConstantlyInspection = Table2Model.ToModelList<ConstantlyInspection>(dataSet.Tables[1]);
model.CXFactoryWageInfo = Table2Model.ToModel<CXFactoryWageInfo>(dataSet.Tables[2]);
model.MonthStar = Table2Model.ToModel<MonthStar>(dataSet.Tables[3]);
model.MonthStarIEPercent = Table2Model.ToModelList<MonthStarIEPercent>(dataSet.Tables[4]);
model.DayYield = (int)dataSet.Tables[5].Rows[0][0];
return model.ToString();
}
public string PostZC(FactoryBoardRepuest value)
{
FactoryBoardZCResponse model = new FactoryBoardZCResponse();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoardZC]", new
{
WorkTeamID = value.FactoryWorkShopTeamID,
PageIndex = value.PageIndex,
PageSize = value.PageSize
}, true);
model.UserWageRanking = Table2Model.ToModelList<UserWageRanking>(dataSet.Tables[0]);
model.ConstantlyWage = Table2Model.ToModelList<ConstantlyWage>(dataSet.Tables[1]);
model.ZCFactoryWageInfo = Table2Model.ToModel<ZCFactoryWageInfo>(dataSet.Tables[2]);
model.MonthStar = Table2Model.ToModel<MonthStar>(dataSet.Tables[3]);
model.MonthStarIEPercent = Table2Model.ToModelList<MonthStarIEPercent>(dataSet.Tables[4]);
model.DayYield = (int)dataSet.Tables[5].Rows[0][0];
return model.ToString();
}
public string PostCX(FactoryBoardRepuest value)
{
FactoryBoardCXResponse model = new FactoryBoardCXResponse();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoardCX]", new
{
WorkTeamID = value.FactoryWorkShopTeamID,
PageIndex = value.PageIndex,
PageSize = value.PageSize
}, true);
model.UserWageRanking = Table2Model.ToModelList<UserWageRanking>(dataSet.Tables[0]);
model.ConstantlyInspection = Table2Model.ToModelList<ConstantlyInspection>(dataSet.Tables[1]);
model.CXFactoryWageInfo = Table2Model.ToModel<CXFactoryWageInfo>(dataSet.Tables[2]);
model.MonthStar = Table2Model.ToModel<MonthStar>(dataSet.Tables[3]);
model.MonthStarIEPercent = Table2Model.ToModelList<MonthStarIEPercent>(dataSet.Tables[4]);
model.DayYield = (int)dataSet.Tables[5].Rows[0][0];
return model.ToString();
}
public string PostCXInspection(FactoryBoardRepuest value)
{
List<ConstantlyInspection> model = new List<ConstantlyInspection>();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoardCX]", new
{
WorkTeamID = value.FactoryWorkShopTeamID,
PageIndex = value.PageIndex,
PageSize = value.PageSize
}, true);
model = Table2Model.ToModelList<ConstantlyInspection>(dataSet.Tables[1]);
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
return JsonConvert.SerializeObject(model, jsSettings).ToString();
}
}
}
\ No newline at end of file
using FTT.Board.Common;
using FTT.Board.Models;
using FttCloud.Public.Database;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace FTT.Board.Controllers.API
{
public class FactoryBoardXYController : ApiController
{
public ModuleModel ModuleName => ModuleModel.MES;
public string PostCX(FactoryBoardRepuest value)
{
FactoryBoardResponse model = new FactoryBoardResponse();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoard_XY]", new
{
WorkTeamID = value.FactoryWorkShopTeamID,
PageIndex = value.PageIndex,
PageSize = value.PageSize
}, true);
model.UserWageRanking = Table2Model.ToModelList<UserWageRanking>(dataSet.Tables[0]);
model.ConstantlyWage = Table2Model.ToModelList<ConstantlyWage>(dataSet.Tables[1]);
model.YieldInfo = Table2Model.ToModelList<YieldInfo>(dataSet.Tables[2]);
model.LineChart = Table2Model.ToModelList<LineChart>(dataSet.Tables[3]);
model.DayYield = (int)dataSet.Tables[4].Rows[0][0];
model.Title = dataSet.Tables[5].Rows[0][0].ToString();
return model.ToString();
}
public string PostCXInspection(FactoryBoardRepuest value)
{
List<ConstantlyWage> model = new List<ConstantlyWage>();
DataSet dataSet = Dbo.Create(ModuleName).GetDataSet("[SP_MES_FactoryWageBoard_XY]", new
{
WorkTeamID = value.FactoryWorkShopTeamID,
PageIndex = value.PageIndex,
PageSize = value.PageSize
}, true);
model = Table2Model.ToModelList<ConstantlyWage>(dataSet.Tables[1]);
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
return JsonConvert.SerializeObject(model, jsSettings).ToString();
}
}
}
......@@ -164,6 +164,8 @@
<Compile Include="Areas\HelpPage\SampleGeneration\TextSample.cs" />
<Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
<Compile Include="Controllers\API\CFG\CFG_BoardController.cs" />
<Compile Include="Controllers\API\FactoryBoardController.cs" />
<Compile Include="Controllers\API\FactoryBoardXYController.cs" />
<Compile Include="Controllers\ChartController.cs" />
<Compile Include="Controllers\API\CFG\CFG_BoardDetailController.cs" />
<Compile Include="Controllers\HomeController.cs" />
......@@ -171,7 +173,14 @@
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Models\Database\Db.cs" />
<Compile Include="Models\Database\DbModule.cs" />
<Compile Include="Models\Database\Dbo.cs" />
<Compile Include="Models\Database\ModuleAttribute.cs" />
<Compile Include="Models\FactoryBoard.cs" />
<Compile Include="Models\FactoryBoardXY.cs" />
<Compile Include="Models\MsSqlDbContextWraper.cs" />
<Compile Include="Models\Table2Model.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
......
......@@ -45,9 +45,7 @@
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>52959</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost/FTT.Board</IISUrl>
<OverrideIISAppRootUrl>True</OverrideIISAppRootUrl>
<IISAppRootUrl>http://localhost/FTT.Board</IISAppRootUrl>
<IISUrl>http://localhost:8080/FTT.Board</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
......
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace FttCloud.Public.Database
{
public static class Db
{
/// <summary>
/// 数据库连接字符串默认Key
/// </summary>
public static readonly string CONNECTION_STRING_DEFAULT_KEY = "db";
private static readonly string CONNECTION_STRING = ConfigurationManager.AppSettings[CONNECTION_STRING_DEFAULT_KEY];
public static DataSet GetDataSet(string sql, object paras = null, bool isSp = false)
{
using (var conn = NewConn())
{
//throw new Exception(conn.ConnectionString);
var ds = new DataSet();
using (var cmd = new SqlCommand(sql, conn))
{
if (isSp)
cmd.CommandType = CommandType.StoredProcedure;
if (paras != null)
{
var properties = paras.GetType().GetProperties();
foreach (var property in properties)
{
cmd.Parameters.AddWithValue("@" + property.Name, property.GetValue(paras, null));
}
}
using (var da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
}
return ds;
}
}
public static DataTable GetDataTable(string sql, object paras = null, bool isSp = false)
{
using (var conn = NewConn())
{
var dt = new DataTable();
using (var cmd = new SqlCommand(sql, conn))
{
if (isSp)
cmd.CommandType = CommandType.StoredProcedure;
if (paras != null)
{
var properties = paras.GetType().GetProperties();
foreach (var property in properties)
{
cmd.Parameters.AddWithValue("@" + property.Name, property.GetValue(paras, null));
}
}
using (var da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
}
return dt;
}
}
public static SqlConnection NewConn()
{
var conn = new SqlConnection(CONNECTION_STRING);
conn.Open();
return conn;
}
}
}
using System.Collections.Concurrent;
using System.Configuration;
namespace FttCloud.Public.Database
{
/// <summary>
/// 系统实体。
/// 添加系统的时候,请指定使用的数据库连接字符串key。
/// </summary>
public enum SystemModel
{
/// <summary>
/// MES
/// </summary>
[SystemDbConnKeyAttribute("db_mes")]
MES = 0,
/// <summary>
/// U6
/// </summary>
[SystemDbConnKeyAttribute("db_u6")]
U6 = 1,
/// <summary>
/// A3分销
/// </summary>
[SystemDbConnKeyAttribute("db_a3")]
A3 = 2,
/// <summary>
/// 公共库
/// </summary>
[SystemDbConnKeyAttribute("db_common")]
Public = 3,
/// <summary>
/// PDM
/// </summary>
[SystemDbConnKeyAttribute("db_pdm")]
PDM = 4,
}
/// <summary>
/// 模块实体。
/// 添加模块的时候,请指定所属系统。
/// </summary>
public enum ModuleModel
{
/// <summary>
/// 默认
/// </summary>
[ModuleAttribute(SystemModel.MES)]
Default = 0,
/// <summary>
/// MES 系统模块.
/// 没有定义模块的情况下,属于MES系统的功能可以划分到该模块下。
/// </summary>
[ModuleAttribute(SystemModel.MES)]
MES = 1,
/// <summary>
/// U6系统模块.
/// 没有定义模块的情况下,属于U6系统的功能可以划分到该模块下。
/// </summary>
[ModuleAttribute(SystemModel.U6)]
U6 = 2,
/// <summary>
/// WMS
/// </summary>
[ModuleAttribute(SystemModel.U6)]
WMS = 3,
/// <summary>
/// 订货会,OrderMeeting
/// 属于U6,独立成模块
/// </summary>
[ModuleAttribute(SystemModel.U6)]
OMT = 4,
/// <summary>
/// A3分销默认模块
/// </summary>
[ModuleAttribute(SystemModel.A3)]
A3 = 5,
/// <summary>
/// 项目管理
/// </summary>
[ModuleAttribute(SystemModel.MES)]
PM = 6,
/// <summary>
/// 官网,Official Site
/// </summary>
[ModuleAttribute(SystemModel.Public)]
OS = 7,
/// <summary>
/// PDM 系统
/// </summary>
[ModuleAttribute(SystemModel.PDM)]
PDM = 8,
}
/// <summary>
/// 系统数据库配置
/// </summary>
public class SysDbServerModel
{
static ConcurrentDictionary<ModuleModel, ModuleSystemDbServerModel> moduleDbConn;
static SysDbServerModel()
{
moduleDbConn = new ConcurrentDictionary<ModuleModel, ModuleSystemDbServerModel>();
SetModuleDbConn();
}
/// <summary>
/// 设置模块数据库连接
/// </summary>
static void SetModuleDbConn()
{
System.Reflection.FieldInfo[] fieldInos = typeof(ModuleModel).GetFields();
foreach (System.Reflection.FieldInfo info in fieldInos)
{
object[] objs = info.GetCustomAttributes(typeof(ModuleAttribute), false);
if (objs == null || objs.Length == 0) continue;
var systemCode = ((ModuleAttribute)objs[0]).SystemModel;
var fieldInfo = typeof(SystemModel).GetField(systemCode.ToString());
if (fieldInfo == null || !fieldInfo.IsStatic || !fieldInfo.IsPublic || fieldInfo.IsSpecialName) continue;
object[] objs2 = fieldInfo.GetCustomAttributes(typeof(SystemDbConnKeyAttribute), false);
if (objs2 == null || objs2.Length == 0) continue;
var connKey = ((SystemDbConnKeyAttribute)objs2[0]).DbConnKey;
var connValue = ConfigurationManager.AppSettings[connKey];
if (string.IsNullOrEmpty(connValue)) connValue = ConfigurationManager.AppSettings[Db.CONNECTION_STRING_DEFAULT_KEY];
var module = (ModuleModel)info.GetRawConstantValue();
moduleDbConn.TryAdd(module, new ModuleSystemDbServerModel(module, systemCode, connKey, connValue));
}
}
/// <summary>
/// 获取数据库连接字符串
/// </summary>
/// <param name="module"></param>
/// <returns></returns>
public static string GetConn(ModuleModel module)
{
return moduleDbConn[module].DbConnValue;
}
/// <summary>
/// 获取系统编码
/// </summary>
/// <param name="module"></param>
/// <returns></returns>
public static string GetSysCode(ModuleModel module)
{
if (moduleDbConn.ContainsKey(module))
{
ModuleSystemDbServerModel serverModel = moduleDbConn[module];
if (serverModel != null) return serverModel.SystemCode.ToString();
}
return null;
}
}
/// <summary>
/// 系统数据实体
/// </summary>
public class ModuleSystemDbServerModel
{
/// <summary>
/// 模块
/// </summary>
public ModuleModel ModuleModel { get; private set; }
/// <summary>
/// 系统
/// </summary>
public SystemModel SystemCode { get; private set; }
/// <summary>
/// 数据库连接字符串Key
/// </summary>
public string DbConnKey { get; private set; }
/// <summary>
/// 数据库连接字符串
/// </summary>
public string DbConnValue { get; private set; }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="moduleModel">模块</param>
/// <param name="systemCode">所属系统</param>
/// <param name="dbConnKey">数据库连接字符串关键字</param>
/// <param name="dbConnValue">数据库连接字符串值</param>
public ModuleSystemDbServerModel(ModuleModel moduleModel, SystemModel systemCode, string dbConnKey, string dbConnValue)
{
this.ModuleModel = moduleModel;
this.SystemCode = systemCode;
this.DbConnKey = dbConnKey;
this.DbConnValue = dbConnValue;
}
}
}

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace FttCloud.Public.Database
{
/// <summary>
/// 数据库操作类,
/// </summary>
public class Dbo
{
private string connectionString;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="module">模块</param>
private Dbo(ModuleModel module)
{
connectionString = SysDbServerModel.GetConn(module);
}
/// <summary>
/// 创建Dbo 实例
/// </summary>
/// <param name="module"></param>
/// <returns></returns>
public static Dbo Create(ModuleModel module)
{
return new Dbo(module);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public SqlConnection NewConn()
{
var conn = new SqlConnection(connectionString);
conn.Open();
return conn;
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="paras"></param>
/// <param name="isSp"></param>
/// <returns></returns>
public DataSet GetDataSet(string sql, object paras = null, bool isSp = false)
{
using (var conn = NewConn())
{
var ds = new DataSet();
using (var cmd = new SqlCommand(sql, conn))
{
if (isSp)
cmd.CommandType = CommandType.StoredProcedure;
if (paras != null)
{
var properties = paras.GetType().GetProperties();
foreach (var property in properties)
{
cmd.Parameters.AddWithValue("@" + property.Name, property.GetValue(paras, null));
}
}
using (var da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
}
}
return ds;
}
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="paras"></param>
/// <param name="isSp"></param>
/// <returns></returns>
public DataTable GetDataTable(string sql, object paras = null, bool isSp = false)
{
using (var conn = NewConn())
{
var dt = new DataTable();
using (var cmd = new SqlCommand(sql, conn))
{
if (isSp)
cmd.CommandType = CommandType.StoredProcedure;
if (paras != null)
{
var properties = paras.GetType().GetProperties();
foreach (var property in properties)
{
cmd.Parameters.AddWithValue("@" + property.Name, property.GetValue(paras, null));
}
}
using (var da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
}
return dt;
}
}
private void WriteLog(string command, object paras)
{
var msg = command + "\r\n" + (paras == null ? "" : JsonConvert.SerializeObject(paras));
Debug.WriteLine(msg);
}
}
}
using System;
namespace FttCloud.Public.Database
{
/// <summary>
/// 针对功能模块的属性配置信息。
/// </summary>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method, AllowMultiple = false)]
public class ModuleAttribute : System.Attribute
{
/// <summary>
/// 构造函数
/// </summary>
/// <param name="systemModel"></param>
public ModuleAttribute(SystemModel systemModel)
{
this.SystemModel = systemModel;
}
/// <summary>
/// 系统编码
/// </summary>
public SystemModel SystemModel { get; set; }
}
/// <summary>
/// 针对功能模块的属性配置信息。
/// </summary>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method, AllowMultiple = false)]
public class SystemDbConnKeyAttribute : System.Attribute
{
/// <summary>
/// 默认值
/// </summary>
private string dbConnKey = Db.CONNECTION_STRING_DEFAULT_KEY;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="strConnKey"></param>
public SystemDbConnKeyAttribute(string strConnKey)
{
this.dbConnKey = strConnKey;
}
/// <summary>
/// 数据库连接关键字
/// </summary>
public string DbConnKey
{
get { return dbConnKey; }
set { dbConnKey = value; }
}
}
}
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace FTT.Board.Models
{
/// <summary>
/// 车间看板入参
/// </summary>
public class FactoryBoardRepuest
{
/// <summary>
/// 车间小组ID
/// </summary>
public int FactoryWorkShopTeamID { get; set; }
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 条数
/// </summary>
public int PageSize { get; set; }
}
/// <summary>
/// 针车车间看板出参
/// </summary>
public class FactoryBoardZCResponse
{
/// <summary>
/// 员工工资排名
/// </summary>
public List<UserWageRanking> UserWageRanking { get; set; }
/// <summary>
/// 实时工资
/// </summary>
public List<ConstantlyWage> ConstantlyWage { get; set; }
/// <summary>
/// 车间工资统计
/// </summary>
public ZCFactoryWageInfo ZCFactoryWageInfo { get; set; }
/// <summary>
/// 本月之星
/// </summary>
public MonthStar MonthStar { get; set; }
/// <summary>
/// 本月之星当月工序占比
/// </summary>
public List<MonthStarIEPercent> MonthStarIEPercent { get; set; }
/// <summary>
/// 当日产量
/// </summary>
public int DayYield { get; set; }
public override string ToString()
{
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
return JsonConvert.SerializeObject(this, jsSettings).ToString();
}
}
/// <summary>
/// 成型车间看板出参
/// </summary>
public class FactoryBoardCXResponse
{
/// <summary>
/// 员工工资排名
/// </summary>
public List<UserWageRanking> UserWageRanking { get; set; }
/// <summary>
/// 实时品检明细
/// </summary>
public List<ConstantlyInspection> ConstantlyInspection { get; set; }
/// <summary>
/// 成型车间工资统计
/// </summary>
public CXFactoryWageInfo CXFactoryWageInfo { get; set; }
/// <summary>
/// 本月之星
/// </summary>
public MonthStar MonthStar { get; set; }
/// <summary>
/// 本月之星当月工序占比
/// </summary>
public List<MonthStarIEPercent> MonthStarIEPercent { get; set; }
/// <summary>
/// 当日产量
/// </summary>
public int DayYield { get; set; }
public override string ToString()
{
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
return JsonConvert.SerializeObject(this, jsSettings).ToString();
}
}
/// <summary>
/// 员工工资排名
/// </summary>
public class UserWageRanking
{
/// <summary>
/// 排名
/// </summary>
public int Ranking { get; set; }
/// <summary>
/// 员工姓名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 工资
/// </summary>
public double SubMoney { get; set; }
}
/// <summary>
/// 实时工资
/// </summary>
public class ConstantlyWage
{
/// <summary>
/// 时间
/// </summary>
public string CreateDate { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 工序或部件名
/// </summary>
public string IEName { get; set; }
/// <summary>
/// 单价
/// </summary>
public double Price { get; set; }
/// <summary>
/// 工资
/// </summary>
public double SubMoney { get; set; }
}
/// <summary>
/// 实时品检详情
/// </summary>
public class ConstantlyInspection
{
/// <summary>
/// 时间
/// </summary>
public string CreateDate { get; set; }
/// <summary>
/// 货号
/// </summary>
public string StyleCode { get; set; }
/// <summary>
/// 品检项目
/// </summary>
public string QIItemName { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Qty { get; set; }
/// <summary>
/// 品检类型
/// </summary>
public string ProcessingType { get; set; }
}
/// <summary>
/// 针车车间工资统计
/// </summary>
public class ZCFactoryWageInfo
{
/// <summary>
/// 车间名称
/// </summary>
public string FactoryWorkShopTeamName { get; set; }
/// <summary>
/// 在职员工数量
/// </summary>
public int OnJobCount { get; set; }
/// <summary>
/// 最高工资
/// </summary>
public double MaxWage { get; set; }
/// <summary>
/// 最低工资
/// </summary>
public double MinWage { get; set; }
/// <summary>
/// 平均工资
/// </summary>
public double AverageWage { get; set; }
/// <summary>
/// 排名
/// </summary>
public int ranking { get; set; }
/// <summary>
/// 本月计划
/// </summary>
public int MonthPlan { get; set; }
/// <summary>
/// 本月产量
/// </summary>
public int MonthYield { get; set; }
/// <summary>
/// 待产数量
/// </summary>
public int MonthWaiting { get; set; }
/// <summary>
/// 在产数量
/// </summary>
public int MonthInProduction { get; set; }
/// <summary>
/// 当月完成率
/// </summary>
public string MonthPercent { get; set; }
}
/// <summary>
/// 成型车间工资统计
/// </summary>
public class CXFactoryWageInfo
{
/// <summary>
/// 车间名称
/// </summary>
public string FactoryWorkShopTeamName { get; set; }
/// <summary>
/// 在职员工数量
/// </summary>
public int OnJobCount { get; set; }
/// <summary>
/// 最高工资
/// </summary>
public double MaxWage { get; set; }
/// <summary>
/// 最低工资
/// </summary>
public double MinWage { get; set; }
/// <summary>
/// 平均工资
/// </summary>
public double AverageWage { get; set; }
/// <summary>
/// 排名
/// </summary>
public int ranking { get; set; }
/// <summary>
/// 昨日遗留
/// </summary>
public int YesterDayMargin { get; set; }
/// <summary>
/// 当日计划
/// </summary>
public int DayPlan { get; set; }
/// <summary>
/// 当日完成率
/// </summary>
public string DayPercent { get; set; }
/// <summary>
/// 不合格数量
/// </summary>
public int UnInspectionQty { get; set; }
/// <summary>
/// 合格率
/// </summary>
public string InspectionPercent { get; set; }
}
/// <summary>
/// 本月之星
/// </summary>
public class MonthStar
{
/// <summary>
/// 照片
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 员工编号
/// </summary>
public string UserCode { get; set; }
/// <summary>
/// 员工姓名
/// </summary>
public string UserName { get; set; }
}
/// <summary>
/// 本月之星当月工序占比
/// </summary>
public class MonthStarIEPercent
{
/// <summary>
/// 工序或部件名
/// </summary>
public string IEName { get; set; }
/// <summary>
/// 占比
/// </summary>
public double IENameSubMoney { get; set; }
}
}
\ No newline at end of file
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace FTT.Board.Models
{
/// <summary>
/// 成型车间看板出参
/// </summary>
public class FactoryBoardResponse
{
/// <summary>
/// 员工工资排名
/// </summary>
public List<UserWageRanking> UserWageRanking { get; set; }
/// <summary>
/// 实时工资
/// </summary>
public List<ConstantlyWage> ConstantlyWage { get; set; }
/// <summary>
/// 每日产量
/// </summary>
public List<YieldInfo> YieldInfo { get; set; }
/// <summary>
/// 折线图
/// </summary>
public List<LineChart> LineChart { get; set; }
/// <summary>
/// 当日产量
/// </summary>
public int DayYield { get; set; }
/// <summary>
/// 标题
/// </summary>
public string Title { get; set; }
public override string ToString()
{
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
return JsonConvert.SerializeObject(this, jsSettings).ToString();
}
}
/// <summary>
/// 每日产量
/// </summary>
public class YieldInfo
{
/// <summary>
/// 日期
/// </summary>
public string PlanDate { get; set; }
/// <summary>
/// 货号(型体)
/// </summary>
public string StyleCode { get; set; }
/// <summary>
/// 昨日遗留
/// </summary>
public int MarginQty { get; set; }
/// <summary>
/// 今日计划
/// </summary>
public int TodayPlanQty { get; set; }
/// <summary>
/// 总计划
/// </summary>
public int PlanQty { get; set; }
/// <summary>
/// 实际产量
/// </summary>
public int ReportQty { get; set; }
/// <summary>
/// 产量比例
/// </summary>
public string PlanPercent { get; set; }
}
public class LineChart
{
/// <summary>
/// 日期
/// </summary>
public string PlanDate { get; set; }
/// <summary>
/// 实际产量
/// </summary>
public int ReportQty { get; set; }
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace FTT.Board.Common
{
/// <summary>
/// DataTable转成实体
/// </summary>
public static class Table2Model
{
#region 公共方法(扩展DataTable)
/// <summary>
/// DataTable转换成T
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="table">需转换的数据table</param>
/// <returns></returns>
public static T ToModel<T>(this DataTable table) where T : new()
{
if (table == null || table.Columns.Count == 0 || table.Rows.Count == 0) return default(T);
var propertyInfos = from propertyInfo in typeof(T).GetProperties()
where table.Columns.Contains(propertyInfo.Name)
select propertyInfo;
return DataRowToModel<T>(propertyInfos, table.Rows[0]);
//T entity = new T();
//DataRow dr = table.Rows[0];
//foreach (var pi in propertyInfos)
//{
// if (!pi.CanWrite) continue;
// object value = dr[pi.Name];
// if (value != DBNull.Value)
// pi.SetValue(entity, ChangeType(dr[pi.Name], pi.PropertyType), null);
//}
//return entity;
}
/// <summary>
/// DataTable转换成List<T>
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="table">需转换的数据table</param>
/// <returns></returns>
public static List<T> ToModelList<T>(this DataTable table) where T : new()
{
List<T> entities = new List<T>();
if (table == null || table.Columns.Count == 0 || table.Rows.Count == 0) return entities;
var propertyInfos = from propertyInfo in typeof(T).GetProperties()
where table.Columns.Contains(propertyInfo.Name)
select propertyInfo;
foreach (DataRow dr in table.Rows)
{
entities.Add(DataRowToModel<T>(propertyInfos, dr));
}
return entities;
//foreach (DataRow dr in table.Rows)
//{
// T entity = new T();
// foreach (var pi in propertyInfos)
// {
// if (!pi.CanWrite) continue;
// object value = dr[pi.Name];
// if (value != DBNull.Value)
// pi.SetValue(entity, ChangeType(dr[pi.Name], pi.PropertyType), null);
// }
// entities.Add(entity);
//}
//return entities;
}
#endregion 公共方法(扩展DataTable)
#region 私有方法(Convert.ChangeType处理Nullable<>和非Nullable<>)
private static T DataRowToModel<T>(IEnumerable<System.Reflection.PropertyInfo> propertyInfos, DataRow dataRow) where T : new()
{
T entity = new T();
foreach (var pi in propertyInfos)
{
if (!pi.CanWrite) continue;
object value = dataRow[pi.Name];
if (value != DBNull.Value || pi.PropertyType == typeof(string)) // 为null的字符串需要转化为""
pi.SetValue(entity, ChangeType(dataRow[pi.Name], pi.PropertyType), null);
}
return entity;
}
/// <summary>
/// 类型转换(包含Nullable<>和非Nullable<>转换)
/// </summary>
/// <param name="value"></param>
/// <param name="conversionType"></param>
/// <returns></returns>
private static object ChangeType(object value, Type conversionType)
{
// Note: This if block was taken from Convert.ChangeType as is, and is needed here since we're
// checking properties on conversionType below.
if (conversionType == null)
{
throw new ArgumentNullException("conversionType");
} // end if
// If it's not a nullable type, just pass through the parameters to Convert.ChangeType
if (conversionType.IsGenericType &&
conversionType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
{
if (value == null)
{
return null;
}
// It's a nullable type, and not null, so that means it can be converted to its underlying type,
// so overwrite the passed-in conversion type with this underlying type
System.ComponentModel.NullableConverter nullableConverter = new System.ComponentModel.NullableConverter(conversionType);
conversionType = nullableConverter.UnderlyingType;
}
// Now that we've guaranteed conversionType is something Convert.ChangeType can handle (i.e. not a
// nullable type), pass the call on to Convert.ChangeType
return Convert.ChangeType(value, conversionType);
}
#endregion 私有方法(Convert.ChangeType处理Nullable<>和非Nullable<>)
}
}
......@@ -12,6 +12,7 @@
<!--<add key="db" value="Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=FTT_Board;Data Source=192.168.1.204" />-->
<add key="db" value="Password=a*1;Persist Security Info=True;User ID=sa;Initial Catalog=FTT_MES;Data Source=122.226.244.210,1800" />
<add key="db_mes" value="Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=FTT_MES;Data Source=192.168.1.201" />
</appSettings>
<connectionStrings>
<add name="BoardModelContainer" connectionString="metadata=res://*/BoardModel.csdl|res://*/BoardModel.ssdl|res://*/BoardModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.168.1.204;initial catalog=FTT_Board;persist security info=True;user id=sa;password=sa;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment