diff --git a/assets/peakCoalMonitoring/footer/footer-bg.png b/assets/peakCoalMonitoring/footer/footer-bg.png index ca4a947..e66fd29 100644 Binary files a/assets/peakCoalMonitoring/footer/footer-bg.png and b/assets/peakCoalMonitoring/footer/footer-bg.png differ diff --git a/assets/peakCoalMonitoring/left/bg.png b/assets/peakCoalMonitoring/left/bg.png new file mode 100644 index 0000000..f05b119 Binary files /dev/null and b/assets/peakCoalMonitoring/left/bg.png differ diff --git a/assets/peakCoalMonitoring/right/bg.png b/assets/peakCoalMonitoring/right/bg.png new file mode 100644 index 0000000..99f40a8 Binary files /dev/null and b/assets/peakCoalMonitoring/right/bg.png differ diff --git a/assets/styles/global.less b/assets/styles/global.less index 94c6271..d5feb91 100644 --- a/assets/styles/global.less +++ b/assets/styles/global.less @@ -1,4 +1,24 @@ .visual-dialog { + &.custommiddle { + .ant-modal-header { + padding: 16px 24px !important; + } + .ant-modal-close-x { + width: 68px !important; + height: 68px !important; + line-height: 75px !important; + font-size: 30px !important; + color: #fff; + } + .ant-modal-title { + font-size: 35px !important; + line-height: 68px !important; + color: #fff; + } + .ant-modal-body { + padding: 18px !important; + } + } .ant-modal-content { background-color: #063367; .ant-modal-header { diff --git a/components/CEMSDialog.vue b/components/CEMSDialog.vue index 1b45fae..71ea89c 100644 --- a/components/CEMSDialog.vue +++ b/components/CEMSDialog.vue @@ -1,6 +1,6 @@ @@ -337,6 +337,16 @@ export default { ] } + }, + props: { + /** + * 地图类型 + * @param { 'big' | 'small' } type + */ + type: { + type: String, + default: 'big' + }, } } @@ -345,6 +355,9 @@ export default { .w-z-dialog { height: 2000px; width: 100%; + &.middle { + height: 1200px; + } } diff --git a/components/CustomTable.vue b/components/CustomTable.vue index cd1996d..360fd6e 100644 --- a/components/CustomTable.vue +++ b/components/CustomTable.vue @@ -1,6 +1,6 @@ @@ -49,9 +49,93 @@ import MonitorData from "@/components/peak-coal-monitoring/MonitorData"; import EnergyProfile from "@/components/peak-coal-monitoring/EnergyProfile"; import DeviceOverview from "@/components/peak-coal-monitoring/DeviceOverview"; import AlarmOverview from "@/components/peak-coal-monitoring/AlarmOverview"; +import WZDialog from "@/components/WZDialog"; +import SDJCYDialog from "@/components/SDJCYDialog"; +import ZKZDialog from "@/components/ZKZDialog"; +import GBZDialog from "@/components/GBZDialog"; +import CEMSDialog from "@/components/CEMSDialog"; +import pointDialog from '@/components/PointDialog' export default { name: "PeakCoalMonitoring", - components: {AlarmOverview, DeviceOverview, EnergyProfile, MonitorData, PollutionInformation, AtmosphericModule} + components: {AlarmOverview, DeviceOverview, EnergyProfile, MonitorData, PollutionInformation, AtmosphericModule}, + methods: { + /** + * 图层构造器 + * @param { object } props + * @param { 'cems' | 'sdjcy' | 'zkz' | 'gbz' | 'ssc' | 'shisc' | 'wz' | 'jkd' } props.layerType 图层类型 jkd(监控点) wz(微站) sdjcy(深度检测仪) zkz(质控站) gbz(国标站) ssc(洒水车) shisc(湿扫车) cems(CEMS) + * @param { object } props.data 图层类型 + */ + pointClick ({layerType, data}) { + // todo + if(layerType == 'wz'){ + this.$open(WZDialog, { + type: 'middle' + }, { + screenType: 'middle', + title: '微站', + width: 1100, + onClose () { + console.log(1); + } + }) + } else if(layerType === 'sdjcy'){ + this.$open(SDJCYDialog, { + type: 'middle' + }, { + screenType: 'custommiddle', + title: '深度检测仪', + width: 1100, + onClose () { + console.log(1); + } + }) + }else if(layerType === 'zkz'){ + this.$open(ZKZDialog, { + type: 'middle' + }, { + screenType: 'custommiddle', + title: '质控站', + width: 1100, + onClose () { + console.log(1); + } + }) + } else if(layerType === 'gbz'){ + this.$open(GBZDialog, { + type: 'middle' + }, { + screenType: 'custommiddle', + title: '国标站', + width: 1100, + onClose () { + console.log(1); + } + }) + } else if(layerType === 'cems'){ + this.$open(CEMSDialog, { + type: 'middle' + }, { + screenType: 'custommiddle', + title: 'CEMS', + width: 1100, + onClose () { + console.log(1); + } + }) + } else if (layerType === 'jkd'){ + this.$open(pointDialog, { + type: 'middle' + }, { + screenType: 'custommiddle', + title: '监控点', + width: 1100, + onClose () { + console.log(1); + } + }) + } + }, + } } @@ -82,6 +166,9 @@ body, html, #__nuxt, #__layout { width: 100%; height: 100%; position: relative; + .show-top { + z-index: 2; + } .header-panel { position: absolute; @@ -92,6 +179,7 @@ body, html, #__nuxt, #__layout { justify-content: center; background: url("~/assets/peakCoalMonitoring/header/header-shadow.png") no-repeat; background-size: 100% 100%; + pointer-events: auto; .header-content { height: 360px; @@ -122,7 +210,12 @@ body, html, #__nuxt, #__layout { height: 960px; top: 50%; transform: translateY(-50%); + pointer-events: auto; .flex-column; + background: url("~/assets/peakCoalMonitoring/left/bg.png") left bottom no-repeat; + background-size: 100% 100%; + box-sizing: border-box; + padding: 16px; .atmospheric-module-module{ height: 336px; @@ -148,7 +241,12 @@ body, html, #__nuxt, #__layout { height: 960px; top: 50%; transform: translateY(-50%); + background: url("~/assets/peakCoalMonitoring/right/bg.png") left bottom no-repeat; + background-size: 100% 100%; + box-sizing: border-box; + padding: 16px; .flex-column; + pointer-events: auto; .energy-profile-module{ height: 336px; width: 100%; @@ -173,11 +271,12 @@ body, html, #__nuxt, #__layout { .footer-panel{ width: 100%; - height: 50px; - background: url("~/assets/peakCoalMonitoring/footer/footer-bg.png") no-repeat; + height: 43px; + background: url("~/assets/peakCoalMonitoring/footer/footer-bg.png") left bottom no-repeat; background-size: 100% 100%; position: absolute; bottom: -6px; + pointer-events: auto; } } diff --git a/plugins/dialog/index.js b/plugins/dialog/index.js index c2c9354..bdb3ba0 100644 --- a/plugins/dialog/index.js +++ b/plugins/dialog/index.js @@ -12,10 +12,11 @@ var confirm = function confirmFn(props) { }; Vue.prototype.$open = function (vNode, props, dialogProps) { + const { screenType, ...otherProps } = dialogProps return confirm({ centered: true, - prefixCls: 'visual-dialog ant-modal', + prefixCls: ` ${screenType || ''} visual-dialog ant-modal`, content: (h) => h(vNode, { props }), - ...dialogProps + ...otherProps }) } diff --git a/store/dialog.js b/store/dialog.js new file mode 100644 index 0000000..1294219 --- /dev/null +++ b/store/dialog.js @@ -0,0 +1,19 @@ +export const state = { + /** + * 屏幕类型 + * big 大屏 middle 中评 + */ + screenType: 'big' +} + +export const mutations = { + setScreenType (state, screenType) { + state.screenType = screenType + } +} + +export const actions = { + setScreenType (state, screenType) { + state.screenType = screenType + } +}