From 7a2bcf4e66e794a66c2c568dd3503c350a018366 Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期三, 31 三月 2021 14:14:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop --- public/static/SolidWaste.json | 176 ++++-- src/components/BaseNav/SolidWaste/directive/directive.js | 77 +++ src/api/mapApi.js | 13 src/components/BaseNav/WasteWater/WasteWater.js | 21 src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue | 18 src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png | 0 .env.test | 2 src/utils/tools.js | 11 src/api/SolidWaste/index.js | 6 public/assets/images/map/solidwaste/gf_green.png | 0 src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png | 0 src/components/BaseNav/SolidWaste/SolidWaste.js | 61 +- src/api/index.js | 5 src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png | 0 src/conf/Constants.js | 3 src/utils/axios.js | 19 src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue | 0 src/components/BaseNav/SolidWaste/directive/dir.js | 0 src/components/BaseNav/SolidWaste/directive/index.js | 14 src/router/map.js | 4 src/api/request.js | 10 src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png | 0 src/store/modules/user.js | 149 +++++ src/utils/navigation.js | 167 ++++++ src/api/host.js | 6 src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png | 0 src/store/index.js | 4 src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue | 194 ++++--- src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue | 65 +- src/views/MapTemplate.vue | 17 .env | 2 src/assets/images/login-page/page1.jpg | 0 src/api/mapUrl.js | 10 src/components/BaseNav/PublicBounced/PublicBounced.vue | 28 src/router/index.js | 29 + src/views/Login.vue | 124 ++++ /dev/null | 117 ---- src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png | 0 src/main.js | 3 src/conf/MapConfig.js | 3 .env.production | 2 src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png | 0 src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue | 22 src/app.config.js | 2 public/assets/images/map/solidwaste/voc.png | 0 src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png | 0 src/components/LayerController/logic/SolidWaste.js | 70 ++ 47 files changed, 1,027 insertions(+), 427 deletions(-) diff --git a/.env b/.env index 7b05847..d4d1f4c 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ NODE_ENV=development #vue椤圭洰 灞炴�у悕蹇呴』浠UE_APP_寮�澶达紝姣斿VUE_APP_XXX VUE_APP_MOCK=true -VUE_APP_API_HOST=http://localhost:8080/ +VUE_APP_API_HOST=http://xearth.cn:3000 VUE_APP_API_TOKEN_URL=https://auth.uat.siam.sinopec.com/ VUE_APP_API_BASE_URL=/api VUE_APP_CLIENT_ID=no_apply diff --git a/.env.production b/.env.production index eccd272..75961f6 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ # .env NODE_ENV=production VUE_APP_MOCK=false -VUE_APP_API_HOST=http://localhost:8080/ +VUE_APP_API_HOST=http://localhost:3000/ VUE_APP_API_BASE_URL=/api VUE_APP_API_TOKEN_URL=https://oauth.siam.sinopec.com/ VUE_APP_CLIENT_ID=no_apply diff --git a/.env.test b/.env.test index dc697e7..f5a8555 100644 --- a/.env.test +++ b/.env.test @@ -1,7 +1,7 @@ # .env NODE_ENV=test VUE_APP_MOCK=false -VUE_APP_API_HOST=http://localhost:8080/ +VUE_APP_API_HOST=http://localhost:3000/ VUE_APP_API_TOKEN_URL=https://auth.uat.siam.sinopec.com/ VUE_APP_API_BASE_URL=/api VUE_APP_CLIENT_ID=no_apply diff --git a/src/assets/images/map-pages/basenav/solidwaste/gf_green.png b/public/assets/images/map/solidwaste/gf_green.png similarity index 100% rename from src/assets/images/map-pages/basenav/solidwaste/gf_green.png rename to public/assets/images/map/solidwaste/gf_green.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/solidwaste/voc.png b/public/assets/images/map/solidwaste/voc.png similarity index 100% rename from src/assets/images/map-pages/basenav/solidwaste/voc.png rename to public/assets/images/map/solidwaste/voc.png Binary files differ diff --git a/public/static/SolidWaste.json b/public/static/SolidWaste.json index 3a16382..132f6bf 100644 --- a/public/static/SolidWaste.json +++ b/public/static/SolidWaste.json @@ -1,81 +1,125 @@ { "Result": { "IsSuccess": 1, - "code": 1, "ErrorMsg": "", "DataInfo": [ { - "StoragePlaceId": 124.0, - "StoragePlaceName": "鑱氶啔閮ㄥ嵄闄╁簾鐗╂殏瀛樼偣", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 95.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 95.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.22118377685547, - "positionY": 118.78057479858398 + "StoragePlaceId": 0, + "Name": "宸撮櫟鐭冲寲 鍙栨按鍗曞厓骞叉偿鏆傚瓨搴�", + "StorageQtyMax": 0, + "Longitude": 113.38361, + "Latitude": 29.9008, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 }, { - "StoragePlaceId": 123.0, - "StoragePlaceName": "鍖栧伐閮ㄥ嵄闄╁簾鐗╂殏瀛樼偣", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 260.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 260.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.23122596740723, - "positionY": 118.7743091583252 + "StoragePlaceId": 1, + "Name": "宸撮櫟鐭冲寲 鍚夊婀栫伆濉�", + "StorageQtyMax": 0, + "Longitude": 113.14089, + "Latitude": 29.4181, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 }, { - "StoragePlaceId": 127.0, - "StoragePlaceName": "鐐兼补閮ㄥ嵄闄╁簾鐗╂殏瀛樼偣", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 351.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 351.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.222299575805664, - "positionY": 118.74950408935547 + "StoragePlaceId": 2, + "Name": "闀垮箔鐐煎寲 鍏瓧闂ㄥ瀮鍦惧~鍩嬪満", + "StorageQtyMax": 0, + "Longitude": 113.3916666667, + "Latitude": 29.6394444444, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 }, { - "StoragePlaceId": 126.0, - "StoragePlaceName": "鐑儍閮ㄥ嵄闄╁簾鐗╂殏瀛樼偣", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 1.0, - "DesignFloorArea": 54.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 54.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 1.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.23092555999756, - "positionY": 118.75735759735107 + "StoragePlaceId": 3, + "Name": "涓煩鐭冲寲 鐏版福鍦�", + "StorageQtyMax": 0, + "Longitude": 114.5192083333, + "Latitude": 30.6201666667, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 + }, + { + "StoragePlaceId": 4, + "Name": "瀹夊簡鐭冲寲 灞卞彛搴熸福濉煁鍦�", + "StorageQtyMax": 0, + "Longitude": 116.960599, + "Latitude": 30.541509, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 + }, + { + "StoragePlaceId": 5, + "Name": "瀹夊簡鐭冲寲 鐑數闄堝鍐茬伆鍦�", + "StorageQtyMax": 0, + "Longitude": 116.986949, + "Latitude": 30.534486, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 + }, + { + "StoragePlaceId": 6, + "Name": "楂樻ˉ鐭冲寲 娴锋花鐮佸ご闄勮繎婊╂秱", + "StorageQtyMax": 0, + "Longitude": 121.55, + "Latitude": 31.63, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 + }, + { + "StoragePlaceId": 7, + "Name": "宸濈淮鍖栧伐 鐢熷寲姹℃偿鏂欎粨", + "StorageQtyMax": 0, + "Longitude": 107.02342004, + "Latitude": 29.79235333, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 + }, + { + "StoragePlaceId": 8, + "Name": "宸濈淮鍖栧伐 鎺掓偿姘存偿楗兼枡浠�", + "StorageQtyMax": 0, + "Longitude": 107.02315181, + "Latitude": 29.78832166, + "SortNum": 0, + "DesignFloorArea": 0, + "VideoCoding": null, + "VideoURL": null, + "DaysAlarm": 0, + "MarginAlarm": 0 } ] } -} +} \ No newline at end of file diff --git a/public/static/WasteWater.json b/public/static/WasteWater.json deleted file mode 100644 index 44ed223..0000000 --- a/public/static/WasteWater.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "Result": { - "IsSuccess": 1, - "code": 1, - "ErrorMsg": "", - "DataInfo": [ - { - "StoragePlaceId": 124.0, - "StoragePlaceName": "鐐兼补閮ㄥ惈娌规薄姘存帓鏀惧彛", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 95.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 95.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.234354069955536, - "positionY": 118.76172605141248 - }, - { - "StoragePlaceId": 123.0, - "StoragePlaceName": "姘村姟閮ㄧ儻鐑冨閮ㄦ帓姘村彛", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 260.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 260.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.21783286123124, - "positionY": 118.74581627024358 - }, - { - "StoragePlaceId": 127.0, - "StoragePlaceName": "鑱氶啔閮ㄥ簾姘存帓鏀惧彛", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 351.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 351.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.21761792102056, - "positionY": 118.7694434198091 - }, - { - "StoragePlaceId": 126.0, - "StoragePlaceName": "姘村姟閮ㄩ洦姘存帓鏀惧彛", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 1.0, - "DesignFloorArea": 54.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 54.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 1.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.22328407752166, - "positionY": 118.7645304033338 - }, - { - "StoragePlaceId": 122.0, - "StoragePlaceName": "鐢熶骇搴熸按鎺掓斁鍙�", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 1.0, - "DesignFloorArea": 124.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 124.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 1.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.22478169721047, - "positionY": 118.75309838487216 - }, - { - "StoragePlaceId": 129.0, - "StoragePlaceName": "鍖栧纭寲鍝佹帓姘村彛", - "HazaWasteStorageDate": "0001-01-01T00:00:00", - "HazaWasteCatgrName": null, - "SurplusQuantityWarning": 0, - "LongDayWarning": 0, - "DesignFloorArea": 78.0, - "HazaWasteName": null, - "EstimateFloorArea": 0.0, - "HazaWasteDeptName": null, - "SurplusFloorArea": 78.0, - "HazaWasteStorageDays": 0.0, - "StorageQty": 0.0, - "HazaWasteStorageQty": 0.0, - "positionX": 32.228692681454525, - "positionY": 118.77199913186048 - } - ] - } -} diff --git a/src/api/SolidWaste/index.js b/src/api/SolidWaste/index.js new file mode 100644 index 0000000..b034763 --- /dev/null +++ b/src/api/SolidWaste/index.js @@ -0,0 +1,6 @@ +import $http from '@utils/axios' +// import Qs from 'qs' + +export const getSolidWaste = (data = {}) => { + return $http.get('/wasteSolid/getSolidWaste', data) +} diff --git a/src/api/host.js b/src/api/host.js new file mode 100644 index 0000000..d2b8228 --- /dev/null +++ b/src/api/host.js @@ -0,0 +1,6 @@ +/** + * 鏈嶅姟HOST瀹氫箟 + */ +import { getSchemeHost } from '../utils/tools' + +export const $HOST = getSchemeHost() diff --git a/src/api/index.js b/src/api/index.js index 1df9919..62f9063 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,7 +1,4 @@ import * as mapApi from './mapApi' import * as mapUrl from './mapUrl' -export default { - mapApi, - mapUrl -} +export default Object.assign({}, mapApi, mapUrl) diff --git a/src/api/mapApi.js b/src/api/mapApi.js index 3cde8cb..ce6c47f 100644 --- a/src/api/mapApi.js +++ b/src/api/mapApi.js @@ -3,13 +3,16 @@ // const $HOST = 'http://10.238.221.113' // 娴嬭瘯鐜IP锛歨ttp://10.238.221.113 import axios from '@utils/axios' +import * as mapUrl from './mapUrl' + /** * 璇ユ柟娉曢厤缃� */ -class MapAPI { - getToken (param) { - axios.get(param.url, param.option) +export default { + getUser (data) { + return axios.get(mapUrl.GetUser, data) + }, + getSolidWaste (data) { + return axios.get(mapUrl.getSolidWaste, data) } } - -export default new MapAPI() diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index bc905e4..afdb4e3 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -1,10 +1,8 @@ /** * 璇ユ枃浠堕厤缃帴鍙g殑URL鍦板潃 */ -class ApiURLs { - constructor () { - this.APIURL_HELLOWORLD = 'http://www.baidu.com' - } -} +import { $HOST } from './host' -export default new ApiURLs() +export const GetUser = $HOST + '/user/getUser' + +export const getSolidWaste = $HOST + '/wasteSolid/getSolidWaste' diff --git a/src/api/request.js b/src/api/request.js index 9f9091d..bceceb3 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -8,6 +8,13 @@ } }) } +// export const QueryStoragePlaceListByCompanyAndName = (data = {}) => { +// return $http.get('http://xearth.cn:3000/wasteSolid/getSolidWaste', Qs.stringify(data), { +// headers: { +// 'Content-Type': 'application/json' +// } +// }) +// } export const FlueGas = (data = {}) => { return $http.post('/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo', Qs.stringify(data), { headers: { @@ -15,10 +22,11 @@ } }) } + export function requestWasteWater (data = {}) { return $http.post('EPInterface/DataService/EPMapService.asmx/ObtainningConInfo', Qs.stringify(data), { headers: { 'Content-Type': 'application/json' } }) -} \ No newline at end of file +} diff --git a/src/app.config.js b/src/app.config.js index cf2a95f..295d938 100644 --- a/src/app.config.js +++ b/src/app.config.js @@ -11,7 +11,7 @@ developmentOff: true // 璁句负true鍚庡湪寮�鍙戠幆澧冧笉浼氭敹闆嗛敊璇俊鎭� } }, - homeRouterName: 'Home', + homeRouterName: 'mapTemplate', loginRouteName: 'Login', routeMode: 'history', tagNavCache: false, diff --git a/src/assets/images/login-page/page1.jpg b/src/assets/images/login-page/page1.jpg new file mode 100644 index 0000000..96be519 --- /dev/null +++ b/src/assets/images/login-page/page1.jpg Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png new file mode 100644 index 0000000..93edcb3 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png new file mode 100644 index 0000000..19b0397 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png new file mode 100644 index 0000000..590b183 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png new file mode 100644 index 0000000..08e8a59 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png new file mode 100644 index 0000000..acc7c10 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png new file mode 100644 index 0000000..718f237 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png new file mode 100644 index 0000000..5f93934 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png new file mode 100644 index 0000000..169ce4d --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png Binary files differ diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue index 9084a18..675b787 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue @@ -7,10 +7,12 @@ <div class="border_corner border_corner_left_bottom"></div> <div class="border_corner border_corner_right_bottom"></div> <div class="main"> - <div class="main-echarts"> - <div id="echarts" style="width:100%;height:100%" ref="main"></div> + <div id="echarts" ref="main"></div> + <div class="border_corner border_corner_left_top"></div> + <div class="border_corner border_corner_right_top"></div> + <div class="border_corner border_corner_left_bottom"></div> + <div class="border_corner border_corner_right_bottom"></div> </div> - </div> </div> </template> @@ -22,18 +24,27 @@ const myChart = this.$echarts.init(this.$refs.main) const option = { title: { - text: '鎶樼嚎鍥惧爢鍙�' + // text: '鎶樼嚎鍥惧爢鍙�' }, - // color: '#fff', + color: ['#5470c6', '#91CC75', '#EE6666', '#FF0087'], tooltip: { - trigger: 'axis' + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + color: '#1a4245' + } + } }, - // legend: { - // data: ['閭欢钀ラ攢', '鑱旂洘骞垮憡', '瑙嗛骞垮憡', '鐩存帴璁块棶', '鎼滅储寮曟搸'] - // }, + legend: { + data: ['姘哀鍖栫墿', '浜屾哀鍖栫~', '鐑熷皹', '搴熸皵娴侀噺'] + // pageTextStyle: { + // color: '#fff' + // } + }, grid: { left: '3%', - right: '4%', + right: '3%', bottom: '3%', containLabel: true }, @@ -42,63 +53,98 @@ saveAsImage: {} } }, + // 鍥炬爣缂╂斁璁剧疆 + dataZoom: [{ + type: 'inside', + start: 0, + end: 100 + }, { + start: 0, + end: 100, + show: false, + // handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z', + handleSize: '80%', + handleStyle: { + color: '#fff', + shadowBlur: 3, + shadowColor: 'rgba(0, 0, 0, 0.6)', + shadowOffsetX: 2, + shadowOffsetY: 2 + } + }], + // x杞寸殑璁剧疆 xAxis: { type: 'category', boundaryGap: false, - data: ['鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚', '鍛ㄦ棩'], - axisLabel: { + data: ['12:00:01', '12:00:02', '12:00:03', '12:00:04', '12:00:05', '12:00:06', '12:00:07'], + axisLabel: { // x杞村叏閮ㄦ樉绀� + rotate: 20, + interval: 0, textStyle: { - color: '#7edae8' // 鍧愭爣鐨勫瓧浣撻鑹� + color: '#fff' } }, - axisLine: { - show: false, // 闅愯棌鍧愭爣杞� + splitLine: { // 缃戞牸鍨傜洿绾夸负铏氱嚎 + show: true, lineStyle: { - color: '#00eeff' // 鍧愭爣杞寸殑棰滆壊 + type: 'dashed' + } + }, + axisTick: { // x 杞村埢搴︽樉绀� + show: false + }, + axisLine: { + lineStyle: { + color: '#FFFFFF', + width: 1 // 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑 } } }, + // Y 杞寸殑璁剧疆 yAxis: [{ type: 'value', + // name: yname, // 鍚庢湡鍥炬爣Y杞存樉绀哄崟浣� + name: '娴撳害(mg/m鲁)', axisLabel: { + formatter: '{value}', textStyle: { - color: '#7edae8' // 鍧愭爣鐨勫瓧浣撻鑹� + color: '#fff' // 鍧愭爣鐨勫瓧浣撻鑹� } }, + axisPointer: { + snap: true // 鑷姩鍚搁檮鏈�杩戠殑鐐� + }, + splitLine: { + show: false // y杞� 缃戞牸绾夸笉鏄剧ず + }, axisLine: { - show: false, // 闅愯棌鍧愭爣杞� lineStyle: { - color: '#00eeff' // 鍧愭爣杞寸殑棰滆壊 + color: '#ffffff', // 鍧愭爣杞寸殑棰滆壊 + width: 1 } } }], series: [ { - name: '閭欢钀ラ攢', + name: '姘哀鍖栫墿', type: 'line', stack: '鎬婚噺', data: [120, 132, 101, 134, 90, 230, 210] }, { - name: '鑱旂洘骞垮憡', - type: 'line', - stack: '鎬婚噺', - data: [220, 182, 191, 234, 290, 330, 310] - }, - { - name: '瑙嗛骞垮憡', + name: '浜屾哀鍖栫~', type: 'line', stack: '鎬婚噺', data: [150, 232, 201, 154, 190, 330, 410] }, { - name: '鐩存帴璁块棶', + name: '鐑熷皹', type: 'line', stack: '鎬婚噺', data: [320, 332, 301, 334, 390, 330, 320] }, { - name: '鎼滅储寮曟搸', + name: '搴熸皵娴侀噺', type: 'line', stack: '鎬婚噺', data: [820, 932, 901, 934, 1290, 1330, 1320] @@ -115,50 +161,48 @@ </script> <style scoped lang="less"> -.win { - width: 100%; - height: 100%; - position: relative; - //display: inline-block; - background-color: rgba(33, 41, 69,0.9); -} -.border_corner{ - z-index: 2500; - position: absolute; - width: 10px; - height: 10px; - background: rgba(0,0,0,0); - border: 1.5px solid #47d5ea; -} -.border_corner_left_top{ - top: 0; - left: 0; - border-right: none; - border-bottom: none; -} -.border_corner_right_top{ - top: 0; - right: 0; - border-left: none; - border-bottom: none; -} -.border_corner_left_bottom{ - bottom: 0; - left: 0; - border-right: none; - border-top: none; -} -.border_corner_right_bottom{ - bottom: 0; - right: 0; - border-left: none; - border-top: none; -} -.main { - width: 100%; - height: 100%; - .main-echarts{ - border: 1px solid #396d83; - } -} + .win { + /*width: 100%;*/ + /*height: 100%;*/ + position: relative; + //display: inline-block; + background-color: rgba(33, 41, 69,0.9); + } + #echarts{ + width: 600px; + height: 260px; + } + .border_corner{ + z-index: 2500; + position: absolute; + width: 14px; + height: 14px; + background: rgba(0,0,0,0); + border: 2px solid #47d5ea; + } + .border_corner_left_top{ + top: 0; + left: 0; + border-right: none; + border-bottom: none; + } + .border_corner_right_top{ + top: 0; + right: 0; + border-left: none; + border-bottom: none; + } + .border_corner_left_bottom{ + bottom: 0; + left: 0; + border-right: none; + border-top: none; + border-bottom-left-radius: 4px; + } + .border_corner_right_bottom{ + bottom: 0; + right: 0; + border-left: none; + border-top: none; + } </style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue index e05f59f..ebf7ddd 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue @@ -37,7 +37,6 @@ .win { position: relative; - //display: inline-block; margin-bottom: 13px; background-color: rgba(33, 41, 69,0.9); } @@ -46,7 +45,6 @@ height: 100%; .main-matter{ font-size: 13px; - padding: 9px 7px; font-weight: normal; border: 1px solid #396d83; .row-item-one{ @@ -56,7 +54,7 @@ width: 100%; color: #00d0f9; display: flex; - font-size: 12px!important; + font-size: 12px !important; .el-col{ flex: 1; width: 100%; @@ -73,7 +71,7 @@ } } .border_corner{ - z-index: 2500; + z-index: 999; position: absolute; width: 10px; height: 10px; @@ -104,20 +102,4 @@ border-left: none; border-top: none; } -//.el-row { -// width: 100%; -// color: #00d0f9; -// .el-col{ -// width: 180px; -// height: 28px; -// background-color: #243a55;; -// text-align: center; -// line-height: 28px; -// margin-left: 6px; -// border-radius: 4px; -// &:nth-child(1){ -// margin-left:0; -// } -// } -//} </style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue index fc152ab..93776b0 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue @@ -7,7 +7,7 @@ <div class="border_corner border_corner_right_bottom"></div> <div class="main"> <div class="main-video"> - <video width="100%" height="100%" controls> + <video controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> </video> @@ -24,23 +24,25 @@ <style scoped lang="less"> .win { - /*width: 100%;*/ - /*height: 100%;*/ position: relative; - //display: inline-block; background-color: rgba(33, 41, 69,0.9); -/*//border: 1px solid #396d83;*/ } .main { width: 100%; height: 100%; .main-video { - padding: 7px; - border: 1px solid #396d83; + //border: 1px solid #396d83; + width: 100%; + height: 100%; + video { + width: 100%; + height: 100%; + outline: none; + } } } .border_corner{ - z-index: 2500; + z-index: 999; position: absolute; width: 14px; height: 14px; diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue index 2c878b8..b9fae10 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue @@ -1,53 +1,48 @@ <template> <div class="public-table"> - <table border="1"> - <tr> - <th>111</th> - <th>111</th> - <th>111</th> - <th>111</th> - <th>111</th> - <th>111</th> - </tr> - <tr> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - </tr> - </table> + <el-col class="el-col"> + <el-table + border + tooltip-effect="dark" + :data="data" + > + <el-table-column prop="name" label="搴忓彿"></el-table-column> + <el-table-column prop="name" label="绫诲埆"></el-table-column> + <el-table-column prop="date" label="鍥哄簾鍚嶇О"></el-table-column> + <el-table-column prop="address" label="浠g爜"></el-table-column> + <el-table-column prop="address" label="浜х敓閲�"></el-table-column> + <el-table-column prop="name" label="鍌ㄥ瓨閲�"></el-table-column> + <el-table-column prop="date" label="浜х敓瑁呯疆"></el-table-column> + </el-table> + </el-col> </div> </template> <script> export default { name: 'PublicTable', + props: ['requestSolidWasteData'], data () { return { - tableData: [{ - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�' - }, { - date: '2016-05-01', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' - }] + data: [] + } + }, + mounted () { + this.$nextTick(() => { + this.getSolidWasteData() + }) + }, + methods: { + getSolidWasteData () { + // const data = requestSolidWasteData + // console.log(data) } } } </script> <style lang="less" scoped> +.public-table { +} </style> diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue index 275b86e..d854b06 100644 --- a/src/components/BaseNav/PublicBounced/PublicBounced.vue +++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue @@ -7,8 +7,9 @@ <div class="public-bounced-content"> <div class="public-bounced-content-left"> <GasTab :displayContent="displayContent"></GasTab> - <PublicTable v-if="value === 'gufei'"></PublicTable> - <GasECharts v-else></GasECharts> + <!-- <PublicTable v-if="value === 'gufei'" :requestSolidWasteData="displayContent.StoragePlaceId"></PublicTable>--> + <PublicTable></PublicTable> + <!-- <GasECharts v-else></GasECharts>--> </div> <div class="public-bounced-content-right"> <GasVideo></GasVideo> @@ -19,10 +20,10 @@ <script> -import '@/components/BaseNav/SolidWaste/directive' +import '@/components/BaseNav/SolidWaste/directive/dir' import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab' import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable' -import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts' +// import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts' import GasVideo from '@components/BaseNav/PublicBounced/GasComponents/GasVideo' export default { @@ -30,7 +31,7 @@ components: { GasTab, PublicTable, - GasECharts, + // GasECharts, GasVideo }, data () { @@ -40,10 +41,10 @@ } }, methods: { - setData (data, value) { + setData (data) { this.displayContent = data this.flag = true - this.value = value + // this.value = value }, closePopup () { this.flag = false @@ -54,10 +55,11 @@ <style lang="less" scoped> .public-bounced { + width: 75%; z-index: 999; position: absolute; - top: 50%; - left: 50%; + bottom: 5%; + left: 15%; background-color: #002432; border: 1px #9fc5c8 solid; @@ -82,16 +84,20 @@ } .public-bounced-content { + margin: 15px auto; display: flex; align-items: center; justify-content: space-around; .public-bounced-content-left { + width: 48%; + height: 100%; } .public-bounced-content-right { + width: 48%; + height: 100%; } } - } -</style> \ No newline at end of file +</style> diff --git a/src/components/BaseNav/SolidWaste/SolidWaste.js b/src/components/BaseNav/SolidWaste/SolidWaste.js index 6df5e3e..7cedfa6 100644 --- a/src/components/BaseNav/SolidWaste/SolidWaste.js +++ b/src/components/BaseNav/SolidWaste/SolidWaste.js @@ -67,9 +67,9 @@ // console.log(this.map.setCenter([e.target.getLatLng().lat, e.target.getLatLng().lng])) // this.map.flyTo([e.target.getLatLng().lat, e.target.getLatLng().lng]) // this.map.panTo([e.target.getLatLng().lat, e.target.getLatLng().lng], 100) - this.setPanTo(e.target.getLatLng(), 30) + this.setPanTo(e.target.getLatLng(), 250) this.EffectOfPulse(e.target.getLatLng()) - this.SolidWastePopup.setData(data[i], 'gufei') + // this.SolidWastePopup.setData(data[i], 'gufei') return this.SolidWastePopup.$el } catch (error) { console.log(error) @@ -87,8 +87,9 @@ position = this.map.latLngToLayerPoint(position) position.y += value position = this.map.layerPointToLatLng(position) - this.map.setView(position) - // this.map.flyTo(position) + // this.map.setView(position) + this.map.flyTo(position) + // this.map.panTo(position) } // 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃� @@ -121,32 +122,32 @@ // 鑴夊啿鏁堟灉璁剧疆瀹炵幇 EffectOfPulse (position, markers, layerGroup) { // 鍖哄垎鐩存帴鎵ц 鍜屽垽鏂墽琛岀殑涓嶅悓鍖哄埆 - var differentColor = '' - if (markers) { - differentColor = '#ff0000' - } else { - differentColor = '#98FB98' - } - // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject - var FinalPosition = position instanceof Array ? { - lat: position[0], - lng: position[1] - } : position - // 鎻掍欢 鏁堟灉瀹炵幇 - var pulsingIcon = this.L.icon.pulse({ - iconSize: [20, 20], - color: differentColor, - fillColor: '' - }) - if (markers) { - // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon })) - // this.L.layerGroup(markers).addLayer(layerGroup) - } else { - var picGroupMarker = new this.L.FeatureGroup() - this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker) - this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup) - this.PulseCountSetting() - } + // var differentColor = '' + // if (markers) { + // differentColor = '#ff0000' + // } else { + // differentColor = '#98FB98' + // } + // // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject + // var FinalPosition = position instanceof Array ? { + // lat: position[0], + // lng: position[1] + // } : position + // // 鎻掍欢 鏁堟灉瀹炵幇 + // var pulsingIcon = this.L.icon.pulse({ + // iconSize: [20, 20], + // color: differentColor, + // fillColor: '' + // }) + // if (markers) { + // // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon })) + // // this.L.layerGroup(markers).addLayer(layerGroup) + // } else { + // var picGroupMarker = new this.L.FeatureGroup() + // this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker) + // this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup) + // this.PulseCountSetting() + // } } // 瀵瑰浘鏍囪剦鍐� 杩涜set璁剧疆 // 楂樹寒鍥惧眰 diff --git a/src/components/BaseNav/SolidWaste/directive.js b/src/components/BaseNav/SolidWaste/directive/dir.js similarity index 100% rename from src/components/BaseNav/SolidWaste/directive.js rename to src/components/BaseNav/SolidWaste/directive/dir.js diff --git a/src/components/BaseNav/SolidWaste/directive/directive.js b/src/components/BaseNav/SolidWaste/directive/directive.js new file mode 100644 index 0000000..a656af4 --- /dev/null +++ b/src/components/BaseNav/SolidWaste/directive/directive.js @@ -0,0 +1,77 @@ +export default { + bind (el, binding, vnode) { + const dialogHeaderEl = el.querySelector('.el-dialog__header') + const dragDom = el.querySelector('.el-dialog') + dialogHeaderEl.style.cssText += ';cursor:move;' + dragDom.style.cssText += ';top:0px;' + + // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null); + const getStyle = (function () { + if (window.document.currentStyle) { + return (dom, attr) => dom.currentStyle[attr] + } else { + return (dom, attr) => getComputedStyle(dom, false)[attr] + } + })() + + dialogHeaderEl.onmousedown = (e) => { + // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂� + const disX = e.clientX - dialogHeaderEl.offsetLeft + const disY = e.clientY - dialogHeaderEl.offsetTop + + const dragDomWidth = dragDom.offsetWidth + const dragDomHeight = dragDom.offsetHeight + + const screenWidth = document.body.clientWidth + const screenHeight = document.body.clientHeight + + const minDragDomLeft = dragDom.offsetLeft + const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth + + const minDragDomTop = dragDom.offsetTop + const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight + + // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲 + let styL = getStyle(dragDom, 'left') + let styT = getStyle(dragDom, 'top') + + if (styL.includes('%')) { + styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100) + styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100) + } else { + styL = +styL.replace(/\px/g, '') + styT = +styT.replace(/\px/g, '') + } + + document.onmousemove = function (e) { + // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈 + let left = e.clientX - disX + let top = e.clientY - disY + + // 杈圭晫澶勭悊 + if (-(left) > minDragDomLeft) { + left = -minDragDomLeft + } else if (left > maxDragDomLeft) { + left = maxDragDomLeft + } + + if (-(top) > minDragDomTop) { + top = -minDragDomTop + } else if (top > maxDragDomTop) { + top = maxDragDomTop + } + + // 绉诲姩褰撳墠鍏冪礌 + dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;` + + // emit onDrag event + vnode.child.$emit('dragDialog') + } + + document.onmouseup = function (e) { + document.onmousemove = null + document.onmouseup = null + } + } + } +} diff --git a/src/components/BaseNav/SolidWaste/directive/index.js b/src/components/BaseNav/SolidWaste/directive/index.js new file mode 100644 index 0000000..d8a3108 --- /dev/null +++ b/src/components/BaseNav/SolidWaste/directive/index.js @@ -0,0 +1,14 @@ +// import drag from './drag' +import drag from './directive' + +const install = function (Vue) { + Vue.directive('el-drag-dialog', drag) +} + +if (window.Vue) { + window['el-drag-dialog'] = drag + Vue.use(install) // eslint-disable-line +} + +drag.install = install +export default drag diff --git a/src/components/BaseNav/WasteWater/WasteWater.js b/src/components/BaseNav/WasteWater/WasteWater.js index c2f3d6b..05f7b50 100644 --- a/src/components/BaseNav/WasteWater/WasteWater.js +++ b/src/components/BaseNav/WasteWater/WasteWater.js @@ -52,16 +52,17 @@ const Icon = new WasteWaterIcon({ iconUrl: iconUrl }) // let url = Icon.options.iconUrl - const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' }) + // const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' }) // 甯︽樉绀哄姩鐢� + const marker = this.L.marker([positionX, positionY], { icon: Icon }) - marker.bindPopup(() => { - return this.WasteWaterPopup.$el - }, { - className: 's-map-popup', - minWidth: 1000, - closeButton: true, - autoClose: false - }) + // marker.bindPopup(() => { + // return this.WasteWaterPopup.$el + // }, { + // className: 's-map-popup', + // minWidth: 1000, + // closeButton: true, + // autoClose: false + // }) // 鍒掕繃鍑虹幇 灞曠ず鏁版嵁 marker.bindTooltip(data[i].Name, { permanent: true, @@ -74,7 +75,7 @@ try { // console.log(e) this.EffectOfPulse(e.target.getLatLng()) - this.WasteWaterPopup.setDate(data[i]) + this.WasteWaterPopup.setData(data[i]) return this.WasteWaterPopup.$el } catch (error) { console.log(error) diff --git a/src/components/LayerController/logic/SolidWaste.js b/src/components/LayerController/logic/SolidWaste.js new file mode 100644 index 0000000..dfc5841 --- /dev/null +++ b/src/components/LayerController/logic/SolidWaste.js @@ -0,0 +1,70 @@ +/** + * 鍥哄簾 + */ +// 鍖哄垎涓嶅悓绫诲瀷 浣跨敤涓嶅悓img +const defaultImg = '/assets/images/map/solidwaste/voc.png' +const setting = '/assets/images/map/solidwaste/gf_green.png' + +const mapApi = require('../../../api/mapApi').default +const AnimalService = require('../service/AnimalService').default + +module.exports = function () { + /** + * 杩斿洖marker瀵硅薄鏁扮粍 + * @param L leaflet瀵硅薄 + */ + this.init = async (layer, L) => { + // const SolidWasteIcon = this.SolidWasteIcon() + this.animalService = new AnimalService({ + L: L, + layer: layer + }) + const res = await mapApi.getSolidWaste() + // console.log(res) + const data = res.Result.DataInfo || {} + for (let i = 0; i < data.length; i++) { + // 缁忕含搴� 浣嶇疆 + const positionX = data[i].Latitude + const positionY = data[i].Longitude + + // 瀹氫箟绫诲瀷 鐢ㄦ潵鍖哄垎鏁版嵁鐨勪笉鍚� + const judgeValue = data[i].StorageQty + var iconUrl = this.differentTypes(judgeValue) + + const marker = L.marker.magic([positionX, positionY], { + icon: L.icon({ + iconUrl: iconUrl, + iconSize: [50, 50], + iconAnchor: [25, 25] + }) + }) + + layer.addLayer(marker) + } + } + + this.bindTooltip = (layer) => { + return '娴嬭瘯鍥哄簾' + } + + this.clickListener = (e) => { + this.animalService.pulseEffect(e.latlng) + console.log(e) + return this.PublicBounced.$el + } + + // 涓嶅悓绫诲瀷鍥剧墖灏佽 + this.differentTypes = (judgeValue) => { + var effectOfChange + if (judgeValue === 1) { + effectOfChange = defaultImg + } else { + effectOfChange = setting + } + return effectOfChange + } + // 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃� + // SetSolidWasteContent (config, containerPopup) { + // this.SolidWastePopup = containerPopup + // } +} diff --git a/src/conf/Constants.js b/src/conf/Constants.js index 97a3af7..e2ac498 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -8,7 +8,8 @@ fsqy: 'Sample.js', fspfk: 'Sample.js', fsjcd: 'Sample.js', - wasteGasJcd: 'WasteGas.js' + wasteGasJcd: 'WasteGas.js', + solidWasteJcd: 'SolidWaste.js' } export const props = { diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js index 1326a16..d1ece05 100644 --- a/src/conf/MapConfig.js +++ b/src/conf/MapConfig.js @@ -25,7 +25,8 @@ minZoom: 3, maxZoom: 18, // center: [26, 104], - center: [38.828558921813965, 117.41676807403564], + // center: [38.828558921813965, 117.41676807403564], + center: [29.769515991210938, 107.03567504882812], zoom: 14, worldCopyJump: true, inertia: true, diff --git a/src/main.js b/src/main.js index e4615a1..653b668 100644 --- a/src/main.js +++ b/src/main.js @@ -15,12 +15,13 @@ import '@/utils/dialogDrag.js' import '@components/plugin/leaflet-measure-path/leaflet-measure-path.css' import '@components/plugin/leaflet-measure-path/leaflet-measure-path' - +const appConfig = require('@/app.config') Vue.config.productionTip = false Vue.use(ElementUI) Vue.prototype.$cancels = [] Vue.prototype.L = L +Vue.prototype.$config = appConfig Vue.prototype.$echarts = echarts // 鎸傝浇echarts // 娉ㄥ唽鎸囦护7 // registerDirectives(Vue) diff --git a/src/router/index.js b/src/router/index.js index 32dae04..6bc1550 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,10 +1,11 @@ import Vue from 'vue' import Router from 'vue-router' import { routes } from './routes' +import { getToken } from '@/utils/navigation' import 'nprogress/nprogress.css' const appConfig = require('@/app.config') -const { routeMode } = appConfig - +const { homeRouterName, loginRouteName, routeMode } = appConfig +const LOGIN_PAGE_ROUTE_NAME = loginRouteName Vue.use(Router) const baseName = process.env.NODE_ENV === 'production' ? `/${appConfig.projectName}/` : '/' const router = new Router({ @@ -17,12 +18,32 @@ cancel() }) Vue.prototype.$cancels = [] + const token = getToken() + if (!token && to.name !== LOGIN_PAGE_ROUTE_NAME) { + // 鏈櫥褰曚笖瑕佽烦杞殑椤甸潰涓嶆槸鐧诲綍椤� + next({ + name: LOGIN_PAGE_ROUTE_NAME // 璺宠浆鍒扮櫥褰曢〉 + }) + } else if (!token && to.name === LOGIN_PAGE_ROUTE_NAME) { + // 鏈櫥闄嗕笖瑕佽烦杞殑椤甸潰鏄櫥褰曢〉 + next() // 璺宠浆 + } else if (token && to.name === LOGIN_PAGE_ROUTE_NAME) { + // 宸茬櫥褰曚笖瑕佽烦杞殑椤甸潰鏄櫥褰曢〉 + next({ + name: homeRouterName // 璺宠浆鍒癶omeName椤� + }) + } else if (!token) { + next({ + name: LOGIN_PAGE_ROUTE_NAME // 璺宠浆鍒扮櫥褰曢〉 + }) + } else { + next() + } // 涓嶉渶瑕佺櫥褰曡璇佺殑璺敱 if (Object.hasOwnProperty.call(to.meta, 'noLoginIdentify') && to.meta.noLoginIdentify) { next() - return } - next() + // next() }) router.beforeResolve((to, from, next) => { next() diff --git a/src/router/map.js b/src/router/map.js index 9372783..328884b 100644 --- a/src/router/map.js +++ b/src/router/map.js @@ -9,8 +9,10 @@ * } */ const MapTemplate = (r) => require.ensure([], () => r(require('../views/MapTemplate')), 'frame') +const Login = (r) => require.ensure([], () => r(require('../views/Login')), 'frame') const routes = [ - { path: '/mapTemplate', name: 'MapTemplate', meta: { statusBgc: 0 }, component: MapTemplate } + { path: '/mapTemplate', name: 'MapTemplate', meta: { statusBgc: 0 }, component: MapTemplate }, + { path: '/Login', name: 'Login', meta: { statusBgc: 0 }, component: Login } ] // 鎵�鏈変笂闈㈠畾涔夌殑璺敱閮借鍐欏湪涓嬮潰鐨剅outes閲� diff --git a/src/store/index.js b/src/store/index.js index 1b3e167..2d18c38 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,6 +1,7 @@ import Vue from 'vue' import Vuex from 'vuex' import map from './modules/map' +import user from './modules/user' // import app from './modules/app' Vue.use(Vuex) @@ -13,6 +14,7 @@ }, modules: { // app, - map + map, + user } }) diff --git a/src/store/modules/user.js b/src/store/modules/user.js new file mode 100644 index 0000000..57ed576 --- /dev/null +++ b/src/store/modules/user.js @@ -0,0 +1,149 @@ +import $API from '../../api' +import $http from '@/utils/axios' +import { setToken, getToken, setAccount, getAccount } from '@/utils/navigation' +// import { replaceUrlParams } from '@/utils/tools' + +const state = { + account: '', + userName: '', + userId: '', + avator: '', + orgUnitName: '', + orgUnitCode: '', + orgUnitLevel: '', + orgSectorName: '', + orgSectorCode: '', + isAdmin: null, + token: getToken(), + access: 0, + hasGetInfo: false +} + +const mutations = { + setAvator (state, avator) { + state.avator = avator + }, + setUserId (state, id) { + state.userId = id + }, + setAccount (state, account) { + state.account = account + setAccount(account) + }, + setUserName (state, name) { + state.userName = name + }, + setOrgUnitName (state, orgUnitName) { + state.orgUnitName = orgUnitName + }, + setOrgUnitCode (state, orgUnitCode) { + state.orgUnitCode = orgUnitCode + }, + setOrgSectorName (state, orgSectorName) { + state.orgSectorName = orgSectorName + }, + setOrgSectorCode (state, orgSectorCode) { + state.orgSectorCode = orgSectorCode + }, + setOrgUnitLevel (state, orgUnitLevel) { + state.orgUnitLevel = orgUnitLevel + }, + setAdmin (state, isAdmin) { + state.isAdmin = isAdmin + }, + setAccess (state, access) { + state.access = access + }, + setToken (state, token) { + state.token = token + setToken(token) + }, + setHasGetInfo (state, status) { + state.hasGetInfo = status + } +} + +const actions = { + // 鐧诲綍 + handleLogin ({ commit }, { account, password }) { + return new Promise((resolve, reject) => { + $http.post($API.GetUser, { + userName: account, + passWord: password + }).then(data => { + console.log(data) + commit('setToken', '12345668') + commit('setAccount', account) + resolve() + }).catch(err => { + reject(err) + }) + }) + }, + // 閫�鍑虹櫥褰� + handleLogOut ({ state, commit }) { + return new Promise((resolve, reject) => { + commit('setToken', '') + commit('setAccount', '') + commit('setAccess', 0) + resolve() + }) + }, + // 鑾峰彇鐢ㄦ埛淇℃伅 + getUserInfo ({ state, commit, dispatch }) { + const account = getAccount() || 'admin' + return new Promise((resolve, reject) => { + try { + $http.get($API.AAA_GET_USER_INFO, { + token: state.token + }).then(response => { + const data = response.data + commit('setAvator', data.avator) + // commit('setOrgUnitName', data.orgUnitName) + // commit('setOrgUnitCode', data.orgUnitCode) + commit('setUserId', data.userId) + commit('setAccess', data.access) + commit('setHasGetInfo', true) + if (account === 'tianjun') { + // admin鐨勫満鏅蛋mock + commit('setAccount', data.account) + commit('setUserName', data.userName) + resolve(data) + } else { + $http.get($API.MDM_GET_USER_ACCOUNT_DETAIL, { + account: account + }).then(response => { + const d = response.data + if (d) { + commit('setAccount', d.unifiedIdentityAcc) + commit('setUserName', d.userName) + // 鑾峰彇鐢ㄦ埛鍚庯紝鑾峰彇缁勭粐鏈烘瀯 + dispatch('getUserOrgInfo').then(() => { + resolve(d) + }).catch(err => { + alert('涓嶈兘鑾峰彇鐢ㄦ埛缁勭粐鏈烘瀯') + reject(err) + }) + } else { + commit('setToken', '') + commit('setAccount', '') + commit('setAccess', 0) + resolve(false) + } + }) + } + }).catch(err => { + reject(err) + }) + } catch (error) { + reject(error) + } + }) + } +} + +export default { + state, + mutations, + actions +} diff --git a/src/utils/axios.js b/src/utils/axios.js index 7f944e8..d42baf4 100644 --- a/src/utils/axios.js +++ b/src/utils/axios.js @@ -83,8 +83,7 @@ // 鍒涘缓axios瀹炰緥 const Service = axios.create({ - timeout: 5000, - baseURL: 'http://10.246.162.140:8080/' + timeout: 1000 }) const CancelToken = axios.CancelToken @@ -140,14 +139,14 @@ // respone鎷︽埅鍣� Service.interceptors.response.use( response => { - // const res = response.data - // if (Number(res.code) !== 200 && Number(res.code) !== 0) { - // $T.warning(res.message) - // return Promise.reject(res.message) - // } else { - // return res - // } - return response.data + const res = response.data + /* if (Number(res.code) !== 200 && Number(res.code) !== 0) { + $T.warning(res.message) + return Promise.reject(res.message) + } else { + return res + } */ + return res }, error => { if (error.message && error.message.includes('timeout')) { diff --git a/src/utils/navigation.js b/src/utils/navigation.js new file mode 100644 index 0000000..1c09633 --- /dev/null +++ b/src/utils/navigation.js @@ -0,0 +1,167 @@ +import Cookies from 'js-cookie' +const appConfig = require('@/app.config') +const { cookieExpires } = appConfig + +export const TOKEN_KEY = 'token' +export const ACCOUNT_KEY = 'account' +export const setToken = (token) => { + Cookies.set(TOKEN_KEY, token, { expires: cookieExpires || 1 }) +} + +export const getToken = () => { + const token = Cookies.get(TOKEN_KEY) + if (token !== 'undefined') return token + else return false +} + +export const setAccount = (account) => { + Cookies.set(ACCOUNT_KEY, account, { expires: cookieExpires || 1 }) +} + +export const getAccount = () => { + const account = Cookies.get(ACCOUNT_KEY) + if (account) return account + else return false +} + +export const hasChild = (item) => { + return item.children && item.children.length !== 0 +} + +/** + * @description 鏈湴瀛樺偍鍜岃幏鍙栨爣绛惧鑸垪琛� + */ +export const setTagNavListToLocalstorage = list => { + localStorage.tagNaveList = JSON.stringify(list) +} + +/** + * @returns {Array} 鍏朵腑鐨勬瘡涓厓绱犲彧鍖呭惈璺敱鍘熶俊鎭腑鐨刵ame, path, meta涓夐」 + */ +export const getTagNavListFromLocalstorage = () => { + const list = localStorage.tagNaveList + return list ? JSON.parse(list) : [] +} + +/** + * @param {Array} routers 璺敱鍒楄〃鏁扮粍 + * @description 鐢ㄤ簬鎵惧埌璺敱鍒楄〃涓璶ame涓篽ome鐨勫璞� + */ +export const getHomeRouter = (routers, homeName = 'Home') => { + let i = -1 + const len = routers.length + let homeRoute = {} + while (++i < len) { + const item = routers[i] + if (item.children && item.children.length) { + const res = getHomeRouter(item.children, homeName) + if (res.name) return res + } else { + if (item.name === homeName) homeRoute = item + } + } + return homeRoute +} + +/** + * @param {*} list 鐜版湁鏍囩瀵艰埅鍒楄〃 + * @param {*} newRoute 鏂版坊鍔犵殑璺敱鍘熶俊鎭璞� + * @description 濡傛灉璇ewRoute宸茬粡瀛樺湪鍒欎笉鍐嶆坊鍔� + */ +export const getNewTagList = (list, newRoute) => { + const { name, path, meta } = newRoute + const newList = [...list] + if (newList.findIndex(item => item.name === name) >= 0) return newList + else newList.push({ name, path, meta }) + return newList +} + +/** + * @param {Number} times 鍥炶皟鍑芥暟闇�瑕佹墽琛岀殑娆℃暟 + * @param {Function} callback 鍥炶皟鍑芥暟 + */ +export const doCustomTimes = (times, callback) => { + let i = -1 + while (++i < times) { + callback(i) + } +} + +export const findNodeUpper = (ele, tag) => { + if (ele.parentNode) { + if (ele.parentNode.tagName === tag.toUpperCase()) { + return ele.parentNode + } else { + return findNodeUpper(ele.parentNode, tag) + } + } +} + +export const findNodeUpperByClasses = (ele, classes) => { + const parentNode = ele.parentNode + if (parentNode) { + const classList = parentNode.classList + if (classList && classes.every(className => classList.contains(className))) { + return parentNode + } else { + return findNodeUpperByClasses(parentNode, classes) + } + } +} + +export const findNodeDownward = (ele, tag) => { + const tagName = tag.toUpperCase() + if (ele.childNodes.length) { + let i = -1 + const len = ele.childNodes.length + while (++i < len) { + const child = ele.childNodes[i] + if (child.tagName === tagName) return child + else return findNodeDownward(child, tag) + } + } +} + +export const localSave = (key, value) => { + localStorage.setItem(key, value) +} + +export const localRead = (key) => { + return localStorage.getItem(key) || '' +} + +// scrollTop animation +export const scrollTop = (el, from = 0, to, duration = 500, endCallback) => { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = ( + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { + return window.setTimeout(callback, 1000 / 60) + } + ) + } + const difference = Math.abs(from - to) + const step = Math.ceil(difference / duration * 50) + + const scroll = (start, end, step) => { + if (start === end) { + endCallback && endCallback() + return + } + + let d = (start + step > end) ? end : start + step + if (start > end) { + d = (start - step < end) ? end : start - step + } + + if (el === window) { + window.scrollTo(d, d) + } else { + el.scrollTop = d + } + window.requestAnimationFrame(() => scroll(d, end, step)) + } + scroll(from, to, step) +} diff --git a/src/utils/tools.js b/src/utils/tools.js index 0838a7f..f47703e 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -25,7 +25,16 @@ }) return arr } - +/** + * 鏍规嵁涓嶅悓鐨勫崗璁紝鏇挎崲env閰嶇疆鏂囦欢涓殑URL鍗忚 + * + * @return {String} + */ +export function getSchemeHost () { + const protocol = window.location.protocol + const host = process.env.VUE_APP_API_HOST + return host.replace(/scheme/g, protocol) +} /** * collection鏁版嵁杞崲涓烘爣鍑咼SON * @param obj collection鏁版嵁 diff --git a/src/views/Login.vue b/src/views/Login.vue new file mode 100644 index 0000000..6d8a076 --- /dev/null +++ b/src/views/Login.vue @@ -0,0 +1,124 @@ +<template> + <div class="login-wrap" @keydown.enter="handleSubmit"> + <div class="content"> + <el-card class="box-card"> + <div slot="header" class="login-title clearfix"> + <el-icon name="star-on"></el-icon> + <span>娆㈣繋鐧诲綍</span> + </div> + + <div class="form-content"> + <el-form :model="form" :rules="formRules" ref="loginForm" class="demo-ruleForm"> + <el-form-item prop="account"> + <el-input size="small" v-model="form.account" placeholder="璇疯緭鍏ョ敤鎴峰悕"> + <el-button slot="prepend" icon="el-icon-search" style="padding: 12px 10px;"></el-button> + </el-input> + </el-form-item> + <el-form-item prop="password"> + <el-input size="small" type="password" v-model="form.password" auto-complete="off" + placeholder="璇疯緭鍏ュ瘑鐮�"> + <el-button slot="prepend" icon="el-icon-search" style="padding: 12px 10px;"></el-button> + </el-input> + </el-form-item> + <el-form-item> + <el-button size="small" type="primary" @click="handleSubmit" style="width: 100%">鐧诲綍 + </el-button> + </el-form-item> + </el-form> + </div> + <p class="login-tip">杈撳叆浠绘剰鐢ㄦ埛鍚嶅拰瀵嗙爜鍗冲彲</p> + </el-card> + </div> + </div> +</template> + +<script> +import { mapActions } from 'vuex' + +export default { + name: 'Login', + components: {}, + data () { + return { + form: { + account: 'admin', + password: 'admin' + }, + formRules: { + account: [ + { required: true, message: '璐﹀彿涓嶈兘涓虹┖', trigger: 'blur' } + ], + password: [ + { required: true, message: '瀵嗙爜涓嶈兘涓虹┖', trigger: 'blur' } + ] + } + } + }, + methods: { + ...mapActions([ + 'handleLogin', + 'getUserInfo' + ]), + handleSubmit () { + this.$refs.loginForm.validate((valid) => { + if (valid) { + this.handleLogin({ + account: this.form.account, + password: this.form.password + }).then(response => { + this.$router.push({ + name: this.$config.homeRouterName + }) + }) + } + }) + } + } +} +</script> + +<style lang="less"> + .login-wrap { + position: relative; + background-image: url('../assets/images/login-page/page1.jpg'); + background-size: cover; + background-position: center; + width: 100%; + height: 100%; + overflow: hidden; + + .content { + position: absolute; + right: 160px; + top: 25%; + } + .box-card { + width: 300px; + } + .clearfix:before, + .clearfix:after { + display: table; + content: ""; + } + .clearfix:after { + clear: both + } + .form-content { + padding: 10px 0 0; + } + .login-title { + width: 100%; + font-size: 14px; + color: #1c2438; + font-weight: 700; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .login-tip { + font-size: 10px; + text-align: center; + color: #c3c3c3; + } + } +</style> diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue index 6913577..dd708d9 100644 --- a/src/views/MapTemplate.vue +++ b/src/views/MapTemplate.vue @@ -16,7 +16,7 @@ <summary-sheets></summary-sheets> <enterprise></enterprise> <!-- <el-button id="map-btn" el-icon-c-scale-to-original icon="el-icon-c-scale-to-original" circle @click="isShowHidden"></el-button>--> - <el-button type="primary" @click="ChangeState" class="solid-waste">鍥哄簾</el-button> + <!-- <el-button type="primary" @click="ChangeState" class="solid-waste">鍥哄簾</el-button>--> <el-button type="primary" @click="ChangeWaterState" class="Waste-water">搴熸按</el-button> <el-button type="primary" @click="AddGasHelper" class="flue-gas">搴熸皵</el-button> <PublicBounced ref="PublicBounced"></PublicBounced> @@ -39,7 +39,6 @@ import LegendPanel from '@components/panel/LegendPanel' import Enterprise from '../components/table/enterprise' // 搴曞浘涓氬姟js閫昏緫 -import AddSolidWasteHelper from '@components/BaseNav/SolidWaste/SolidWaste' import AddWasteWaterHelper from '@components/BaseNav/WasteWater/WasteWater' import AddGasHelper from '@components/BaseNav/flueGas/flueGas' // // 鍏叡灞曠ず鏁版嵁 @@ -102,18 +101,6 @@ AddGas.requestData(data) AddGas.SetPlueGasContent(this.config, this.$refs.PublicBounced) }, - ChangeState () { - const data = { - companyId: 3900100145, - userCode: 'wenchun.deng', - name: '', - marginWarr: '', - longDayWarr: '' - } - const AddSolidWaste = new AddSolidWasteHelper({ map: this.map }) - AddSolidWaste.requestData(data) - AddSolidWaste.SetSolidWasteContent(this.config, this.$refs.PublicBounced) - }, ChangeWaterState () { const data = { companyId: 3900100145, @@ -148,6 +135,7 @@ this.$refs.toolBox.map = this.map window.popupComp = this.$refs.popup + var layerFactory = new LayerFactory({ L: window.L, map: this.map @@ -165,7 +153,6 @@ this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵� this.vectorLayerHelper.initVectorLayers(this.config) - // this.ChangeState() // this.AddGasHelper() // this.ChangeWaterState() -- Gitblit v1.8.0