├── .env.development ├── .env.production ├── .env.test ├── .gitignore ├── README.md ├── babel.config.js ├── package.json ├── public ├── css │ ├── MarkerCluster.Default.css │ ├── MarkerCluster.css │ ├── leaflet-vector-scalar.css │ └── leaflet.css ├── favicon.ico ├── index.html ├── js │ ├── chinaProvider.js │ ├── geojson.js │ ├── leaflet-typhoon.min.js │ ├── leaflet-vector-scalar.js │ ├── leaflet.js │ ├── leaflet.latlng-graticule.js │ ├── leaflet.markercluster-src.js │ ├── leaflet.motion.min.js │ └── turf.min.js ├── logo.png └── logo │ └── TB.png ├── src ├── App.vue ├── assets │ ├── arrow.svg │ ├── arrowOrange.png │ ├── arrowOrange.svg │ ├── arrowRed.png │ ├── arrowRed.svg │ ├── arrowWhite.png │ ├── arrowWhite.svg │ ├── arrowYellow.png │ ├── arrowYellow.svg │ ├── chuan.png │ ├── chuanLight.png │ ├── closedhand.cur │ ├── common.css │ ├── control-panel.png │ ├── distance-logo.png │ ├── draw.png │ ├── eye-close.png │ ├── influence-logo.png │ ├── logo.png │ ├── logo1.png │ ├── map │ │ ├── arrowRed.png │ │ ├── 仓库.png │ │ ├── 作业区.png │ │ ├── 加号.png │ │ ├── 平台.png │ │ ├── 播放.png │ │ ├── 暂停.png │ │ ├── 气压.png │ │ ├── 油气田平台.png │ │ ├── 洋流.png │ │ ├── 海浪.png │ │ ├── 温度.png │ │ ├── 港口.png │ │ ├── 港口码头.png │ │ ├── 盐度.png │ │ ├── 管线.png │ │ ├── 管线1.png │ │ ├── 管线2.png │ │ ├── 管线3.png │ │ ├── 经纬网格.png │ │ ├── 船舶.png │ │ ├── 船舶聚合.png │ │ ├── 警戒线.png │ │ ├── 设备库.png │ │ ├── 进水温度.png │ │ └── 风场.png │ ├── openhand.cur │ ├── platformLogo.png │ ├── sea-risk-legend.png │ ├── setting.png │ ├── shipLogo.png │ ├── shipLogo1.png │ ├── tool │ │ ├── area.png │ │ ├── arrow.ico │ │ ├── circle.png │ │ ├── clear.png │ │ ├── dashed.png │ │ ├── del.png │ │ ├── distance.png │ │ ├── distance1.png │ │ ├── edit.png │ │ ├── flag_icon.png │ │ ├── font.png │ │ ├── icon_marker.png │ │ ├── line.png │ │ ├── line_marker.png │ │ ├── location_icon.png │ │ ├── more.png │ │ ├── polygon.png │ │ ├── position.png │ │ ├── screenshot.png │ │ ├── shape_marker.png │ │ ├── sight_icon.png │ │ ├── sign.png │ │ ├── square.png │ │ └── star_icon.png │ ├── typhoon-legend.png │ ├── typhoon-logo-white.png │ ├── typhoon-logo.gif │ ├── typhoon-logo.png │ ├── upload.png │ ├── xiangliang.png │ └── 油气田平台.png ├── components │ ├── map │ │ ├── LeafletMap.vue │ │ └── MapLayerControl.vue │ ├── progress │ │ └── Progress.vue │ └── zTree │ │ ├── ZTree.vue │ │ └── ZTreeMobile.vue ├── config │ └── index.js ├── http │ ├── events.js │ ├── field-info.js │ ├── index.js │ ├── mapLayer.js │ ├── platform-info.js │ ├── platform.js │ ├── riskEstimate.js │ ├── ship.js │ ├── system.js │ ├── typhoon.js │ ├── typhoonConfig.js │ └── user.js ├── main.js ├── mock │ ├── china.js │ ├── data │ │ ├── deviceData.js │ │ ├── index.js │ │ ├── portData.js │ │ ├── pressure.js │ │ ├── salinit.js │ │ ├── sea-wave.js │ │ ├── seaCurrentData.js │ │ ├── temperature.js │ │ └── windData.js │ ├── testData.js │ ├── windData.js │ └── world.js ├── plugins │ ├── vant.js │ └── zTree │ │ ├── css │ │ ├── awesomeStyle │ │ │ ├── awesome.css │ │ │ ├── awesome.less │ │ │ ├── fa.less │ │ │ └── img │ │ │ │ └── loading.gif │ │ ├── demo.css │ │ ├── metroStyle │ │ │ ├── img │ │ │ │ ├── line_conn.png │ │ │ │ ├── loading.gif │ │ │ │ ├── metro.gif │ │ │ │ └── metro.png │ │ │ └── metroStyle.css │ │ └── zTreeStyle │ │ │ ├── img │ │ │ ├── diy │ │ │ │ ├── 1_close.png │ │ │ │ ├── 1_open.png │ │ │ │ ├── 2.png │ │ │ │ ├── 3.png │ │ │ │ ├── 4.png │ │ │ │ ├── 5.png │ │ │ │ ├── 6.png │ │ │ │ ├── 7.png │ │ │ │ ├── 8.png │ │ │ │ └── 9.png │ │ │ ├── line_conn.gif │ │ │ ├── loading.gif │ │ │ ├── zTreeStandard.gif │ │ │ └── zTreeStandard.png │ │ │ └── zTreeStyle.css │ │ └── js │ │ ├── jquery-1.4.4.min.js │ │ ├── jquery.ztree.all.js │ │ ├── jquery.ztree.all.min.js │ │ ├── jquery.ztree.core.js │ │ ├── jquery.ztree.core.min.js │ │ ├── jquery.ztree.excheck.js │ │ ├── jquery.ztree.excheck.min.js │ │ ├── jquery.ztree.exedit.js │ │ ├── jquery.ztree.exedit.min.js │ │ ├── jquery.ztree.exhide.js │ │ └── jquery.ztree.exhide.min.js ├── registerServiceWorker.js ├── router │ └── index.js ├── store │ ├── index.js │ └── modules │ │ ├── moduleHome.js │ │ └── moduleMap.js ├── utils │ ├── Token.js │ ├── dialogDrag.js │ └── util.js └── views │ ├── 404.vue │ └── Home.vue └── vue.config.js /.env.development: -------------------------------------------------------------------------------- 1 | NODE_ENV = 'development' 2 | VUE_APP_MODE = 'development' 3 | VUE_APP_SERVER_URL = 'http://web.dev.ops.com:8088' 4 | VUE_APP_BASE_URL = 'http://api.dev.ops.com:7000/typhoon' 5 | VUE_APP_AUTH_URL = 'http://api.dev.ops.com:7000/ops-upms' -------------------------------------------------------------------------------- /.env.production: -------------------------------------------------------------------------------- 1 | NODE_ENV = 'production' 2 | VUE_APP_MODE = 'production' 3 | outputDir = 'dist' 4 | VUE_APP_SERVER_URL = 'http://phoon.opstest.qdptzn.com' 5 | VUE_APP_BASE_URL = 'http://api.opstest.qdptzn.com/typhoon' 6 | VUE_APP_AUTH_URL = 'http://api.opstest.qdptzn.com/ops-upms' 7 | -------------------------------------------------------------------------------- /.env.test: -------------------------------------------------------------------------------- 1 | NODE_ENV = 'production' 2 | VUE_APP_MODE = 'test' 3 | outputDir = 'test' 4 | VUE_APP_SERVER_URL = 'http://phoon.opstest.qdptzn.com' 5 | VUE_APP_BASE_URL = 'http://api.opstest.qdptzn.com/typhoon' 6 | VUE_APP_AUTH_URL = 'http://api.opstest.qdptzn.com/ops-upms' 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | yarn.lock 14 | package-lock.json 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | .history/ 25 | /test/ 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # leaflet-vector-scalar-js 2 | 3 | 基于leaflet.js实现的矢量、标量数据可视化Demo。 4 | 包含风场、海浪、洋流、气压、温度等矢量或标量气象数据的可视化展示。 5 | 6 | ## Demo 视频 7 | 8 | [Leaflet动态显示--风场、海浪、洋流、气压、温度等矢量、标量数据](https://v.youku.com/v_show/id_XNDg0OTMzNzUxNg==.html) 9 | 10 | ## 依赖安装 11 | ``` 12 | npm install 13 | ``` 14 | 15 | ### 本地开发调试 16 | ``` 17 | npm run serve 18 | ``` 19 | ### 参考项目 20 | 21 | + [leaflet-velocity](https://github.com/danwild/leaflet-velocity) 22 | 23 | + [earth](https://github.com/cambecc/earth) 24 | 25 | ### Demo核心 26 | 27 | leaflet-vector-scalar.js 是Demo的核心文件。是基于leaflet-velocity(矢量部分) 同时参考 earth(标量部分) 项目来完成的。 28 | 代码还不是很完善,近期可能没有太多时间去修改。 29 | 30 | ### License 31 | MIT License (MIT) 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wind-demo", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint", 9 | "test": "vue-cli-service build --mode test", 10 | "publish": "vue-cli-service build && vue-cli-service build --mode test" 11 | }, 12 | "dependencies": { 13 | "@vant/touch-emulator": "^1.2.0", 14 | "axios": "^0.19.2", 15 | "core-js": "^3.6.4", 16 | "dateformat": "^3.0.3", 17 | "echarts": "^4.6.0", 18 | "element-ui": "^2.13.0", 19 | "heatmap.js": "^2.0.5", 20 | "html2canvas": "^1.0.0-rc.5", 21 | "leaflet": "^1.6.0", 22 | "leaflet-draw": "^1.0.4", 23 | "leaflet-echarts": "^0.2.1", 24 | "leaflet.motion": "^0.1.5", 25 | "moment": "^2.24.0", 26 | "qs": "^6.9.1", 27 | "register-service-worker": "^1.6.2", 28 | "store2": "^2.10.0", 29 | "vant": "^2.5.9", 30 | "view-design": "^4.1.3", 31 | "vue": "^2.6.11", 32 | "vue-echarts": "^4.1.0", 33 | "vue-router": "^3.1.5", 34 | "vue2-leaflet": "^2.5.2", 35 | "vuex": "^3.1.2" 36 | }, 37 | "devDependencies": { 38 | "@vue/cli-plugin-babel": "^4.2.0", 39 | "@vue/cli-plugin-eslint": "^4.2.0", 40 | "@vue/cli-plugin-pwa": "^4.2.0", 41 | "@vue/cli-service": "^4.2.0", 42 | "babel-eslint": "^10.0.3", 43 | "css-loader": "^3.4.2", 44 | "eslint": "^6.7.2", 45 | "eslint-plugin-vue": "^6.1.2", 46 | "less": "^2.7.3", 47 | "less-loader": "^4.1.0", 48 | "vue-template-compiler": "^2.6.11" 49 | }, 50 | "eslintConfig": { 51 | "root": true, 52 | "env": { 53 | "node": true 54 | }, 55 | "extends": [ 56 | "plugin:vue/essential", 57 | "eslint:recommended" 58 | ], 59 | "parserOptions": { 60 | "parser": "babel-eslint" 61 | }, 62 | "rules": {} 63 | }, 64 | "browserslist": [ 65 | "> 1%", 66 | "last 2 versions" 67 | ] 68 | } 69 | -------------------------------------------------------------------------------- /public/css/MarkerCluster.Default.css: -------------------------------------------------------------------------------- 1 | .marker-cluster-small { 2 | background-color: rgba(181, 226, 140, 0.6); 3 | } 4 | .marker-cluster-small div { 5 | background-color: rgba(110, 204, 57, 0.6); 6 | } 7 | 8 | .marker-cluster-medium { 9 | background-color: rgba(241, 211, 87, 0.6); 10 | } 11 | .marker-cluster-medium div { 12 | background-color: rgba(240, 194, 12, 0.6); 13 | } 14 | 15 | .marker-cluster-large { 16 | background-color: rgba(253, 156, 115, 0.6); 17 | } 18 | .marker-cluster-large div { 19 | background-color: rgba(241, 128, 23, 0.6); 20 | } 21 | 22 | /* IE 6-8 fallback colors */ 23 | .leaflet-oldie .marker-cluster-small { 24 | background-color: rgb(181, 226, 140); 25 | } 26 | .leaflet-oldie .marker-cluster-small div { 27 | background-color: rgb(110, 204, 57); 28 | } 29 | 30 | .leaflet-oldie .marker-cluster-medium { 31 | background-color: rgb(241, 211, 87); 32 | } 33 | .leaflet-oldie .marker-cluster-medium div { 34 | background-color: rgb(240, 194, 12); 35 | } 36 | 37 | .leaflet-oldie .marker-cluster-large { 38 | background-color: rgb(253, 156, 115); 39 | } 40 | .leaflet-oldie .marker-cluster-large div { 41 | background-color: rgb(241, 128, 23); 42 | } 43 | 44 | .marker-cluster { 45 | background-clip: padding-box; 46 | border-radius: 20px; 47 | } 48 | .marker-cluster div { 49 | width: 30px; 50 | height: 30px; 51 | margin-left: 5px; 52 | margin-top: 5px; 53 | 54 | text-align: center; 55 | border-radius: 15px; 56 | font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif; 57 | } 58 | .marker-cluster span { 59 | line-height: 30px; 60 | } -------------------------------------------------------------------------------- /public/css/MarkerCluster.css: -------------------------------------------------------------------------------- 1 | .leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow { 2 | -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in; 3 | -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in; 4 | -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in; 5 | transition: transform 0.3s ease-out, opacity 0.3s ease-in; 6 | } 7 | 8 | .leaflet-cluster-spider-leg { 9 | /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */ 10 | -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in; 11 | -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in; 12 | -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in; 13 | transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; 14 | } 15 | -------------------------------------------------------------------------------- /public/css/leaflet-vector-scalar.css: -------------------------------------------------------------------------------- 1 | .leaflet-control-velocity { 2 | background-color: rgba(255, 255, 255, 0.7); 3 | padding: 0 5px; 4 | margin: 0 !important; 5 | color: #333; 6 | font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; 7 | } 8 | 9 | .velocity-overlay { 10 | position: absolute; 11 | z-index: 1; 12 | } -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 气象数据可视化 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /public/js/chinaProvider.js: -------------------------------------------------------------------------------- 1 | L.TileLayer.ChinaProvider = L.TileLayer.extend({ 2 | 3 | initialize: function(type, options) { // (type, Object) 4 | var providers = L.TileLayer.ChinaProvider.providers; 5 | 6 | var parts = type.split('.'); 7 | 8 | var providerName = parts[0]; 9 | var mapName = parts[1]; 10 | var mapType = parts[2]; 11 | 12 | var url = providers[providerName][mapName][mapType]; 13 | options.subdomains = providers[providerName].Subdomains; 14 | options.key = options.key || providers[providerName].key; 15 | L.TileLayer.prototype.initialize.call(this, url, options); 16 | } 17 | }); 18 | 19 | L.TileLayer.ChinaProvider.providers = { 20 | TianDiTu: { 21 | Normal: { 22 | Map: "http://t{s}.tianditu.com/DataServer?T=vec_w&X={x}&Y={y}&L={z}&tk={key}", 23 | Annotion: "http://t{s}.tianditu.com/DataServer?T=cva_w&X={x}&Y={y}&L={z}&tk={key}" 24 | }, 25 | Satellite: { 26 | Map: "http://t{s}.tianditu.com/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk={key}", 27 | Annotion: "http://t{s}.tianditu.com/DataServer?T=cia_w&X={x}&Y={y}&L={z}&tk={key}" 28 | }, 29 | Terrain: { 30 | Map: "http://t{s}.tianditu.com/DataServer?T=ter_w&X={x}&Y={y}&L={z}&tk={key}", 31 | Annotion: "http://t{s}.tianditu.com/DataServer?T=cta_w&X={x}&Y={y}&L={z}&tk={key}" 32 | }, 33 | Subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], 34 | key: "174705aebfe31b79b3587279e211cb9a" 35 | }, 36 | 37 | GaoDe: { 38 | Normal: { 39 | Map: 'http://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}' 40 | }, 41 | Satellite: { 42 | Map: 'http://webst0{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', 43 | Annotion: 'http://webst0{s}.is.autonavi.com/appmaptile?style=8&x={x}&y={y}&z={z}' 44 | }, 45 | Subdomains: ["1", "2", "3", "4"] 46 | }, 47 | 48 | Google: { 49 | Normal: { 50 | Map: "http://www.google.cn/maps/vt?lyrs=m@189&gl=cn&x={x}&y={y}&z={z}" 51 | }, 52 | Satellite: { 53 | Map: "http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}", 54 | Annotion:"https://ditu.google.cn/maps/vt?pb=!1m5!1m4!1i{z}!2i{x}!3i{y}!4i256!2m3!1e0!2sm!3i413113259!3m12!2szh-CN!3sCN!5e18!12m4!1e68!2m2!1sset!2sRoadmapSatellite!12m3!1e37!2m1!1ssmartmaps!4e0!23i1301875&token=59227" 55 | }, 56 | Subdomains: [] 57 | }, 58 | 59 | Geoq: { 60 | Normal: { 61 | Map: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}", 62 | PurplishBlue: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}", 63 | Gray: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x}", 64 | Warm: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetWarm/MapServer/tile/{z}/{y}/{x}", 65 | }, 66 | Theme: { 67 | Hydro: "http://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/WorldHydroMap/MapServer/tile/{z}/{y}/{x}" 68 | }, 69 | Subdomains: [] 70 | }, 71 | 72 | OSM: { 73 | Normal: { 74 | Map: "http://{s}.tile.osm.org/{z}/{x}/{y}.png", 75 | }, 76 | Subdomains: ['a', 'b', 'c'] 77 | } 78 | 79 | }; 80 | 81 | L.tileLayer.chinaProvider = function(type, options) { 82 | return new L.TileLayer.ChinaProvider(type, options); 83 | }; -------------------------------------------------------------------------------- /public/js/leaflet-typhoon.min.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | L.Typhoon = L.Polygon.extend({ 3 | initialize: function (t, e, i) { 4 | L.Polygon.prototype.initialize.call(this, e), this._latlng = L.latLng(t), this._circle = e,this._style = i; 5 | }, 6 | options: {fill: !0}, 7 | projectLatlngs: function () { 8 | try { 9 | var e = this._latlng; 10 | this._point = this._map.latLngToLayerPoint(e); 11 | var t_northeast = this._getLngRadius(this._getLatRadius(this._circle.ne * 1000)), 12 | i_northeast = this._map.latLngToLayerPoint([e.lat, e.lng - t_northeast]); 13 | this._radius_northeast = Math.max(this._point.x - i_northeast.x, 1); 14 | var t_southeast = this._getLngRadius(this._getLatRadius(this._circle.se * 1000)), 15 | i_southeast = this._map.latLngToLayerPoint([e.lat, e.lng - t_southeast]); 16 | this._radius_southeast = Math.max(this._point.x - i_southeast.x, 1); 17 | var t_southwest = this._getLngRadius(this._getLatRadius(this._circle.sw * 1000)), 18 | i_southwest = this._map.latLngToLayerPoint([e.lat, e.lng - t_southwest]); 19 | this._radius_southwest = Math.max(this._point.x - i_southwest.x, 1); 20 | var t_northwest = this._getLngRadius(this._getLatRadius(this._circle.nw * 1000)), 21 | i_northwest = this._map.latLngToLayerPoint([e.lat, e.lng - t_northwest]); 22 | this._radius_northwest = Math.max(this._point.x - i_northwest.x, 1) 23 | } catch (e) { 24 | this._radius_northeast = null; 25 | this._radius_southeast = null; 26 | this._radius_southwest = null; 27 | this._radius_northwest = null 28 | } 29 | }, 30 | getTyphoonPath: function () { 31 | if (this._radius_northeast && this._radius_southeast && this._radius_southwest && this._radius_northwest) { 32 | var t = this._point; 33 | var e_northeast = this._radius_northeast; 34 | var path_svg = "M" + t.x + "," + (t.y - e_northeast); 35 | var path_vml = "M" + t.x + "," + (t.y - e_northeast); 36 | path_svg += "A" + e_northeast + "," + e_northeast + ",0,0,1," + (t.x + e_northeast) + "," + t.y; 37 | path_vml += " ae " + t.x + "," + t.y + " " + e_northeast + "," + e_northeast + " " + 65535 * 450 + "," + -5898150; 38 | var e_southeast = this._radius_southeast; 39 | path_svg += "L" + (t.x + e_southeast) + "," + t.y; 40 | path_svg += "A" + e_southeast + "," + e_southeast + ",0,0,1," + t.x + "," + (t.y + e_southeast); 41 | path_vml += " ae " + t.x + "," + t.y + " " + e_southeast + "," + e_southeast + " " + 65535 * 360 + "," + -5898150; 42 | var e_southwest = this._radius_southwest; 43 | path_svg += "L" + t.x + "," + (t.y + e_southwest); 44 | path_svg += "A" + e_southwest + "," + e_southwest + ",0,0,1," + (t.x - e_southwest) + "," + t.y; 45 | path_vml += " ae " + t.x + "," + t.y + " " + e_southwest + "," + e_southwest + " " + 65535 * 270 + "," + -5898150; 46 | var e_northwest = this._radius_northwest; 47 | path_svg += "L" + (t.x - e_northwest) + "," + t.y; 48 | path_svg += "A" + e_northwest + "," + e_northwest + ",0,0,1," + t.x + "," + (t.y - e_northwest) + "z"; 49 | path_vml += " ae " + t.x + "," + t.y + " " + e_northwest + "," + e_northwest + " " + 65535 * 180 + "," + -5898150 + "X"; 50 | this.svgPath = L.Browser.svg ? path_svg : path_vml 51 | return L.Browser.svg ? path_svg : path_vml 52 | } 53 | return "" 54 | }, 55 | beforeAdd: function (map) { 56 | // Renderer is set here because we need to call renderer.getEvents 57 | // before this.getEvents. 58 | this._renderer = map.getRenderer(this); 59 | }, 60 | 61 | onAdd: function (map) { 62 | this.projectLatlngs(); 63 | this.getTyphoonPath(); 64 | this._renderer._initPath(this); 65 | this._reset(); 66 | this._path.setAttribute('d',this.svgPath); 67 | this._renderer._addPath(this); 68 | this._setStyle(this._style); 69 | }, 70 | 71 | _setStyle: function (style) { 72 | L.setOptions(this, style); 73 | if (this._renderer) { 74 | this._renderer._updateStyle(this); 75 | } 76 | return this; 77 | }, 78 | _getLatRadius: function (r) { 79 | return r / 40075017 * 360 80 | }, 81 | _getLngRadius: function (lr) { 82 | return lr / Math.cos(Math.PI / 180 * this._latlng.lat) 83 | } 84 | }); 85 | 86 | L.typhoon = function (t, e, i) { 87 | return new L.Typhoon(t, e, i) 88 | } 89 | 90 | })(); -------------------------------------------------------------------------------- /public/js/leaflet.motion.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * 3 | * leaflet.motion - v0.1.5 (https://github.com/Igor-Vladyka/leaflet.motion#readme) 4 | * Animation plugin for Leaflet.js 5 | * 6 | * MIT (http://www.opensource.org/licenses/mit-license.php) 7 | * (c) 2019 Igor Vladyka (https://github.com/Igor-Vladyka/) 8 | * 9 | */!function(t){var n={};function e(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:i})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(e.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(i,o,function(n){return t[n]}.bind(null,o));return i},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=6)}([function(t,n){L.Motion.Seq=L.Motion.Group.extend({_activeLayer:null,motionStart:function(){var t=this.getFirstLayer();return t&&(this.__prepareStart(),t.motionStart(),this.fire(L.Motion.Event.Started,{layer:this},!1)),this},motionStop:function(){return this.invoke("motionStop"),this._activeLayer=null,this.fire(L.Motion.Event.Ended,{layer:this},!1),this},motionPause:function(){return this._activeLayer&&(this._activeLayer.motionPause(),this.fire(L.Motion.Event.Paused,{layer:this},!1)),this},motionResume:function(){return this._activeLayer&&(this._activeLayer.motionResume(),this.fire(L.Motion.Event.Resumed,{layer:this},!1)),this},motionToggle:function(){return this._activeLayer?this.motionPause():this.motionResume(),this},getFirstLayer:function(){var t=this.getLayers();return t.length?t[0]:null},__prepareStart:function(){var t=this;this.getLayers().forEach(function(n){n.off(L.Motion.Event.Ended,t.__clearActiveLayer__,t),n.on(L.Motion.Event.Ended,t.__clearActiveLayer__,t),n.off(L.Motion.Event.Started,t.__putActiveLayer__,t),n.on(L.Motion.Event.Started,t.__putActiveLayer__,t)})},__clearActiveLayer__:function(t){this._activeLayer=null;var n=this.getLayers(),e=t.layer._leaflet_id,i=n.filter(function(t){return t._leaflet_id==e})[0],o=n.indexOf(i)+1;n.length>o?n[o].motionStart():this.fire(L.Motion.Event.Ended,{layer:this},!1)},__putActiveLayer__:function(t){this._activeLayer=t.layer,this.fire(L.Motion.Event.Section,{layer:this._activeLayer},!1)}}),L.motion.seq=function(t,n){return new L.Motion.Seq(t,n)}},function(t,n){L.Motion.Group=L.FeatureGroup.extend({options:{pane:L.Motion.Animate.options.pane,attribution:L.Motion.Animate.options.attribution},motionStart:function(){return this.invoke("motionStart"),this.fire(L.Motion.Event.Started,{layer:this},!1),this},motionStop:function(){return this.invoke("motionStop"),this.fire(L.Motion.Event.Ended,{layer:this},!1),this},motionPause:function(){return this.invoke("motionPause"),this.fire(L.Motion.Event.Paused,{layer:this},!1),this},motionResume:function(){return this.invoke("motionResume"),this.fire(L.Motion.Event.Resumed,{layer:this},!1),this},motionToggle:function(){return this.invoke("motionToggle"),this},getMarkers:function(){return this.getLayers().map(function(t){return t.getMarkers()})}}),L.motion.group=function(t,n){return new L.Motion.Group(t,n)}},function(t,n){L.Motion.Polyline=L.Polyline.extend(L.Motion.Animate),L.motion.polyline=function(t,n,e,i){return new L.Motion.Polyline(t,n,e,i)}},function(t,n){L.Motion.Ease={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},easeInQuad:function(t,n,e,i,o){return i*(n/=o)*n+e},easeOutQuad:function(t,n,e,i,o){return-i*(n/=o)*(n-2)+e},easeInOutQuad:function(t,n,e,i,o){return(n/=o/2)<1?i/2*n*n+e:-i/2*(--n*(n-2)-1)+e},easeInCubic:function(t,n,e,i,o){return i*(n/=o)*n*n+e},easeOutCubic:function(t,n,e,i,o){return i*((n=n/o-1)*n*n+1)+e},easeInOutCubic:function(t,n,e,i,o){return(n/=o/2)<1?i/2*n*n*n+e:i/2*((n-=2)*n*n+2)+e},easeInQuart:function(t,n,e,i,o){return i*(n/=o)*n*n*n+e},easeOutQuart:function(t,n,e,i,o){return-i*((n=n/o-1)*n*n*n-1)+e},easeInOutQuart:function(t,n,e,i,o){return(n/=o/2)<1?i/2*n*n*n*n+e:-i/2*((n-=2)*n*n*n-2)+e},easeInQuint:function(t,n,e,i,o){return i*(n/=o)*n*n*n*n+e},easeOutQuint:function(t,n,e,i,o){return i*((n=n/o-1)*n*n*n*n+1)+e},easeInOutQuint:function(t,n,e,i,o){return(n/=o/2)<1?i/2*n*n*n*n*n+e:i/2*((n-=2)*n*n*n*n+2)+e},easeInSine:function(t,n,e,i,o){return-i*Math.cos(n/o*(Math.PI/2))+i+e},easeOutSine:function(t,n,e,i,o){return i*Math.sin(n/o*(Math.PI/2))+e},easeInOutSine:function(t,n,e,i,o){return-i/2*(Math.cos(Math.PI*n/o)-1)+e},easeInExpo:function(t,n,e,i,o){return 0==n?e:i*Math.pow(2,10*(n/o-1))+e},easeOutExpo:function(t,n,e,i,o){return n==o?e+i:i*(1-Math.pow(2,-10*n/o))+e},easeInOutExpo:function(t,n,e,i,o){return 0==n?e:n==o?e+i:(n/=o/2)<1?i/2*Math.pow(2,10*(n-1))+e:i/2*(2-Math.pow(2,-10*--n))+e},easeInCirc:function(t,n,e,i,o){return-i*(Math.sqrt(1-(n/=o)*n)-1)+e},easeOutCirc:function(t,n,e,i,o){return i*Math.sqrt(1-(n=n/o-1)*n)+e},easeInOutCirc:function(t,n,e,i,o){return(n/=o/2)<1?-i/2*(Math.sqrt(1-n*n)-1)+e:i/2*(Math.sqrt(1-(n-=2)*n)+1)+e},easeInElastic:function(t,n,e,i,o){var r=1.70158,a=0,s=i;if(0==n)return e;if(1==(n/=o))return e+i;if(a||(a=.3*o),s0&&(a+=r[s-1].distanceTo(r[s]));var u=a*e,h=0,l=0;for(s=0;l 2 |
3 | 4 |
5 | 6 | 48 | 70 | 171 | 174 | -------------------------------------------------------------------------------- /src/assets/arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/arrowOrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/arrowOrange.png -------------------------------------------------------------------------------- /src/assets/arrowOrange.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/arrowRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/arrowRed.png -------------------------------------------------------------------------------- /src/assets/arrowRed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/arrowWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/arrowWhite.png -------------------------------------------------------------------------------- /src/assets/arrowWhite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/arrowYellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/arrowYellow.png -------------------------------------------------------------------------------- /src/assets/arrowYellow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/chuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/chuan.png -------------------------------------------------------------------------------- /src/assets/chuanLight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/chuanLight.png -------------------------------------------------------------------------------- /src/assets/closedhand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/closedhand.cur -------------------------------------------------------------------------------- /src/assets/common.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | border: 0 none; 5 | list-style: none; 6 | text-decoration: none; 7 | } 8 | 9 | 10 | ::-webkit-scrollbar { 11 | width: 5px; 12 | /*height: 5px;*/ 13 | } 14 | 15 | /* 滚动槽 */ 16 | 17 | ::-webkit-scrollbar-track { 18 | -webkit-box-shadow: inset 0 0 5px rgba(244, 255, 239, 0.8); 19 | border-radius: 0; 20 | background: rgba(0, 60, 56, 0.1); 21 | } 22 | 23 | /* 滚动条滑块 */ 24 | 25 | ::-webkit-scrollbar-thumb { 26 | border-radius: 10px; 27 | -webkit-box-shadow: inset 0 0 5px rgb(156, 156, 156); 28 | background: rgba(255, 255, 255, 0.66); 29 | } 30 | 31 | body { 32 | width: 100%; 33 | overflow: hidden; 34 | font-family: "Microsoft YaHei", "微软雅黑"; 35 | -webkit-font-smoothing: antialiased; 36 | -moz-osx-font-smoothing: grayscale; 37 | } 38 | 39 | hr { 40 | border-bottom: 1px solid #FFF; 41 | margin: 0 10px; 42 | } 43 | 44 | .clear { 45 | clear: both; 46 | } 47 | 48 | .collTitle { 49 | width: 100% 50 | } 51 | .f-12{ 52 | font-size: 12px; 53 | } 54 | .collLine { 55 | float: left; 56 | height: 18px; 57 | border-left: 2px solid #FFF; 58 | border-right: 2px solid #FFF; 59 | border-radius: 2px; 60 | margin-left: 10px; 61 | margin-top: 10px; 62 | } 63 | 64 | .collText { 65 | text-align: left; 66 | padding-left: 20px; 67 | font-size: 14px; 68 | } 69 | 70 | .centerText { 71 | text-align: center; 72 | } 73 | 74 | .white { 75 | color: white; 76 | } 77 | -------------------------------------------------------------------------------- /src/assets/control-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/control-panel.png -------------------------------------------------------------------------------- /src/assets/distance-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/distance-logo.png -------------------------------------------------------------------------------- /src/assets/draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/draw.png -------------------------------------------------------------------------------- /src/assets/eye-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/eye-close.png -------------------------------------------------------------------------------- /src/assets/influence-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/influence-logo.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/logo1.png -------------------------------------------------------------------------------- /src/assets/map/arrowRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/arrowRed.png -------------------------------------------------------------------------------- /src/assets/map/仓库.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/仓库.png -------------------------------------------------------------------------------- /src/assets/map/作业区.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/作业区.png -------------------------------------------------------------------------------- /src/assets/map/加号.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/加号.png -------------------------------------------------------------------------------- /src/assets/map/平台.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/平台.png -------------------------------------------------------------------------------- /src/assets/map/播放.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/播放.png -------------------------------------------------------------------------------- /src/assets/map/暂停.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/暂停.png -------------------------------------------------------------------------------- /src/assets/map/气压.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/气压.png -------------------------------------------------------------------------------- /src/assets/map/油气田平台.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/油气田平台.png -------------------------------------------------------------------------------- /src/assets/map/洋流.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/洋流.png -------------------------------------------------------------------------------- /src/assets/map/海浪.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/海浪.png -------------------------------------------------------------------------------- /src/assets/map/温度.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/温度.png -------------------------------------------------------------------------------- /src/assets/map/港口.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/港口.png -------------------------------------------------------------------------------- /src/assets/map/港口码头.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/港口码头.png -------------------------------------------------------------------------------- /src/assets/map/盐度.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/盐度.png -------------------------------------------------------------------------------- /src/assets/map/管线.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/管线.png -------------------------------------------------------------------------------- /src/assets/map/管线1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/管线1.png -------------------------------------------------------------------------------- /src/assets/map/管线2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/管线2.png -------------------------------------------------------------------------------- /src/assets/map/管线3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/管线3.png -------------------------------------------------------------------------------- /src/assets/map/经纬网格.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/经纬网格.png -------------------------------------------------------------------------------- /src/assets/map/船舶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/船舶.png -------------------------------------------------------------------------------- /src/assets/map/船舶聚合.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/船舶聚合.png -------------------------------------------------------------------------------- /src/assets/map/警戒线.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/警戒线.png -------------------------------------------------------------------------------- /src/assets/map/设备库.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/设备库.png -------------------------------------------------------------------------------- /src/assets/map/进水温度.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/进水温度.png -------------------------------------------------------------------------------- /src/assets/map/风场.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/map/风场.png -------------------------------------------------------------------------------- /src/assets/openhand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/openhand.cur -------------------------------------------------------------------------------- /src/assets/platformLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/platformLogo.png -------------------------------------------------------------------------------- /src/assets/sea-risk-legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/sea-risk-legend.png -------------------------------------------------------------------------------- /src/assets/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/setting.png -------------------------------------------------------------------------------- /src/assets/shipLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/shipLogo.png -------------------------------------------------------------------------------- /src/assets/shipLogo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/shipLogo1.png -------------------------------------------------------------------------------- /src/assets/tool/area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/area.png -------------------------------------------------------------------------------- /src/assets/tool/arrow.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/arrow.ico -------------------------------------------------------------------------------- /src/assets/tool/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/circle.png -------------------------------------------------------------------------------- /src/assets/tool/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/clear.png -------------------------------------------------------------------------------- /src/assets/tool/dashed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/dashed.png -------------------------------------------------------------------------------- /src/assets/tool/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/del.png -------------------------------------------------------------------------------- /src/assets/tool/distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/distance.png -------------------------------------------------------------------------------- /src/assets/tool/distance1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/distance1.png -------------------------------------------------------------------------------- /src/assets/tool/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/edit.png -------------------------------------------------------------------------------- /src/assets/tool/flag_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/flag_icon.png -------------------------------------------------------------------------------- /src/assets/tool/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/font.png -------------------------------------------------------------------------------- /src/assets/tool/icon_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/icon_marker.png -------------------------------------------------------------------------------- /src/assets/tool/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/line.png -------------------------------------------------------------------------------- /src/assets/tool/line_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/line_marker.png -------------------------------------------------------------------------------- /src/assets/tool/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/location_icon.png -------------------------------------------------------------------------------- /src/assets/tool/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/more.png -------------------------------------------------------------------------------- /src/assets/tool/polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/polygon.png -------------------------------------------------------------------------------- /src/assets/tool/position.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/position.png -------------------------------------------------------------------------------- /src/assets/tool/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/screenshot.png -------------------------------------------------------------------------------- /src/assets/tool/shape_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/shape_marker.png -------------------------------------------------------------------------------- /src/assets/tool/sight_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/sight_icon.png -------------------------------------------------------------------------------- /src/assets/tool/sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/sign.png -------------------------------------------------------------------------------- /src/assets/tool/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/square.png -------------------------------------------------------------------------------- /src/assets/tool/star_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/tool/star_icon.png -------------------------------------------------------------------------------- /src/assets/typhoon-legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/typhoon-legend.png -------------------------------------------------------------------------------- /src/assets/typhoon-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/typhoon-logo-white.png -------------------------------------------------------------------------------- /src/assets/typhoon-logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/typhoon-logo.gif -------------------------------------------------------------------------------- /src/assets/typhoon-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/typhoon-logo.png -------------------------------------------------------------------------------- /src/assets/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/upload.png -------------------------------------------------------------------------------- /src/assets/xiangliang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/xiangliang.png -------------------------------------------------------------------------------- /src/assets/油气田平台.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/assets/油气田平台.png -------------------------------------------------------------------------------- /src/components/progress/Progress.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 71 | 89 | -------------------------------------------------------------------------------- /src/components/zTree/ZTree.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 236 | 237 | 252 | 260 | -------------------------------------------------------------------------------- /src/components/zTree/ZTreeMobile.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 233 | 234 | 249 | 281 | -------------------------------------------------------------------------------- /src/config/index.js: -------------------------------------------------------------------------------- 1 | import Store from 'store2'; 2 | 3 | /** 4 | * 常量配置项 5 | */ 6 | 7 | // 天地图 底图 8 | const TDT = [ 9 | ['vec_w','vec','w'], 10 | ['cva_w','cva','w'], 11 | ['img_w','img','w'], 12 | ['cia_w','cia','w'], 13 | ['cta_w','cta','w'], 14 | ['ibo_w','ibo','w'], 15 | ['eia_w','eia','w'], 16 | ['eva_w','eva','w'], 17 | ['cva_w','cva','w'], 18 | ] 19 | // 天地图 底图 随机数 20 | // const Num = Math.floor(Math.random() * 8) 21 | const Num = 2; 22 | 23 | export default { 24 | /** 25 | * 26 | * 项目 请求及跳转时 所用地址 开始 27 | * 开发环境对应文件 .env.development 28 | * 测试环境对应文件 .env.test 29 | * 生产环境对应文件 .env.production 30 | * ==== 测试环境及生产环境文件在开发过程中 请勿改动 !!! === 31 | */ 32 | 33 | // server url 34 | serverUrl:process.env.VUE_APP_SERVER_URL, 35 | // url 36 | baseURL: process.env.VUE_APP_BASE_URL , 37 | // Ops Service类接口地址 38 | authURL: process.env.VUE_APP_AUTH_URL , 39 | 40 | /** 41 | * 项目 请求及跳转时 所用地址 结束 42 | */ 43 | 44 | // 请求的失效时间 45 | httpTimeout: 60000, 46 | // 用户信息 47 | setUserInfo: function(userInfo) { 48 | Store.session('userInfo', userInfo) 49 | }, 50 | getUserInfo: function() { 51 | return Store.session('userInfo') 52 | // return {username: 'admin'} 53 | }, 54 | getLn: function() { 55 | return this.getCookie('ln') 56 | }, 57 | getCookie: function(cookieName) { 58 | if (document.cookie.length > 0) { 59 | let start = document.cookie.indexOf(cookieName + '=') 60 | if (start !== -1) { 61 | start = start + cookieName.length + 1 62 | let end = document.cookie.indexOf(';', start) 63 | if (end === -1) end = document.cookie.length 64 | return document.cookie.substring(start, end) 65 | } 66 | } 67 | return null 68 | }, 69 | 70 | // ==== leaflet map===== 71 | map:{ 72 | 73 | // 地图底图 74 | mapSource:{ 75 | A:"http://{s}.tile.osm.org/{z}/{x}/{y}.png", 76 | B:'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 77 | C:'http://a.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', 78 | blue:'http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}', 79 | almap:"http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}", // 高德底图 80 | esri:'http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', // 高德底图 81 | TianDiTu:`http://t0.tianditu.gov.cn/${TDT[Num][0]}/wmts?layer=${TDT[Num][1]}&style=default&tilematrixset=${TDT[Num][2]}&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}&tk=099824dfa2a57512929e6b9d3c6b0eaa`, 82 | }, 83 | zoom:5, //默认缩放 84 | minZoom: 4, //最小绽放层级 85 | maxZoom: 20,//最大绽放层级z 86 | center:[ 30.56226095049944, 108.14941406250001], // 默认地图中心 87 | heatmapConfg:{ // 热力图配置 88 | 'radius': 0.4, 89 | 'maxOpacity': 0.75, 90 | "minOpacity":0, 91 | 'scaleRadius': true, 92 | 'useLocalExtrema': false, 93 | 'blur':1, 94 | latField: 'a', 95 | lngField: 'o', 96 | valueField: 'v', 97 | gradient: { 98 | "0": "rgba(90,86,143,1)", 99 | "0.1": "rgba(72,104,181,1)", 100 | "0.2": "rgba(69,151,168,1)", 101 | "0.3": "rgba(81,180,98,1)", 102 | "0.4": "rgba(106,192,82,1)", // 颜色过渡 103 | "0.5": "rgba(177,209,67,1)", // 颜色过渡 104 | "0.6": "rgba(215,206,60,1)", // 颜色过渡 105 | "0.7": "rgba(214,172,64,1)", // 颜色过渡 106 | "0.8": "rgba(213,137,72,1)", // 颜色过渡 107 | "0.85": "rgba(205,94,93,1)", // 颜色过渡 108 | "0.9": "rgba(144,28,79,1)", // 颜色过渡 109 | "0.99": "rgba(43,0,1,1)" // 颜色过渡 110 | } 111 | }, 112 | customIcon:{ 113 | iconSize:[20,20], 114 | iconAnchor:[10,10] 115 | } 116 | }, 117 | typhoon: { 118 | legendList: [{color: '#00fedf', name: '热带低压(TD)', type: 'fill'}, {color: '#fff45c', name: '热带风暴(TS)', type: 'fill'}, {color: '#fe902c', name: '强热带风暴(STS)', type: 'fill'}, {color: '#fe0404', name: '台风(TY)', type: 'fill'}, {color: '#fe3aa3', name: '强台风(STY)', type: 'fill'}, {color: '#ae00d9', name: '超强台风(Super TY)', type: 'fill'}, {color: '174, 0, 217', name: '12级风圈', type: 'noFill'}, {color: '254, 144, 44', name: '10级风圈', type: 'noFill'}, {color: '255, 244, 92', name: '7级风圈', type: 'noFill'}] 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /src/http/events.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 风险分析事件库 3 | */ 4 | const uri = '/v1/typhoon-case-info' 5 | const uri1 = '/v1/typhoon-case-report' 6 | 7 | export const getPageAnalysis = uri + "/page_analysis"; 8 | export const getPageRisk = uri + "/page_assessment"; 9 | export const saveStorageEvents = uri + "/save_storage_events"; 10 | export const deleteById = uri + "/"; 11 | export const downloadById = uri1 + "/download"; 12 | export const shareTo = uri1 + "/forward"; 13 | export const checkExist = uri1 + "/whether/"; 14 | export const importEvents = uri + "/read_events/"; 15 | -------------------------------------------------------------------------------- /src/http/field-info.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 相关 3 | */ 4 | const uri = '/v1/typhoon-oil-field' 5 | export const page = uri + '/page'; 6 | export const add = uri; 7 | export const edit = uri; 8 | export const deleteById = uri; 9 | export const getById = uri + '/'; 10 | export const getFieldList = uri + '/list'; 11 | -------------------------------------------------------------------------------- /src/http/index.js: -------------------------------------------------------------------------------- 1 | import config from '../config' 2 | import axios from 'axios' 3 | import Qs from 'qs' 4 | import {Message,MessageBox} from 'element-ui' 5 | import router from '@/router' 6 | import store from '@/store' 7 | import Store from 'store2' 8 | 9 | axios.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8'; 10 | axios.defaults.crossDomain = true; 11 | axios.defaults.withCredentials = true; //设置cross跨域 并设置访问权限 允许跨域携带cookie信息 12 | axios.defaults.headers.common['Authorization'] = ''; // 设置请求头为 Authorization 13 | axios.defaults.timeout = config.httpTimeout; // 请求的失效时间 14 | 15 | 16 | // http response 拦截器 17 | axios.interceptors.response.use( 18 | (response) => { 19 | //拦截响应,做统一处理 20 | if (response.data.code > -1) { 21 | if (response.data.data == [] && response.data.data == ''){ 22 | // Message({ 23 | // type:'warning', 24 | // message:'数据获取失败,请稍后重试', 25 | // center:true, 26 | // offset:300 27 | // }) 28 | return Promise.resolve(response) 29 | }else{ 30 | return Promise.resolve(response) 31 | } 32 | }else { 33 | if (response.data.code == -2) { 34 | MessageBox.confirm('您未登录!请先登录后,再进行操作。是否登录?', '提示', { 35 | confirmButtonText: '登录', 36 | cancelButtonText: '取消', 37 | type: 'warning', 38 | center: true 39 | }).then(() => { 40 | store.commit('moduleSystem/SHOW_LOGIN_REGISTER') 41 | }).catch((e) => { 42 | console.log(e); 43 | }); 44 | return Promise.resolve(response) 45 | } else if (response.data.code == -1) { 46 | // Message.error('未查询到数据,请重新选择时间',{ 47 | // center:true, 48 | // top:500 49 | // }) 50 | return Promise.resolve(response) 51 | } else { 52 | return Promise.resolve(response) 53 | } 54 | } 55 | store.commit('moduleMap/SET_LAYER_FLAG',true) 56 | }, 57 | //接口错误状态处理,也就是说无响应时的处理 58 | (error) => { 59 | return Promise.reject(error.response.status) // 返回接口返回的错误信息 60 | }) 61 | 62 | 63 | 64 | // 重写 get post fromData 65 | export default { 66 | /** 67 | * get方法,对应get请求 68 | * @param {String} url [请求的url地址] 69 | * @param {Object} params [请求时携带的参数] 70 | */ 71 | get(url, params) { 72 | axios.defaults.baseURL = config.baseURL; 73 | try { 74 | return new Promise((resolve, reject) => { 75 | axios.get(url, { 76 | params: params 77 | }).then((d) => { 78 | // console.log('get===>',d) 79 | resolve(d.data) 80 | }).catch(err => { 81 | reject(err) 82 | }) 83 | }) 84 | } 85 | catch (e) { 86 | console.log(e) 87 | } 88 | }, 89 | /** 90 | * delete方法,对应delete请求 91 | * @param {String} url [请求的url地址] 92 | * @param {Object} params [请求时携带的参数] 93 | */ 94 | delete(url, params) { 95 | axios.defaults.baseURL = config.baseURL; 96 | return new Promise((resolve, reject) => { 97 | axios.delete(url, { 98 | params: params 99 | }).then(res => { 100 | // console.log('get===>',res) 101 | resolve(res.data) 102 | }).catch(err => { 103 | reject(err) 104 | }) 105 | }).catch((e) => {}) 106 | }, 107 | /** 108 | * post方法,对应post请求 109 | * @param {String} url [请求的url地址] 110 | * @param {Object} params [请求时携带的参数] 111 | */ 112 | post(url, params) { 113 | axios.defaults.baseURL = config.baseURL; 114 | return new Promise((resolve, reject) => { 115 | axios.post(url, Qs.stringify(params)) 116 | .then(res => { 117 | resolve(res.data) 118 | }) 119 | .catch(err => { 120 | reject(err) 121 | }) 122 | }).catch((e) => {}) 123 | }, 124 | listPost(url, params) { 125 | axios.defaults.baseURL = config.baseURL; 126 | return new Promise((resolve, reject) => { 127 | axios.post(url, params) 128 | .then(res => { 129 | resolve(res.data) 130 | }) 131 | .catch(err => { 132 | reject(err) 133 | }) 134 | }).catch((e) => {}) 135 | }, 136 | /** 137 | * formData,对应post请求,用来提交文件+数据 138 | * @param {String} url [请求的url地址] 139 | * @param {Object} params [请求时携带的参数] 140 | */ 141 | formData(url, params) { 142 | axios.defaults.baseURL = config.baseURL; 143 | return new Promise((resolve, reject) => { 144 | axios({ 145 | headers: { 146 | 'Content-Type': 'multipart/form-data'// ;boundary=----WebKitFormBoundaryQ6d2Qh69dv9wad2u 147 | }, 148 | transformRequest: [function (data) { // 在请求之前对data传参进行格式转换 149 | const formData = new FormData() 150 | Object.keys(data).forEach(key => { 151 | formData.append(key, data[key]) 152 | }) 153 | return formData 154 | }], 155 | url, 156 | method: 'post', 157 | data: params 158 | }).then(res => { 159 | resolve(res.data) 160 | }).catch(err => { 161 | reject(err) 162 | }) 163 | }).catch((e) => {}) 164 | }, 165 | /** 166 | * formData,对应post请求,用来提交文件+数据 167 | * @param {String} url [请求的url地址] 168 | * @param {Object} params [请求时携带的参数] 169 | */ 170 | formDataAuth(url, params) { 171 | axios.defaults.baseURL = config.authURL; 172 | return new Promise((resolve, reject) => { 173 | axios({ 174 | headers: { 175 | 'Content-Type': 'multipart/form-data'// ;boundary=----WebKitFormBoundaryQ6d2Qh69dv9wad2u 176 | }, 177 | transformRequest: [function (data) { // 在请求之前对data传参进行格式转换 178 | const formData = new FormData() 179 | Object.keys(data).forEach(key => { 180 | formData.append(key, data[key]) 181 | }) 182 | return formData 183 | }], 184 | url, 185 | method: 'post', 186 | data: params 187 | }).then(res => { 188 | resolve(res.data) 189 | }).catch(err => { 190 | reject(err) 191 | }) 192 | }).catch((e) => {}) 193 | }, 194 | /** 195 | * post方法,对应post请求,用于系统类接口使用 196 | * @param {String} url [请求的url地址] 197 | * @param {Object} params [请求时携带的参数] 198 | */ 199 | systemPost(url, params) { 200 | axios.defaults.baseURL = config.authURL 201 | return new Promise((resolve, reject) => { 202 | axios.post(url, Qs.stringify(params)) 203 | .then(res => { 204 | resolve(res.data) 205 | }) 206 | .catch(err => { 207 | reject(err) 208 | }) 209 | }).catch((e) => {}) 210 | }, 211 | /** 212 | * post方法,对应post请求,用于系统类接口使用 213 | * @param {String} url [请求的url地址] 214 | * @param {Object} params [请求时携带的参数] 215 | */ 216 | systemGet(url, params) { 217 | axios.defaults.baseURL = config.authURL; 218 | return new Promise((resolve, reject) => { 219 | axios.get(url, { 220 | params: params 221 | }).then(res => { 222 | resolve(res.data) 223 | }).catch(err => { 224 | reject(err) 225 | }) 226 | }).catch((e) => {}) 227 | }, 228 | /** 229 | * formData,对应post请求,用于系统类接口使用 230 | * @param {String} url [请求的url地址] 231 | * @param {Object} params [请求时携带的参数] 232 | */ 233 | systemForm(url, params) { 234 | axios.defaults.baseURL = config.authURL 235 | return new Promise((resolve, reject) => { 236 | axios({ 237 | headers: { 238 | 'Content-Type': 'multipart/form-data'// ;boundary=----WebKitFormBoundaryQ6d2Qh69dv9wad2u 239 | }, 240 | transformRequest: [function (data) { // 在请求之前对data传参进行格式转换 241 | const formData = new FormData() 242 | Object.keys(data).forEach(key => { 243 | formData.append(key, data[key]) 244 | }) 245 | return formData 246 | }], 247 | url, 248 | method: 'post', 249 | data: params 250 | }).then(res => { 251 | resolve(res.data) 252 | }).catch(err => { 253 | reject(err) 254 | }) 255 | }).catch((e) => {}) 256 | }, 257 | /** 258 | * systemPut,对应Put请求,用于系统类接口使用 259 | * @param {String} url [请求的url地址] 260 | * @param {Object} params [请求时携带的参数] 261 | */ 262 | systemPut(url, params) { 263 | axios.defaults.baseURL = config.authURL 264 | return new Promise((resolve, reject) => { 265 | axios({ 266 | headers: { 267 | 'Content-Type': 'multipart/form-data'// ;boundary=----WebKitFormBoundaryQ6d2Qh69dv9wad2u 268 | }, 269 | transformRequest: [function (data) { // 在请求之前对data传参进行格式转换 270 | const formData = new FormData() 271 | Object.keys(data).forEach(key => { 272 | formData.append(key, data[key]) 273 | }) 274 | return formData 275 | }], 276 | url, 277 | method: 'put', 278 | data: params 279 | }).then(res => { 280 | resolve(res.data) 281 | }).catch(err => { 282 | reject(err) 283 | }) 284 | }).catch((e) => {}) 285 | }, 286 | /** 287 | * put方法,对应put请求 288 | * @param {String} url [请求的url地址] 289 | * @param {Object} params [请求时携带的参数] 290 | */ 291 | put(url, params) { 292 | axios.defaults.baseURL = config.baseURL; 293 | return new Promise((resolve, reject) => { 294 | axios({ 295 | headers: { 296 | 'Content-Type': 'multipart/form-data'// ;boundary=----WebKitFormBoundaryQ6d2Qh69dv9wad2u 297 | }, 298 | transformRequest: [function (data) { // 在请求之前对data传参进行格式转换 299 | const formData = new FormData() 300 | Object.keys(data).forEach(key => { 301 | formData.append(key, data[key]) 302 | }) 303 | return formData 304 | }], 305 | url, 306 | method: 'put', 307 | data: params 308 | }).then(res => { 309 | resolve(res.data) 310 | }).catch(err => { 311 | reject(err) 312 | }) 313 | }).catch((e) => {}) 314 | }, 315 | } 316 | -------------------------------------------------------------------------------- /src/http/mapLayer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * api 请求url 3 | * import {test} from '../api' 4 | * this.$http(test,{...obj}).then() 5 | */ 6 | 7 | 8 | // 例子 9 | export const test = "/api/test"; 10 | 11 | 12 | export const getWindInfo = "/v1/typhoon-wind-field/getWindInfo"; // 风场数据接口 13 | export const getWindHotInfo = "/v1/typhoon-wind-field/getWindHotInfo"; // 风场热力数据接口 14 | export const getWaterDeptInfo = "/v1/typhoon-water-depth/getWaterDeptInfo"; // 水深接口 15 | export const getPlatCordonInfo = "/v1/typhoon-config/getPlatCordonInfo"; // 油汽平台接口 16 | export const getPipeLineList = "/v1/typhoon-pipeline/list"; // 管线平台接口 17 | export const getPortList = "/v1/typhoon-harbor/list"; // 港口平台接口 18 | export const getDeviceList = "/v1/typhoon-equipment-library/list"; // 应急设备接口 19 | export const getCurrentInfo = "/v1/typhoon-current/getCurrentInfo"; // 洋流数据接口 20 | export const getCurrentHotInfo = "/v1/typhoon-current/getCurrentHotInfo"; // 洋流热力数据接口 21 | export const getSaltInfo = "/v1/typhoon-salt-info/getSaltInfo"; // 盐度数据接口 22 | // export const getSaltInfo = "/v1/typhoon-salt-month/getSaltInfo"; // 盐度数据接口 23 | export const getAirTemperature = "/v1/typhoon-sea-temperature/getSeaTemperature"; // 气温数据接口 24 | export const getSeaTemperature = "/v1/typhoon-air-temperature/getAirTemperature"; // 海温数据接口 25 | export const getWaveInfo = "/v1/typhoon-wave-field/getWaveInfo"; // 海浪数据接口 26 | export const getWaveHotInfo = "/v1/typhoon-wave-field/getWaveHotInfo"; // 海浪热力数据接口 27 | export const getAirPressure = "/v1/typhoon-pressure/getPressureInfo"; // 气压数据接口 28 | 29 | export const getEarthWindInfo = "/v1/typhoon-earth-wind-filed/getInfo"; // 全球风场接口 30 | export const getEarthPressureInfo = "/v1/typhoon-earth-pressure-filed/getInfo"; // 全球气压接口 31 | export const getEarthCurrentInfo = "/v1/typhoon-earth-current-filed/getInfo"; // 全球洋流接口 32 | export const getEarthWaveInfo = "/v1/typhoon-earth-wave-hot-filed/getInfo"; // 全球海浪热力接口 33 | export const getEarthSeaTempInfo = "/v1/typhoon-earth-sea-temperature-filed/getInfo"; // 全球海温接口 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/http/platform-info.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 平台相关 3 | */ 4 | 5 | const uri = '/v1/typhoon-oil-platform' 6 | 7 | export const add = uri; 8 | export const page = uri + '/page'; 9 | export const deleteById = uri; 10 | export const edit = uri; 11 | export const getById = uri + '/info/'; 12 | -------------------------------------------------------------------------------- /src/http/platform.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 平台 3 | */ 4 | 5 | const uri = '/v1/typhoon-oil-platform' 6 | 7 | export const list = uri + "/get_list"; 8 | -------------------------------------------------------------------------------- /src/http/riskEstimate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 风险评估 3 | */ 4 | 5 | const uri = '/v1/typhoon-route-info' 6 | const uri1 = '/v1/typhoon-sea-risk' 7 | const uri2 = '/v1/typhoon-sea-risk-info' 8 | 9 | export const add = uri; 10 | export const page = uri + '/page'; 11 | export const deleteById = uri; 12 | export const edit = uri; 13 | export const download = uri + '/export'; 14 | export const downloadModel = uri + '/download'; 15 | export const uploadById = uri + '/import'; 16 | export const uploadNoId = uri + '/upload'; 17 | export const getAirLineList = uri + '/list'; 18 | export const getRouteAssessment = uri + '/route_assessment'; 19 | export const reGetRouteAssessment = uri + '/recalculate_route'; 20 | export const saveRouteEvent = uri + '/save_route_event'; 21 | export const getRouteInfo = uri + '/route_info'; 22 | export const getIntelligentRouteInfo = uri + '/intelligent_route'; 23 | export const seaRiskBigData = uri1 + '/list'; 24 | export const pointRiskEstimateDetail = uri2 + '/getRiskInfo'; 25 | -------------------------------------------------------------------------------- /src/http/ship.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 船舶 3 | */ 4 | const uri = '/v1/typhoon-ship-type' 5 | const uri1 = '/v1/typhoon-ais-base' 6 | 7 | export const list = uri + "/list"; 8 | export const getCompany = uri1 + "/get_company_name"; 9 | export const getShipType = uri1 + "/get_types"; 10 | export const getShipList = uri1 + "/list"; 11 | export const getDetailById = uri1; 12 | -------------------------------------------------------------------------------- /src/http/system.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 系统 3 | */ 4 | 5 | const uri = '/v1/auth' 6 | const uri1 = '/v1/sso' 7 | const uri2 = '/v1/sms/send-' 8 | const email = '/v1/email' 9 | 10 | export const login = uri + "/login"; 11 | export const loginApp = uri1 + "/app-login"; 12 | export const register = uri1 + "/external-register"; 13 | export const sendMsg = uri2; 14 | export const logout = uri1 + '/logout'; 15 | export const sendEmailCode = email + '/send'; 16 | export const emailBind = email + '/bind-'; 17 | export const typhoon = `/v1/typhoon-feedback` 18 | 19 | -------------------------------------------------------------------------------- /src/http/typhoon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 台风 3 | */ 4 | 5 | const uri = '/v1/typhoon' 6 | 7 | export const list = uri + "/list/"; //台风列表 8 | export const getDetailById = uri; // 台风详情 9 | export const getRiskStatistics = uri + '/impact_risk_statistics/'; 10 | export const getSpacingDistancePlatform = uri + '/spacing_distance_platform'; // 台风间距 平台 11 | export const getSpacingDistanceArea = uri + '/spacing_distance_field'; // 台风间距 作业区 12 | export const getSpacingDistanceShip = uri + '/spacing_distance_ship'; // 台风间距 船舶 13 | export const downloadModel = uri + '/json_templates'; // 台风模板下载 14 | export const uploadNoId = uri + '/upload_custom_typhoon'; // 自定义台风上传 15 | export const getListCustom = uri + '/list_custom'; // 获取自定义台风列表 16 | export const getTyphoonUpdateTime = uri + '/get_latest_typhoon'; // 获取自定义台风列表 17 | -------------------------------------------------------------------------------- /src/http/typhoonConfig.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 台风 3 | */ 4 | 5 | const uri = '/v1/typhoon-config' 6 | 7 | export const getPlatCordonInfo = uri + "/getConfigInfo"; 8 | export const updataConfig = uri; 9 | -------------------------------------------------------------------------------- /src/http/user.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 系统 3 | */ 4 | 5 | const uri = '/v1/user' 6 | 7 | export const userInfo = uri + "/info"; 8 | export const changePassword = uri + '/password' 9 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | // 引入elementui 4 | import ElementUI from 'element-ui' 5 | import 'element-ui/lib/theme-chalk/index.css' 6 | // 引入iview 7 | import ViewUI from 'view-design'; 8 | import 'view-design/dist/styles/iview.css'; 9 | // 引入主题 10 | import router from './router' 11 | import store from './store' 12 | import http from './http' 13 | // import * as L from 'leaflet' 14 | import global from './config/index' 15 | // import 'leaflet/dist/leaflet.css'; 16 | import './assets/common.css'; 17 | import './registerServiceWorker' 18 | // 引入echarts 19 | import echarts from 'echarts' 20 | // 引入vue-echarts 21 | import ECharts from 'vue-echarts' 22 | import 'echarts/lib/component/tooltip' 23 | // 引入zTree 24 | import "./plugins/zTree/js/jquery-1.4.4.min.js"; 25 | import "./plugins/zTree/js/jquery.ztree.core.min.js"; 26 | import "./plugins/zTree/js/jquery.ztree.excheck.min.js"; 27 | import "./plugins/zTree/js/jquery.ztree.exhide.min.js"; 28 | // 引入leaflet.draw 29 | import 'leaflet-draw' 30 | import 'leaflet-draw/dist/leaflet.draw.css' 31 | // el-dialog 拖拽 32 | import './utils/dialogDrag' 33 | import vant from './plugins/vant' 34 | 35 | 36 | Vue.component('v-chart', ECharts) 37 | 38 | Vue.use(ElementUI); 39 | Vue.use(ViewUI); 40 | Vue.use(vant); 41 | 42 | Vue.config.productionTip = false; 43 | Vue.prototype.Global = global; 44 | // Vue.L = Vue.prototype.$L = L; // 全局注册leaflet 45 | Vue.prototype.$http = http; // 全局注册$http --> this.$http 46 | Vue.prototype.$echarts = echarts; // 全局注册echarts 47 | 48 | 49 | /*leaflet draw tooltips*/ 50 | L.drawLocal = { 51 | draw: { 52 | toolbar: {actions: { title: '取消绘制', text: '取消' }, finish: { title: '完成绘制', text: '完成' }, undo: { title: '删除最后绘制的点', text: '删除最后一点' }, buttons: { polyline: '画线', polygon: '画多边形', rectangle: '画矩形', circle: '画圆', marker: '画标记', circlemarker: '画圆形标记' } }, 53 | handlers: {circle: {tooltip: {start: '单击并拖动可绘制圆'}, radius: '半径'}, circlemarker: {tooltip: {start: '点击地图放置圆形标记'}}, marker: {tooltip: {start: '点击地图放置标记'}}, polygon: {tooltip: {start: '单击开始绘制多边形', cont: '单击以继续绘制多边形', end: '双击可完成多形形绘制'}}, polyline: {error: '异常: 形状边缘不能交叉!', tooltip: {start: '点击开始画线', cont: '单击以继续绘制线条', end: '双击完成线条绘制'}}, rectangle: {tooltip: {start: '单击并拖动以绘制矩形'}}, simpleshape: {tooltip: {end: '释放鼠标完成绘图'}}} 54 | }, 55 | edit: { 56 | toolbar: {actions: {save: {title: '保存改动', text: '保存'}, cancel: {title: '取消编辑,丢弃所有更改', text: '取消'}, clearAll: {title: '清除所有标记', text: '清除所有'}}, buttons: {edit: '编辑图层', editDisabled: '不需要编辑图层', remove: '删除图层', removeDisabled: '没有要删除的图层'}}, 57 | handlers: {edit: {tooltip: {text: '拖动节点或标记来编辑图形', subtext: '单击“取消”撤消更改'}}, remove: {tooltip: {text: '单击某个标记进行删除'}}}} 58 | }; 59 | 60 | 61 | 62 | 63 | /* leaflet icon */ 64 | delete L.Icon.Default.prototype._getIconUrl; 65 | L.Icon.Default.mergeOptions({ 66 | iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'), 67 | iconUrl: require('leaflet/dist/images/marker-icon.png'), 68 | shadowUrl: require('leaflet/dist/images/marker-shadow.png'), 69 | }); 70 | 71 | console.log(process.env) 72 | 73 | new Vue({ 74 | router, 75 | store, 76 | render: h => h(App) 77 | }).$mount('#app'); 78 | -------------------------------------------------------------------------------- /src/mock/data/deviceData.js: -------------------------------------------------------------------------------- 1 | export default{ 2 | "code": 0, 3 | "data": [ 4 | { 5 | "id": "1", 6 | "code": "LIBR0190201151250236X9V", 7 | "name": "天津联众修船工程有限公司应急仓库", 8 | "longitude": "117.43591", 9 | "latitude": "38.58864" 10 | }, 11 | { 12 | "id": "30", 13 | "code": "LIBR0190214110438073Q67", 14 | "name": "滚装溢油应急库", 15 | "longitude": "117.4702", 16 | "latitude": "38.5914" 17 | }, 18 | { 19 | "id": "3", 20 | "code": "LIBR0190131092820782BY4", 21 | "name": "456库", 22 | "longitude": "113.492", 23 | "latitude": "33.55191" 24 | }, 25 | { 26 | "id": "4", 27 | "code": "LIBR0190130160704167YSM", 28 | "name": "123设备库", 29 | "longitude": "114.492", 30 | "latitude": "38.95191" 31 | }, 32 | { 33 | "id": "5", 34 | "code": "LIBR0190202150736181ZFT", 35 | "name": "天津港轮驳有限公司东突堤", 36 | "longitude": "117.47207", 37 | "latitude": "38.582982" 38 | }, 39 | { 40 | "id": "6", 41 | "code": "LIBR01902021350171435RZ", 42 | "name": "孚宝码头", 43 | "longitude": "117.4508", 44 | "latitude": "38.57" 45 | }, 46 | { 47 | "id": "7", 48 | "code": "LIBR0190202082214150MLF", 49 | "name": "天津南港工业区港务有限公司码头厂房材料设备库", 50 | "longitude": "117.3548", 51 | "latitude": "38.4522" 52 | }, 53 | { 54 | "id": "8", 55 | "code": "LIBR0190201133415972L15", 56 | "name": "天津汉海环保设备有限公司", 57 | "longitude": "117.46271", 58 | "latitude": "39.1249" 59 | }, 60 | { 61 | "id": "10", 62 | "code": "LIBR01902131125105833EN", 63 | "name": "应急集装箱", 64 | "longitude": "117.471857", 65 | "latitude": "38.5828" 66 | }, 67 | { 68 | "id": "12", 69 | "code": "LIBR0190211102440947SDE", 70 | "name": "PPE应急库", 71 | "longitude": "117.423", 72 | "latitude": "38.5948" 73 | }, 74 | { 75 | "id": "13", 76 | "code": "LIBR0190202105221916NER", 77 | "name": "天津汉海环保设备有限公司", 78 | "longitude": "117.461542", 79 | "latitude": "39.122839" 80 | }, 81 | { 82 | "id": "14", 83 | "code": "LIBR01902011007492586S3", 84 | "name": "仓库", 85 | "longitude": "117.4141", 86 | "latitude": "38.5946" 87 | }, 88 | { 89 | "id": "15", 90 | "code": "LIBR0190201141536302CK7", 91 | "name": "天津盛灏海洋环保应急仓库", 92 | "longitude": "117.6321", 93 | "latitude": "31.2533" 94 | }, 95 | { 96 | "id": "16", 97 | "code": "LIBR0190214130457631ADK", 98 | "name": "公司应急库", 99 | "longitude": "117.454", 100 | "latitude": "38.598" 101 | }, 102 | { 103 | "id": "17", 104 | "code": "LIBR0190214102504594LMY", 105 | "name": "应急物资集装箱2", 106 | "longitude": "117.461189", 107 | "latitude": "38.595026" 108 | }, 109 | { 110 | "id": "18", 111 | "code": "LIBR0190214102007760HBA", 112 | "name": "应急物资集装箱1", 113 | "longitude": "117.4631", 114 | "latitude": "38.5924" 115 | }, 116 | { 117 | "id": "19", 118 | "code": "LIBR0190214102609358FYC", 119 | "name": "沙箱存放点", 120 | "longitude": "117.461248", 121 | "latitude": "38.593785" 122 | }, 123 | { 124 | "id": "20", 125 | "code": "LIBR0190214095138227KRT", 126 | "name": "南疆工作船码头(南疆港区)仓库", 127 | "longitude": "117.45044", 128 | "latitude": "38.5836" 129 | }, 130 | { 131 | "id": "21", 132 | "code": "LIBR019021409431977712J", 133 | "name": "船舶分公司工作船码头(海河)仓库", 134 | "longitude": "117.42208", 135 | "latitude": "38.59889" 136 | }, 137 | { 138 | "id": "22", 139 | "code": "LIBR0190214100626812TQ3", 140 | "name": "东疆工作船码头(东疆)仓库", 141 | "longitude": "117.47705", 142 | "latitude": "38.59064" 143 | }, 144 | { 145 | "id": "23", 146 | "code": "LIBR0190131092820782BY4", 147 | "name": "456库", 148 | "longitude": "114.492", 149 | "latitude": "38.5836" 150 | }, 151 | { 152 | "id": "24", 153 | "code": "LIBR0190130160704167YSM", 154 | "name": "123设备库", 155 | "longitude": "114.492", 156 | "latitude": "38.5836" 157 | }, 158 | { 159 | "id": "25", 160 | "code": "LIBR0190212121953868TN2", 161 | "name": "燃供南疆防污染应急库", 162 | "longitude": "117.451775", 163 | "latitude": "38.573509" 164 | }, 165 | { 166 | "id": "26", 167 | "code": "LIBR0190212121543996RYU", 168 | "name": "燃供北疆防污染应急物资库", 169 | "longitude": "117.452279", 170 | "latitude": "38.584787" 171 | }, 172 | { 173 | "id": "27", 174 | "code": "LIBR0190212121953868TN2", 175 | "name": "燃供南疆防污染应急库", 176 | "longitude": "117.451775", 177 | "latitude": "38.573509" 178 | }, 179 | { 180 | "id": "28", 181 | "code": "LIBR0190212121543996RYU", 182 | "name": "燃供北疆防污染应急物资库", 183 | "longitude": "117.452279", 184 | "latitude": "38.584787" 185 | }, 186 | { 187 | "id": "29", 188 | "code": "LIBR0190215150812803TRW", 189 | "name": "应急物资库", 190 | "longitude": "117.492", 191 | "latitude": "38.55191" 192 | }, 193 | { 194 | "id": "31", 195 | "code": "LIBR0190218085101642QG0", 196 | "name": "溢油应急库", 197 | "longitude": "117.52354", 198 | "latitude": "38.535981" 199 | }, 200 | { 201 | "id": "32", 202 | "code": "LIBR0190215141439412ASW", 203 | "name": "中交博迈科应急设备仓库", 204 | "longitude": "117.43513", 205 | "latitude": "38.59497" 206 | }, 207 | { 208 | "id": "33", 209 | "code": "LIBR0190213155138209Z59", 210 | "name": "应急集装箱", 211 | "longitude": "117.455671", 212 | "latitude": "39.02327" 213 | }, 214 | { 215 | "id": "34", 216 | "code": "LIBR0190218114028749EE0", 217 | "name": "天津中心渔港临时溢油应急设备库", 218 | "longitude": "117.5112", 219 | "latitude": "39.104" 220 | }, 221 | { 222 | "id": "35", 223 | "code": "LIBR0190212134625943R8A", 224 | "name": "天津港高沙岭港区溢油应急设备库", 225 | "longitude": "117.35719", 226 | "latitude": "38.45415" 227 | }, 228 | { 229 | "id": "36", 230 | "code": "LIBR0190212135224606LYG", 231 | "name": "大沽口溢油应急设备库", 232 | "longitude": "117.4326", 233 | "latitude": "38.5732" 234 | }, 235 | { 236 | "id": "37", 237 | "code": "LIBR01902121355007102QT", 238 | "name": "南港工业区海上溢油应急设备库", 239 | "longitude": "117.35719", 240 | "latitude": "38.45415" 241 | }, 242 | { 243 | "id": "38", 244 | "code": "LIBR0190211134709613756", 245 | "name": "应急物资库", 246 | "longitude": "117.4521", 247 | "latitude": "38.5652" 248 | }, 249 | { 250 | "id": "39", 251 | "code": "LIBR01902121320014091RG", 252 | "name": "东方海陆应急物资库", 253 | "longitude": "117.787772", 254 | "latitude": "38.98725" 255 | }, 256 | { 257 | "id": "40", 258 | "code": "LIBR01902130937554892CR", 259 | "name": "滨海石化库房", 260 | "longitude": "117.624", 261 | "latitude": "39.029" 262 | }, 263 | { 264 | "id": "41", 265 | "code": "LIBR01902151436304191QN", 266 | "name": "叉车队南库", 267 | "longitude": "117.4345", 268 | "latitude": "38.5913" 269 | }, 270 | { 271 | "id": "42", 272 | "code": "LIBR0190215143110590ESN", 273 | "name": "叉车队北库", 274 | "longitude": "117.4345", 275 | "latitude": "38.5913" 276 | }, 277 | { 278 | "id": "43", 279 | "code": "LIBR0190215141543142HS2", 280 | "name": "自有设备库", 281 | "longitude": "117.4122", 282 | "latitude": "38.4522" 283 | }, 284 | { 285 | "id": "53", 286 | "code": "LIBR01902151418579245UN", 287 | "name": "沧州渤海新区航泰船舶服务有限公司", 288 | "longitude": "117.749947", 289 | "latitude": "38.304164" 290 | }, 291 | { 292 | "id": "63", 293 | "code": "LIBR01902131654434635XB", 294 | "name": "威海江海缘溢油应急设备库", 295 | "longitude": "122.0836", 296 | "latitude": "37.242" 297 | }, 298 | { 299 | "id": "65", 300 | "code": "LIBR01902151833136188X1", 301 | "name": "东港应急仓库", 302 | "longitude": "118.5306", 303 | "latitude": "37.1612" 304 | }, 305 | { 306 | "id": "66", 307 | "code": "LIBR0181229103922830PLB", 308 | "name": "澜筹船务应急仓库", 309 | "longitude": "119.11622", 310 | "latitude": "37.14867" 311 | }, 312 | { 313 | "id": "67", 314 | "code": "LIBR01812291123570614XR", 315 | "name": "森达美西港仓库", 316 | "longitude": "119.10499", 317 | "latitude": "37.15183" 318 | }, 319 | { 320 | "id": "68", 321 | "code": "LIBR0190104141055873X44", 322 | "name": "汇海危废仓库", 323 | "longitude": "119.041608", 324 | "latitude": "37.063059" 325 | }, 326 | { 327 | "id": "69", 328 | "code": "LIBR0181229112603104YJM", 329 | "name": "山东高速应急仓库", 330 | "longitude": "119.9395", 331 | "latitude": "37.1403" 332 | }, 333 | { 334 | "id": "70", 335 | "code": "LIBR0181229112746893N56", 336 | "name": "森达美液化品应急仓库", 337 | "longitude": "119.11753", 338 | "latitude": "37.165" 339 | }, 340 | { 341 | "id": "71", 342 | "code": "LIBR0190103153327326NNQ", 343 | "name": "光明协议仓库", 344 | "longitude": "120.458127", 345 | "latitude": "36.173168" 346 | }, 347 | { 348 | "id": "72", 349 | "code": "LIBR0190104113412334URC", 350 | "name": "森达美东港仓库", 351 | "longitude": "119.11514", 352 | "latitude": "37.1463" 353 | }, 354 | { 355 | "id": "73", 356 | "code": "LIBR0181229113037170HA4", 357 | "name": "寿光港应急仓库", 358 | "longitude": "118.52662", 359 | "latitude": "37.16144" 360 | }, 361 | { 362 | "id": "75", 363 | "code": "LIBR0190213183714663JNE", 364 | "name": "应急设备库二号", 365 | "longitude": "118.562286", 366 | "latitude": "38.05026" 367 | }, 368 | { 369 | "id": "76", 370 | "code": "LIBR0190213183746507UJP", 371 | "name": "应急设备库三号", 372 | "longitude": "118.562286", 373 | "latitude": "38.05026" 374 | }, 375 | { 376 | "id": "77", 377 | "code": "LIBR0190213183357350V19", 378 | "name": "应急设备库一号", 379 | "longitude": "118.562286", 380 | "latitude": "38.050206" 381 | }, 382 | { 383 | "id": "78", 384 | "code": "LIBR0190213183810493WLU", 385 | "name": "应急设备库四号", 386 | "longitude": "118.562286", 387 | "latitude": "38.05026" 388 | }, 389 | { 390 | "id": "79", 391 | "code": "LIBR0190218143856539ES2", 392 | "name": "码头公司应急设备库", 393 | "longitude": "118.5936", 394 | "latitude": "37.2297" 395 | }, 396 | { 397 | "id": "80", 398 | "code": "LIBR0190214090910306J5A", 399 | "name": "应急设备库", 400 | "longitude": "118.56593", 401 | "latitude": "38.05202" 402 | }, 403 | { 404 | "id": "82", 405 | "code": "LIBR01902151027216839HG", 406 | "name": "溢油应急设备库", 407 | "longitude": "122.04858", 408 | "latitude": "40.14356" 409 | }, 410 | { 411 | "id": "83", 412 | "code": "LIBR0190213145620203W75", 413 | "name": "防污器材库", 414 | "longitude": "120.6396", 415 | "latitude": "37.7786" 416 | }, 417 | { 418 | "id": "86", 419 | "code": "LIBR01902141033355063LJ", 420 | "name": "华电莱州港务有限公司防溢油物资库", 421 | "longitude": "120.01172", 422 | "latitude": "37.26566" 423 | }, 424 | { 425 | "id": "87", 426 | "code": "LIBR0190215155427581VJ8", 427 | "name": "山东牧源发展有限公司溢油应急设备库", 428 | "longitude": "120.19159", 429 | "latitude": "37.40887" 430 | }, 431 | { 432 | "id": "88", 433 | "code": "LIBR0190218153503015F83", 434 | "name": "隆海造船仓库", 435 | "longitude": "121.2516", 436 | "latitude": "37.356" 437 | }, 438 | { 439 | "id": "89", 440 | "code": "LIBR0190211115032588P6W", 441 | "name": "烟台远洲船务溢油应急设备库", 442 | "longitude": "119.947", 443 | "latitude": "37.412" 444 | }, 445 | { 446 | "id": "1132234933880123393", 447 | "code": "12345689", 448 | "name": "wode", 449 | "longitude": "112.245519", 450 | "latitude": "30.340843" 451 | }, 452 | { 453 | "id": "1149593538710642689", 454 | "code": "10085", 455 | "name": "测试仓库", 456 | "longitude": "120.402529", 457 | "latitude": "36.312885" 458 | } 459 | ], 460 | "msg": "执行成功" 461 | } 462 | -------------------------------------------------------------------------------- /src/mock/data/index.js: -------------------------------------------------------------------------------- 1 | import windData from "./windData" 2 | import portData from "./portData" 3 | import seaCurrentData from "./seaCurrentData" 4 | import seaWaveData from "./sea-wave" 5 | import salinityData from "./salinit" 6 | import pressureData from "./pressure" 7 | import deviceData from "./deviceData" 8 | import temperatureData from "./temperature" 9 | 10 | export default { 11 | windData: windData, 12 | PORT_FLAG: portData, 13 | seaCurrentData: seaCurrentData, 14 | seaWaveData: seaWaveData, 15 | salinityData: salinityData, 16 | pressureData: pressureData, 17 | temperatureData: temperatureData, 18 | DEVICE_FLAG: deviceData 19 | } 20 | -------------------------------------------------------------------------------- /src/mock/testData.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 测试用数据 3 | */ 4 | 5 | // 热力图 6 | export const testHeatmapData = { 7 | // max: 100, 8 | data: [{a: 36.6408, o: 120.7728, v: 3}, 9 | {a: 36.12341, o: 120.55, v: 1}, 10 | {a: 36.12341, o: 120.55, v: 9}, 11 | {a: 36.12341, o: 120.55, v: 8}, 12 | {a: 36.12341, o: 120.55, v: 7}, 13 | {a: 36.12341, o: 120.55, v: 6}, 14 | {a: 36.12341, o: 120.55, v: 5} 15 | ] 16 | } 17 | 18 | 19 | // 热力图 20 | export const testDeviceData = { 21 | // max: 100, 22 | data: [{lat: 35.51823901412712, lng: 119.63287353515625}, 23 | {lat: 35.61425872774833, lng: 119.68917846679689}, 24 | {lat: 35.644380711936954, lng: 119.94735717773439},] 25 | } 26 | 27 | // 热力图 28 | export const testPortData = { 29 | // max: 100, 30 | data: [{lat: 36.197924226939875, lng: 120.14099121093751}, 31 | {lat: 36.120351096926775, lng: 120.09704589843751}, 32 | {lat: 36.07155157154837, lng: 120.14923095703126}, 33 | ] 34 | } 35 | 36 | 37 | // 热力图 38 | export const testPipeLineData = { 39 | // max: 100, 40 | data: [{ 41 | pipelineType:'1', 42 | pipelineRoute:[['36.197924226939875','120.14099121093751'],['36.120351096926775','120.09704589843751'],['36.07155157154837','120.14923095703126']] 43 | } 44 | ] 45 | } 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/plugins/vant.js: -------------------------------------------------------------------------------- 1 | import 'vant/lib/index.css' 2 | import { ImagePreview, DatetimePicker, Button, Field, Cell, RadioGroup, Radio, 3 | CellGroup, Toast, Tabbar, TabbarItem, PullRefresh, List, Dialog, Row, Col } from 'vant' 4 | export default { 5 | install (Vue) { 6 | Vue.use(Button) 7 | .use(Field) 8 | .use(Cell) 9 | .use(CellGroup) 10 | .use(Toast) 11 | .use(Tabbar) 12 | .use(TabbarItem) 13 | .use(PullRefresh) 14 | .use(List) 15 | .use(Dialog) 16 | .use(DatetimePicker) 17 | .use(ImagePreview) 18 | .use(RadioGroup) 19 | .use(Radio) 20 | .use(Row) 21 | .use(Col) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/plugins/zTree/css/awesomeStyle/awesome.css: -------------------------------------------------------------------------------- 1 | /*------------------------------------- 2 | zTree Style using fontawesome instead of images 3 | 4 | version: 1.1 5 | author: Mike King 6 | email: mikkelking @ hotmail . com 7 | website: http://code.google.com/p/jquerytree/ 8 | 9 | -------------------------------------*/ 10 | /* Definitions ----------------------*/ 11 | /* End of Definitions ---------------*/ 12 | /* Imports -------------------------*/ 13 | /* End of Imports ------------------*/ 14 | .ztree * { 15 | padding: 0; 16 | margin: 0; 17 | font-size: 12px; 18 | font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif; 19 | background-color: #af0000; 20 | } 21 | .ztree { 22 | margin: 0; 23 | padding: 5px; 24 | color: #ffffff; 25 | background-color: #af0000; 26 | } 27 | .ztree li { 28 | padding: 0; 29 | margin: 0; 30 | list-style: none; 31 | line-height: 17px; 32 | text-align: left; 33 | white-space: nowrap; 34 | outline: 0; 35 | } 36 | .ztree li ul { 37 | margin: 0px; 38 | padding: 0 0 0 18px; 39 | } 40 | .ztree li a { 41 | padding-right: 3px; 42 | margin: 0; 43 | cursor: pointer; 44 | height: 17px; 45 | color: #ffffff; 46 | background-color: transparent; 47 | text-decoration: none; 48 | vertical-align: top; 49 | display: inline-block; 50 | } 51 | .ztree li a input.rename { 52 | height: 14px; 53 | width: 80px; 54 | padding: 0; 55 | margin: 0; 56 | color: #af0000; 57 | background-color: #ffffff; 58 | font-size: 12px; 59 | border: 1px #585956 solid; 60 | *border: 0px; 61 | } 62 | .ztree li a:hover { 63 | text-decoration: underline; 64 | } 65 | .ztree li a.curSelectedNode { 66 | padding-top: 0px; 67 | background-color: #af4040; 68 | color: #ffff00; 69 | height: 17px; 70 | opacity: 0.8; 71 | } 72 | .ztree li a.curSelectedNode_Edit { 73 | padding-top: 0px; 74 | background-color: transparent; 75 | color: #ffff00; 76 | height: 17px; 77 | border: 1px #666 solid; 78 | opacity: 0.8; 79 | } 80 | .ztree li a.tmpTargetNode_inner { 81 | padding-top: 0px; 82 | background-color: #aaa; 83 | color: #ffff00; 84 | height: 17px; 85 | border: 1px #666 solid; 86 | opacity: 0.8; 87 | filter: alpha(opacity=80); 88 | } 89 | .ztree li span { 90 | line-height: 17px; 91 | margin-right: 2px; 92 | background-color: transparent; 93 | } 94 | .ztree li span.button { 95 | line-height: 0; 96 | margin: 0; 97 | padding: 0; 98 | width: 15px; 99 | height: 17px; 100 | display: inline-block; 101 | vertical-align: top; 102 | border: 0px solid; 103 | cursor: pointer; 104 | outline: none; 105 | background-color: transparent; 106 | background-repeat: no-repeat; 107 | background-attachment: scroll; 108 | } 109 | .ztree li span.button::before { 110 | color: #ffffff; 111 | font-family: FontAwesome; 112 | padding-top: 10px; 113 | } 114 | .ztree li span.button.chk { 115 | margin: 0px; 116 | cursor: auto; 117 | width: 12px; 118 | display: inline-block; 119 | padding-top: 10px; 120 | padding-left: 2px; 121 | } 122 | .ztree li span.button.chk.checkbox_false_full::before { 123 | content: "\f096"; 124 | } 125 | .ztree li span.button.chk.checkbox_false_full_focus::before { 126 | content: "\f096"; 127 | color: #ffff00; 128 | } 129 | .ztree li span.button.chk.checkbox_false_part::before { 130 | content: "\f096"; 131 | color: #aaaaaa; 132 | } 133 | .ztree li span.button.chk.checkbox_false_part_focus::before { 134 | content: "\f096"; 135 | color: #cad96c; 136 | } 137 | .ztree li span.button.chk.checkbox_false_disable::before { 138 | content: "\f096"; 139 | color: #808080; 140 | } 141 | .ztree li span.button.chk.checkbox_true_full::before { 142 | content: "\f046"; 143 | } 144 | .ztree li span.button.chk.checkbox_true_full_focus::before { 145 | content: "\f046"; 146 | } 147 | .ztree li span.button.chk.checkbox_true_part::before { 148 | content: "\f14a"; 149 | } 150 | .ztree li span.button.chk.checkbox_true_part_focus::before { 151 | content: "\f14a"; 152 | color: #ffff00; 153 | } 154 | .ztree li span.button.chk.checkbox_true_full_focus::before { 155 | content: "\f046"; 156 | color: #ffff00; 157 | } 158 | .ztree li span.button.chk.checkbox_true_part::before { 159 | content: "\f046"; 160 | color: #aaaaaa; 161 | } 162 | .ztree li span.button.chk.checkbox_true_part_focus::before { 163 | content: "\f046"; 164 | color: #cad96c; 165 | } 166 | .ztree li span.button.chk.checkbox_true_disable::before { 167 | content: "\f046"; 168 | color: #808080; 169 | } 170 | .ztree li span.button.chk.radio_false_full::before { 171 | content: "\f10c"; 172 | } 173 | .ztree li span.button.chk.radio_false_full_focus::before { 174 | content: "\f10c"; 175 | color: #ffff00; 176 | } 177 | .ztree li span.button.chk.radio_false_part::before { 178 | content: "\f10c"; 179 | color: #aaaaaa; 180 | } 181 | .ztree li span.button.chk.radio_false_part_focus::before { 182 | content: "\f10c"; 183 | color: #ffff00; 184 | } 185 | .ztree li span.button.chk.radio_false_disable::before { 186 | content: "\f1db"; 187 | color: #808080; 188 | } 189 | .ztree li span.button.chk.radio_true_full::before { 190 | content: "\f192"; 191 | } 192 | .ztree li span.button.chk.radio_true_full_focus::before { 193 | content: "\f192"; 194 | color: #ffff00; 195 | } 196 | .ztree li span.button.chk.radio_true_part::before { 197 | content: "\f192"; 198 | color: #aaaaaa; 199 | } 200 | .ztree li span.button.chk.radio_true_part_focus::before { 201 | content: "\f192"; 202 | color: #aaaaaa; 203 | } 204 | .ztree li span.button.chk.radio_true_disable::before { 205 | content: "\f1db"; 206 | color: #808080; 207 | } 208 | .ztree li span.button.switch { 209 | width: 15px; 210 | height: 17px; 211 | } 212 | .ztree li span.button.root_open::before { 213 | content: "\f078"; 214 | padding-top: 10px; 215 | padding-left: 2px; 216 | display: inline-block; 217 | } 218 | .ztree li span.button.root_close::before { 219 | content: "\f054"; 220 | padding-top: 10px; 221 | padding-left: 2px; 222 | display: inline-block; 223 | } 224 | .ztree li span.button.roots_open::before { 225 | content: "\f078"; 226 | padding-top: 10px; 227 | padding-left: 2px; 228 | display: inline-block; 229 | } 230 | .ztree li span.button.roots_close::before { 231 | content: "\f054"; 232 | padding-top: 10px; 233 | padding-left: 2px; 234 | display: inline-block; 235 | } 236 | .ztree li span.button.center_open::before { 237 | content: "\f078"; 238 | padding-top: 10px; 239 | padding-left: 2px; 240 | display: inline-block; 241 | } 242 | .ztree li span.button.center_close::before { 243 | content: "\f054"; 244 | padding-top: 10px; 245 | padding-left: 2px; 246 | display: inline-block; 247 | } 248 | .ztree li span.button.bottom_open::before { 249 | content: "\f078"; 250 | padding-top: 10px; 251 | padding-left: 2px; 252 | display: inline-block; 253 | } 254 | .ztree li span.button.bottom_close::before { 255 | content: "\f054"; 256 | padding-top: 10px; 257 | padding-left: 2px; 258 | display: inline-block; 259 | } 260 | .ztree li span.button.root_docu { 261 | background: none; 262 | } 263 | .ztree li span.button.roots_docu::before { 264 | content: "\f022"; 265 | padding-left: 2px; 266 | display: inline-block; 267 | color: #ffffff; 268 | } 269 | .ztree li span.button.center_docu::before { 270 | padding-top: 10px; 271 | padding-left: 2px; 272 | display: inline-block; 273 | color: #ffffff; 274 | } 275 | .ztree li span.button.bottom_docu::before { 276 | padding-top: 10px; 277 | padding-left: 2px; 278 | display: inline-block; 279 | color: #ffffff; 280 | } 281 | .ztree li span.button.noline_docu { 282 | background: none; 283 | } 284 | .ztree li span.button.ico_open::before { 285 | content: "\f115"; 286 | font-family: FontAwesome; 287 | padding-top: 10px; 288 | padding-left: 2px; 289 | display: inline-block; 290 | color: #ffffff; 291 | } 292 | .ztree li span.button.ico_close::before { 293 | content: "\f114"; 294 | font-family: FontAwesome; 295 | padding-top: 10px; 296 | padding-left: 2px; 297 | display: inline-block; 298 | color: #ffffff; 299 | } 300 | .ztree li span.button.ico_docu::before { 301 | content: "\f022"; 302 | font-family: FontAwesome; 303 | padding-top: 10px; 304 | padding-left: 2px; 305 | display: inline-block; 306 | color: #ffffff; 307 | } 308 | .ztree li span.button.edit { 309 | margin-left: 4px; 310 | margin-right: -1px; 311 | vertical-align: top; 312 | *vertical-align: middle; 313 | padding-top: 10px; 314 | } 315 | .ztree li span.button.edit::before { 316 | content: "\f044"; 317 | font-family: FontAwesome; 318 | } 319 | .ztree li span.button.remove { 320 | margin-left: 4px; 321 | margin-right: -1px; 322 | vertical-align: top; 323 | *vertical-align: middle; 324 | padding-top: 10px; 325 | } 326 | .ztree li span.button.remove::before { 327 | content: "\f1f8"; 328 | font-family: FontAwesome; 329 | } 330 | .ztree li span.button.add { 331 | margin-left: 4px; 332 | margin-right: -1px; 333 | vertical-align: top; 334 | *vertical-align: middle; 335 | padding-top: 10px; 336 | } 337 | .ztree li span.button.add::before { 338 | content: "\f067"; 339 | font-family: FontAwesome; 340 | } 341 | .ztree li span.button.ico_loading { 342 | margin-right: 2px; 343 | background: url(./img/loading.gif) no-repeat scroll 0 0 transparent; 344 | vertical-align: top; 345 | *vertical-align: middle; 346 | } 347 | ul.tmpTargetzTree { 348 | background-color: #FFE6B0; 349 | opacity: 0.8; 350 | filter: alpha(opacity=80); 351 | } 352 | span.tmpzTreeMove_arrow { 353 | width: 16px; 354 | height: 17px; 355 | display: inline-block; 356 | padding: 0; 357 | margin: 2px 0 0 1px; 358 | border: 0 none; 359 | position: absolute; 360 | background-color: transparent; 361 | background-attachment: scroll; 362 | } 363 | span.tmpzTreeMove_arrow::before { 364 | content: "\f04b"; 365 | font-family: FontAwesome; 366 | color: #ffff00; 367 | } 368 | ul.ztree.zTreeDragUL { 369 | margin: 0; 370 | padding: 0; 371 | position: absolute; 372 | width: auto; 373 | height: auto; 374 | overflow: hidden; 375 | background-color: #cfcfcf; 376 | border: 1px #ffff00 dotted; 377 | opacity: 0.8; 378 | filter: alpha(opacity=80); 379 | } 380 | .ztreeMask { 381 | z-index: 10000; 382 | background-color: #cfcfcf; 383 | opacity: 0.0; 384 | filter: alpha(opacity=0); 385 | position: absolute; 386 | } 387 | -------------------------------------------------------------------------------- /src/plugins/zTree/css/awesomeStyle/awesome.less: -------------------------------------------------------------------------------- 1 | /*------------------------------------- 2 | zTree Style using fontawesome instead of images 3 | 4 | version: 1.1 5 | author: Mike King 6 | email: mikkelking @ hotmail . com 7 | website: http://code.google.com/p/jquerytree/ 8 | 9 | -------------------------------------*/ 10 | 11 | /* Definitions ----------------------*/ 12 | @font-size: 12px; 13 | // Regular icon and text color is white, which suits any medium -> dark background 14 | @color-normal: white; 15 | // Background color 16 | @color-bg: #af0000; 17 | // Highlight color 18 | @color-highlight: yellow; 19 | // Partially selected (checkboxes, radio buttons) 20 | @color-partial: #aaaaaa; 21 | // Partially selected and focused (checkboxes, radio buttons) 22 | @color-partfocus: #cad96c; 23 | // Disabled altogether 24 | @color-disabled: #808080; 25 | // Editing color 26 | @color-edit: yellow; 27 | @w: 15px; 28 | @h: 17px; 29 | @pad-left: 2px; 30 | @pad-top: 10px; 31 | /* End of Definitions ---------------*/ 32 | 33 | /* Imports -------------------------*/ 34 | @import "fa.less"; 35 | /* End of Imports ------------------*/ 36 | 37 | .ztree * {padding:0; margin:0; font-size:@font-size; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif; background-color: @color-bg;} 38 | .ztree { 39 | margin:0; padding:5px; color:@color-normal; background-color: @color-bg; 40 | li { 41 | padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0; 42 | ul { 43 | margin: 0px; padding:0 0 0 18px; 44 | } 45 | ul.line { } 46 | a {padding-right:3px; margin:0; cursor:pointer; height:@h; color:@color-normal; background-color: transparent; 47 | text-decoration:none; vertical-align:top; display: inline-block; 48 | input.rename {height:14px; width:80px; padding:0; margin:0; 49 | color: @color-bg; background-color: @color-normal; 50 | font-size:@font-size; border:1px #585956 solid; *border:0px} 51 | } 52 | a:hover {text-decoration:underline} 53 | a.curSelectedNode {padding-top:0px; background-color:#af4040; color:@color-highlight; height:@h; opacity:0.8;} 54 | a.curSelectedNode_Edit {padding-top:0px; background-color:transparent; color:@color-highlight; height:@h; border:1px #666 solid; opacity:0.8;} 55 | a.tmpTargetNode_inner {padding-top:0px; background-color:#aaa; color:@color-highlight; height:@h; border:1px #666 solid; 56 | opacity:0.8; filter:alpha(opacity=80)} 57 | a.tmpTargetNode_prev {} 58 | a.tmpTargetNode_next {} 59 | span {line-height:@h; margin-right:2px; background-color:transparent;} 60 | span.button {line-height:0; margin:0; padding: 0; width:@w; height:@h; display: inline-block; vertical-align:top; 61 | border:0px solid; cursor: pointer;outline:none; 62 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 63 | 64 | &::before{color: @color-normal; font-family: FontAwesome; padding-top:@pad-top;} 65 | &.chk { margin:0px; cursor: auto; width: 12px; 66 | display: inline-block;padding-top:@pad-top;padding-left:@pad-left; 67 | 68 | &.checkbox_false_full::before {content: @fa-square-o;} 69 | &.checkbox_false_full_focus::before {content: @fa-square-o; color:@color-highlight;} 70 | &.checkbox_false_part::before {content: @fa-square-o;color: @color-partial;} 71 | &.checkbox_false_part_focus::before {content: @fa-square-o; color:@color-partfocus;} 72 | &.checkbox_false_disable::before {content: @fa-square-o; color:@color-disabled;} 73 | &.checkbox_true_full::before {content: @fa-check-square-o;} 74 | &.checkbox_true_full_focus::before {content: @fa-check-square-o;} 75 | &.checkbox_true_part::before {content: @fa-check-square;} 76 | &.checkbox_true_part_focus::before {content: @fa-check-square; color: @color-highlight} 77 | &.checkbox_true_full_focus::before {content: @fa-check-square-o; color: @color-highlight} 78 | &.checkbox_true_part::before {content: @fa-check-square-o;color: @color-partial} 79 | &.checkbox_true_part_focus::before {content: @fa-check-square-o;color: @color-partfocus;} 80 | &.checkbox_true_disable::before {content: @fa-check-square-o;color: @color-disabled} 81 | 82 | &.radio_false_full::before {content: @fa-circle-o;} 83 | &.radio_false_full_focus::before {content: @fa-circle-o;color: @color-highlight} 84 | &.radio_false_part::before {content: @fa-circle-o;color: @color-partial} 85 | &.radio_false_part_focus::before {content: @fa-circle-o;color: @color-highlight} 86 | &.radio_false_disable::before {content: @fa-circle-thin;color: @color-disabled} 87 | &.radio_true_full::before {content: @fa-dot-circle-o;} 88 | &.radio_true_full_focus::before {content: @fa-dot-circle-o;color: @color-highlight} 89 | &.radio_true_part::before {content: @fa-dot-circle-o;color: @color-partial} 90 | &.radio_true_part_focus::before {content: @fa-dot-circle-o;color: @color-partial;} 91 | &.radio_true_disable::before {content: @fa-circle-thin;color: @color-disabled} 92 | 93 | } 94 | &.switch {width:@w; height:@h} 95 | &.root_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 96 | &.root_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 97 | &.roots_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 98 | &.roots_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 99 | &.center_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 100 | &.center_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 101 | &.bottom_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 102 | &.bottom_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} 103 | &.noline_open{} 104 | &.noline_close{} 105 | &.root_docu{ background:none;} 106 | &.roots_docu::before{content: @fa-list-alt;padding-left:@pad-left;display: inline-block;color:@color-normal;} 107 | &.center_docu::before{padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} 108 | &.bottom_docu::before{padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} 109 | &.noline_docu{ background:none;} 110 | 111 | &.ico_open::before {content: @fa-folder-open-o;font-family: FontAwesome;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} 112 | &.ico_close::before {content: @fa-folder-o;font-family: FontAwesome;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} 113 | &.ico_docu::before{content: @fa-list-alt;font-family: FontAwesome;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} 114 | 115 | &.edit {margin-left:4px; margin-right: -1px; vertical-align:top; *vertical-align:middle;padding-top:@pad-top;} 116 | &.edit::before{content: @fa-pencil-square-o;font-family: FontAwesome;} 117 | 118 | &.remove {margin-left:4px; margin-right: -1px; vertical-align:top; *vertical-align:middle;padding-top:@pad-top;} 119 | &.remove::before{content: @fa-trash;font-family: FontAwesome;} 120 | 121 | 122 | &.add {margin-left:4px; margin-right: -1px; vertical-align:top; *vertical-align:middle;padding-top:@pad-top;} 123 | &.add::before{content: @fa-plus;font-family: FontAwesome;} 124 | 125 | &.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} 126 | } 127 | 128 | } 129 | } 130 | 131 | 132 | ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} 133 | 134 | // this is the arrow that moves 135 | span.tmpzTreeMove_arrow{width:16px; height:@h; display: inline-block; 136 | padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; 137 | background-color:transparent; background-attachment: scroll; 138 | } 139 | span.tmpzTreeMove_arrow::before{content: @fa-play;font-family: FontAwesome;color: @color-highlight; 140 | } 141 | // outline 142 | 143 | ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; 144 | background-color:#cfcfcf; border:1px @color-highlight dotted; opacity:0.8; filter:alpha(opacity=80)} 145 | .ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} 146 | 147 | -------------------------------------------------------------------------------- /src/plugins/zTree/css/awesomeStyle/fa.less: -------------------------------------------------------------------------------- 1 | @fa-glass: "\f000"; 2 | @fa-music: "\f001"; 3 | @fa-search: "\f002"; 4 | @fa-envelope-o: "\f003"; 5 | @fa-heart: "\f004"; 6 | @fa-star: "\f005"; 7 | @fa-star-o: "\f006"; 8 | @fa-user: "\f007"; 9 | @fa-film: "\f008"; 10 | @fa-th-large: "\f009"; 11 | @fa-th: "\f00a"; 12 | @fa-th-list: "\f00b"; 13 | @fa-check: "\f00c"; 14 | @fa-times: "\f00d"; 15 | @fa-search-plus: "\f00e"; 16 | @fa-search-minus: "\f010"; 17 | @fa-power-off: "\f011"; 18 | @fa-signal: "\f012"; 19 | @fa-cog: "\f013"; 20 | @fa-trash-o: "\f014"; 21 | @fa-home: "\f015"; 22 | @fa-file-o: "\f016"; 23 | @fa-clock-o: "\f017"; 24 | @fa-road: "\f018"; 25 | @fa-download: "\f019"; 26 | @fa-arrow-circle-o-down: "\f01a"; 27 | @fa-arrow-circle-o-up: "\f01b"; 28 | @fa-inbox: "\f01c"; 29 | @fa-play-circle-o: "\f01d"; 30 | @fa-repeat: "\f01e"; 31 | @fa-refresh: "\f021"; 32 | @fa-list-alt: "\f022"; 33 | @fa-lock: "\f023"; 34 | @fa-flag: "\f024"; 35 | @fa-headphones: "\f025"; 36 | @fa-volume-off: "\f026"; 37 | @fa-volume-down: "\f027"; 38 | @fa-volume-up: "\f028"; 39 | @fa-qrcode: "\f029"; 40 | @fa-barcode: "\f02a"; 41 | @fa-tag: "\f02b"; 42 | @fa-tags: "\f02c"; 43 | @fa-book: "\f02d"; 44 | @fa-bookmark: "\f02e"; 45 | @fa-print: "\f02f"; 46 | @fa-camera: "\f030"; 47 | @fa-font: "\f031"; 48 | @fa-bold: "\f032"; 49 | @fa-italic: "\f033"; 50 | @fa-text-height: "\f034"; 51 | @fa-text-width: "\f035"; 52 | @fa-align-left: "\f036"; 53 | @fa-align-center: "\f037"; 54 | @fa-align-right: "\f038"; 55 | @fa-align-justify: "\f039"; 56 | @fa-list: "\f03a"; 57 | @fa-outdent: "\f03b"; 58 | @fa-indent: "\f03c"; 59 | @fa-video-camera: "\f03d"; 60 | @fa-picture-o: "\f03e"; 61 | @fa-pencil: "\f040"; 62 | @fa-map-marker: "\f041"; 63 | @fa-adjust: "\f042"; 64 | @fa-tint: "\f043"; 65 | @fa-pencil-square-o: "\f044"; 66 | @fa-share-square-o: "\f045"; 67 | @fa-check-square-o: "\f046"; 68 | @fa-arrows: "\f047"; 69 | @fa-step-backward: "\f048"; 70 | @fa-fast-backward: "\f049"; 71 | @fa-backward: "\f04a"; 72 | @fa-play: "\f04b"; 73 | @fa-pause: "\f04c"; 74 | @fa-stop: "\f04d"; 75 | @fa-forward: "\f04e"; 76 | @fa-fast-forward: "\f050"; 77 | @fa-step-forward: "\f051"; 78 | @fa-eject: "\f052"; 79 | @fa-chevron-left: "\f053"; 80 | @fa-chevron-right: "\f054"; 81 | @fa-plus-circle: "\f055"; 82 | @fa-minus-circle: "\f056"; 83 | @fa-times-circle: "\f057"; 84 | @fa-check-circle: "\f058"; 85 | @fa-question-circle: "\f059"; 86 | @fa-info-circle: "\f05a"; 87 | @fa-crosshairs: "\f05b"; 88 | @fa-times-circle-o: "\f05c"; 89 | @fa-check-circle-o: "\f05d"; 90 | @fa-ban: "\f05e"; 91 | @fa-arrow-left: "\f060"; 92 | @fa-arrow-right: "\f061"; 93 | @fa-arrow-up: "\f062"; 94 | @fa-arrow-down: "\f063"; 95 | @fa-share: "\f064"; 96 | @fa-expand: "\f065"; 97 | @fa-compress: "\f066"; 98 | @fa-plus: "\f067"; 99 | @fa-minus: "\f068"; 100 | @fa-asterisk: "\f069"; 101 | @fa-exclamation-circle: "\f06a"; 102 | @fa-gift: "\f06b"; 103 | @fa-leaf: "\f06c"; 104 | @fa-fire: "\f06d"; 105 | @fa-eye: "\f06e"; 106 | @fa-eye-slash: "\f070"; 107 | @fa-exclamation-triangle: "\f071"; 108 | @fa-plane: "\f072"; 109 | @fa-calendar: "\f073"; 110 | @fa-random: "\f074"; 111 | @fa-comment: "\f075"; 112 | @fa-magnet: "\f076"; 113 | @fa-chevron-up: "\f077"; 114 | @fa-chevron-down: "\f078"; 115 | @fa-retweet: "\f079"; 116 | @fa-shopping-cart: "\f07a"; 117 | @fa-folder: "\f07b"; 118 | @fa-folder-open: "\f07c"; 119 | @fa-arrows-v: "\f07d"; 120 | @fa-arrows-h: "\f07e"; 121 | @fa-bar-chart: "\f080"; 122 | @fa-twitter-square: "\f081"; 123 | @fa-facebook-square: "\f082"; 124 | @fa-camera-retro: "\f083"; 125 | @fa-key: "\f084"; 126 | @fa-cogs: "\f085"; 127 | @fa-comments: "\f086"; 128 | @fa-thumbs-o-up: "\f087"; 129 | @fa-thumbs-o-down: "\f088"; 130 | @fa-star-half: "\f089"; 131 | @fa-heart-o: "\f08a"; 132 | @fa-sign-out: "\f08b"; 133 | @fa-linkedin-square: "\f08c"; 134 | @fa-thumb-tack: "\f08d"; 135 | @fa-external-link: "\f08e"; 136 | @fa-sign-in: "\f090"; 137 | @fa-trophy: "\f091"; 138 | @fa-github-square: "\f092"; 139 | @fa-upload: "\f093"; 140 | @fa-lemon-o: "\f094"; 141 | @fa-phone: "\f095"; 142 | @fa-square-o: "\f096"; 143 | @fa-bookmark-o: "\f097"; 144 | @fa-phone-square: "\f098"; 145 | @fa-twitter: "\f099"; 146 | @fa-facebook: "\f09a"; 147 | @fa-github: "\f09b"; 148 | @fa-unlock: "\f09c"; 149 | @fa-credit-card: "\f09d"; 150 | @fa-rss: "\f09e"; 151 | @fa-hdd-o: "\f0a0"; 152 | @fa-bullhorn: "\f0a1"; 153 | @fa-bell: "\f0f3"; 154 | @fa-certificate: "\f0a3"; 155 | @fa-hand-o-right: "\f0a4"; 156 | @fa-hand-o-left: "\f0a5"; 157 | @fa-hand-o-up: "\f0a6"; 158 | @fa-hand-o-down: "\f0a7"; 159 | @fa-arrow-circle-left: "\f0a8"; 160 | @fa-arrow-circle-right: "\f0a9"; 161 | @fa-arrow-circle-up: "\f0aa"; 162 | @fa-arrow-circle-down: "\f0ab"; 163 | @fa-globe: "\f0ac"; 164 | @fa-wrench: "\f0ad"; 165 | @fa-tasks: "\f0ae"; 166 | @fa-filter: "\f0b0"; 167 | @fa-briefcase: "\f0b1"; 168 | @fa-arrows-alt: "\f0b2"; 169 | @fa-users: "\f0c0"; 170 | @fa-link: "\f0c1"; 171 | @fa-cloud: "\f0c2"; 172 | @fa-flask: "\f0c3"; 173 | @fa-scissors: "\f0c4"; 174 | @fa-files-o: "\f0c5"; 175 | @fa-paperclip: "\f0c6"; 176 | @fa-floppy-o: "\f0c7"; 177 | @fa-square: "\f0c8"; 178 | @fa-bars: "\f0c9"; 179 | @fa-list-ul: "\f0ca"; 180 | @fa-list-ol: "\f0cb"; 181 | @fa-strikethrough: "\f0cc"; 182 | @fa-underline: "\f0cd"; 183 | @fa-table: "\f0ce"; 184 | @fa-magic: "\f0d0"; 185 | @fa-truck: "\f0d1"; 186 | @fa-pinterest: "\f0d2"; 187 | @fa-pinterest-square: "\f0d3"; 188 | @fa-google-plus-square: "\f0d4"; 189 | @fa-google-plus: "\f0d5"; 190 | @fa-money: "\f0d6"; 191 | @fa-caret-down: "\f0d7"; 192 | @fa-caret-up: "\f0d8"; 193 | @fa-caret-left: "\f0d9"; 194 | @fa-caret-right: "\f0da"; 195 | @fa-columns: "\f0db"; 196 | @fa-sort: "\f0dc"; 197 | @fa-sort-desc: "\f0dd"; 198 | @fa-sort-asc: "\f0de"; 199 | @fa-envelope: "\f0e0"; 200 | @fa-linkedin: "\f0e1"; 201 | @fa-undo: "\f0e2"; 202 | @fa-gavel: "\f0e3"; 203 | @fa-tachometer: "\f0e4"; 204 | @fa-comment-o: "\f0e5"; 205 | @fa-comments-o: "\f0e6"; 206 | @fa-bolt: "\f0e7"; 207 | @fa-sitemap: "\f0e8"; 208 | @fa-umbrella: "\f0e9"; 209 | @fa-clipboard: "\f0ea"; 210 | @fa-lightbulb-o: "\f0eb"; 211 | @fa-exchange: "\f0ec"; 212 | @fa-cloud-download: "\f0ed"; 213 | @fa-cloud-upload: "\f0ee"; 214 | @fa-user-md: "\f0f0"; 215 | @fa-stethoscope: "\f0f1"; 216 | @fa-suitcase: "\f0f2"; 217 | @fa-bell-o: "\f0a2"; 218 | @fa-coffee: "\f0f4"; 219 | @fa-cutlery: "\f0f5"; 220 | @fa-file-text-o: "\f0f6"; 221 | @fa-building-o: "\f0f7"; 222 | @fa-hospital-o: "\f0f8"; 223 | @fa-ambulance: "\f0f9"; 224 | @fa-medkit: "\f0fa"; 225 | @fa-fighter-jet: "\f0fb"; 226 | @fa-beer: "\f0fc"; 227 | @fa-h-square: "\f0fd"; 228 | @fa-plus-square: "\f0fe"; 229 | @fa-angle-double-left: "\f100"; 230 | @fa-angle-double-right: "\f101"; 231 | @fa-angle-double-up: "\f102"; 232 | @fa-angle-double-down: "\f103"; 233 | @fa-angle-left: "\f104"; 234 | @fa-angle-right: "\f105"; 235 | @fa-angle-up: "\f106"; 236 | @fa-angle-down: "\f107"; 237 | @fa-desktop: "\f108"; 238 | @fa-laptop: "\f109"; 239 | @fa-tablet: "\f10a"; 240 | @fa-mobile: "\f10b"; 241 | @fa-circle-o: "\f10c"; 242 | @fa-quote-left: "\f10d"; 243 | @fa-quote-right: "\f10e"; 244 | @fa-spinner: "\f110"; 245 | @fa-circle: "\f111"; 246 | @fa-reply: "\f112"; 247 | @fa-github-alt: "\f113"; 248 | @fa-folder-o: "\f114"; 249 | @fa-folder-open-o: "\f115"; 250 | @fa-smile-o: "\f118"; 251 | @fa-frown-o: "\f119"; 252 | @fa-meh-o: "\f11a"; 253 | @fa-gamepad: "\f11b"; 254 | @fa-keyboard-o: "\f11c"; 255 | @fa-flag-o: "\f11d"; 256 | @fa-flag-checkered: "\f11e"; 257 | @fa-terminal: "\f120"; 258 | @fa-code: "\f121"; 259 | @fa-reply-all: "\f122"; 260 | @fa-star-half-o: "\f123"; 261 | @fa-location-arrow: "\f124"; 262 | @fa-crop: "\f125"; 263 | @fa-code-fork: "\f126"; 264 | @fa-chain-broken: "\f127"; 265 | @fa-question: "\f128"; 266 | @fa-info: "\f129"; 267 | @fa-exclamation: "\f12a"; 268 | @fa-superscript: "\f12b"; 269 | @fa-subscript: "\f12c"; 270 | @fa-eraser: "\f12d"; 271 | @fa-puzzle-piece: "\f12e"; 272 | @fa-microphone: "\f130"; 273 | @fa-microphone-slash: "\f131"; 274 | @fa-shield: "\f132"; 275 | @fa-calendar-o: "\f133"; 276 | @fa-fire-extinguisher: "\f134"; 277 | @fa-rocket: "\f135"; 278 | @fa-maxcdn: "\f136"; 279 | @fa-chevron-circle-left: "\f137"; 280 | @fa-chevron-circle-right: "\f138"; 281 | @fa-chevron-circle-up: "\f139"; 282 | @fa-chevron-circle-down: "\f13a"; 283 | @fa-html5: "\f13b"; 284 | @fa-css3: "\f13c"; 285 | @fa-anchor: "\f13d"; 286 | @fa-unlock-alt: "\f13e"; 287 | @fa-bullseye: "\f140"; 288 | @fa-ellipsis-h: "\f141"; 289 | @fa-ellipsis-v: "\f142"; 290 | @fa-rss-square: "\f143"; 291 | @fa-play-circle: "\f144"; 292 | @fa-ticket: "\f145"; 293 | @fa-minus-square: "\f146"; 294 | @fa-minus-square-o: "\f147"; 295 | @fa-level-up: "\f148"; 296 | @fa-level-down: "\f149"; 297 | @fa-check-square: "\f14a"; 298 | @fa-pencil-square: "\f14b"; 299 | @fa-external-link-square: "\f14c"; 300 | @fa-share-square: "\f14d"; 301 | @fa-compass: "\f14e"; 302 | @fa-caret-square-o-down: "\f150"; 303 | @fa-caret-square-o-up: "\f151"; 304 | @fa-caret-square-o-right: "\f152"; 305 | @fa-eur: "\f153"; 306 | @fa-gbp: "\f154"; 307 | @fa-usd: "\f155"; 308 | @fa-inr: "\f156"; 309 | @fa-jpy: "\f157"; 310 | @fa-rub: "\f158"; 311 | @fa-krw: "\f159"; 312 | @fa-btc: "\f15a"; 313 | @fa-file: "\f15b"; 314 | @fa-file-text: "\f15c"; 315 | @fa-sort-alpha-asc: "\f15d"; 316 | @fa-sort-alpha-desc: "\f15e"; 317 | @fa-sort-amount-asc: "\f160"; 318 | @fa-sort-amount-desc: "\f161"; 319 | @fa-sort-numeric-asc: "\f162"; 320 | @fa-sort-numeric-desc: "\f163"; 321 | @fa-thumbs-up: "\f164"; 322 | @fa-thumbs-down: "\f165"; 323 | @fa-youtube-square: "\f166"; 324 | @fa-youtube: "\f167"; 325 | @fa-xing: "\f168"; 326 | @fa-xing-square: "\f169"; 327 | @fa-youtube-play: "\f16a"; 328 | @fa-dropbox: "\f16b"; 329 | @fa-stack-overflow: "\f16c"; 330 | @fa-instagram: "\f16d"; 331 | @fa-flickr: "\f16e"; 332 | @fa-adn: "\f170"; 333 | @fa-bitbucket: "\f171"; 334 | @fa-bitbucket-square: "\f172"; 335 | @fa-tumblr: "\f173"; 336 | @fa-tumblr-square: "\f174"; 337 | @fa-long-arrow-down: "\f175"; 338 | @fa-long-arrow-up: "\f176"; 339 | @fa-long-arrow-left: "\f177"; 340 | @fa-long-arrow-right: "\f178"; 341 | @fa-apple: "\f179"; 342 | @fa-windows: "\f17a"; 343 | @fa-android: "\f17b"; 344 | @fa-linux: "\f17c"; 345 | @fa-dribbble: "\f17d"; 346 | @fa-skype: "\f17e"; 347 | @fa-foursquare: "\f180"; 348 | @fa-trello: "\f181"; 349 | @fa-female: "\f182"; 350 | @fa-male: "\f183"; 351 | @fa-gittip: "\f184"; 352 | @fa-sun-o: "\f185"; 353 | @fa-moon-o: "\f186"; 354 | @fa-archive: "\f187"; 355 | @fa-bug: "\f188"; 356 | @fa-vk: "\f189"; 357 | @fa-weibo: "\f18a"; 358 | @fa-renren: "\f18b"; 359 | @fa-pagelines: "\f18c"; 360 | @fa-stack-exchange: "\f18d"; 361 | @fa-arrow-circle-o-right: "\f18e"; 362 | @fa-arrow-circle-o-left: "\f190"; 363 | @fa-caret-square-o-left: "\f191"; 364 | @fa-dot-circle-o: "\f192"; 365 | @fa-wheelchair: "\f193"; 366 | @fa-vimeo-square: "\f194"; 367 | @fa-try: "\f195"; 368 | @fa-plus-square-o: "\f196"; 369 | @fa-space-shuttle: "\f197"; 370 | @fa-slack: "\f198"; 371 | @fa-envelope-square: "\f199"; 372 | @fa-wordpress: "\f19a"; 373 | @fa-openid: "\f19b"; 374 | @fa-university: "\f19c"; 375 | @fa-graduation-cap: "\f19d"; 376 | @fa-yahoo: "\f19e"; 377 | @fa-google: "\f1a0"; 378 | @fa-reddit: "\f1a1"; 379 | @fa-reddit-square: "\f1a2"; 380 | @fa-stumbleupon-circle: "\f1a3"; 381 | @fa-stumbleupon: "\f1a4"; 382 | @fa-delicious: "\f1a5"; 383 | @fa-digg: "\f1a6"; 384 | @fa-pied-piper: "\f1a7"; 385 | @fa-pied-piper-alt: "\f1a8"; 386 | @fa-drupal: "\f1a9"; 387 | @fa-joomla: "\f1aa"; 388 | @fa-language: "\f1ab"; 389 | @fa-fax: "\f1ac"; 390 | @fa-building: "\f1ad"; 391 | @fa-child: "\f1ae"; 392 | @fa-paw: "\f1b0"; 393 | @fa-spoon: "\f1b1"; 394 | @fa-cube: "\f1b2"; 395 | @fa-cubes: "\f1b3"; 396 | @fa-behance: "\f1b4"; 397 | @fa-behance-square: "\f1b5"; 398 | @fa-steam: "\f1b6"; 399 | @fa-steam-square: "\f1b7"; 400 | @fa-recycle: "\f1b8"; 401 | @fa-car: "\f1b9"; 402 | @fa-taxi: "\f1ba"; 403 | @fa-tree: "\f1bb"; 404 | @fa-spotify: "\f1bc"; 405 | @fa-deviantart: "\f1bd"; 406 | @fa-soundcloud: "\f1be"; 407 | @fa-database: "\f1c0"; 408 | @fa-file-pdf-o: "\f1c1"; 409 | @fa-file-word-o: "\f1c2"; 410 | @fa-file-excel-o: "\f1c3"; 411 | @fa-file-powerpoint-o: "\f1c4"; 412 | @fa-file-image-o: "\f1c5"; 413 | @fa-file-archive-o: "\f1c6"; 414 | @fa-file-audio-o: "\f1c7"; 415 | @fa-file-video-o: "\f1c8"; 416 | @fa-file-code-o: "\f1c9"; 417 | @fa-vine: "\f1ca"; 418 | @fa-codepen: "\f1cb"; 419 | @fa-jsfiddle: "\f1cc"; 420 | @fa-life-ring: "\f1cd"; 421 | @fa-circle-o-notch: "\f1ce"; 422 | @fa-rebel: "\f1d0"; 423 | @fa-empire: "\f1d1"; 424 | @fa-git-square: "\f1d2"; 425 | @fa-git: "\f1d3"; 426 | @fa-hacker-news: "\f1d4"; 427 | @fa-tencent-weibo: "\f1d5"; 428 | @fa-qq: "\f1d6"; 429 | @fa-weixin: "\f1d7"; 430 | @fa-paper-plane: "\f1d8"; 431 | @fa-paper-plane-o: "\f1d9"; 432 | @fa-history: "\f1da"; 433 | @fa-circle-thin: "\f1db"; 434 | @fa-header: "\f1dc"; 435 | @fa-paragraph: "\f1dd"; 436 | @fa-sliders: "\f1de"; 437 | @fa-share-alt: "\f1e0"; 438 | @fa-share-alt-square: "\f1e1"; 439 | @fa-bomb: "\f1e2"; 440 | @fa-futbol-o: "\f1e3"; 441 | @fa-tty: "\f1e4"; 442 | @fa-binoculars: "\f1e5"; 443 | @fa-plug: "\f1e6"; 444 | @fa-slideshare: "\f1e7"; 445 | @fa-twitch: "\f1e8"; 446 | @fa-yelp: "\f1e9"; 447 | @fa-newspaper-o: "\f1ea"; 448 | @fa-wifi: "\f1eb"; 449 | @fa-calculator: "\f1ec"; 450 | @fa-paypal: "\f1ed"; 451 | @fa-google-wallet: "\f1ee"; 452 | @fa-cc-visa: "\f1f0"; 453 | @fa-cc-mastercard: "\f1f1"; 454 | @fa-cc-discover: "\f1f2"; 455 | @fa-cc-amex: "\f1f3"; 456 | @fa-cc-paypal: "\f1f4"; 457 | @fa-cc-stripe: "\f1f5"; 458 | @fa-bell-slash: "\f1f6"; 459 | @fa-bell-slash-o: "\f1f7"; 460 | @fa-trash: "\f1f8"; 461 | @fa-copyright: "\f1f9"; 462 | @fa-at: "\f1fa"; 463 | @fa-eyedropper: "\f1fb"; 464 | @fa-paint-brush: "\f1fc"; 465 | @fa-birthday-cake: "\f1fd"; 466 | @fa-area-chart: "\f1fe"; 467 | @fa-pie-chart: "\f200"; 468 | @fa-line-chart: "\f201"; 469 | @fa-lastfm: "\f202"; 470 | @fa-lastfm-square: "\f203"; 471 | @fa-toggle-off: "\f204"; 472 | @fa-toggle-on: "\f205"; 473 | @fa-bicycle: "\f206"; 474 | @fa-bus: "\f207"; 475 | @fa-ioxhost: "\f208"; 476 | @fa-angellist: "\f209"; 477 | @fa-cc: "\f20a"; 478 | @fa-ils: "\f20b"; 479 | @fa-meanpath: "\f20c"; 480 | 481 | -------------------------------------------------------------------------------- /src/plugins/zTree/css/awesomeStyle/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/awesomeStyle/img/loading.gif -------------------------------------------------------------------------------- /src/plugins/zTree/css/demo.css: -------------------------------------------------------------------------------- 1 | html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { 2 | margin: 0;padding: 0;border: 0;outline: 0;font-weight: inherit;font-style: inherit;font-size: 100%;font-family: inherit;vertical-align: baseline;} 3 | body {color: #2f332a;font: 15px/21px Arial, Helvetica, simsun, sans-serif;background: #f0f6e4 \9;} 4 | h1, h2, h3, h4, h5, h6 {color: #2f332a;font-weight: bold;font-family: Helvetica, Arial, sans-serif;padding-bottom: 5px;} 5 | h1 {font-size: 24px;line-height: 34px;text-align: center;} 6 | h2 {font-size: 14px;line-height: 24px;padding-top: 5px;} 7 | h6 {font-weight: normal;font-size: 12px;letter-spacing: 1px;line-height: 24px;text-align: center;} 8 | a {color:#3C6E31;text-decoration: underline;} 9 | a:hover {background-color:#3C6E31;color:white;} 10 | input.radio {margin: 0 2px 0 8px;} 11 | input.radio.first {margin-left:0;} 12 | input.empty {color: lightgray;} 13 | code {color: #2f332a;} 14 | .highlight_red {color:#A60000;} 15 | .highlight_green {color:#A7F43D;} 16 | li {list-style: circle;font-size: 12px;} 17 | li.title {list-style: none;} 18 | ul.list {margin-left: 17px;} 19 | 20 | div.content_wrap {width: 600px;height:380px;} 21 | div.content_wrap div.left{float: left;width: 250px;} 22 | div.content_wrap div.right{float: right;width: 340px;} 23 | div.zTreeDemoBackground {width:250px;height:362px;text-align:left;} 24 | 25 | ul.ztree {margin-top: 10px;border: 1px solid #617775;background: #f0f6e4;width:220px;height:360px;overflow-y:scroll;overflow-x:auto;} 26 | ul.log {border: 1px solid #617775;background: #f0f6e4;width:300px;height:170px;overflow: hidden;} 27 | ul.log.small {height:45px;} 28 | ul.log li {color: #666666;list-style: none;padding-left: 10px;} 29 | ul.log li.dark {background-color: #E3E3E3;} 30 | 31 | /* ruler */ 32 | div.ruler {height:20px; width:220px; background-color:#f0f6e4;border: 1px solid #333; margin-bottom: 5px; cursor: pointer} 33 | div.ruler div.cursor {height:20px; width:30px; background-color:#3C6E31; color:white; text-align: right; padding-right: 5px; cursor: pointer} -------------------------------------------------------------------------------- /src/plugins/zTree/css/metroStyle/img/line_conn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/metroStyle/img/line_conn.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/metroStyle/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/metroStyle/img/loading.gif -------------------------------------------------------------------------------- /src/plugins/zTree/css/metroStyle/img/metro.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/metroStyle/img/metro.gif -------------------------------------------------------------------------------- /src/plugins/zTree/css/metroStyle/img/metro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/metroStyle/img/metro.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/metroStyle/metroStyle.css: -------------------------------------------------------------------------------- 1 | /*------------------------------------- 2 | zTree Style 3 | 4 | version: 3.4 5 | author: Hunter.z 6 | email: hunter.z@263.net 7 | website: http://code.google.com/p/jquerytree/ 8 | 9 | -------------------------------------*/ 10 | 11 | .ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} 12 | .ztree {margin:0; padding:5px; color:#333} 13 | .ztree li{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0} 14 | .ztree li ul{ margin:0; padding:0 0 0 18px} 15 | .ztree li ul.line{ background:url(./img/line_conn.png) 0 0 repeat-y;} 16 | 17 | .ztree li a {padding-right:3px; margin:0; cursor:pointer; height:21px; color:#333; background-color: transparent; text-decoration:none; vertical-align:top; display: inline-block} 18 | .ztree li a:hover {text-decoration:underline} 19 | .ztree li a.curSelectedNode {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; opacity:0.8;} 20 | .ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; border:1px #666 solid; opacity:0.8;} 21 | .ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#aaa; color:white; height:21px; border:1px #666 solid; 22 | opacity:0.8; filter:alpha(opacity=80)} 23 | .ztree li a.tmpTargetNode_prev {} 24 | .ztree li a.tmpTargetNode_next {} 25 | .ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; 26 | font-size:12px; border:1px #585956 solid; *border:0px} 27 | .ztree li span {line-height:21px; margin-right:2px} 28 | .ztree li span.button {line-height:0; margin:0; padding: 0; width:21px; height:21px; display: inline-block; vertical-align:middle; 29 | border:0 none; cursor: pointer;outline:none; 30 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 31 | background-image:url("./img/metro.png"); *background-image:url("./img/metro.gif")} 32 | 33 | .ztree li span.button.chk {width:13px; height:13px; margin:0 2px; cursor: auto} 34 | .ztree li span.button.chk.checkbox_false_full {background-position: -5px -5px;} 35 | .ztree li span.button.chk.checkbox_false_full_focus {background-position: -5px -26px;} 36 | .ztree li span.button.chk.checkbox_false_part {background-position: -5px -48px;} 37 | .ztree li span.button.chk.checkbox_false_part_focus {background-position: -5px -68px;} 38 | .ztree li span.button.chk.checkbox_false_disable {background-position: -5px -89px;} 39 | .ztree li span.button.chk.checkbox_true_full {background-position: -26px -5px;} 40 | .ztree li span.button.chk.checkbox_true_full_focus {background-position: -26px -26px;} 41 | .ztree li span.button.chk.checkbox_true_part {background-position: -26px -48px;} 42 | .ztree li span.button.chk.checkbox_true_part_focus {background-position: -26px -68px;} 43 | .ztree li span.button.chk.checkbox_true_disable {background-position: -26px -89px;} 44 | .ztree li span.button.chk.radio_false_full {background-position: -47px -5px;} 45 | .ztree li span.button.chk.radio_false_full_focus {background-position: -47px -26px;} 46 | .ztree li span.button.chk.radio_false_part {background-position: -47px -47px;} 47 | .ztree li span.button.chk.radio_false_part_focus {background-position: -47px -68px;} 48 | .ztree li span.button.chk.radio_false_disable {background-position: -47px -89px;} 49 | .ztree li span.button.chk.radio_true_full {background-position: -68px -5px;} 50 | .ztree li span.button.chk.radio_true_full_focus {background-position: -68px -26px;} 51 | .ztree li span.button.chk.radio_true_part {background-position: -68px -47px;} 52 | .ztree li span.button.chk.radio_true_part_focus {background-position: -68px -68px;} 53 | .ztree li span.button.chk.radio_true_disable {background-position: -68px -89px;} 54 | 55 | .ztree li span.button.switch {width:21px; height:21px} 56 | .ztree li span.button.root_open{background-position:-105px -63px} 57 | .ztree li span.button.root_close{background-position:-126px -63px} 58 | .ztree li span.button.roots_open{background-position: -105px 0;} 59 | .ztree li span.button.roots_close{background-position: -126px 0;} 60 | .ztree li span.button.center_open{background-position: -105px -21px;} 61 | .ztree li span.button.center_close{background-position: -126px -21px;} 62 | .ztree li span.button.bottom_open{background-position: -105px -42px;} 63 | .ztree li span.button.bottom_close{background-position: -126px -42px;} 64 | .ztree li span.button.noline_open{background-position: -105px -84px;} 65 | .ztree li span.button.noline_close{background-position: -126px -84px;} 66 | .ztree li span.button.root_docu{ background:none;} 67 | .ztree li span.button.roots_docu{background-position: -84px 0;} 68 | .ztree li span.button.center_docu{background-position: -84px -21px;} 69 | .ztree li span.button.bottom_docu{background-position: -84px -42px;} 70 | .ztree li span.button.noline_docu{ background:none;} 71 | 72 | .ztree li span.button.ico_open{margin-right:2px; background-position: -147px -21px; vertical-align:top; *vertical-align:middle} 73 | .ztree li span.button.ico_close{margin-right:2px; margin-right:2px; background-position: -147px 0; vertical-align:top; *vertical-align:middle} 74 | .ztree li span.button.ico_docu{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle} 75 | .ztree li span.button.edit {margin-left:2px; margin-right: -1px; background-position: -189px -21px; vertical-align:top; *vertical-align:middle} 76 | .ztree li span.button.edit:hover { 77 | background-position: -168px -21px; 78 | } 79 | .ztree li span.button.remove {margin-left:2px; margin-right: -1px; background-position: -189px -42px; vertical-align:top; *vertical-align:middle} 80 | .ztree li span.button.remove:hover { 81 | background-position: -168px -42px; 82 | } 83 | .ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position: -189px 0; vertical-align:top; *vertical-align:middle} 84 | .ztree li span.button.add:hover { 85 | background-position: -168px 0; 86 | } 87 | .ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} 88 | 89 | ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} 90 | 91 | span.tmpzTreeMove_arrow {width:16px; height:21px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; 92 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 93 | background-position:-168px -84px; background-image:url("./img/metro.png"); *background-image:url("./img/metro.gif")} 94 | 95 | ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} 96 | .ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} 97 | -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/1_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/1_close.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/1_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/1_open.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/2.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/3.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/4.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/5.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/6.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/7.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/8.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/diy/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/diy/9.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/line_conn.gif -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/loading.gif -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/zTreeStandard.gif -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/img/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AmarsDing/leaflet-vector-scalar-js/71916f0e2dc7204888882430d1c5f47be379da4f/src/plugins/zTree/css/zTreeStyle/img/zTreeStandard.png -------------------------------------------------------------------------------- /src/plugins/zTree/css/zTreeStyle/zTreeStyle.css: -------------------------------------------------------------------------------- 1 | /*------------------------------------- 2 | zTree Style 3 | 4 | version: 3.5.19 5 | author: Hunter.z 6 | email: hunter.z@263.net 7 | website: http://code.google.com/p/jquerytree/ 8 | 9 | -------------------------------------*/ 10 | 11 | .ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} 12 | .ztree {margin:0; padding:5px; color:#333} 13 | .ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0} 14 | .ztree li ul{ margin:0; padding:0 0 0 18px} 15 | .ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;} 16 | 17 | .ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent; 18 | text-decoration:none; vertical-align:top; display: inline-block} 19 | .ztree li a:hover {text-decoration:underline} 20 | .ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;} 21 | .ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;} 22 | .ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid; 23 | opacity:0.8; filter:alpha(opacity=80)} 24 | .ztree li a.tmpTargetNode_prev {} 25 | .ztree li a.tmpTargetNode_next {} 26 | .ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; 27 | font-size:12px; border:1px #7EC4CC solid; *border:0px} 28 | .ztree li span {line-height:16px; margin-right:2px} 29 | .ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle; 30 | border:0 none; cursor: pointer;outline:none; 31 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 32 | background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} 33 | 34 | .ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto} 35 | .ztree li span.button.chk.checkbox_false_full {background-position:0 0} 36 | .ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px} 37 | .ztree li span.button.chk.checkbox_false_part {background-position:0 -28px} 38 | .ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px} 39 | .ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px} 40 | .ztree li span.button.chk.checkbox_true_full {background-position:-14px 0} 41 | .ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px} 42 | .ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px} 43 | .ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px} 44 | .ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px} 45 | .ztree li span.button.chk.radio_false_full {background-position:-28px 0} 46 | .ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px} 47 | .ztree li span.button.chk.radio_false_part {background-position:-28px -28px} 48 | .ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px} 49 | .ztree li span.button.chk.radio_false_disable {background-position:-28px -56px} 50 | .ztree li span.button.chk.radio_true_full {background-position:-42px 0} 51 | .ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px} 52 | .ztree li span.button.chk.radio_true_part {background-position:-42px -28px} 53 | .ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px} 54 | .ztree li span.button.chk.radio_true_disable {background-position:-42px -56px} 55 | 56 | .ztree li span.button.switch {width:18px; height:18px} 57 | .ztree li span.button.root_open{background-position:-92px -54px} 58 | .ztree li span.button.root_close{background-position:-74px -54px} 59 | .ztree li span.button.roots_open{background-position:-92px 0} 60 | .ztree li span.button.roots_close{background-position:-74px 0} 61 | .ztree li span.button.center_open{background-position:-92px -18px} 62 | .ztree li span.button.center_close{background-position:-74px -18px} 63 | .ztree li span.button.bottom_open{background-position:-92px -36px} 64 | .ztree li span.button.bottom_close{background-position:-74px -36px} 65 | .ztree li span.button.noline_open{background-position:-92px -72px} 66 | .ztree li span.button.noline_close{background-position:-74px -72px} 67 | .ztree li span.button.root_docu{ background:none;} 68 | .ztree li span.button.roots_docu{background-position:-56px 0} 69 | .ztree li span.button.center_docu{background-position:-56px -18px} 70 | .ztree li span.button.bottom_docu{background-position:-56px -36px} 71 | .ztree li span.button.noline_docu{ background:none;} 72 | 73 | .ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle} 74 | .ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle} 75 | .ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle} 76 | .ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle} 77 | .ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle} 78 | 79 | .ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} 80 | 81 | ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} 82 | 83 | span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; 84 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 85 | background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} 86 | 87 | ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} 88 | .zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} 89 | 90 | /* level style*/ 91 | /*.ztree li span.button.level0 { 92 | display:none; 93 | } 94 | .ztree li ul.level0 { 95 | padding:0; 96 | background:none; 97 | }*/ -------------------------------------------------------------------------------- /src/plugins/zTree/js/jquery.ztree.excheck.min.js: -------------------------------------------------------------------------------- 1 | !function(e){var t={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},c={check:{enable:!1,autoCheckTrigger:!1,chkStyle:t.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:t.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}},r={onCheckNode:function(e,t){if(!0===t.chkDisabled)return!1;var c=C.getSetting(e.data.treeId);if(0==o.apply(c.callback.beforeCheck,[c.treeId,t],!0))return!0;var h=C.nodeChecked(c,t);C.nodeChecked(c,t,!h),l.checkNodeRelation(c,t);var a=f(t,s.id.CHECK,c);return l.setChkClass(c,a,t),l.repairParentChkClassWithSelf(c,t),c.treeObj.trigger(s.event.CHECK,[e,c.treeId,t]),!0},onMouseoverCheck:function(e,t){if(!0===t.chkDisabled)return!1;var c=C.getSetting(e.data.treeId),h=f(t,s.id.CHECK,c);return t.check_Focus=!0,l.setChkClass(c,h,t),!0},onMouseoutCheck:function(e,t){if(!0===t.chkDisabled)return!1;var c=C.getSetting(e.data.treeId),h=f(t,s.id.CHECK,c);return t.check_Focus=!1,l.setChkClass(c,h,t),!0}},h={tools:{},view:{checkNodeRelation:function(e,t){var c,h,a,n=s.radio,i=C.nodeChecked(e,t);if(e.check.chkStyle==n.STYLE){var r=C.getRadioCheckedList(e);if(i)if(e.check.radioType==n.TYPE_ALL){for(h=r.length-1;0<=h;h--){c=r[h],C.nodeChecked(e,c)&&c!=t&&(C.nodeChecked(e,c,!1),r.splice(h,1),l.setChkClass(e,f(c,s.id.CHECK,e),c),c.parentTId!=t.parentTId&&l.repairParentChkClassWithSelf(e,c))}r.push(t)}else{var o=t.parentTId?t.getParentNode():C.getRoot(e);for(h=0,a=(d=C.nodeChildren(e,o)).length;h