diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/src/router/index.js b/src/router/index.js index 800ff5a..063e508 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ /* Layout */ import Layout from '../views/layout/Layout' +import { systemRouters } from './modules/system' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) @@ -86,9 +87,9 @@ children: [ { path: '/overview', - component: () => import('@/views/overview/overview'), + component: () => import('@/views/overview/overviewSmartwell'), // component: () => import('@/views/overview/oo'), - name: 'overview', + name: 'OverviewSmartWell', meta: { title: '运行状态总览', icon: 'icon-config', permission: ['/overview/wellList'] } } ] @@ -117,26 +118,26 @@ component: () => import('@/views/alarmManage/listAlarmRecords'), meta: { title: '告警记录', icon: 'icon-config', keepAlive: true, permission: ['/alarm/list'] } }, + // { + // path: '/listJob', + // name: 'ListJob', + // component: () => import('@/views/jobManage/listJobs'), + // meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } + // }, + // { + // path: '/listOvertimeGetJob', + // name: 'ListJobOvertimeGet', + // component: () => import('@/views/jobManage/listJobsOvertimeGet'), + // meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } + // }, + // { + // path: '/listOvertimeHandleJob', + // name: 'ListJobOvertimeHandle', + // component: () => import('@/views/jobManage/listJobsOvertimeHandle'), + // meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } + // }, { - path: '/listJob', - name: 'ListJob', - component: () => import('@/views/jobManage/listJobs'), - meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } - }, - { - path: '/listOvertimeGetJob', - name: 'ListJobOvertimeGet', - component: () => import('@/views/jobManage/listJobsOvertimeGet'), - meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } - }, - { - path: '/listOvertimeHandleJob', - name: 'ListJobOvertimeHandle', - component: () => import('@/views/jobManage/listJobsOvertimeHandle'), - meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } - }, - { - path: '/detailJob/:id(\\d+)', + path: '/detailJob/:id', name: 'DetailJob', component: () => import('@/views/jobManage/detailJob'), hidden: true, diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/src/router/index.js b/src/router/index.js index 800ff5a..063e508 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ /* Layout */ import Layout from '../views/layout/Layout' +import { systemRouters } from './modules/system' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) @@ -86,9 +87,9 @@ children: [ { path: '/overview', - component: () => import('@/views/overview/overview'), + component: () => import('@/views/overview/overviewSmartwell'), // component: () => import('@/views/overview/oo'), - name: 'overview', + name: 'OverviewSmartWell', meta: { title: '运行状态总览', icon: 'icon-config', permission: ['/overview/wellList'] } } ] @@ -117,26 +118,26 @@ component: () => import('@/views/alarmManage/listAlarmRecords'), meta: { title: '告警记录', icon: 'icon-config', keepAlive: true, permission: ['/alarm/list'] } }, + // { + // path: '/listJob', + // name: 'ListJob', + // component: () => import('@/views/jobManage/listJobs'), + // meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } + // }, + // { + // path: '/listOvertimeGetJob', + // name: 'ListJobOvertimeGet', + // component: () => import('@/views/jobManage/listJobsOvertimeGet'), + // meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } + // }, + // { + // path: '/listOvertimeHandleJob', + // name: 'ListJobOvertimeHandle', + // component: () => import('@/views/jobManage/listJobsOvertimeHandle'), + // meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } + // }, { - path: '/listJob', - name: 'ListJob', - component: () => import('@/views/jobManage/listJobs'), - meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } - }, - { - path: '/listOvertimeGetJob', - name: 'ListJobOvertimeGet', - component: () => import('@/views/jobManage/listJobsOvertimeGet'), - meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } - }, - { - path: '/listOvertimeHandleJob', - name: 'ListJobOvertimeHandle', - component: () => import('@/views/jobManage/listJobsOvertimeHandle'), - meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } - }, - { - path: '/detailJob/:id(\\d+)', + path: '/detailJob/:id', name: 'DetailJob', component: () => import('@/views/jobManage/detailJob'), hidden: true, diff --git a/src/utils/request.js b/src/utils/request.js index eb45e3f..24de475 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -44,7 +44,6 @@ location.reload() // 为了重新实例化vue-router对象 避免bug }) } else { - debugger console.log(res) Message({ showClose: true, diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/src/router/index.js b/src/router/index.js index 800ff5a..063e508 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ /* Layout */ import Layout from '../views/layout/Layout' +import { systemRouters } from './modules/system' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) @@ -86,9 +87,9 @@ children: [ { path: '/overview', - component: () => import('@/views/overview/overview'), + component: () => import('@/views/overview/overviewSmartwell'), // component: () => import('@/views/overview/oo'), - name: 'overview', + name: 'OverviewSmartWell', meta: { title: '运行状态总览', icon: 'icon-config', permission: ['/overview/wellList'] } } ] @@ -117,26 +118,26 @@ component: () => import('@/views/alarmManage/listAlarmRecords'), meta: { title: '告警记录', icon: 'icon-config', keepAlive: true, permission: ['/alarm/list'] } }, + // { + // path: '/listJob', + // name: 'ListJob', + // component: () => import('@/views/jobManage/listJobs'), + // meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } + // }, + // { + // path: '/listOvertimeGetJob', + // name: 'ListJobOvertimeGet', + // component: () => import('@/views/jobManage/listJobsOvertimeGet'), + // meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } + // }, + // { + // path: '/listOvertimeHandleJob', + // name: 'ListJobOvertimeHandle', + // component: () => import('@/views/jobManage/listJobsOvertimeHandle'), + // meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } + // }, { - path: '/listJob', - name: 'ListJob', - component: () => import('@/views/jobManage/listJobs'), - meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } - }, - { - path: '/listOvertimeGetJob', - name: 'ListJobOvertimeGet', - component: () => import('@/views/jobManage/listJobsOvertimeGet'), - meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } - }, - { - path: '/listOvertimeHandleJob', - name: 'ListJobOvertimeHandle', - component: () => import('@/views/jobManage/listJobsOvertimeHandle'), - meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } - }, - { - path: '/detailJob/:id(\\d+)', + path: '/detailJob/:id', name: 'DetailJob', component: () => import('@/views/jobManage/detailJob'), hidden: true, diff --git a/src/utils/request.js b/src/utils/request.js index eb45e3f..24de475 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -44,7 +44,6 @@ location.reload() // 为了重新实例化vue-router对象 避免bug }) } else { - debugger console.log(res) Message({ showClose: true, diff --git a/src/views/alarmManage/components/HandlePrompt.vue b/src/views/alarmManage/components/HandlePrompt.vue index d802514..cfd1b21 100644 --- a/src/views/alarmManage/components/HandlePrompt.vue +++ b/src/views/alarmManage/components/HandlePrompt.vue @@ -67,7 +67,6 @@ methods: { // 初始化对话框 initDialog: function(dialogFormVisible, jobId, isBatch, params) { - debugger this.dialogVisible = dialogFormVisible this.isBatch = isBatch if (isBatch) { diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/src/router/index.js b/src/router/index.js index 800ff5a..063e508 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ /* Layout */ import Layout from '../views/layout/Layout' +import { systemRouters } from './modules/system' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) @@ -86,9 +87,9 @@ children: [ { path: '/overview', - component: () => import('@/views/overview/overview'), + component: () => import('@/views/overview/overviewSmartwell'), // component: () => import('@/views/overview/oo'), - name: 'overview', + name: 'OverviewSmartWell', meta: { title: '运行状态总览', icon: 'icon-config', permission: ['/overview/wellList'] } } ] @@ -117,26 +118,26 @@ component: () => import('@/views/alarmManage/listAlarmRecords'), meta: { title: '告警记录', icon: 'icon-config', keepAlive: true, permission: ['/alarm/list'] } }, + // { + // path: '/listJob', + // name: 'ListJob', + // component: () => import('@/views/jobManage/listJobs'), + // meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } + // }, + // { + // path: '/listOvertimeGetJob', + // name: 'ListJobOvertimeGet', + // component: () => import('@/views/jobManage/listJobsOvertimeGet'), + // meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } + // }, + // { + // path: '/listOvertimeHandleJob', + // name: 'ListJobOvertimeHandle', + // component: () => import('@/views/jobManage/listJobsOvertimeHandle'), + // meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } + // }, { - path: '/listJob', - name: 'ListJob', - component: () => import('@/views/jobManage/listJobs'), - meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } - }, - { - path: '/listOvertimeGetJob', - name: 'ListJobOvertimeGet', - component: () => import('@/views/jobManage/listJobsOvertimeGet'), - meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } - }, - { - path: '/listOvertimeHandleJob', - name: 'ListJobOvertimeHandle', - component: () => import('@/views/jobManage/listJobsOvertimeHandle'), - meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } - }, - { - path: '/detailJob/:id(\\d+)', + path: '/detailJob/:id', name: 'DetailJob', component: () => import('@/views/jobManage/detailJob'), hidden: true, diff --git a/src/utils/request.js b/src/utils/request.js index eb45e3f..24de475 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -44,7 +44,6 @@ location.reload() // 为了重新实例化vue-router对象 避免bug }) } else { - debugger console.log(res) Message({ showClose: true, diff --git a/src/views/alarmManage/components/HandlePrompt.vue b/src/views/alarmManage/components/HandlePrompt.vue index d802514..cfd1b21 100644 --- a/src/views/alarmManage/components/HandlePrompt.vue +++ b/src/views/alarmManage/components/HandlePrompt.vue @@ -67,7 +67,6 @@ methods: { // 初始化对话框 initDialog: function(dialogFormVisible, jobId, isBatch, params) { - debugger this.dialogVisible = dialogFormVisible this.isBatch = isBatch if (isBatch) { diff --git a/src/views/alarmManage/listAlarmRecords.vue b/src/views/alarmManage/listAlarmRecords.vue index 9a51036..8b72518 100644 --- a/src/views/alarmManage/listAlarmRecords.vue +++ b/src/views/alarmManage/listAlarmRecords.vue @@ -55,7 +55,7 @@ {{ scope.row[column.value] }} - + diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/src/router/index.js b/src/router/index.js index 800ff5a..063e508 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ /* Layout */ import Layout from '../views/layout/Layout' +import { systemRouters } from './modules/system' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) @@ -86,9 +87,9 @@ children: [ { path: '/overview', - component: () => import('@/views/overview/overview'), + component: () => import('@/views/overview/overviewSmartwell'), // component: () => import('@/views/overview/oo'), - name: 'overview', + name: 'OverviewSmartWell', meta: { title: '运行状态总览', icon: 'icon-config', permission: ['/overview/wellList'] } } ] @@ -117,26 +118,26 @@ component: () => import('@/views/alarmManage/listAlarmRecords'), meta: { title: '告警记录', icon: 'icon-config', keepAlive: true, permission: ['/alarm/list'] } }, + // { + // path: '/listJob', + // name: 'ListJob', + // component: () => import('@/views/jobManage/listJobs'), + // meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } + // }, + // { + // path: '/listOvertimeGetJob', + // name: 'ListJobOvertimeGet', + // component: () => import('@/views/jobManage/listJobsOvertimeGet'), + // meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } + // }, + // { + // path: '/listOvertimeHandleJob', + // name: 'ListJobOvertimeHandle', + // component: () => import('@/views/jobManage/listJobsOvertimeHandle'), + // meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } + // }, { - path: '/listJob', - name: 'ListJob', - component: () => import('@/views/jobManage/listJobs'), - meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } - }, - { - path: '/listOvertimeGetJob', - name: 'ListJobOvertimeGet', - component: () => import('@/views/jobManage/listJobsOvertimeGet'), - meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } - }, - { - path: '/listOvertimeHandleJob', - name: 'ListJobOvertimeHandle', - component: () => import('@/views/jobManage/listJobsOvertimeHandle'), - meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } - }, - { - path: '/detailJob/:id(\\d+)', + path: '/detailJob/:id', name: 'DetailJob', component: () => import('@/views/jobManage/detailJob'), hidden: true, diff --git a/src/utils/request.js b/src/utils/request.js index eb45e3f..24de475 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -44,7 +44,6 @@ location.reload() // 为了重新实例化vue-router对象 避免bug }) } else { - debugger console.log(res) Message({ showClose: true, diff --git a/src/views/alarmManage/components/HandlePrompt.vue b/src/views/alarmManage/components/HandlePrompt.vue index d802514..cfd1b21 100644 --- a/src/views/alarmManage/components/HandlePrompt.vue +++ b/src/views/alarmManage/components/HandlePrompt.vue @@ -67,7 +67,6 @@ methods: { // 初始化对话框 initDialog: function(dialogFormVisible, jobId, isBatch, params) { - debugger this.dialogVisible = dialogFormVisible this.isBatch = isBatch if (isBatch) { diff --git a/src/views/alarmManage/listAlarmRecords.vue b/src/views/alarmManage/listAlarmRecords.vue index 9a51036..8b72518 100644 --- a/src/views/alarmManage/listAlarmRecords.vue +++ b/src/views/alarmManage/listAlarmRecords.vue @@ -55,7 +55,7 @@ {{ scope.row[column.value] }} - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/package.json b/package.json index 471cdb3..b9bef64 100644 --- a/package.json +++ b/package.json @@ -15,18 +15,25 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "animate.css": "^3.7.2", - "axios": "0.18.0", + "animate.css": "^4.1.1", + "axios": "^0.19.0", "babel-polyfill": "^6.26.0", "cesium": "^1.81.0", - "echarts": "^4.2.1", - "element-ui": "2.13.0", + "echarts": "^4.3.0", + "element-ui": "^2.14.1", + "esri": "0.0.1-security", + "esri-leaflet": "^3.0.1", + "esri-leaflet-renderers": "^2.1.2", + "esri-loader": "^3.0.0", "event-source-polyfill": "^1.0.5", + "jquery": "1.11.3", "js-cookie": "2.2.0", "jsencrypt": "^3.0.0-rc.1", "leaflet": "^1.7.1", "leaflet-draw": "^1.0.4", + "leaflet-rotatedmarker": "^0.2.0", "mars3d": "^3.0.30", + "mars3d-cesium": "1.83.0", "mockjs": "1.0.1-beta3", "normalize.css": "7.0.0", "nprogress": "0.2.0", @@ -35,12 +42,12 @@ "vue-amap": "^0.5.9", "vue-baidu-map": "^0.21.22", "vue-router": "3.0.1", - "vuex": "3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "autoprefixer": "8.5.0", "babel-core": "6.26.0", - "babel-eslint": "8.2.6", + "babel-eslint": "7.2.3", "babel-helper-vue-jsx-merge-props": "2.0.3", "babel-loader": "7.1.5", "babel-plugin-syntax-jsx": "6.18.0", diff --git a/src/api/common.js b/src/api/common.js index 4c38684..4d989f8 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -5,7 +5,7 @@ // 模板下载 export function downloadTemplate(fileName) { return request({ - url: 'template/download', + url: '/smartwell/template/download', method: 'get', params: { filename: fileName diff --git a/src/assets/map/marker-icon-2x.png b/src/assets/map/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 --- /dev/null +++ b/src/assets/map/marker-icon-2x.png Binary files differ diff --git a/src/assets/map/marker.png b/src/assets/map/marker.png new file mode 100644 index 0000000..fea9fe9 --- /dev/null +++ b/src/assets/map/marker.png Binary files differ diff --git a/src/assets/map/markerAlarm.png b/src/assets/map/markerAlarm.png new file mode 100644 index 0000000..9b3ecb8 --- /dev/null +++ b/src/assets/map/markerAlarm.png Binary files differ diff --git a/src/components/mapWindow/base/mixins/abstract.js b/src/components/mapWindow/base/mixins/abstract.js new file mode 100644 index 0000000..9cf6d52 --- /dev/null +++ b/src/components/mapWindow/base/mixins/abstract.js @@ -0,0 +1,13 @@ +class Mixin { + constructor({ component, props, events, extraProps, exceptProps }) { + this.render = function(h) { + return h(component, { + props: props.reduce((obj, key) => Object.assign(obj, { [key]: this[key] }), {}), + on: events.reduce((obj, key) => Object.assign(obj, { [key]: this.transmitEvent }), {}) + }) + } + this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))] + } +} + +export default prop => new Mixin(prop) diff --git a/src/components/mapWindow/base/mixins/common.js b/src/components/mapWindow/base/mixins/common.js new file mode 100644 index 0000000..2fd1a28 --- /dev/null +++ b/src/components/mapWindow/base/mixins/common.js @@ -0,0 +1,82 @@ +const types = { + map: { + unload: 'clearMap' + }, + control: { + unload: 'removeControl' + }, + layer: { + unload: 'removeLayer' + }, + features: { + unload: 'removeFeatures' + }, + listener: { + unload: 'removeListener' + } +} + +const getParent = $component => ($component.abstract || $component.$el === $component.$children[0].$el) ? getParent($component.$parent) : $component + +function destroyInstance () { + const { unload, renderByParent, $parent } = this + if (renderByParent) { + $parent.reload() + } + unload() +} + +class Mixin { + constructor (prop) { + this.methods = { + ready () { + const $parent = getParent(this.$parent) + const map = this.map = $parent.map + this.load() + this.$emit('ready', { + map + }) + }, + transmitEvent (e) { + this.$emit(e.type.replace(/^on/, ''), e) + }, + reload () { + this && this.$nextTick(() => { + this.unload() + this.$nextTick(this.load) + }) + }, + unload () { + const { map, originInstance } = this + try { + switch (prop.type) { + case 'search': + return originInstance.clearResults() + case 'autoComplete': + case 'lushu': + return originInstance.dispose() + case 'markerClusterer': + return originInstance.clearMarkers() + default: + map[types[prop.type].unload](originInstance) + } + } catch (e) {} + } + } + this.computed = { + renderByParent () { + return this.$parent.preventChildrenRender + } + } + this.mounted = function () { + console.log('common mounted') + const $parent = getParent(this.$parent) + const map = $parent.map + const { ready } = this + console.log(map) + map ? ready() : $parent.$on('onload', ready) + } + } +} + +export default type => new Mixin({ type }) diff --git a/src/components/mapWindow/leafletMap.vue b/src/components/mapWindow/leafletMap.vue new file mode 100644 index 0000000..4ec7b61 --- /dev/null +++ b/src/components/mapWindow/leafletMap.vue @@ -0,0 +1,270 @@ + + + + + + + diff --git a/src/components/mapWindow/mapWindow.vue b/src/components/mapWindow/mapWindow.vue new file mode 100644 index 0000000..9ced291 --- /dev/null +++ b/src/components/mapWindow/mapWindow.vue @@ -0,0 +1,46 @@ + + + + + + diff --git a/src/icons/svg/icon-order.svg b/src/icons/svg/icon-order.svg new file mode 100644 index 0000000..62d7666 --- /dev/null +++ b/src/icons/svg/icon-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9f6c3ec..852dfe5 100644 --- a/src/main.js +++ b/src/main.js @@ -42,10 +42,10 @@ import 'leaflet-draw/dist/leaflet.draw.css' // 在main.js中加入下面代码 -import 'mars3d/dist/mars3d.css' +// import 'mars3d/dist/mars3d.css' // import 'mars3d-esri/dist/mars3d-esri.js' -import * as mars3d from 'mars3d' -Vue.prototype.mars3d = mars3d +// import * as mars3d from 'mars3d' +// Vue.prototype.mars3d = mars3d /** * This project originally used easy-mock to simulate data, diff --git a/src/router/index.js b/src/router/index.js index 800ff5a..063e508 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,6 +8,7 @@ /* Layout */ import Layout from '../views/layout/Layout' +import { systemRouters } from './modules/system' /** * hidden: true if `hidden:true` will not show in the sidebar(default is false) @@ -86,9 +87,9 @@ children: [ { path: '/overview', - component: () => import('@/views/overview/overview'), + component: () => import('@/views/overview/overviewSmartwell'), // component: () => import('@/views/overview/oo'), - name: 'overview', + name: 'OverviewSmartWell', meta: { title: '运行状态总览', icon: 'icon-config', permission: ['/overview/wellList'] } } ] @@ -117,26 +118,26 @@ component: () => import('@/views/alarmManage/listAlarmRecords'), meta: { title: '告警记录', icon: 'icon-config', keepAlive: true, permission: ['/alarm/list'] } }, + // { + // path: '/listJob', + // name: 'ListJob', + // component: () => import('@/views/jobManage/listJobs'), + // meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } + // }, + // { + // path: '/listOvertimeGetJob', + // name: 'ListJobOvertimeGet', + // component: () => import('@/views/jobManage/listJobsOvertimeGet'), + // meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } + // }, + // { + // path: '/listOvertimeHandleJob', + // name: 'ListJobOvertimeHandle', + // component: () => import('@/views/jobManage/listJobsOvertimeHandle'), + // meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } + // }, { - path: '/listJob', - name: 'ListJob', - component: () => import('@/views/jobManage/listJobs'), - meta: { title: '告警工单', icon: 'icon-config', keepAlive: true, permission: ['/job/list'] } - }, - { - path: '/listOvertimeGetJob', - name: 'ListJobOvertimeGet', - component: () => import('@/views/jobManage/listJobsOvertimeGet'), - meta: { title: '超时未接收工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeGetList'] } - }, - { - path: '/listOvertimeHandleJob', - name: 'ListJobOvertimeHandle', - component: () => import('@/views/jobManage/listJobsOvertimeHandle'), - meta: { title: '超时未处理工单', icon: 'icon-config', keepAlive: true, permission: ['/job/overtimeHandleList'] } - }, - { - path: '/detailJob/:id(\\d+)', + path: '/detailJob/:id', name: 'DetailJob', component: () => import('@/views/jobManage/detailJob'), hidden: true, diff --git a/src/utils/request.js b/src/utils/request.js index eb45e3f..24de475 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -44,7 +44,6 @@ location.reload() // 为了重新实例化vue-router对象 避免bug }) } else { - debugger console.log(res) Message({ showClose: true, diff --git a/src/views/alarmManage/components/HandlePrompt.vue b/src/views/alarmManage/components/HandlePrompt.vue index d802514..cfd1b21 100644 --- a/src/views/alarmManage/components/HandlePrompt.vue +++ b/src/views/alarmManage/components/HandlePrompt.vue @@ -67,7 +67,6 @@ methods: { // 初始化对话框 initDialog: function(dialogFormVisible, jobId, isBatch, params) { - debugger this.dialogVisible = dialogFormVisible this.isBatch = isBatch if (isBatch) { diff --git a/src/views/alarmManage/listAlarmRecords.vue b/src/views/alarmManage/listAlarmRecords.vue index 9a51036..8b72518 100644 --- a/src/views/alarmManage/listAlarmRecords.vue +++ b/src/views/alarmManage/listAlarmRecords.vue @@ -55,7 +55,7 @@ {{ scope.row[column.value] }} - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@ - + diff --git a/src/views/alarmRule/components/editRule.vue b/src/views/alarmRule/components/editRule.vue index 8a91c41..28dc053 100644 --- a/src/views/alarmRule/components/editRule.vue +++ b/src/views/alarmRule/components/editRule.vue @@ -157,7 +157,6 @@ 'alarmRuleForm.devcode'(newValue, oldValue) { for (const device of this.devices) { if (device.devcode === newValue) { - debugger this.baseInfo.deviceTypeName = device.deviceTypeName this.baseInfo.deviceType = device.deviceType this.alarmRuleForm.deviceType = device.deviceType @@ -241,7 +240,6 @@ addData: function() { this.$refs['dataForm'].validate((valid) => { if (valid) { - debugger const alarmRuleForm = { devcode: this.alarmRuleForm.devcode, // 设备编号 deviceType: this.alarmRuleForm.deviceType, // 设备类型 diff --git a/src/views/dashboard/components/PanelGroup.vue b/src/views/dashboard/components/PanelGroup.vue index 311ba62..8f47394 100644 --- a/src/views/dashboard/components/PanelGroup.vue +++ b/src/views/dashboard/components/PanelGroup.vue @@ -1,7 +1,7 @@