16 Commits

Author SHA1 Message Date
guanj
54f336ab45 修改现场问题 2026-05-21 09:37:58 +08:00
39093641d8 用能系统功能调整 2025-07-24 11:40:23 +08:00
guanj
c88484caf7 修改现场问题 2025-07-16 18:10:24 +08:00
GGJ
bb7eb039b5 修改 监测指标数据质量统计字段名称 2025-04-21 13:33:40 +08:00
GGJ
b317bf9c7d Merge branch 'master' of http://192.168.1.22:3000/root/HB_PMS3.0_WEB 2025-04-18 15:15:09 +08:00
GGJ
0a521bdcb7 配置超高压生产嵌入系统 2025-04-18 15:15:00 +08:00
263cd764f3 1.主网台账修改 2025-03-21 16:20:25 +08:00
a04bb33206 1.主配网测点数据重算功能bug
2.监督计划新增校验
2025-03-21 08:58:54 +08:00
GGJ
f4a22dbed1 联调cvt执行算法页面 2025-03-11 15:29:31 +08:00
GGJ
566949569a Merge branch 'master' of http://192.168.1.22:3000/root/HB_PMS3.0_WEB 2025-03-10 11:29:55 +08:00
GGJ
52a0b67f96 联调cvt执行算法 修改测试bug 2025-03-10 11:29:46 +08:00
cdf
50573bb748 验收问题修改 2025-03-10 09:13:12 +08:00
cdf
15e1be00af 问题修改 2025-03-06 16:57:05 +08:00
cdf
4233317f5d 问题修改 2025-03-06 16:50:07 +08:00
cdf
452e0f3dbb 问题修改 2025-03-06 14:44:33 +08:00
GGJ
72051ba10e 联调cvt系数页面与cvt绑定 2025-02-12 14:00:11 +08:00
84 changed files with 55915 additions and 33205 deletions

20941
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,166 +1,168 @@
{ {
"name": "vue-pc-admin", "name": "vue-pc-admin",
"version": "0.1.0", "version": "0.1.0",
"description": "这是一个基于 vue admin 管理后台", "description": "这是一个基于 vue admin 管理后台",
"author": "caojinwei", "author": "caojinwei",
"license": "NJCN", "license": "NJCN",
"scripts": { "scripts": {
"dev": "vue-cli-service serve", "dev": "vue-cli-service serve",
"dev-zoom": "cross-env VUE_APP_ZOOM=1 vue-cli-service serve", "dev-zoom": "cross-env VUE_APP_ZOOM=1 vue-cli-service serve",
"dev-cgyqr": "cross-env VUE_APP_MODE=cgyqr vue-cli-service serve", "dev-cgyqr": "cross-env VUE_APP_MODE=cgyqr vue-cli-service serve",
"dev-hbqr": "cross-env VUE_APP_MODE=cgyqr VUE_APP_HB=hbqr vue-cli-service serve", "dev-cgyqr1": "cross-env VUE_APP_MODE=cgyqr VUE_APP_KEY=scqr vue-cli-service serve",
"dev-jbqr": "cross-env VUE_APP_MODE=jbqr vue-cli-service serve", "dev-hbqr": "cross-env VUE_APP_MODE=cgyqr VUE_APP_HB=hbqr VUE_APP_KEY=scqr vue-cli-service serve",
"build": "vue-cli-service build", "dev-jbqr": "cross-env VUE_APP_MODE=jbqr vue-cli-service serve",
"build-zoom": "cross-env VUE_APP_ZOOM=1 vue-cli-service build", "build": "vue-cli-service build",
"build-hbqr": "cross-env VUE_APP_MODE=cgyqr VUE_APP_HB=hbqr vue-cli-service build", "build-zoom": "cross-env VUE_APP_ZOOM=1 vue-cli-service build",
"build-cgyqr": "cross-env VUE_APP_MODE=cgyqr vue-cli-service build", "build-hbqr": "cross-env VUE_APP_MODE=cgyqr VUE_APP_HB=hbqr VUE_APP_KEY=scqr vue-cli-service build",
"build-jbqr": "cross-env VUE_APP_MODE=jbqr vue-cli-service build", "build-cgyqr": "cross-env VUE_APP_MODE=cgyqr vue-cli-service build",
"preview": "node build/index.js --preview", "build-cgyqr1": "cross-env VUE_APP_MODE=cgyqr VUE_APP_KEY=scqr vue-cli-service build",
"deploy-18": "cross-env VUE_APP_ZOOM=1 vue-cli-service build && ./upload_script/upload_18.sh" "build-jbqr": "cross-env VUE_APP_MODE=jbqr vue-cli-service build",
}, "preview": "node build/index.js --preview",
"dependencies": { "deploy-18": "cross-env VUE_APP_ZOOM=1 vue-cli-service build && ./upload_script/upload_18.sh"
"@ckeditor/ckeditor5-vue": "^1.0.1", },
"@jiaminghi/data-view": "^2.10.0", "dependencies": {
"@riophae/vue-treeselect": "^0.4.0", "@ckeditor/ckeditor5-vue": "^1.0.1",
"@toast-ui/editor": "^2.0.1", "@jiaminghi/data-view": "^2.10.0",
"@toast-ui/vue-editor": "^2.0.1", "@riophae/vue-treeselect": "^0.4.0",
"@vue/composition-api": "^1.3.0", "@toast-ui/editor": "^2.0.1",
"@wangeditor/editor": "^5.1.23", "@toast-ui/vue-editor": "^2.0.1",
"@wangeditor/editor-for-vue": "^1.0.2", "@vue/composition-api": "^1.3.0",
"axios": "^0.27.2", "@wangeditor/editor": "^5.1.23",
"baidu-map": "^0.1.4", "@wangeditor/editor-for-vue": "^1.0.2",
"bpmn-js": "^11.1.0", "axios": "^0.27.2",
"bpmn-js-bpmnlint": "^0.15.0", "baidu-map": "^0.1.4",
"bpmnlint": "^6.4.0", "bpmn-js": "^11.1.0",
"bpmnlint-loader": "^0.1.4", "bpmn-js-bpmnlint": "^0.15.0",
"codemirror": "5.39.2", "bpmnlint": "^6.4.0",
"core-js": "^2.6.12", "bpmnlint-loader": "^0.1.4",
"cross-storage": "^1.0.0", "codemirror": "5.39.2",
"crypto-js": "^4.2.0", "core-js": "^2.6.12",
"deepmerge": "^4.2.2", "cross-storage": "^1.0.0",
"driver.js": "^0.9.8", "crypto-js": "^4.2.0",
"echarts": "^5.4.3", "deepmerge": "^4.2.2",
"echarts-gl": "^2.0.9", "driver.js": "^0.9.8",
"echarts-liquidfill": "^3.1.0", "echarts": "^5.4.3",
"el-tree-transfer": "^2.4.7", "echarts-gl": "^2.0.9",
"element-resize-detector": "^1.2.4", "echarts-liquidfill": "^3.1.0",
"element-ui": "^2.15.9", "el-tree-transfer": "^2.4.7",
"exceljs": "^4.3.0", "element-resize-detector": "^1.2.4",
"fabric": "^5.3.0", "element-ui": "^2.15.9",
"file-saver": "^2.0.5", "exceljs": "^4.3.0",
"form-gen-parser": "^1.0.3", "fabric": "^5.3.0",
"highcharts": "^10.0.0", "file-saver": "^2.0.5",
"highcharts-vue": "^1.4.0", "form-gen-parser": "^1.0.3",
"html2canvas": "^1.4.1", "highcharts": "^10.0.0",
"jquery": "^3.6.0", "highcharts-vue": "^1.4.0",
"jquery.panzoom": "^3.2.3", "html2canvas": "^1.4.1",
"js-cookie": "2.2.0", "jquery": "^3.6.0",
"json2csv": "^5.0.6", "jquery.panzoom": "^3.2.3",
"less": "^4.1.2", "js-cookie": "2.2.0",
"less-loader": "^5.0.0", "json2csv": "^5.0.6",
"lib-flexible": "^0.3.2", "less": "^4.1.2",
"lodash.clonedeep": "^4.5.0", "less-loader": "^5.0.0",
"luckyexcel": "^1.0.1", "lib-flexible": "^0.3.2",
"mqtt": "^4.3.6", "lodash.clonedeep": "^4.5.0",
"normalize.css": "7.0.0", "luckyexcel": "^1.0.1",
"nprogress": "0.2.0", "mqtt": "^4.3.6",
"path-to-regexp": "2.4.0", "normalize.css": "7.0.0",
"qiniu-js": "^3.1.2", "nprogress": "0.2.0",
"qrcodejs2": "^0.0.2", "path-to-regexp": "2.4.0",
"sanitizer": "^0.1.3", "qiniu-js": "^3.1.2",
"screenfull": "^5.0.2", "qrcodejs2": "^0.0.2",
"session-storage-sync": "^0.6.0", "sanitizer": "^0.1.3",
"sortablejs": "^1.10.2", "screenfull": "^5.0.2",
"spin.js": "^4.1.1", "session-storage-sync": "^0.6.0",
"sync-session-storage": "^0.0.13", "sortablejs": "^1.10.2",
"throttle-debounce": "^1.1.0", "spin.js": "^4.1.1",
"timeline-slider-vue": "^1.0.6", "sync-session-storage": "^0.0.13",
"umy-ui": "^1.1.6", "throttle-debounce": "^1.1.0",
"v-loading-plugin": "^1.0.7", "timeline-slider-vue": "^1.0.6",
"vue": "2.6.10", "umy-ui": "^1.1.6",
"vue-baidu-map": "^0.21.22", "v-loading-plugin": "^1.0.7",
"vue-drag-resize": "^1.5.4", "vue": "2.6.10",
"vue-echarts": "^6.6.2", "vue-baidu-map": "^0.21.22",
"vue-grid-layout": "^2.3.12", "vue-drag-resize": "^1.5.4",
"vue-jsonp": "^2.0.0", "vue-echarts": "^6.6.2",
"vue-masonry": "^0.16.0", "vue-grid-layout": "^2.3.12",
"vue-particles": "^1.0.9", "vue-jsonp": "^2.0.0",
"vue-resize-observer": "^2.0.16", "vue-masonry": "^0.16.0",
"vue-router": "3.0.6", "vue-particles": "^1.0.9",
"vue-slider-component": "^3.2.24", "vue-resize-observer": "^2.0.16",
"vue-svg-filler": "^1.0.6", "vue-router": "3.0.6",
"vuedraggable": "^2.24.3", "vue-slider-component": "^3.2.24",
"vuex": "3.1.0", "vue-svg-filler": "^1.0.6",
"vxe-table": "3.6.6", "vuedraggable": "^2.24.3",
"vxe-table-plugin-export-xlsx": "2.2.2", "vuex": "3.1.0",
"webpack-theme-color-replacer": "^1.3.7", "vxe-table": "3.6.6",
"xe-utils": "^3.5.14", "vxe-table-plugin-export-xlsx": "2.2.2",
"xlsx": "^0.15.6" "webpack-theme-color-replacer": "^1.3.7",
}, "xe-utils": "^3.5.14",
"devDependencies": { "xlsx": "^0.15.6"
"@babel/core": "7.0.0", },
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/core": "7.0.0",
"@babel/plugin-transform-modules-commonjs": "^7.9.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/register": "7.0.0", "@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@vue/cli-plugin-babel": "3.6.0", "@babel/plugin-transform-modules-commonjs": "^7.9.0",
"@vue/cli-service": "^3.12.1", "@babel/register": "7.0.0",
"@vue/test-utils": "1.0.0-beta.29", "@vue/cli-plugin-babel": "3.6.0",
"autoprefixer": "^9.5.1", "@vue/cli-service": "^3.12.1",
"babel-core": "7.0.0-bridge.0", "@vue/test-utils": "1.0.0-beta.29",
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", "autoprefixer": "^9.5.1",
"babel-plugin-transform-remove-console": "^6.9.4", "babel-core": "7.0.0-bridge.0",
"chalk": "2.4.2", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
"compression-webpack-plugin": "^3.1.0", "babel-plugin-transform-remove-console": "^6.9.4",
"connect": "3.6.6", "chalk": "2.4.2",
"cross-env": "^7.0.3", "compression-webpack-plugin": "^3.1.0",
"css-properties-sorting": "^1.0.10", "connect": "3.6.6",
"d3": "^7.1.1", "cross-env": "^7.0.3",
"default-passive-events": "^2.0.0", "css-properties-sorting": "^1.0.10",
"highlight.js": "9.18.5", "d3": "^7.1.1",
"html-webpack-plugin": "3.2.0", "default-passive-events": "^2.0.0",
"less": "^4.1.1", "highlight.js": "9.18.5",
"less-loader": "^5.0.0", "html-webpack-plugin": "3.2.0",
"lint-staged": "8.1.5", "less": "^4.1.1",
"open": "^7.0.3", "less-loader": "^5.0.0",
"postcss-loader": "^3.0.0", "lint-staged": "8.1.5",
"px2rem-loader": "^0.1.9", "open": "^7.0.3",
"raw-loader": "^0.5.1", "postcss-loader": "^3.0.0",
"runjs": "^4.3.2", "px2rem-loader": "^0.1.9",
"sass": "^1.62.0", "raw-loader": "^0.5.1",
"sass-loader": "^7.1.0", "runjs": "^4.3.2",
"sass-resources-loader": "^2.0.3", "sass": "^1.62.0",
"script-ext-html-webpack-plugin": "2.1.3", "sass-loader": "^7.1.0",
"script-loader": "0.7.2", "sass-resources-loader": "^2.0.3",
"serve-static": "^1.13.2", "script-ext-html-webpack-plugin": "2.1.3",
"stylelint": "^12.0.1", "script-loader": "0.7.2",
"stylelint-config-standard": "^20.0.0", "serve-static": "^1.13.2",
"stylelint-order": "^4.1.0", "stylelint": "^12.0.1",
"stylelint-scss": "^3.18.0", "stylelint-config-standard": "^20.0.0",
"svg-sprite-loader": "4.1.3", "stylelint-order": "^4.1.0",
"svgo": "1.2.2", "stylelint-scss": "^3.18.0",
"vkbeautify": "^0.99.3", "svg-sprite-loader": "4.1.3",
"vue-particles": "^1.0.9", "svgo": "1.2.2",
"vue-template-compiler": "2.6.10", "vkbeautify": "^0.99.3",
"vue2-ace-editor": "^0.0.15", "vue-particles": "^1.0.9",
"xcrud": "^0.4.19" "vue-template-compiler": "2.6.10",
}, "vue2-ace-editor": "^0.0.15",
"lint-staged": { "xcrud": "^0.4.19"
"src/**/*.{js,vue}": [ },
"git add" "lint-staged": {
], "src/**/*.{js,vue}": [
"src/**/*.{html,vue,css,sass,scss}": [ "git add"
"stylelint --fix", ],
"git add" "src/**/*.{html,vue,css,sass,scss}": [
"stylelint --fix",
"git add"
]
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 11"
] ]
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 11"
]
} }

View File

@@ -1,273 +1,278 @@
<template> <template>
<div ref="appheight" id="app" class="zindx" :class="themeName"> <div ref="appheight" id="app" class="zindx" :class="themeName">
<router-view /> <router-view />
</div> </div>
</template> </template>
<script> <script>
import { mapActions } from 'vuex' import { mapActions } from 'vuex'
import { getThemeColor } from '@/api/user' import { getThemeColor } from '@/api/user'
import { themeColor } from './settings' import { themeColor } from './settings'
import '@/assets/font_3482754_22duxhlb6kw/iconfont' import '@/assets/font_3482754_22duxhlb6kw/iconfont'
export default { export default {
name: 'app', name: 'app',
components: {}, components: {},
data() { data() {
return { return {
lastTime: null, //最后一次点击的时间 lastTime: null, //最后一次点击的时间
currentTime: null, //当前点击的时间 currentTime: null, //当前点击的时间
timeOut: 15 * 60 * 1000, //设置超时时间: 15分钟, timeOut: 15 * 60 * 1000, //设置超时时间: 15分钟,
themecolor: '', themecolor: '',
appheight: null, appheight: null,
appwidth: null, appwidth: null,
themeName: '', themeName: '',
echartTimer: null echartTimer: null
} }
}, },
computed: { computed: {
settings() { settings() {
return this.$store.state.settings return this.$store.state.settings
} }
}, },
created() { created() {
if (process.env.VUE_APP_MODE === 'jbqr') { if (process.env.VUE_APP_MODE === 'jbqr') {
window.addEventListener('message', function (e) { window.addEventListener('message', function (e) {
if (e.data.info != undefined) { if (e.data.info != undefined) {
window.localStorage.setItem('adminInfo', e.data.info) window.localStorage.setItem('adminInfo', e.data.info)
} }
// window.localStorage.setItem('adminInfo', e.data) // window.localStorage.setItem('adminInfo', e.data)
}) })
} }
let DOMIN = window.location.origin let DOMIN = window.location.origin
let STATIC_URL = DOMIN + '/api/system-boot/image/toStream?bgImage=' let STATIC_URL = DOMIN + '/api/system-boot/image/toStream?bgImage='
localStorage.setItem('STATIC_URL', STATIC_URL) localStorage.setItem('STATIC_URL', STATIC_URL)
this.lastTime = new Date().getTime() //网页第一次打开时,记录当前时间 this.lastTime = new Date().getTime() //网页第一次打开时,记录当前时间
this.gettheme() this.gettheme()
window.echartsArr = [] window.echartsArr = []
//定时清理 //定时清理
setInterval(() => { setInterval(() => {
if (window.echartsArr.length > 10) { if (window.echartsArr.length > 10) {
window.echartsArr.splice(0, window.echartsArr.length - 10) window.echartsArr.splice(0, window.echartsArr.length - 10)
} }
}, 10000) }, 10000)
}, },
mounted() { async mounted() {
// 处理笔记本系统默认系统比例为150%带来的布局影响 // 处理笔记本系统默认系统比例为150%带来的布局影响
if (process.env.VUE_APP_ZOOM) { if (process.env.VUE_APP_ZOOM) {
const m = this.detectZoom() const m = this.detectZoom()
document.body.style.zoom = 100 / Number(m) document.body.style.zoom = 100 / Number(m)
} }
setTimeout(() => { setTimeout(() => {
this.appwidth = document.body.offsetWidth - 205 this.appwidth = document.body.offsetWidth - 205
this.appheight = document.body.offsetHeight - 105 this.appheight = document.body.offsetHeight - 105
window.sessionStorage.setItem('appwidth', this.appwidth) window.sessionStorage.setItem('appwidth', this.appwidth)
window.sessionStorage.setItem('appheight', this.appheight) window.sessionStorage.setItem('appheight', this.appheight)
if (process.env.VUE_APP_MODE === 'jbqr') { if (process.env.VUE_APP_MODE === 'jbqr') {
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10) window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
}else if(process.env.VUE_APP_MODE === 'cgyqr'){ } else if (process.env.VUE_APP_MODE === 'cgyqr') {
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10) window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
} }
}, 100) }, 100)
let timer = null let timer = null
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
// if (timer) { // if (timer) {
// clearTimeout(timer) // clearTimeout(timer)
// } // }
// timer = setTimeout(() => { // timer = setTimeout(() => {
console.log('窗口变化') console.log('窗口变化')
this.appwidth = document.body.offsetWidth - 205 this.appwidth = document.body.offsetWidth - 205
this.appheight = document.body.offsetHeight - 105 this.appheight = document.body.offsetHeight - 105
window.sessionStorage.setItem('appwidth', this.appwidth) window.sessionStorage.setItem('appwidth', this.appwidth)
window.sessionStorage.setItem('appheight', this.appheight) window.sessionStorage.setItem('appheight', this.appheight)
if (process.env.VUE_APP_MODE === 'jbqr') { if (process.env.VUE_APP_MODE === 'jbqr') {
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10) window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
}else if(process.env.VUE_APP_MODE === 'cgyqr'){ } else if (process.env.VUE_APP_MODE === 'cgyqr') {
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10) window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
} }
// }, 100) // }, 100)
}) })
window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) window.addEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.addEventListener('unload', e => this.unloadHandler(e)) window.addEventListener('unload', e => this.unloadHandler(e))
window.addEventListener('resize', this.handleResizeEcharts) window.addEventListener('resize', this.handleResizeEcharts)
},
// destroyed() { let response = await fetch('/')
// window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e)) let MqttUrl = response.headers.get('X-Mqtt-Url')
// window.removeEventListener('unload', e => this.unloadHandler(e)) console.log("🚀 ~ mounted ~ MqttUrl:", MqttUrl)
// window.removeEventListener('resize', this.handleResizeEcharts) localStorage.setItem('MqttUrl', MqttUrl)
// }, },
methods: { // destroyed() {
...mapActions({ // window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
changeSetting: 'settings/changeSetting' // window.removeEventListener('unload', e => this.unloadHandler(e))
}), // window.removeEventListener('resize', this.handleResizeEcharts)
handleResizeEcharts() { // },
// 防抖 methods: {
if (this.echartTimer) { ...mapActions({
clearTimeout(this.echartTimer) changeSetting: 'settings/changeSetting'
} }),
this.echartTimer = setTimeout(() => { handleResizeEcharts() {
this.echartTimer = null // 防抖
window.echartsArr.forEach(item => { if (this.echartTimer) {
item.resize() clearTimeout(this.echartTimer)
}) }
}, 200) this.echartTimer = setTimeout(() => {
}, this.echartTimer = null
gettheme() { window.echartsArr.forEach(item => {
//主题接口 item.resize()
getThemeColor().then(response => { })
const data = response.data }, 200)
var themecolor = data.color },
var logoUrl = data.logoUrl gettheme() {
window.sessionStorage.setItem('logo', logoUrl) //主题接口
var title = data.name getThemeColor().then(response => {
this.changeSetting({ themeColor: themecolor }) const data = response.data
this.changeSetting({ logoUrl: logoUrl }) var themecolor = data.color
this.changeSetting({ title: title }) var logoUrl = data.logoUrl
// // 深蓝色主题 window.sessionStorage.setItem('logo', logoUrl)
let echartsColor = {} var title = data.name
if (data.color == '#044267') { this.changeSetting({ themeColor: themecolor })
require.ensure([], function (require) { this.changeSetting({ logoUrl: logoUrl })
require('../src/styles/element-uitwo.scss') this.changeSetting({ title: title })
}) // // 深蓝色主题
this.themeName = 'element-uitwo' let echartsColor = {}
echartsColor = { if (data.color == '#044267') {
WordColor: '#fff', require.ensure([], function (require) {
thread: '#0379A0', require('../src/styles/element-uitwo.scss')
FigureColor: [ })
'#00CCFF', this.themeName = 'element-uitwo'
'#FF9933', echartsColor = {
'#41E398', WordColor: '#fff',
'#0192CD', thread: '#0379A0',
'#00FFFF', FigureColor: [
'#FAC800', '#00CCFF',
'#12AFA6', '#FF9933',
'#FF680B ', '#41E398',
'#FF0000 ', '#0192CD',
'#07CCCA ' '#00FFFF',
] '#FAC800',
} '#12AFA6',
} else if (data.color == '#065252') { '#FF680B ',
// // 深绿色 '#FF0000 ',
require.ensure([], function (require) { '#07CCCA '
require('../src/styles/element-uione.scss') ]
}) }
this.themeName = 'element-uione' } else if (data.color == '#065252') {
echartsColor = { // // 深绿色
WordColor: '#fff', require.ensure([], function (require) {
thread: '#268080', require('../src/styles/element-uione.scss')
FigureColor: [ })
'#01DFA3 ', this.themeName = 'element-uione'
'#FAC800', echartsColor = {
'#00CCFF', WordColor: '#fff',
'#00FFFF', thread: '#268080',
'#FF680B', FigureColor: [
'#00FF00', '#01DFA3 ',
'#D5FF6B ', '#FAC800',
'#FF9933 ', '#00CCFF',
'#5B6E96 ', '#00FFFF',
'#66FFCC ' '#FF680B',
] '#00FF00',
} '#D5FF6B ',
} else if (data.color == '#4AB5A5') { '#FF9933 ',
// // 浅色调 '#5B6E96 ',
require.ensure([], function (require) { '#66FFCC '
require('../src/styles/element-uithree.scss') ]
}) }
this.themeName = 'element-uithree' } else if (data.color == '#4AB5A5') {
echartsColor = { // // 浅色调
WordColor: '#000', require.ensure([], function (require) {
thread: '#000000', require('../src/styles/element-uithree.scss')
FigureColor: [ })
'#07CCCA ', this.themeName = 'element-uithree'
'#00BFF5', echartsColor = {
'#FFBF00', WordColor: '#000',
'#77DA63', thread: '#000000',
'#D5FF6B', FigureColor: [
'#Ff6600', '#07CCCA ',
'#FF9100', '#00BFF5',
'#5B6E96', '#FFBF00',
'#66FFCC', '#77DA63',
'#B3B3B3' '#D5FF6B',
] '#Ff6600',
} '#FF9100',
} else { '#5B6E96',
//普通 '#66FFCC',
require.ensure([], function (require) { '#B3B3B3'
require('../src/styles/element-uiforth.scss') ]
}) }
this.themeName = 'element-uiforth' } else {
echartsColor = { //普通
WordColor: '#000', require.ensure([], function (require) {
thread: '#000000', require('../src/styles/element-uiforth.scss')
FigureColor: [ })
'#07CCCA ', this.themeName = 'element-uiforth'
'#00BFF5', echartsColor = {
'#FFBF00', WordColor: '#000',
'#77DA63', thread: '#000000',
'#D5FF6B', FigureColor: [
'#Ff6600', '#07CCCA ',
'#FF9100', '#00BFF5',
'#5B6E96', '#FFBF00',
'#66FFCC', '#77DA63',
'#B3B3B3', '#D5FF6B',
'#FF00FF', '#Ff6600',
'#CC00FF', '#FF9100',
'#FF9999' '#5B6E96',
] '#66FFCC',
} '#B3B3B3',
} '#FF00FF',
window.localStorage.setItem('echartsColor', JSON.stringify(echartsColor)) '#CC00FF',
}) '#FF9999'
}, ]
beforeunloadHandler() { }
this._beforeUnload_time = new Date().getTime() }
// var storage = window.localStorage; window.localStorage.setItem('echartsColor', JSON.stringify(echartsColor))
// storage.clear() })
}, },
unloadHandler(e) { beforeunloadHandler() {
this._gap_time = new Date().getTime() - this._beforeUnload_time this._beforeUnload_time = new Date().getTime()
// // debugger // var storage = window.localStorage;
// // 判断是窗口关闭还是刷新 // storage.clear()
// if (this._gap_time <= 5) { },
// var storage = window.localStorage unloadHandler(e) {
// storage.clear() this._gap_time = new Date().getTime() - this._beforeUnload_time
// } // // debugger
}, // // 判断是窗口关闭还是刷新
detectZoom() { // if (this._gap_time <= 5) {
let ratio = 0, // var storage = window.localStorage
screen = window.screen, // storage.clear()
ua = navigator.userAgent.toLowerCase() // }
if (window.devicePixelRatio !== undefined) { },
ratio = window.devicePixelRatio detectZoom() {
} else if (~ua.indexOf('msie')) { let ratio = 0,
if (screen.deviceXDPI && screen.logicalXDPI) { screen = window.screen,
ratio = screen.deviceXDPI / screen.logicalXDPI ua = navigator.userAgent.toLowerCase()
} if (window.devicePixelRatio !== undefined) {
} else if (window.outerWidth !== undefined && window.innerWidth !== undefined) { ratio = window.devicePixelRatio
ratio = window.outerWidth / window.innerWidth } else if (~ua.indexOf('msie')) {
} if (screen.deviceXDPI && screen.logicalXDPI) {
if (ratio) { ratio = screen.deviceXDPI / screen.logicalXDPI
ratio = Math.round(ratio * 100) }
} } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {
return ratio ratio = window.outerWidth / window.innerWidth
} }
} if (ratio) {
} ratio = Math.round(ratio * 100)
</script> }
return ratio
<style> }
.zindx { }
min-width: 1200px; }
} </script>
body .el-table th.gutter { <style>
display: table-cell !important; .zindx {
} min-width: 1200px;
}
.plTableBox.el-table__header,
.el-table__body, body .el-table th.gutter {
.el-table__footer { display: table-cell !important;
width: 100% !important; }
table-layout: fixed !important;
} .plTableBox.el-table__header,
</style> .el-table__body,
.el-table__footer {
width: 100% !important;
table-layout: fixed !important;
}
</style>

57
src/api/CVT/index.js Normal file
View File

@@ -0,0 +1,57 @@
import request from '@/utils/request'
// 新增cvt系数
export function addCVT(data) {
return request({
url: '/device-boot/cvt/add',
method: 'post',
data: data
})
}
// 删除cvt系数
export function deleteById(data) {
return request({
url: '/device-boot/cvt/deleteById',
method: 'post',
params: data
})
}
// 分页查询cvt
export function queryPage(data) {
return request({
url: '/device-boot/cvt/queryPage',
method: 'post',
data
})
}
// 修改cvt系数
export function updateCvt(data) {
return request({
url: '/device-boot/cvt/updateCvt',
method: 'post',
data: data
})
}
// 新增cvt系数绑定
export function cvtBind(data) {
return request({
url: '/device-boot/cvtBind/add',
method: 'post',
data: data
})
}
// 根据监测点id查询绑定cvt系数
export function queryByLineId(data) {
return request({
url: '/device-boot/cvtBind/queryByLineId',
method: 'post',
params: data
})
}
// 执行算法
export function measurementPointExecutorByHour(data) {
return request({
url: '/prepare-boot/executor/measurementPointExecutorByHour',
method: 'post',
data
})
}

View File

@@ -1,93 +1,93 @@
import request from '@/utils/request' import request from '@/utils/request'
export function list(data) { export function list(data) {
return request({ return request({
url: '/system-boot/dictType/list', url: '/system-boot/dictType/list',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function updateType(data) { export function updateType(data) {
return request({ return request({
url: '/system-boot/dictType/update', url: '/system-boot/dictType/update',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function add(data) { export function add(data) {
return request({ return request({
url: '/system-boot/dictType/add', url: '/system-boot/dictType/add',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function addData(data) { export function addData(data) {
return request({ return request({
url: '/system-boot/dictData/add', url: '/system-boot/dictData/add',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function deleteType(data) { export function deleteType(data) {
return request({ return request({
url: '/system-boot/dictType/delete', url: '/system-boot/dictType/delete',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function updateData(data) { export function updateData(data) {
return request({ return request({
url: '/system-boot/dictData/update', url: '/system-boot/dictData/update',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function deleteData(data) { export function deleteData(data) {
return request({ return request({
url: '/system-boot/dictData/delete', url: '/system-boot/dictData/delete',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function getTypeIdData(data) { export function getTypeIdData(data) {
return request({ return request({
url: '/system-boot/dictData/getTypeIdData', url: '/system-boot/dictData/getTypeIdData',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function getSysConfig() { export function getSysConfig() {
return request({ return request({
url: '/system-boot/config/getSysConfig', url: '/system-boot/config/getSysConfig',
method: 'get', method: 'get',
}) })
} }
export function getDicTree() { export function getDicTree() {
return request({ return request({
url: '/system-boot/dictTree/queryTree', url: '/system-boot/dictTree/queryTree',
method: 'get', method: 'get',
}) })
} }
export function getDicTreeAdd(data) { export function getDicTreeAdd(data) {
return request({ return request({
url: '/system-boot/dic/add', url: '/system-boot/dictTree/add',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function getDicTreeUpdate(data) { export function getDicTreeUpdate(data) {
return request({ return request({
url: '/system-boot/dic/update', url: '/system-boot/dictTree/update',
method: 'put', method: 'put',
data: data data: data
}) })
} }
export function getDicTreeDelete(data) { export function getDicTreeDelete(data) {
return request({ return request({
url: '/system-boot/dic/delete', url: '/system-boot/dictTree/delete',
method: 'delete', method: 'delete',
params: data params: data
}) })
} }

View File

@@ -8,6 +8,16 @@ export function getAllMonitorPageList(data) {
data data
}) })
} }
export function getAllMainUserPageList(data) {
return request({
url: '/device-boot/pms/monitor/getAllMainUserPageList',
method: 'post',
data
})
}
// 新增牵引站信息 // 新增牵引站信息
export function addMonitor(data) { export function addMonitor(data) {
return request({ return request({

View File

@@ -51,3 +51,11 @@ export function objType(data) {
params: data params: data
}) })
} }
export function objTypeStatis(data) {
return request({
url: '/device-boot/monitorStatistics/objTypeStatis',
method: 'post',
params: data
})
}

View File

@@ -15,6 +15,14 @@ export function heBeiToken(data) {
params: data, params: data,
}); });
} }
// /超高压嵌入token校验
export function productionManagementCheck(data) {
return request({
url: "/pqs-auth/judgeToken/productionManagementCheck",
method: "post",
params: data,
});
}
//登录获取token //登录获取token
export function login(data) { export function login(data) {
return request({ return request({

View File

@@ -9,7 +9,7 @@
v-show="!collapse" v-show="!collapse"
class="sidebar-title" class="sidebar-title"
:style="{ fontSize: settings.layout === 'layout1' && settings.title.length >= 8 ? '14px' : '24px'}" :style="{ fontSize: settings.layout === 'layout1' && settings.title.length >= 8 ? '14px' : '24px'}"
>{{ settings.title }} </h1> >{{ settings.title }} <span style="font-size: 14px">(v1.0.0)</span> </h1>
</transition> </transition>
</div> </div>
</div> </div>

View File

@@ -3,8 +3,7 @@ import store from './store'
import NProgress from 'nprogress' // progress bar import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style import 'nprogress/nprogress.css' // progress bar style
import getPageTitle from '@/utils/get-page-title' import getPageTitle from '@/utils/get-page-title'
import { logout } from '@/api/user.js' import { productionManagementCheck } from '@/api/user.js'
// NProgress.configure({ showSpinner: false }) // NProgress Configuration // NProgress.configure({ showSpinner: false }) // NProgress Configuration
// && from.path === '/agreement' && from.path === '/policy' // && from.path === '/agreement' && from.path === '/policy'
const whiteList = ['/login', '/agreement', '/policy'] // no redirect whitelist const whiteList = ['/login', '/agreement', '/policy'] // no redirect whitelist
@@ -19,7 +18,12 @@ const cgyList = [
'/Statistical-analysis/baselineLevelAssessment', '/Statistical-analysis/baselineLevelAssessment',
'/Statistical-analysis/substationBackgroundHarmonic', '/Statistical-analysis/substationBackgroundHarmonic',
'/Statistical-analysis/steadyStateIndicators', '/Statistical-analysis/steadyStateIndicators',
'/Statistical-analysis/transientIndicators' '/Statistical-analysis/transientIndicators',
'/harmonicWave/homePage',
'/harmonicWave/pointmonitoring',
'/harmonicWave/regionalmonitoring',
'/harmonicWave/comprehensiveanalysis',
'/harmonicWave/CVT'
] ]
// 免登录判断 // 免登录判断
import { sm2, encrypt } from '@/assets/commjs/sm2.js' import { sm2, encrypt } from '@/assets/commjs/sm2.js'
@@ -27,7 +31,11 @@ import { sm3Digest } from '@/assets/commjs/sm3'
import { setDictype, setSysConfig } from '@/utils/auth' import { setDictype, setSysConfig } from '@/utils/auth'
import { gongkey, CodeSr, heBeiToken, menulist, updateFirstPassword, dictypeData, getSysConfig } from '@/api/user' import { gongkey, CodeSr, heBeiToken, menulist, updateFirstPassword, dictypeData, getSysConfig } from '@/api/user'
let routerPath = '' let routerPath = ''
let flag = false
router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
console.log('🚀 ~ to:', to)
console.log('🚀 ~ getURLParameter ~ window.location.href:', window.location.href)
// start progress bar // start progress bar
// NProgress.start() // NProgress.start()
@@ -43,6 +51,10 @@ router.beforeEach(async (to, from, next) => {
// 超高压河北免登录功能 // 超高压河北免登录功能
if (process.env.VUE_APP_MODE === 'cgyqr') { if (process.env.VUE_APP_MODE === 'cgyqr') {
if (flag) {
flag = false
return next()
}
if (process.env.VUE_APP_HB == 'hbqr') { if (process.env.VUE_APP_HB == 'hbqr') {
// let data = JSON.parse(sessionStorage.getItem('userInfo1')) // let data = JSON.parse(sessionStorage.getItem('userInfo1'))
// if (data.userToken == sessionStorage.getItem('HB_TOKEN')) { // if (data.userToken == sessionStorage.getItem('HB_TOKEN')) {
@@ -54,7 +66,10 @@ router.beforeEach(async (to, from, next) => {
// window.sessionStorage.removeItem('cntoken') // window.sessionStorage.removeItem('cntoken')
// sessionStorage.setItem('HB_TOKEN', data.userToken) // sessionStorage.setItem('HB_TOKEN', data.userToken)
// setTimeout(() => { // setTimeout(() => {
proceed(to, from, next, 'cdf')
// console.log('🚀 ~ getURLParameter ~ url:', url)
proceed({ path: window.location.href.split('#')[1].split('&')[0] }, from, next, 'cdf')
// }, 10) // }, 10)
// } // }
@@ -87,7 +102,25 @@ router.beforeEach(async (to, from, next) => {
// }) // })
// } // }
} else { } else {
proceed(to, from, next) // const response = await fetch('/')
// const flag = response.headers.get('X-Xbqr')
let { accessToken, pathname } = getURLParameter('accessToken')
console.log('🚀 ~ accessToken:', accessToken, pathname)
// getURLParameter
if (accessToken) {
// 超高压嵌入 接受父应用传参
console.log('超高压嵌入')
productionManagementCheck({
token: accessToken
}).then(res => {
if (res.code == 'A0000') {
proceed({ path: pathname || to.path }, from, next, 'cdf1')
}
})
} else {
proceed(to, from, next)
}
} }
// else { // else {
@@ -131,11 +164,54 @@ router.beforeEach(async (to, from, next) => {
} }
} }
}) })
// 解析 URL 参数
function getURLParameter(name) {
// 获取当前页面的 URL
const url = window.location.href
// console.log('🚀 ~ getURLParameter ~ url:', url)
// 使用 URL 对象解析 URL
const urlObj = new URL(url)
console.log('🚀 ~ getURLParameter ~ urlObj:', urlObj)
// 获取查询参数
const params = new URLSearchParams(urlObj.search)
console.log(params.get(name)) // 输出: 123
console.log('pathname', urlObj.pathname) // 输出: 123
// 获取 id 参数
return {
accessToken: params.get('accessToken'),
pathname: urlObj.pathname
}
}
function getURLParameterHb(name) {
// 获取当前页面的 URL
const url = window.location.href
// console.log('🚀 ~ getURLParameter ~ url:', url)
// 使用 URL 对象解析 URL
const urlObj = new URL(url)
console.log('🚀 ~ getURLParameter ~ urlObj:', urlObj)
// 获取查询参数
const params = new URLSearchParams(urlObj.search)
console.log(params.get(name)) // 输出: 123
console.log('pathname', urlObj.pathname) // 输出: 123
// 获取 id 参数
return {
accessToken: params.get('accessToken'),
pathname: urlObj.pathname
}
}
async function proceed(to, from, next, HB_NAME) { async function proceed(to, from, next, HB_NAME) {
// 打印当前 name 和 sessionStorage 中 cntoken 是否为空的日志
let name = HB_NAME || 'cdf' let name = HB_NAME || 'cdf'
// 检查 sessionStorage 中是否没有 cntoken
console.log('🚀 ~ proceed ~ name:', name, window.sessionStorage.getItem('cntoken') == null) console.log('🚀 ~ proceed ~ name:', name, window.sessionStorage.getItem('cntoken') == null)
// 定义默认密码
if (window.sessionStorage.getItem('cntoken') == null) { if (window.sessionStorage.getItem('cntoken') == null) {
// 初始化登录表单
let password = '@#001njcnpqs' let password = '@#001njcnpqs'
let loginjmForm = { let loginjmForm = {
username: '', username: '',
@@ -143,47 +219,69 @@ async function proceed(to, from, next, HB_NAME) {
grant_type: 'captcha', grant_type: 'captcha',
verifyCode: 0, verifyCode: 0,
imageCode: '' imageCode: ''
// 对 name 进行加密处理
} }
let username = encrypt(name) let username = encrypt(name)
// 设置登录表单的用户名
// 将应用高度存储到 sessionStorage 中
loginjmForm.username = username loginjmForm.username = username
// 调用 gongkey 函数获取公钥
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10) window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
await gongkey({ loginName: username }).then(async response => { await gongkey({ loginName: username }).then(async response => {
window.publicKey = response.data window.publicKey = response.data
// 将公钥存储到全局变量和 localStorage 中
window.localStorage.setItem('publicKey', response.data) window.localStorage.setItem('publicKey', response.data)
var sm3Pwd = sm3Digest(password) var sm3Pwd = sm3Digest(password)
// 使用 SM3 算法对密码进行摘要处理
var jiamipassword = '' var jiamipassword = ''
// 使用 SM2 算法对密码进行加密
jiamipassword = sm2(sm3Pwd + '|' + password, publicKey, 0) jiamipassword = sm2(sm3Pwd + '|' + password, publicKey, 0)
loginjmForm.password = jiamipassword loginjmForm.password = jiamipassword
// 设置登录表单的加密密码
store store
// 调用 Vuex 的 login 方法进行登录
.dispatch('user/login', loginjmForm) .dispatch('user/login', loginjmForm)
.then(async response => { .then(async response => {
if (response.code === 'A0101' && response.message === '登录认证,密码失效,请重置') { if (response.code === 'A0101' && response.message === '登录认证,密码失效,请重置') {
// 如果登录响应需要重置密码
CodeSr().then(response => { CodeSr().then(response => {
// 调用 CodeSr 函数获取验证码图片
let blob = new Blob([response], { type: 'image/jpg' }) let blob = new Blob([response], { type: 'image/jpg' })
let url = window.URL.createObjectURL(blob) let url = window.URL.createObjectURL(blob)
}) })
} }
await store.dispatch('user/getInfo') await store.dispatch('user/getInfo')
// 获取用户信息
// 根据角色生成可访问的路线图 // 根据角色生成可访问的路线图
const accessRoutes = await store.dispatch('permission/generateRoutes') const accessRoutes = await store.dispatch('permission/generateRoutes')
// 动态添加可访问的路由 // 动态添加可访问的路由
setTimeout(() => { setTimeout(() => {
router.addRoutes(accessRoutes) router.addRoutes(accessRoutes)
if (response.code === 'A0000') { if (response.code === 'A0000') {
// 如果登录成功
loginjmForm.verifyCode = 0 loginjmForm.verifyCode = 0
// 重置验证码
SysConfig() SysConfig()
// 调用 SysConfig 函数进行系统配置
// cgyList.indexOf(to.path) !== -1 // cgyList.indexOf(to.path) !== -1
store.dispatch('user/getmenu').then(async response => { store.dispatch('user/getmenu').then(async response => {
await getmuen(response.data[0]) await getmuen(response.data[0])
router.push({ router.push({
path: cgyList.indexOf(to.path) !== -1 ? to.path : to.path //routerPath path: cgyList.indexOf(to.path) !== -1 ? to.path : to.path //routerPath
}) })
}) })
} }
next()
if (process.env.VUE_APP_KEY == 'scqr') {
flag = true
next(to.path)
} else {
next()
}
}, 500) }, 500)
}) })
.catch(error => { .catch(error => {
@@ -195,7 +293,12 @@ async function proceed(to, from, next, HB_NAME) {
}) })
}) })
} else { } else {
next() if (process.env.VUE_APP_KEY == 'scqr') {
flag = true
next(to.path)
} else {
next()
}
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7,10 +7,11 @@ import { CodeSr } from '@/api/user'
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const service = axios.create({ const service = axios.create({
// baseURL: '/harmonicWaveApi',//超高压生产嵌入
// baseURL: '/PMS3/Application/third/aqcp-dnzl/harmonicWaveApi',//河北嵌入
baseURL: '/api', baseURL: '/api',
timeout: 150000 timeout: 150000
}) })
// service.interceptors.request.use( // service.interceptors.request.use(
// config => { // config => {
// if(config.url !=='/pqs-oauth2/oauth/token' || config.params.grant_type=='refresh_token'){ // if(config.url !=='/pqs-oauth2/oauth/token' || config.params.grant_type=='refresh_token'){

View File

@@ -615,20 +615,24 @@ export default {
//台区台账表头 //台区台账表头
tableHeaderMonitoring: [ tableHeaderMonitoring: [
// { prop: 'id', label: '监测点编号', width: 120 }, // { prop: 'id', label: '监测点编号', width: 120 },
{ prop: 'name', label: '监测点名称', width: 220 },
{ prop: 'name', label: '测点名称', width: 220 },
{ prop: 'monitorId', label: '测点编号', width: 220 },
{ prop: 'orgName', label: '组织机构名称', width: 170 }, { prop: 'orgName', label: '组织机构名称', width: 170 },
{ prop: 'operationName', label: '运维单位名称', width: 170 }, { prop: 'operationName', label: '运维单位名称', width: 170 },
{ prop: 'midStation', label: '变电站编号', width: 150 },
{ prop: 'powerrName', label: '变电站名称', width: 120 }, { prop: 'powerrName', label: '变电站名称', width: 120 },
//{ prop: "generatrixName", label: "母线名称", width: 120 },
{ prop: 'busId', label: '母线编号', width: 180 }, { prop: 'busId', label: '母线编号', width: 180 },
{ prop: 'lineName', label: '母线名称', width: 180 }, { prop: 'lineName', label: '母线名称', width: 180 },
// { prop: "lineId", label: "监测线路ID", width: 180 }, { prop: "lineNum", label: "装置接线序号", width: 180 },
{ prop: 'voltageLevel', label: '电压等级', width: 100 }, { prop: 'voltageLevel', label: '电压等级', width: 100 },
{ prop: 'monitorState', label: '监测点状态', width: 120 }, { prop: 'monitorState', label: '监测点状态', width: 120 },
{ prop: 'monitorObjectName', label: '监测对象名称', width: 250 },
{ prop: 'monitorType', label: '监测点类型', width: 120 }, { prop: 'monitorType', label: '监测点类型', width: 120 },
{ prop: 'minShortCircuitCapacity', label: '最小短路容量', width: 120 }, { prop: 'minShortCircuitCapacity', label: '最小短路容量', width: 120 },
{ prop: 'powerSupplyEqCapacity', label: '供电设备容量', width: 120 }, { prop: 'powerSupplyEqCapacity', label: '供电设备容量', width: 120 },
{ prop: 'userAgreementCapacity', label: '用户协议容量', width: 120 }, { prop: 'userAgreementCapacity', label: '用户协议容量', width: 120 },
{ prop: 'putDate', label: '投运日期', width: 120 },
{ {
prop: 'voltageDeviationUpperLimit', prop: 'voltageDeviationUpperLimit',
label: '电压偏差限值(上)', label: '电压偏差限值(上)',
@@ -654,7 +658,7 @@ export default {
{ prop: 'objType', label: '对象类型', width: 170 }, { prop: 'objType', label: '对象类型', width: 170 },
// { prop: "monitorObjectId", label: "监测对象编号", width:170 }, // { prop: "monitorObjectId", label: "监测对象编号", width:170 },
{ prop: 'monitorObjectName', label: '监测对象名称', width: 170 },
{ prop: 'tradeCode', label: '行业分类', width: 170 }, { prop: 'tradeCode', label: '行业分类', width: 170 },
{ prop: 'statisticalInterval', label: '统计间隔(min)', width: 140 }, { prop: 'statisticalInterval', label: '统计间隔(min)', width: 140 },
{ prop: 'terminalCode', label: '关联的监测终端编号', width: 190 }, { prop: 'terminalCode', label: '关联的监测终端编号', width: 190 },
@@ -1383,7 +1387,7 @@ export default {
form.pageSize = this.total form.pageSize = this.total
getAllMonitorPageList(form).then(res => { getAllMonitorPageList(form).then(res => {
this.$refs.Monitoringpoint.exportData({ this.$refs.Monitoringpoint.exportData({
filename: '监测点台账', // 文件名字 filename: '监测点台账'+new Date().getTime(), // 文件名字
sheetName: 'Sheet1', sheetName: 'Sheet1',
type: 'xlsx', //导出文件类型 xlsx 和 csv type: 'xlsx', //导出文件类型 xlsx 和 csv
useStyle: true, useStyle: true,
@@ -1401,7 +1405,7 @@ export default {
const url = window.URL.createObjectURL(blob) const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签 const link = document.createElement('a') // 创建a标签
link.href = url // link.download = "电压暂降事件分析报告"; // 设置下载的文件名 link.href = url // link.download = "电压暂降事件分析报告"; // 设置下载的文件名
link.download = '上送典型台账.xls' // 设置下载的文件名 link.download = '典型台账.xls' // 设置下载的文件名
document.body.appendChild(link) document.body.appendChild(link)
link.click() //执行下载 link.click() //执行下载
document.body.removeChild(link) document.body.removeChild(link)

View File

@@ -214,7 +214,7 @@ export default {
tableHeaderLine: [ tableHeaderLine: [
{ prop: 'midBusId', label: '同源线路编号' }, { prop: 'midBusId', label: '同源线路编号' },
{ prop: 'midBusName', label: '同源母线名称' }, { prop: 'midBusName', label: '同源母线名称' },
{ prop: 'name', label: '线路名称' }, { prop: 'name', label: '名称' },
{ prop: 'scale', label: '电压等级' }, { prop: 'scale', label: '电压等级' },
{ prop: 'generatrixName', label: '所属母线' }, { prop: 'generatrixName', label: '所属母线' },
{ prop: 'stationName', label: '所属电站' }, { prop: 'stationName', label: '所属电站' },

View File

@@ -2,8 +2,12 @@
<template> <template>
<div> <div>
<el-form :inline="true" :model="ruleForm" class="demo-form-inline"> <el-form :inline="true" :model="ruleForm" class="demo-form-inline">
<el-form-item>
<Area @click="handleNodeArea"></Area>
</el-form-item>
<el-form-item label="信息查询:"> <el-form-item label="信息查询:">
<el-input v-model.trim="ruleForm.searchValue" placeholder="请输入查询信息" clearable></el-input> <el-input v-model.trim="ruleForm.searchValue" placeholder="请输入台区名称,所属线路" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@@ -174,8 +178,9 @@ import {
} from '@/api/hbaccountoperation/StationAreaInformation' } from '@/api/hbaccountoperation/StationAreaInformation'
import { deptTree } from '@/api/admin/dept' import { deptTree } from '@/api/admin/dept'
import { dicData } from '@/assets/commjs/dictypeData' import { dicData } from '@/assets/commjs/dictypeData'
import Area from '@/views/components/Area/Area.vue'
export default { export default {
components: { PMS_Data, Organization, Operation }, components: { PMS_Data, Organization, Operation,Area },
data() { data() {
return { return {
vh: '', vh: '',
@@ -187,7 +192,8 @@ export default {
ruleForm: { ruleForm: {
searchValue: '', searchValue: '',
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20,
orgId:JSON.parse(window.sessionStorage.getItem('Info')).deptId,
// orderBy: "", // orderBy: "",
// searchBeginTime: "", // searchBeginTime: "",
// searchEndTime: "", // searchEndTime: "",
@@ -791,6 +797,11 @@ export default {
row.row.isUpToGrid = '是' row.row.isUpToGrid = '是'
} }
}, },
handleNodeArea(data) {
this.ruleForm.orgId = data.id
},
//导出 //导出
exportEvent() { exportEvent() {
getPowerDistributionAreaList({ getPowerDistributionAreaList({

File diff suppressed because it is too large Load Diff

View File

@@ -4,10 +4,12 @@
<el-col> <el-col>
<el-tabs v-model.trim="activeName" @tab-click="handleClick" type="border-card"> <el-tabs v-model.trim="activeName" @tab-click="handleClick" type="border-card">
<el-tab-pane label="主网监测点台帐" name="second" :style="'height:' + vh + ';'"> <el-tab-pane label="主网用户台账" name="Typical" :style="'height:' + vh + ';'">
<Monitoringpoint v-if="activeName == 'second'"></Monitoringpoint> <Typical :flag="1" v-if="activeName == 'Typical'"></Typical>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="主网用户台账统计" name="statistics" :style="'height:' + vh + ';'">
<statistics v-if="activeName == 'statistics'"></statistics>
</el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
@@ -16,18 +18,20 @@
</template> </template>
<script> <script>
import Monitoringpoint from '../../components/Monitoringpoint' import statistics from '@/views/Account-management/components/uploadGw/statistics'
import Typical from '@/views/Account-management/components/uploadGw/Monitoringpoint'
export default { export default {
name: 'uploadGw', name: 'uploadGw',
components: { components: {
Monitoringpoint Typical,
statistics
}, },
data() { data() {
return { return {
vh: '', vh: '',
activeName: 'first', activeName: 'Typical',
device: '' device: ''
} }
}, },

View File

@@ -0,0 +1,172 @@
<template>
<div>
<el-form :inline="true" :model="ruleForm" class="demo-form-inline">
<el-form-item>
<Area @click="handleNodeArea"></Area>
</el-form-item>
<el-form-item>
<el-button type="primary" class="ml10" icon="el-icon-search" @click="Power">查询</el-button>
<el-button type="primary" icon="el-icon-download" @click="exportEvent">导出</el-button>
</el-form-item>
</el-form>
<template>
<vxe-table
stripe
:data="busData"
:height="height"
border
size="mini"
ref="setInformation"
v-loading="isLoading"
header-cell-class-name="table_header"
>
<vxe-table-column
v-for="(val, index) in tableHeaderPower"
align="center"
:field="val.prop"
:title="val.label"
:min-width="val.width"
:show-overflow="true"
></vxe-table-column>
</vxe-table>
</template>
</div>
</template>
<script>
// import bus from "@/assets/js/eventBus";
import { objType, objTypeStatis } from '@/api/hbaccountoperation/setInformation'
import Area from '@/views/components/Area/Area.vue'
import { dicData } from '@/assets/commjs/dictypeData'
export default {
components: { Area },
data() {
return {
ruleForm: {
deptId: JSON.parse(window.sessionStorage.getItem('Info')).deptId,
up:0
},
height: null,
isLoading: false,
multipleSelection: [],
Voltagelevel: [], //电压等级
//台区台账表头
tableHeaderPower: [],
busData: []
}
},
created() {},
mounted() {
this.setHeight()
window.addEventListener('resize', this.setHeight)
this.Power()
// this.sendMessage()
},
beforeDestroy() {
window.removeEventListener('resize', this.setHeight)
},
computed: {},
methods: {
setHeight() {
this.device = window.devicePixelRatio
this.height = window.sessionStorage.getItem('appheight') - 130
},
handleNodeArea(data) {
this.ruleForm.deptId = data.id
},
//获取类型
//查询母线信息
Power() {
this.isLoading = true
this.tableHeaderPower = []
this.busData = []
objTypeStatis(this.ruleForm).then(res => {
let data = res.data
let result = data[0].reduce(
(acc, item) => {
if (item === '合计') {
acc.push([])
} else {
acc[acc.length - 1].push(item)
}
return acc
},
[[]]
)
Array.from(result[0]).forEach((char, i) => {
this.tableHeaderPower.push({
prop: `prop${i}`,
label: char,
width: char.length > 9 ? 250 : 130
})
})
this.tableHeaderPower[0].width = 350
console.log(this.tableHeaderPower)
data.shift()
data.forEach((item, ind) => {
// console.log('🚀 ~ objType ~ item:', item)
this.busData.push({})
Array.from(item).forEach((char, i) => {
this.busData[ind][`prop${i}`] = char
})
})
console.log(this.busData)
this.isLoading = false
})
},
//导出
exportEvent() {
objType({
deptId: this.ruleForm.deptId
}).then(res => {
this.$refs.setInformation.exportData({
filename: '台账上送统计', // 文件名字
sheetName: 'Sheet1',
type: 'xlsx', //导出文件类型 xlsx 和 csv
useStyle: true,
data: res.data.records, // 数据源 // 过滤那个字段导出
columnFilterMethod: function (column, $columnIndex) {
return !(column.$columnIndex === 0)
}
})
})
}
}
}
</script>
<style lang="less" scoped>
@import url('../../../../styles/comStyle.less');
::v-deep .vxe-table .cell {
text-align: center;
}
::v-deep .el-tabs--border-card > .el-tabs__content {
padding: 10px;
}
.pms {
margin-left: 10px;
}
.obtain {
margin-left: 1220px;
}
</style>

View File

@@ -10,6 +10,11 @@
<el-tab-pane label="主网监测点台帐" name="second" :style="'height:' + vh + ';'"> <el-tab-pane label="主网监测点台帐" name="second" :style="'height:' + vh + ';'">
<Monitoringpoint v-if="activeName == 'second'"></Monitoringpoint> <Monitoringpoint v-if="activeName == 'second'"></Monitoringpoint>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="主网监测点限值" name="Zhuwangjiancedianxianzhi" :style="'height:' + vh + ';'">
<Zhuwangjiancedianxianzhi
v-if="activeName == 'Zhuwangjiancedianxianzhi'"
></Zhuwangjiancedianxianzhi>
</el-tab-pane>
<!-- <el-tab-pane <!-- <el-tab-pane
label="配网监测点台帐" label="配网监测点台帐"
@@ -31,15 +36,15 @@
<PowerGenerationAccount v-if="activeName == 'fifth'" /> <PowerGenerationAccount v-if="activeName == 'fifth'" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="监测终端台帐" name="sixth" :style="'height:' + vh + ';'"> <el-tab-pane label="终端台帐" name="sixth" :style="'height:' + vh + ';'">
<TerminalAccount v-if="activeName == 'sixth'"></TerminalAccount> <TerminalAccount v-if="activeName == 'sixth'"></TerminalAccount>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="电站监测点设置信息" name="seventh" :style="'height:' + vh + ';'"> <el-tab-pane label="电站台账" name="seventh" :style="'height:' + vh + ';'">
<setInformation v-if="activeName == 'seventh'"></setInformation> <setInformation v-if="activeName == 'seventh'"></setInformation>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="牵引站信息" name="eighth" :style="'height:' + vh + ';'"> <el-tab-pane label="牵引站台账" name="eighth" :style="'height:' + vh + ';'">
<TractionStationInformation v-if="activeName == 'eighth'"></TractionStationInformation> <TractionStationInformation v-if="activeName == 'eighth'"></TractionStationInformation>
</el-tab-pane> </el-tab-pane>
@@ -47,15 +52,11 @@
<transformer v-if="activeName == 'ninth'"></transformer> <transformer v-if="activeName == 'ninth'"></transformer>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="线台账" name="tenth" :style="'height:' + vh + ';'"> <el-tab-pane label="线台账" name="tenth" :style="'height:' + vh + ';'">
<RouteTable v-if="activeName == 'tenth'"></RouteTable> <RouteTable v-if="activeName == 'tenth'"></RouteTable>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="主网监测点限值" name="Zhuwangjiancedianxianzhi" :style="'height:' + vh + ';'">
<Zhuwangjiancedianxianzhi <el-tab-pane label="典型台账" name="Typical" :style="'height:' + vh + ';'">
v-if="activeName == 'Zhuwangjiancedianxianzhi'"
></Zhuwangjiancedianxianzhi>
</el-tab-pane>
<el-tab-pane label="上送典型台账" name="Typical" :style="'height:' + vh + ';'">
<Typical :flag="1" v-if="activeName == 'Typical'"></Typical> <Typical :flag="1" v-if="activeName == 'Typical'"></Typical>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="台账上送统计" name="statistics" :style="'height:' + vh + ';'"> <el-tab-pane label="台账上送统计" name="statistics" :style="'height:' + vh + ';'">

View File

@@ -1,120 +1,120 @@
<template> <template>
<div class="pd10"> <div class="pd10">
<el-form :inline="true" :model="formData" class="demo-form-inline"> <el-form :inline="true" :model="formData" class="demo-form-inline">
<el-form-item> <el-form-item>
<Timeinterval ref="interval" :interval="3"></Timeinterval> <Timeinterval ref="interval" :interval="3"></Timeinterval>
</el-form-item> </el-form-item>
<el-form-item label="筛选数据:"> <el-form-item label="筛选数据:">
<el-input v-model.trim="formData.loginName" placeholder="请输入筛选数据" clearable></el-input> <el-input v-model.trim="formData.loginName" placeholder="请输入筛选数据" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button> <el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
stripe stripe
size="mini" size="mini"
:row-config="{ isCurrent: true, isHover: true }" :row-config="{ isCurrent: true, isHover: true }"
border border
highlight-current-row highlight-current-row
v-loading="loading" v-loading="loading"
element-loading-text="数据加载中" element-loading-text="数据加载中"
header-cell-class-name="table_header" header-cell-class-name="table_header"
:data="datamock" :data="datamock"
style="width: 100%" style="width: 100%"
:height="vh + 'px'" :height="vh + 'px'"
> >
<el-table-column prop="userName" label="登录用户" align="center"></el-table-column> <el-table-column prop="userName" label="登录用户" align="center"></el-table-column>
<el-table-column prop="ip" label="登录ip" align="center"></el-table-column> <el-table-column prop="ip" label="登录IP" align="center"></el-table-column>
<el-table-column prop="time" label="登录时间" align="center"></el-table-column> <el-table-column prop="time" label="登录时间" align="center"></el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination
background background
align="right" align="right"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="formData.pageNum" :current-page="formData.pageNum"
:page-sizes="[20, 30, 50, 100]" :page-sizes="[20, 30, 50, 100]"
:page-size="formData.pageSize" :page-size="formData.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="total" :total="total"
class="mt10" class="mt10"
></el-pagination> ></el-pagination>
</div> </div>
</template> </template>
<script> <script>
import Timeinterval from '@/views/components/Timeinterval.vue' import Timeinterval from '@/views/components/Timeinterval.vue'
import { getAuditLog } from '@/api/AuditManagement/AuditManagement' import { getAuditLog } from '@/api/AuditManagement/AuditManagement'
export default { export default {
components: { components: {
Timeinterval Timeinterval
}, },
props: {}, props: {},
data() { data() {
return { return {
loading: false, loading: false,
zoom: '', //图表焦点校验 zoom: '', //图表焦点校验
vh: undefined, vh: undefined,
formData: { formData: {
operateType: '认证', operateType: '认证',
loginName: '', loginName: '',
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
datamock: [], datamock: [],
total: undefined total: undefined
} }
}, },
created() {}, created() {},
mounted() { mounted() {
this.setHeight() this.setHeight()
window.addEventListener('resize', this.setHeight) window.addEventListener('resize', this.setHeight)
this.onSubmit() this.onSubmit()
}, },
beforeDestroy() { beforeDestroy() {
window.removeEventListener('resize', this.setHeight) window.removeEventListener('resize', this.setHeight)
}, },
methods: { methods: {
setHeight() { setHeight() {
this.vh = window.sessionStorage.getItem('appheight') - 95 this.vh = window.sessionStorage.getItem('appheight') - 95
}, },
//查询 //查询
onSubmit() { onSubmit() {
this.loading = true this.loading = true
this.item = this.$refs.interval.timeValue this.item = this.$refs.interval.timeValue
this.formData.searchBeginTime = this.item[0] this.formData.searchBeginTime = this.item[0]
this.formData.searchEndTime = this.item[1] this.formData.searchEndTime = this.item[1]
getAuditLog(this.formData).then(res => { getAuditLog(this.formData).then(res => {
this.datamock = res.data.records this.datamock = res.data.records
this.total = res.data.total this.total = res.data.total
this.loading = false this.loading = false
}) })
}, },
//每页条数改变时触发 选择一页显示多少行 //每页条数改变时触发 选择一页显示多少行
handleSizeChange(val) { handleSizeChange(val) {
this.formData.pageSize = val this.formData.pageSize = val
this.onSubmit() this.onSubmit()
}, },
//当前页改变时触发 跳转其他页 //当前页改变时触发 跳转其他页
handleCurrentChange(val) { handleCurrentChange(val) {
this.formData.pageNum = val this.formData.pageNum = val
this.onSubmit() this.onSubmit()
} }
}, },
computed: {}, computed: {},
watch: {} watch: {}
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import url('../../../styles/comStyle.less'); @import url('../../../styles/comStyle.less');
::v-deep .el-form-item--small .el-form-item__content, ::v-deep .el-form-item--small .el-form-item__content,
.el-form-item--small .el-form-item__label { .el-form-item--small .el-form-item__label {
height: 32px; height: 32px;
} }
::v-deep .el-table .cell { ::v-deep .el-table .cell {
text-align: center; text-align: center;
} }
</style> </style>

View File

@@ -1,431 +1,431 @@
<template> <template>
<div v-loading="loading"> <div v-loading="loading">
<div> <div>
<div id="boxi" :style="`height:${vh};overflow: hidden;`"> <div id="boxi" :style="`height:${vh};overflow: hidden;`">
<div class="bx" id="wave"></div> <div class="bx" id="wave"></div>
</div> </div>
<el-tabs type="border-card"> <el-tabs type="border-card">
<el-tab-pane label="暂态波形上送" :style="'height:' + vhh"> <el-tab-pane label="暂态波形上送" :style="'height:' + vhh">
<el-table <el-table
stripe stripe
:data="Data" :data="Data"
:height="height" :height="height"
border border
style="width: 100%" style="width: 100%"
header-cell-class-name="table_header" header-cell-class-name="table_header"
> >
<el-table-column align="center" prop="number" label="事件段"></el-table-column> <el-table-column align="center" prop="number" label="事件段"></el-table-column>
<el-table-column align="center" prop="number" label="波形起始点相位(°)"> <el-table-column align="center" prop="number" label="波形起始点相位(°)">
<el-table-column align="center" prop="number" label="A相"></el-table-column> <el-table-column align="center" prop="number" label="A相"></el-table-column>
<el-table-column align="center" prop="number" label="B相"></el-table-column> <el-table-column align="center" prop="number" label="B相"></el-table-column>
<el-table-column align="center" prop="number" label="C相"></el-table-column> <el-table-column align="center" prop="number" label="C相"></el-table-column>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="number" label="跳变段电压变化率(V/ms)"> <el-table-column align="center" prop="number" label="跳变段电压变化率(V/ms)">
<el-table-column align="center" prop="number" label="A相"></el-table-column> <el-table-column align="center" prop="number" label="A相"></el-table-column>
<el-table-column align="center" prop="number" label="B相"></el-table-column> <el-table-column align="center" prop="number" label="B相"></el-table-column>
<el-table-column align="center" prop="number" label="C相"></el-table-column> <el-table-column align="center" prop="number" label="C相"></el-table-column>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="number" label="相位跳变(°)"> <el-table-column align="center" prop="number" label="相位跳变(°)">
<el-table-column align="center" prop="number" label="A相"></el-table-column> <el-table-column align="center" prop="number" label="A相"></el-table-column>
<el-table-column align="center" prop="number" label="B相"></el-table-column> <el-table-column align="center" prop="number" label="B相"></el-table-column>
<el-table-column align="center" prop="number" label="C相"></el-table-column> <el-table-column align="center" prop="number" label="C相"></el-table-column>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="number" label="总分段数目"></el-table-column> <el-table-column align="center" prop="number" label="总分段数目"></el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="number" prop="number"
label="三相电压不平衡度(%)" label="三相电压不平衡度(%)"
width="180" width="180"
></el-table-column> ></el-table-column>
<el-table-column align="center" prop="number" label="暂降类型"></el-table-column> <el-table-column align="center" prop="number" label="暂降类型"></el-table-column>
<el-table-column align="center" prop="number" label="暂降原因"></el-table-column> <el-table-column align="center" prop="number" label="暂降原因"></el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getMonitorEventAnalyseWave } from '@/api/monitoringpointStatistics/echart' import { getMonitorEventAnalyseWave } from '@/api/monitoringpointStatistics/echart'
import $ from 'jquery' import $ from 'jquery'
export default { export default {
props: { props: {
flag: { flag: {
type: Boolean, type: Boolean,
default: false default: false
}, },
DColor: { DColor: {
type: Boolean, type: Boolean,
default: false default: false
}, },
boxoList: { boxoList: {
type: [Object, Array] type: [Object, Array]
}, },
GJList: { GJList: {
type: [Object, Array] type: [Object, Array]
} }
}, },
data() { data() {
return { return {
loading: true, loading: true,
url: require('@/assets/point.png'), url: require('@/assets/point.png'),
valA: 0, valA: 0,
isOpen: false, isOpen: false,
time: '', time: '',
type: '', type: '',
severity: '', severity: '',
iphasic: '', iphasic: '',
eventValue: '', eventValue: '',
persistTime: '', persistTime: '',
lineName: '', lineName: '',
subName: '', subName: '',
waveDatas: [], waveDatas: [],
Data: [], Data: [],
height: null, height: null,
vhh: null, vhh: null,
ptpass: '', ptpass: '',
waveHeight: undefined, waveHeight: undefined,
$wave: undefined, $wave: undefined,
color: '#006565', color: '#006565',
charts: {}, charts: {},
arrpoints: [], arrpoints: [],
titles: '', titles: '',
vh: null, vh: null,
vw: null, vw: null,
zoom: '' zoom: ''
} }
}, },
created() {}, created() {},
watch: { watch: {
value: function (a, b) { value: function (a, b) {
if (a == 2) { if (a == 2) {
// $("#wave1").remove(); // $("#wave1").remove();
this.initWaves() this.initWaves()
} else { } else {
$('#wave1').remove() $('#wave1').remove()
this.initWaves() this.initWaves()
} }
} }
}, },
mounted() { mounted() {
this.setHeight() this.setHeight()
window.addEventListener('resize', this.setHeight) window.addEventListener('resize', this.setHeight)
this.$wave = $('#wave').eq(0) this.$wave = $('#wave').eq(0)
this.$nextTick(() => { this.$nextTick(() => {
this.query() this.query()
}) })
}, },
beforeDestroy() { beforeDestroy() {
window.removeEventListener('resize', this.setHeight) window.removeEventListener('resize', this.setHeight)
}, },
methods: { methods: {
setHeight() { setHeight() {
this.zoom = 1 / document.body.style.zoom this.zoom = 1 / document.body.style.zoom
if (this.flag) { if (this.flag) {
// console.log(123); // console.log(123);
this.vh = window.sessionStorage.getItem('appheight') - 210 + 'px' this.vh = window.sessionStorage.getItem('appheight') - 210 + 'px'
} else { } else {
// console.log(3333); // console.log(3333);
this.vh = window.sessionStorage.getItem('appheight') - 275 + 'px' this.vh = window.sessionStorage.getItem('appheight') - 275 + 'px'
} }
this.height = window.sessionStorage.getItem('appheight') / 2 - 300 + 'px' this.height = window.sessionStorage.getItem('appheight') / 2 - 300 + 'px'
this.vw = window.sessionStorage.getItem('appwidth') - 60 + 'px' this.vw = window.sessionStorage.getItem('appwidth') - 60 + 'px'
}, },
query() { query() {
this.loading = true this.loading = true
this.initWave() this.initWave()
}, },
//开始画图 //开始画图
initWave() { initWave() {
//清除之前增加的div //清除之前增加的div
// $("#wave ~ .bx1").remove(); // $("#wave ~ .bx1").remove();
$('div.bx1').remove() $('div.bx1').remove()
//设置暂降触发点的位置 一次值与二次值Y轴不同不是计算出来的 //设置暂降触发点的位置 一次值与二次值Y轴不同不是计算出来的
// var height = $(window).height() - 90; // var height = $(window).height() - 90;
var picHeight var picHeight
var show = true var show = true
//var v = $("#interval").val(); //var v = $("#interval").val();
var isvisible = false var isvisible = false
picHeight = this.vh picHeight = this.vh
this.$wave.css('height', picHeight) this.$wave.css('height', picHeight)
this.$wave.css('width', this.vw) this.$wave.css('width', this.vw)
var adata = [] var adata = []
var bdata = [] var bdata = []
var cdata = [] var cdata = []
var max = 0 var max = 0
var min = 0 var min = 0
//绘制横向第一个波形图 //绘制横向第一个波形图
this.GJList.smp_x.forEach((item, ind) => { this.GJList.smp_x.forEach((item, ind) => {
if (this.GJList.smp_a[ind] > max) { if (this.GJList.smp_a[ind] > max) {
max = this.GJList.smp_a[ind] max = this.GJList.smp_a[ind]
} else if (this.GJList.smp_a[ind] < min) { } else if (this.GJList.smp_a[ind] < min) {
min = this.GJList.smp_a[ind] min = this.GJList.smp_a[ind]
} }
if (this.GJList.smp_b[ind] > max) { if (this.GJList.smp_b[ind] > max) {
max = this.GJList.smp_b[ind] max = this.GJList.smp_b[ind]
} else if (this.GJList.smp_b[ind] < min) { } else if (this.GJList.smp_b[ind] < min) {
min = this.GJList.smp_b[ind] min = this.GJList.smp_b[ind]
} }
if (this.GJList.smp_c[ind] > max) { if (this.GJList.smp_c[ind] > max) {
max = this.GJList.smp_c[ind] max = this.GJList.smp_c[ind]
} else if (this.GJList.smp_c[ind] < min) { } else if (this.GJList.smp_c[ind] < min) {
min = this.GJList.smp_c[ind] min = this.GJList.smp_c[ind]
} }
adata.push([item, this.GJList.smp_a[ind]]) adata.push([item, this.GJList.smp_a[ind]])
bdata.push([item, this.GJList.smp_b[ind]]) bdata.push([item, this.GJList.smp_b[ind]])
cdata.push([item, this.GJList.smp_c[ind]]) cdata.push([item, this.GJList.smp_c[ind]])
}) })
//绘制瞬时波形图 //绘制瞬时波形图
const echarts = require('echarts') const echarts = require('echarts')
let wave = document.getElementById('wave') let wave = document.getElementById('wave')
let _this = this let _this = this
var myChartes = echarts.init(wave) var myChartes = echarts.init(wave)
let echartsColor = JSON.parse(window.localStorage.echartsColor) let echartsColor = JSON.parse(window.localStorage.echartsColor)
var option = { var option = {
tooltip: { tooltip: {
top: '10px', top: '10px',
trigger: 'axis', trigger: 'axis',
borderColor: 'grey', borderColor: 'grey',
backgroundColor: '#fff', backgroundColor: '#fff',
style: { style: {
color: '#000', color: '#000',
fontSize: '15px', fontSize: '15px',
padding: 10 padding: 10
}, },
formatter: function (params) { formatter: function (params) {
// console.log(params) // console.log(params)
var tips = '' var tips = ''
tips += '时刻:' + params[0].data[0] + '</br/>' tips += '时刻:' + params[0].data[0] + '</br/>'
for (var i = 0; i < params.length; i++) { for (var i = 0; i < params.length; i++) {
if (params[i].seriesName != '暂降触发点') { if (params[i].seriesName != '暂降触发点') {
tips += params[i].seriesName + ':' + params[i].value[1] + '<br/>' tips += params[i].seriesName + ':' + params[i].value[1] + '<br/>'
} }
} }
return tips return tips
}, },
// axisPointer: { // axisPointer: {
// type: "cross", // type: "cross",
// label: { // label: {
// color: "#fff", // color: "#fff",
// fontSize: 16, // fontSize: 16,
// }, // },
// }, // },
textStyle: { textStyle: {
color: '#fff', color: '#fff',
fontStyle: 'normal', fontStyle: 'normal',
opacity: 0.35, opacity: 0.35,
fontSize: 14 fontSize: 14
}, },
backgroundColor: 'rgba(0,0,0,0.35)', backgroundColor: 'rgba(0,0,0,0.35)',
borderWidth: 0 borderWidth: 0
}, },
title: { title: {
left: 'center', left: 'center',
text: '发生时刻:' + this.boxoList.startTime + ' PT变化:' + this.boxoList.measurementPointName, text: '发生时刻:' + this.boxoList.startTime + ' PT变化:' + this.boxoList.measurementPointName,
textStyle: { textStyle: {
fontSize: 16, fontSize: 16,
color: _this.DColor ? '#fff' : echartsColor.WordColor color: _this.DColor ? '#fff' : echartsColor.WordColor
} }
}, },
legend: { legend: {
left: '5%', left: '5%',
top: '20', top: '20',
verticalAlign: 'top', verticalAlign: 'top',
enabled: true, enabled: true,
itemDistance: 5, itemDistance: 5,
textStyle: { textStyle: {
color: _this.DColor ? '#fff' : echartsColor.WordColor, color: _this.DColor ? '#fff' : echartsColor.WordColor,
rich: { rich: {
a: { a: {
verticalAlign: 'middle' verticalAlign: 'middle'
} }
}, },
padding: [2, 0, 0, 0] //[上、右、下、左] padding: [2, 0, 0, 0] //[上、右、下、左]
} }
}, },
toolbox: { toolbox: {
show: false, show: false,
feature: { feature: {
//restore: {}, //restore: {},
saveAsImage: { saveAsImage: {
iconStyle: { iconStyle: {
borderColor: _this.DColor ? '#fff' : echartsColor.WordColor borderColor: _this.DColor ? '#fff' : echartsColor.WordColor
} }
} }
} }
}, },
xAxis: { xAxis: {
type: 'value', type: 'value',
name: '时刻', name: '时刻',
boundaryGap: false, boundaryGap: false,
min: this.GJList.smp_x[0], min: this.GJList.smp_x[0],
max: this.GJList.smp_x[this.GJList.smp_x.length - 1] + 1, max: this.GJList.smp_x[this.GJList.smp_x.length - 1] + 1,
title: { title: {
text: 'ms', text: 'ms',
textStyle: { textStyle: {
fontSize: 12, fontSize: 12,
color: _this.DColor ? '#fff' : echartsColor.WordColor color: _this.DColor ? '#fff' : echartsColor.WordColor
}, },
enabled: true, enabled: true,
align: 'high' align: 'high'
}, },
splitLine: { splitLine: {
show: false show: false
}, },
axisTick: { axisTick: {
alignWithLabel: true alignWithLabel: true
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: _this.DColor ? '#fff' : echartsColor.thread color: _this.DColor ? '#fff' : echartsColor.thread
}, },
onZero: false //-----------重点 onZero: false //-----------重点
}, },
axisLabel: { axisLabel: {
color: _this.DColor ? '#fff' : echartsColor.WordColor, color: _this.DColor ? '#fff' : echartsColor.WordColor,
formatter: function (value, index) { formatter: function (value, index) {
if (_this.valA != (value - 0).toFixed(0)) { if (_this.valA != (value - 0).toFixed(0)) {
_this.valA = (value - 0).toFixed(0) _this.valA = (value - 0).toFixed(0)
return (value - 0).toFixed(0) return (value - 0).toFixed(0)
} }
} }
//rotate:39 //rotate:39
} }
// data: this.syncExtremes, // data: this.syncExtremes,
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
name: 'kV', name: 'kV',
title: { title: {
align: 'high', align: 'high',
offset: 0, offset: 0,
text: 'kV', text: 'kV',
rotation: 0, rotation: 0,
y: -10 y: -10
}, },
boundaryGap: [0, '100%'], boundaryGap: [0, '100%'],
showLastLabel: true, showLastLabel: true,
max: (max + 10).toFixed(2), max: (max + 10).toFixed(2),
min: (min - 10).toFixed(2), min: (min - 10).toFixed(2),
opposite: false, opposite: false,
nameTextStyle: { nameTextStyle: {
color: _this.DColor ? '#fff' : echartsColor.WordColor color: _this.DColor ? '#fff' : echartsColor.WordColor
}, },
//minInterval: 1, //minInterval: 1,
type: 'value', type: 'value',
axisLine: { axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: _this.DColor ? '#fff' : echartsColor.thread color: _this.DColor ? '#fff' : echartsColor.thread
}, },
onZero: false //-----------重点 onZero: false //-----------重点
}, },
axisLabel: { axisLabel: {
color: _this.DColor ? '#fff' : echartsColor.WordColor, color: _this.DColor ? '#fff' : echartsColor.WordColor,
formatter: function (value, index) { formatter: function (value, index) {
return (value - 0).toFixed(2) return (value - 0).toFixed(2)
} }
}, },
splitLine: { splitLine: {
lineStyle: { lineStyle: {
// 使用深浅的间隔色 // 使用深浅的间隔色
color: [_this.DColor ? '#fff' : echartsColor.thread], color: [_this.DColor ? '#fff' : echartsColor.thread],
type: 'dashed', type: 'dashed',
opacity: 0.5 opacity: 0.5
} }
} }
}, },
grid: { grid: {
left: '1%', left: '1%',
right: '40px', right: '40px',
bottom: '40px', bottom: '40px',
top: '55px', top: '55px',
containLabel: true containLabel: true
}, },
dataZoom: [ dataZoom: [
{ {
type: 'inside', type: 'inside',
height: 13, height: 13,
start: 0, start: 0,
bottom: '20px', bottom: '20px',
end: 100 end: 100
}, },
{ {
start: 0, start: 0,
height: 13, height: 13,
bottom: '20px', bottom: '20px',
end: 100 end: 100
} }
], ],
series: [ series: [
{ {
name: 'A相', name: 'A相',
type: 'line', type: 'line',
smooth: true, smooth: true,
symbol: 'none', symbol: 'none',
sampling: 'lttb', sampling: 'lttb',
itemStyle: { itemStyle: {
color: '#FFCC00' color: '#FFCC00'
}, },
data: adata data: adata
}, },
{ {
name: 'B相', name: 'B相',
type: 'line', type: 'line',
smooth: true, smooth: true,
symbol: 'none', symbol: 'none',
sampling: 'lttb', sampling: 'lttb',
itemStyle: { itemStyle: {
color: '#009900' color: '#009900'
}, },
data: bdata data: bdata
}, },
{ {
name: 'C相', name: 'C相',
type: 'line', type: 'line',
smooth: true, smooth: true,
symbol: 'none', symbol: 'none',
sampling: 'lttb', sampling: 'lttb',
itemStyle: { itemStyle: {
color: '#CC0000' color: '#CC0000'
}, },
data: cdata data: cdata
}, },
{ {
name: '暂降触发点', name: '暂降触发点',
type: 'scatter', type: 'scatter',
symbol: 'image://' + this.url, symbol: 'image://' + this.url,
itemStyle: { itemStyle: {
width: 16, width: 16,
height: 16 height: 16
}, },
data: [[0, min]] data: [[0, min]]
} }
] ]
} }
myChartes.setOption(option) myChartes.setOption(option)
window.echartsArr.push(myChartes) window.echartsArr.push(myChartes)
setTimeout(() => { setTimeout(() => {
myChartes.resize() myChartes.resize()
this.loading = false this.loading = false
}, 400) }, 400)
//第一个波形图数据绘制完毕后,绘制后续的波形图 //第一个波形图数据绘制完毕后,绘制后续的波形图
// let waveDatasTemp = waveDatas.slice(1); // let waveDatasTemp = waveDatas.slice(1);
// waveDatasTemp.reverse(); // waveDatasTemp.reverse();
} }
} }
} }
</script> </script>

View File

@@ -88,7 +88,7 @@ export default {
{ prop: 'effectiveAccessRate', label: '有效接入率(%)' }, { prop: 'effectiveAccessRate', label: '有效接入率(%)' },
{ prop: 'dataIntegrityRate', label: '数据完整率(%)' }, { prop: 'dataIntegrityRate', label: '数据完整率(%)' },
{ prop: 'indexIntegrityRate', label: '指标完整率(%)' }, { prop: 'indexIntegrityRate', label: '指标完整率(%)' },
{ prop: 'isUnusual', label: '数据是否异常' } { prop: 'isUnusual', label: '异常监测点数' }
], ],
qualitystatisticsData: [], qualitystatisticsData: [],
device: '', device: '',
@@ -154,13 +154,13 @@ export default {
//判断数据是否异常 //判断数据是否异常
cellStyle(row) { cellStyle(row) {
console.log(row) console.log(row)
if (row.columnIndex == 6) { // if (row.columnIndex == 6) {
if (row.row.isUnusual == 0) { // if (row.row.isUnusual == 0) {
row.row.isUnusual = '正常 ' // row.row.isUnusual = '正常 '
} else if (row.row.isUnusual == 1) { // } else if (row.row.isUnusual == 1) {
row.row.isUnusual = '异常' // row.row.isUnusual = '异常'
} // }
} // }
}, },
//导出 //导出
exportEvent() { exportEvent() {

View File

@@ -2024,12 +2024,22 @@ export default {
this.$refs.ruleform.validate(value => { this.$refs.ruleform.validate(value => {
// console.log(value); // console.log(value);
if (value == true) { if (value == true) {
if(this.ruleform.ifReleaseWarning == 1){
//需要提示预告警单不能为空
if(this.ruleform.workAlarmId == null || this.ruleform.workAlarmId == ''){
this.$message.warning("关联告预警单不可为空!");
return
}
}
this.$confirm('是否确认新增?', '提示', { this.$confirm('是否确认新增?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}) })
.then(() => { .then(() => {
addProblem(this.ruleform).then(res => { addProblem(this.ruleform).then(res => {
if (res.code == 'A0000') { if (res.code == 'A0000') {
this.$message({ this.$message({
@@ -2194,6 +2204,14 @@ export default {
this.$refs.ruleform.validate(value => { this.$refs.ruleform.validate(value => {
// console.log(value); // console.log(value);
if (value == true) { if (value == true) {
if(this.ruleform.ifReleaseWarning == 1){
//需要提示预告警单不能为空
if(this.ruleform.workAlarmId == null || this.ruleform.workAlarmId == ''){
this.$message.warning("关联告预警单不可为空!");
return
}
}
this.$confirm('是否确认修改?', '提示', { this.$confirm('是否确认修改?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',

View File

@@ -29,7 +29,7 @@
<el-col :span="24"> <el-col :span="24">
<div class="button" style="float: left"> <div class="button" style="float: left">
<el-button type="primary" icon="el-icon-circle-plus" @click="planAdditionFn">新增计划</el-button> <el-button type="primary" icon="el-icon-circle-plus" @click="planAdditionFn">新增计划</el-button>
<el-button type="primary" icon="el-icon-s-claim" @click="planReviewFn">提交审核</el-button> <!-- <el-button type="primary" icon="el-icon-s-claim" @click="planReviewFn">提交审核</el-button>-->
</div> </div>
<div class="button"> <div class="button">
@@ -667,7 +667,7 @@ export default {
//获取审核人列表 //获取审核人列表
getAuditUser() { getAuditUser() {
let param = {roleType: 3} let param = {roleType: 1}
getAuditUser(param).then(res => { getAuditUser(param).then(res => {
if (res && res.code === 'A0000') { if (res && res.code === 'A0000') {
this.auditUserList = res.data this.auditUserList = res.data

View File

@@ -1195,7 +1195,7 @@ export default {
//获取审核人列表 //获取审核人列表
getAuditUser() { getAuditUser() {
let param = {roleType: 3} let param = {roleType: 1}
getAuditUser(param).then(res => { getAuditUser(param).then(res => {
if (res && res.code === 'A0000') { if (res && res.code === 'A0000') {
this.auditUserList = res.data this.auditUserList = res.data

View File

@@ -6,9 +6,9 @@
<el-tab-pane label="普测计划管理" name="1" :style="'height:' + vh + 'px;'"> <el-tab-pane label="普测计划管理" name="1" :style="'height:' + vh + 'px;'">
<Planmanagement v-if="activeName == '1'"></Planmanagement> <Planmanagement v-if="activeName == '1'"></Planmanagement>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="普测计划审批" name="2" :style="'height:' + vh + 'px;'"> <!-- <el-tab-pane label="普测计划审批" name="2" :style="'height:' + vh + 'px;'">
<Planapproval v-if="activeName == '2'" ref="planapprovalRef" :son="planId"></Planapproval> <Planapproval v-if="activeName == '2'" ref="planapprovalRef" :son="planId"></Planapproval>
</el-tab-pane> </el-tab-pane>-->
<!-- <el-tab-pane label="普测结果管理" name="3" :style="'height:' + vh + 'px;'"> <!-- <el-tab-pane label="普测结果管理" name="3" :style="'height:' + vh + 'px;'">
<Resultsmanagement v-if="activeName == '3'"></Resultsmanagement> <Resultsmanagement v-if="activeName == '3'"></Resultsmanagement>
</el-tab-pane> </el-tab-pane>

View File

@@ -35,13 +35,13 @@
<influence v-if="activeName == '4'"></influence> <influence v-if="activeName == '4'"></influence>
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane <el-tab-pane
label="详细数据表" label="详细数据表"
name="5" name="5"
:style="'height:' + vh + ';'" :style="'height:' + vh + ';'"
> >
<dataSheet v-if="activeName == '5'"></dataSheet> <dataSheet v-if="activeName == '5'"></dataSheet>
</el-tab-pane> --> </el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</el-row> </el-row>

View File

@@ -279,7 +279,7 @@ export default {
name: '超标点占比:%', name: '超标点占比:%',
minInterval: 1, minInterval: 1,
axisLine: { axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
@@ -644,7 +644,7 @@ export default {
let echartsColor = JSON.parse(window.localStorage.echartsColor) let echartsColor = JSON.parse(window.localStorage.echartsColor)
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -278,7 +278,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -271,7 +271,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -18,9 +18,9 @@
<influence v-if="activeName == '4'"></influence> <influence v-if="activeName == '4'"></influence>
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane label="详细数据表" name="5" :style="'height:' + vh + ';'"> <el-tab-pane label="详细数据表" name="5" :style="'height:' + vh + ';'">
<dataSheet v-if="activeName == '5'"></dataSheet> <dataSheet v-if="activeName == '5'"></dataSheet>
</el-tab-pane> --> </el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</el-row> </el-row>

View File

@@ -278,7 +278,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -271,7 +271,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -19,9 +19,9 @@ l
<influence v-if="activeName == '4'"></influence> <influence v-if="activeName == '4'"></influence>
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane label="详细数据表" name="5" :style="'height:' + vh + ';'"> <el-tab-pane label="详细数据表" name="5" :style="'height:' + vh + ';'">
<dataSheet v-if="activeName == '5'"></dataSheet> <dataSheet v-if="activeName == '5'"></dataSheet>
</el-tab-pane> --> </el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</el-row> </el-row>

View File

@@ -275,7 +275,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -126,10 +126,10 @@ export default {
let hours = [] let hours = []
let days = [ let days = [
'负序电压不平衡度', '三项电压不平衡度',
'负序电压不平衡度平均超标天数', '三项电压不平衡度平均超标天数',
'谐波电压平均超标天数', '谐波电压平均超标天数',
'负序电压不平衡度超标占比' '三项电压不平衡度超标占比'
] ]
let data = [] let data = []
@@ -271,7 +271,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -19,9 +19,9 @@ l
<influence v-if="activeName == '4'"></influence> <influence v-if="activeName == '4'"></influence>
</el-tab-pane> </el-tab-pane>
<!-- <el-tab-pane label="详细数据表" name="5" :style="'height:' + vh + ';'"> <el-tab-pane label="详细数据表" name="5" :style="'height:' + vh + ';'">
<dataSheet v-if="activeName == '5'"></dataSheet> <dataSheet v-if="activeName == '5'"></dataSheet>
</el-tab-pane> --> </el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</el-row> </el-row>

View File

@@ -21,10 +21,10 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :style="`height:${vh};position: relative;`"> <el-row :style="`height:${vh};position: relative;`">
<el-radio-group v-model="radio1" class="radioGroup" size="mini" @change="change"> <!-- <el-radio-group v-model="radio1" class="radioGroup" size="mini" @change="change">
<el-radio-button label="1">电压指标</el-radio-button> <el-radio-button label="1">电压指标</el-radio-button>
<el-radio-button label="2">电流指标</el-radio-button> <el-radio-button label="2">电流指标</el-radio-button>
</el-radio-group> </el-radio-group>-->
<el-col :span="24" :style="`height:${vh}`"> <el-col :span="24" :style="`height:${vh}`">
<div v-loading="isLoading" id="electr3" style="width: 100%; height: 100%" /> <div v-loading="isLoading" id="electr3" style="width: 100%; height: 100%" />
</el-col> </el-col>
@@ -605,7 +605,7 @@ export default {
let echartsColor = JSON.parse(window.localStorage.echartsColor) let echartsColor = JSON.parse(window.localStorage.echartsColor)
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -278,7 +278,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -273,7 +273,7 @@ export default {
let option = { let option = {
title: { title: {
text: '各单位指标', text: '谐波指标',
left: 'center', left: 'center',
top: '5px', top: '5px',
textStyle: { textStyle: {

View File

@@ -539,7 +539,7 @@ export default {
} }
option1 = { option1 = {
title: { title: {
text: '变电站态超标数量', text: '变电站态超标数量',
left: 'center', left: 'center',
top: 10 top: 10
}, },
@@ -777,7 +777,7 @@ export default {
} }
option2 = { option2 = {
title: { title: {
text: '变电站态超标天数', text: '变电站态超标天数',
left: 'center', left: 'center',
top: 20 top: 20
}, },

View File

@@ -1,448 +1,449 @@
<template> <template>
<el-container style="position: relative" id="dept"> <el-container style="position: relative" id="dept">
<el-button type="primary" style="margin-top: -10px" class="flag" icon="el-icon-close" @click="$emit('close')"> <el-button type="primary" style="margin-top: -10px" class="flag" icon="el-icon-close" @click="$emit('close')">
返回 返回
</el-button> </el-button>
<el-main id="drag-dept-right "> <el-main id="drag-dept-right ">
<div class="bm-view" id="container " :style="'height:' + (vh - 20) + 'px ;position: relative;'"> <div class="bm-view" id="container " :style="'height:' + (vh - 20) + 'px ;position: relative;'">
<div class="boxTop"> <div class="boxTop">
<el-form ref="form" :inline="true" :model="form"> <el-form ref="form" :inline="true" :model="form">
<el-form-item label="模板:"> <el-form-item label="模板:">
<el-select <el-select
value-key="id" value-key="id"
:popper-append-to-body="false" :popper-append-to-body="false"
v-model="form.TemplateId" v-model="form.TemplateId"
placeholder="请选择模板" placeholder="请选择模板"
> >
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item" :value="item"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="报表类型:"> <el-form-item label="报表类型:">
<el-select <el-select
v-model="form.TemplateId.reportForm" v-model="form.TemplateId.reportForm"
:popper-append-to-body="false" :popper-append-to-body="false"
placeholder="请选择报表类型" placeholder="请选择报表类型"
disabled disabled
> >
<el-option <el-option
v-for="item in reportFormList" v-for="item in reportFormList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<Timeinterval ref="Timeinterval" :interval="3" /> <Timeinterval ref="Timeinterval" :interval="3" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
class="buttons" class="buttons"
size="small" size="small"
type="primary" type="primary"
icon="el-icon-search" icon="el-icon-search"
@click="Template" @click="Template"
> >
查询 查询
</el-button> </el-button>
<el-button <el-button
@click="downloadExcel" @click="downloadExcel"
class="buttons" class="buttons"
size="small" size="small"
type="primary" type="primary"
icon="el-icon-download" icon="el-icon-download"
> >
导出excel 导出excel
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div <div
class="luckysheetBox" class="luckysheetBox"
style="padding: 0; margin: 0" style="padding: 0; margin: 0"
:style="`width:${vw - 50}px;height: ${vh - 200}px;`" :style="`width:${vw - 50}px;height: ${vh - 200}px;`"
></div> ></div>
<div <div
id="luckysheet" id="luckysheet"
style="padding: 0; margin: 0" style="padding: 0; margin: 0"
:style="`width:${vw - 40}px;height: ${vh - 130}px;margin-top: 50px;`" :style="`width:${vw - 40}px;height: ${vh - 130}px;margin-top: 50px;`"
></div> ></div>
</div> </div>
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
<script> <script>
import jquery from 'jquery' import jquery from 'jquery'
import { getCustomReport, getTemplateByDept } from '@/api/templateConfiguration' import { getCustomReport, getTemplateByDept } from '@/api/templateConfiguration'
import { exportExcel } from '@/views/components/luckyexcel/export' import { exportExcel } from '@/views/components/luckyexcel/export'
import Timeinterval from '@/views/components/cgytree/TimeintervalTemplat.vue' import Timeinterval from '@/views/components/cgytree/TimeintervalTemplat.vue'
import TreeTemplat from '@/views/components/cgytree/TreeTemplat.vue' import TreeTemplat from '@/views/components/cgytree/TreeTemplat.vue'
import LuckyExcel from 'luckyexcel' import LuckyExcel from 'luckyexcel'
export default { export default {
components: { TreeTemplat, Timeinterval }, components: { TreeTemplat, Timeinterval },
props: { props: {
reportID: { reportID: {
type: String type: String
} }
}, },
data() { data() {
return { return {
options: [], options: [],
zoom: '', //图表焦点校验 zoom: '', //图表焦点校验
form: { form: {
TemplateId: '', TemplateId: '',
reportForm: '' reportForm: ''
}, },
reportFormList: [ reportFormList: [
{ {
value: '1', value: '1',
label: '分析报表' label: '分析报表'
}, },
{ {
value: '2', value: '2',
label: '统计报表' label: '统计报表'
}, },
{ {
value: '3', value: '3',
label: '自定义报表' label: '自定义报表'
} }
], ],
loading: true, loading: true,
vh: undefined, vh: undefined,
vw: undefined, vw: undefined,
view: true, view: true,
checkbox: false, checkbox: false,
tablename: 1, tablename: 1,
treenode: '', treenode: '',
statisticalList: {}, //树上面的选择框 statisticalList: {}, //树上面的选择框
data_info: [], //点位信息 data_info: [], //点位信息
map: null, //存储地图 map: null, //存储地图
flag: true, flag: true,
showtoolbar: false, //富文本框头部显示 showtoolbar: false, //富文本框头部显示
cellRightClickConfig: { cellRightClickConfig: {
copy: false, // 复制 copy: false, // 复制
copyAs: false, // 复制为 copyAs: false, // 复制为
paste: false, // 粘贴 paste: false, // 粘贴
insertRow: false, // 插入行 insertRow: false, // 插入行
insertColumn: false, // 插入列 insertColumn: false, // 插入列
deleteRow: false, // 删除选中行 deleteRow: false, // 删除选中行
deleteColumn: false, // 删除选中列 deleteColumn: false, // 删除选中列
deleteCell: false, // 删除单元格 deleteCell: false, // 删除单元格
hideRow: false, // 隐藏选中行和显示选中行 hideRow: false, // 隐藏选中行和显示选中行
hideColumn: false, // 隐藏选中列和显示选中列 hideColumn: false, // 隐藏选中列和显示选中列
rowHeight: false, // 行高 rowHeight: false, // 行高
columnWidth: false, // 列宽 columnWidth: false, // 列宽
clear: false, // 清除内容 clear: false, // 清除内容
matrix: false, // 矩阵操作选区 matrix: false, // 矩阵操作选区
sort: false, // 排序选区 sort: false, // 排序选区
filter: false, // 筛选选区 filter: false, // 筛选选区
chart: false, // 图表生成 chart: false, // 图表生成
image: false, // 插入图片 image: false, // 插入图片
link: false, // 插入链接 link: false, // 插入链接
data: false, // 数据验证 data: false, // 数据验证
cellFormat: false // 设置单元格格式 cellFormat: false // 设置单元格格式
}, //控制右键菜单 }, //控制右键菜单
list: [ list: [
// { // {
// name: "Cell", // name: "Cell",
// index: 0, // index: 0,
// defaultRowHeight: 27, // defaultRowHeight: 27,
// defaultColWidth: 105, // defaultColWidth: 105,
// }, // },
], ],
deptId: '' deptId: ''
} }
}, },
created() {}, created() {},
mounted() { mounted() {
this.deptId = JSON.parse(window.sessionStorage.getItem('Info')).deptId this.deptId = JSON.parse(window.sessionStorage.getItem('Info')).deptId
this.zoom = 1 / document.body.style.zoom this.zoom = 1 / document.body.style.zoom
this.setHeight()
window.addEventListener('resize', this.setHeight) this.$nextTick(() => {
this.$nextTick(() => { this.setHeight()
this.getTemplateLists() window.addEventListener('resize', this.setHeight)
}) this.getTemplateLists()
}, })
beforeDestroy() { },
window.removeEventListener('resize', this.setHeight) beforeDestroy() {
}, window.removeEventListener('resize', this.setHeight)
methods: { },
setHeight() { methods: {
this.zoom = 1 / document.body.style.zoom setHeight() {
this.vh = window.sessionStorage.getItem('appheight') this.zoom = 1 / document.body.style.zoom
this.vw = document.getElementById('app-main-in').offsetWidth this.vh = window.sessionStorage.getItem('appheight')
}, this.vw = document.getElementById('app-main-in')?.offsetWidth
async getTemplateLists() { },
await getTemplateByDept({ id: this.deptId }).then(res => { async getTemplateLists() {
if (res != undefined && res.code == 'A0000') { await getTemplateByDept({ id: this.deptId }).then(res => {
res.data.forEach(item => { if (res != undefined && res.code == 'A0000') {
if (item.activation == 1) { res.data.forEach(item => {
this.form.TemplateId = item if (item.activation == 1) {
return this.form.TemplateId = item
} return
}) }
this.options = res.data })
setTimeout(() => { this.options = res.data
this.Template() setTimeout(() => {
}, 0) this.Template()
} }, 0)
}) }
}, })
// 选择模板 },
Template() { // 选择模板
// debugger Template() {
let _this = this // debugger
let _this = this
getCustomReport({
startTime: this.$refs.Timeinterval.timeValue[0], getCustomReport({
endTime: this.$refs.Timeinterval.timeValue[1], startTime: this.$refs.Timeinterval.timeValue[0],
type: this.$refs.Timeinterval.intervald, endTime: this.$refs.Timeinterval.timeValue[1],
tempId: this.form.TemplateId.id, type: this.$refs.Timeinterval.intervald,
activation: this.form.TemplateId.activation, tempId: this.form.TemplateId.id,
lineId: this.reportID activation: this.form.TemplateId.activation,
// lineId: "8696be1d170e05b7d848accc059f4558", lineId: this.reportID
}).then(response => { // lineId: "8696be1d170e05b7d848accc059f4558",
_this.list = response }).then(response => {
_this.init() _this.list = response
// jquery.getJSON(res.data[1], null, function (list) { _this.init()
// _this.list = list; // jquery.getJSON(res.data[1], null, function (list) {
//_this.init(); // _this.list = list;
// }); //_this.init();
}) // });
})
// .then((res) => {
// console.log("res", res.data); // .then((res) => {
// let Datalist = JSON.parse(res.data); // console.log("res", res.data);
// let Datalist = JSON.parse(res.data);
// console.log(`13323`, JSON.parse(res.data));
// this.list = Datalist; // console.log(`13323`, JSON.parse(res.data));
// this.list = Datalist;
// this.init();
// }); // this.init();
}, // });
},
// 初始化插件
init() { // 初始化插件
window.luckysheet.destroy() init() {
let options = { window.luckysheet.destroy()
container: 'luckysheet', //luckysheet为容器id let options = {
title: '', container: 'luckysheet', //luckysheet为容器id
lang: 'zh', title: '',
showinfobar: false, lang: 'zh',
cellRightClickConfig: this.cellRightClickConfig, showinfobar: false,
showtoolbar: this.showtoolbar, cellRightClickConfig: this.cellRightClickConfig,
// column:8, showtoolbar: this.showtoolbar,
// row:7, // column:8,
showtoolbarConfig: { // row:7,
textRotateMode: false // '文本旋转方式' showtoolbarConfig: {
}, textRotateMode: false // '文本旋转方式'
},
data: this.list
} data: this.list
}
// console.log(options);
luckysheet.create(options) // console.log(options);
}, luckysheet.create(options)
// 下载表格 },
downloadExcel() { // 下载表格
// const value = this.selected;; downloadExcel() {
// const value = this.selected;;
exportExcel(luckysheet.getAllSheets(), '下载')
// testaaa(); exportExcel(luckysheet.getAllSheets(), '下载')
} // testaaa();
}, }
},
computed: {},
computed: {},
watch: {}
} watch: {}
</script> }
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="less" scoped> <!-- Add "scoped" attribute to limit CSS to this component only -->
@import url('../../../../styles/comStyle.less'); <style lang="less" scoped>
</style> @import url('../../../../styles/comStyle.less');
<style lang="scss" scoped> </style>
ul { <style lang="scss" scoped>
list-style-type: none; ul {
padding: 0; list-style-type: none;
} padding: 0;
li { }
display: inline-block; li {
margin: 0 10px; display: inline-block;
} margin: 0 10px;
a { }
color: #42b983; a {
} color: #42b983;
.wrap { }
display: flex; .wrap {
justify-content: space-around; display: flex;
} justify-content: space-around;
#container { }
width: 100%; #container {
height: 83vh; width: 100%;
border: 1px solid rgb(0, 183, 255); height: 83vh;
} border: 1px solid rgb(0, 183, 255);
#container2 { }
width: 500px; #container2 {
height: 500px; width: 500px;
border: 3px solid pink; height: 500px;
} border: 3px solid pink;
#drag-dept-left { }
min-width: 220px; #drag-dept-left {
max-width: 35%; min-width: 220px;
} max-width: 35%;
.overview_scroll::-webkit-scrollbar { }
width: 2px; .overview_scroll::-webkit-scrollbar {
height: 1px; width: 2px;
background: rgba(6, 70, 122, 0.013); height: 1px;
} background: rgba(6, 70, 122, 0.013);
}
.overview_scroll::-webkit-scrollbar-thumb {
border-radius: 4px; .overview_scroll::-webkit-scrollbar-thumb {
margin-right: 5px; border-radius: 4px;
-webkit-box-shadow: inset 0 0 0px #0090b411; margin-right: 5px;
background: #03c1cf0e; -webkit-box-shadow: inset 0 0 0px #0090b411;
} background: #03c1cf0e;
}
/**拖拽条样式 */
#drag-dept { /**拖拽条样式 */
display: flex; #drag-dept {
justify-content: center; display: flex;
align-items: center; justify-content: center;
position: relative; align-items: center;
top: 10; position: relative;
right: 0; top: 10;
width: 4px; right: 0;
background-color: #04607c2a; width: 4px;
box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.35); background-color: #04607c2a;
cursor: col-resize; box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.35);
} cursor: col-resize;
}
#drag-dept i {
display: inline-block; #drag-dept i {
height: 14px; display: inline-block;
width: 1px; height: 14px;
background-color: #e9e9e9; width: 1px;
margin: 0 1px; background-color: #e9e9e9;
} margin: 0 1px;
}
.overview_scroll::-webkit-scrollbar {
width: 2px; .overview_scroll::-webkit-scrollbar {
height: 1px; width: 2px;
background: rgba(6, 70, 122, 0.013); height: 1px;
} background: rgba(6, 70, 122, 0.013);
::-webkit-scrollbar { }
width: 5px; ::-webkit-scrollbar {
height: 0px; width: 5px;
} height: 0px;
.el-tabs--border-card > .el-tabs__header { }
background-color: #124da5; .el-tabs--border-card > .el-tabs__header {
border-bottom: 2px solid #e4e7ed; background-color: #124da5;
margin: 0; border-bottom: 2px solid #e4e7ed;
} margin: 0;
.el-tabs__header { }
padding: 0; .el-tabs__header {
position: relative; padding: 0;
margin: 0 px; position: relative;
} margin: 0 px;
.el-tabs--border-card > .el-tabs__content { }
padding: 0px; .el-tabs--border-card > .el-tabs__content {
} padding: 0px;
.el-tabs__content { }
overflow: hidden; .el-tabs__content {
position: relative; overflow: hidden;
} position: relative;
.el-aside, }
.el-main { .el-aside,
margin-top: 0px; .el-main {
} margin-top: 0px;
.el-main { }
padding-top: 0px; .el-main {
padding-bottom: 0; padding-top: 0px;
padding-right: 0; padding-bottom: 0;
} padding-right: 0;
::v-deep .boxDiv { }
height: 25px; ::v-deep .boxDiv {
line-height: 25px; height: 25px;
margin-left: 10px; line-height: 25px;
span:first-child { margin-left: 10px;
font-weight: 600; span:first-child {
margin-right: 10px; font-weight: 600;
} margin-right: 10px;
} }
::v-deep .button { }
margin-right: 5px; ::v-deep .button {
background-color: $themeColor; margin-right: 5px;
color: #fff; background-color: $themeColor;
height: 18px; color: #fff;
line-height: 18px; height: 18px;
border: 0 solid #000; line-height: 18px;
border-radius: 2px; border: 0 solid #000;
&:hover { border-radius: 2px;
cursor: pointer; &:hover {
} cursor: pointer;
} }
.iconBox { }
position: absolute; .iconBox {
top: 2px; position: absolute;
right: 2px; top: 2px;
width: 150px; right: 2px;
height: 260px; width: 150px;
padding: 10px; height: 260px;
z-index: 2000; padding: 10px;
border-radius: 4px; z-index: 2000;
border: 1px solid #ccc; border-radius: 4px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); border: 1px solid #ccc;
background: rgba(255, 255, 255, 0.75) !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
background: rgba(255, 255, 255, 0.75) !important;
.div {
display: flex; .div {
display: flex;
margin-bottom: 5px;
img { margin-bottom: 5px;
height: 20px; img {
margin-right: 5px; height: 20px;
} margin-right: 5px;
// span { }
// line-height: 20px; // span {
// } // line-height: 20px;
} // }
} }
.boxTop { }
position: absolute; .boxTop {
top: -48px; position: absolute;
left: 5px; top: -48px;
z-index: 2000; left: 5px;
} z-index: 2000;
::v-deep .el-select-dropdown__list { }
display: flex; ::v-deep .el-select-dropdown__list {
flex-direction: column; display: flex;
max-width: 240px; flex-direction: column;
} max-width: 240px;
.luckysheetBox { }
position: absolute; .luckysheetBox {
top: 0; position: absolute;
left: 0; top: 0;
z-index: 1500; left: 0;
// background-color: #000; z-index: 1500;
} // background-color: #000;
.anchorBL { }
display: none !important; .anchorBL {
} display: none !important;
::v-deep .el-select { }
//width: 150px; ::v-deep .el-select {
} //width: 150px;
.flag { }
position: absolute; .flag {
top: 10px; position: absolute;
right: 10px; top: 10px;
} right: 10px;
</style> }
</style>

View File

@@ -1,57 +1,57 @@
<template> <template>
<div> <div>
<!-- 台账 --> <!-- 台账 -->
<StandingBook v-show="flag && flags" @ViewReport="ViewReport" /> <StandingBook v-show="flag && flags" @ViewReport="ViewReport" />
<!-- 报表 --> <!-- 报表 -->
<reportForm <reportForm
v-if="!flag" v-if="!flag"
:reportID="reportID" :reportID="reportID"
@close=" @close="
flag = true; flag = true;
flags = true; flags = true;
" "
/> />
<!-- 报告 --> <!-- 报告 -->
<SteadyStateReport <SteadyStateReport
v-if="!flags" v-if="!flags"
:reportID="reportID" :reportID="reportID"
@close=" @close="
flag = true; flag = true;
flags = true; flags = true;
" "
/> />
</div> </div>
</template> </template>
<script> <script>
import SteadyStateReport from "./components/SteadyStateReport.vue"; import SteadyStateReport from "./components/SteadyStateReport.vue";
import reportForm from "./components/reportForm"; import reportForm from "./components/reportForm.vue";
import StandingBook from "./components/StandingBook"; import StandingBook from "./components/StandingBook.vue";
export default { export default {
components: { SteadyStateReport, reportForm, StandingBook }, components: { SteadyStateReport, reportForm, StandingBook },
props: {}, props: {},
data() { data() {
return { return {
flag: true, flag: true,
flags: true, flags: true,
reportID: "", reportID: "",
}; };
}, },
created() {}, created() {},
methods: { methods: {
ViewReport(id, val) { ViewReport(id, val) {
if (val == 0) { if (val == 0) {
this.flag = false; this.flag = false;
} else { } else {
this.flags = false; this.flags = false;
} }
this.reportID = id; this.reportID = id;
}, },
}, },
computed: {}, computed: {},
watch: {}, watch: {},
}; };
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -489,6 +489,7 @@ export default {
watch: { watch: {
//当前的树节点 //当前的树节点
currentNode2(newValue) { currentNode2(newValue) {
console.log("🚀 ~ currentNode2 ~ newValue:", newValue)
this.treeMenuData = newValue this.treeMenuData = newValue
if (val) { if (val) {
this.$nextTick(() => { this.$nextTick(() => {

View File

@@ -43,14 +43,8 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="CVT型号:" v-show="condition.includes('40')"> <!-- <el-form-item label="CVT型号:" v-show="condition.includes('40')">
<!-- <el-cascader
v-model="cvt"
:options="cvtList"
:props="{ expandTrigger: 'hover' }"
clearable
filterable
></el-cascader> -->
<el-select v-model="cvt" value-key="value" clearable filterable placeholder="请选择CVT型号"> <el-select v-model="cvt" value-key="value" clearable filterable placeholder="请选择CVT型号">
<el-option <el-option
v-for="item in cvtList" v-for="item in cvtList"
@@ -59,7 +53,7 @@
:value="item" :value="item"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item v-show="jxb" label="间谐波次数:"> <el-form-item v-show="jxb" label="间谐波次数:">
<el-select v-model="formData.inHarmonic" placeholder="请选择间谐波"> <el-select v-model="formData.inHarmonic" placeholder="请选择间谐波">
<el-option <el-option

View File

@@ -12,15 +12,17 @@
执行日期: 执行日期:
<el-date-picker <el-date-picker
v-model="time" v-model="time"
type="daterange" type="datetimerange"
range-separator="" range-separator=""
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd" format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
:clearable="false"
></el-date-picker> ></el-date-picker>
</div> </div>
<el-button type="primary" @click="handleClose"> </el-button> <el-button type="primary" @click="execute"> </el-button>
</div> </div>
<el-input placeholder="输入关键字检索" v-model="filterText" style="margin-bottom: 10px" clearable> <el-input placeholder="输入关键字检索" v-model="filterText" style="margin-bottom: 10px" clearable>
<i slot="prefix" class="el-input__icon el-icon-search"></i> <i slot="prefix" class="el-input__icon el-icon-search"></i>
@@ -32,6 +34,7 @@
:show-checkbox="true" :show-checkbox="true"
:default-expanded-keys="expandID" :default-expanded-keys="expandID"
node-key="id" node-key="id"
:filter-node-method="filterNode"
:check-strictly="false" :check-strictly="false"
:expand-on-click-node="true" :expand-on-click-node="true"
:highlight-current="true" :highlight-current="true"
@@ -55,12 +58,14 @@
<script> <script>
import api from '@/api/harmonic/onlineData' import api from '@/api/harmonic/onlineData'
import { dicData } from '@/assets/commjs/dictypeData' import { dicData } from '@/assets/commjs/dictypeData'
import { measurementPointExecutorByHour } from '@/api/CVT/index.js'
export default { export default {
components: {}, components: {},
props: {}, props: {},
data() { data() {
return { return {
time: [new Date(), new Date()], time: [],
// value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
dialogVisible: false, dialogVisible: false,
checkedarr: [], checkedarr: [],
fiveData: [], fiveData: [],
@@ -78,16 +83,23 @@ export default {
scale: null scale: null
}, },
filterText: '', filterText: '',
fiveData: [] fiveData: [],
fatherID: [],
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 8.64e6
// 或者return time.getTime() > Date.now();
}
}
} }
}, },
created() {}, created() {},
watch: {
filterText(val) {
this.$refs.menuTree.filter(val)
}
},
methods: { methods: {
handleFilter(val) {
this.$refs.menuTree.filter(val)
},
// 点击树节点 // 点击树节点
treeckeck(data, checked, indeterminate) {}, treeckeck(data, checked, indeterminate) {},
open() { open() {
@@ -99,8 +111,23 @@ export default {
this.chuli() this.chuli()
} }
}) })
// 获取年份
const year = new Date().getFullYear()
// 获取月份注意getMonth 返回值是 0 - 11所以要加 1并确保是两位数
const month = String(new Date().getMonth() + 1).padStart(2, '0')
// 获取日期,并确保是两位数
const day = String(new Date().getDate()).padStart(2, '0')
// 获取小时,并确保是两位数
const hours = String(new Date().getHours()).padStart(2, '0')
// 获取分钟,并确保是两位数
const minutes = String(new Date().getMinutes()).padStart(2, '0')
// 获取秒数,并确保是两位数
const seconds = String(new Date().getSeconds()).padStart(2, '0')
this.time = [`${year}-${month}-${day} 00:00:00`, `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`]
}, },
chuli() { chuli() {
this.fatherID = []
var data = this.fiveData var data = this.fiveData
var arr = [] var arr = []
data.forEach(item => { data.forEach(item => {
@@ -127,8 +154,10 @@ export default {
if (arr[0].children[0].children[0].children.length > 0) { if (arr[0].children[0].children[0].children.length > 0) {
arr.forEach(m => { arr.forEach(m => {
m.icon = 'el-icon-menu' m.icon = 'el-icon-menu'
this.fatherID.push(m.id)
m.children.forEach(n => { m.children.forEach(n => {
n.icon = 'el-icon-share' n.icon = 'el-icon-share'
this.fatherID.push(n.id)
n.children.forEach(d => { n.children.forEach(d => {
d.icon = 'el-icon-s-flag' d.icon = 'el-icon-s-flag'
d.children.forEach((f, i) => { d.children.forEach((f, i) => {
@@ -147,8 +176,10 @@ export default {
} else if (arr[0].children[0].children[0].children.length == 0) { } else if (arr[0].children[0].children[0].children.length == 0) {
arr.forEach(m => { arr.forEach(m => {
m.icon = 'el-icon-menu' m.icon = 'el-icon-menu'
this.fatherID.push(m.id)
m.children.forEach(n => { m.children.forEach(n => {
n.icon = 'el-icon-share' n.icon = 'el-icon-share'
this.fatherID.push(n.id)
n.children.forEach((d, i) => { n.children.forEach((d, i) => {
d.icon = 'el-icon-warning' d.icon = 'el-icon-warning'
d.name = i + 1 + '_' + d.name d.name = i + 1 + '_' + d.name
@@ -168,9 +199,7 @@ export default {
window.sessionStorage.setItem('tree', this.tree) window.sessionStorage.setItem('tree', this.tree)
this.expandID.push(this.currentNode) this.expandID.push(this.currentNode)
this.$nextTick(() => {
this.$refs.menuTree.setCurrentKey(this.currentNode)
})
//初始化触发默认点击方法 //初始化触发默认点击方法
//alert('初始1') //alert('初始1')
this.$emit('chushiData', this.currentNode, this.treeMenuData) this.$emit('chushiData', this.currentNode, this.treeMenuData)
@@ -178,6 +207,7 @@ export default {
renderContent(h, { node, data, store }) { renderContent(h, { node, data, store }) {
this.onlinename = node.label this.onlinename = node.label
return ( return (
<span style="flex: 1; display: flex; align-items: center; justify-content: space-between; padding-right: 8px;"> <span style="flex: 1; display: flex; align-items: center; justify-content: space-between; padding-right: 8px;">
<span class="span-ellipsis"> <span class="span-ellipsis">
@@ -190,11 +220,50 @@ export default {
</span> </span>
) )
}, },
// 执行算法
async execute() {
if (this.$refs.menuTree.getCheckedKeys().length == 0) return this.$message.error('请选择监测点!')
let data = {
beginTime: this.time[0],
dataDate: '',
endTime: this.time[1],
fullChain: false,
idList: this.$refs.menuTree.getCheckedKeys().filter(item => !this.fatherID.includes(item)),
repair: true,
tagNames: ['dataHarmRateVCvt']
}
await measurementPointExecutorByHour(data)
this.$message.success('算法执行成功!')
this.handleClose()
},
// 关闭弹窗 // 关闭弹窗
handleClose() { handleClose() {
console.log(this.time)
this.dialogVisible = false this.dialogVisible = false
this.$emit('close')
},
// 过滤树节点
filterNode(value, data, node) {
if (!value) {
return true
}
let _array = [] //这里使用数组存储 只是为了存储值。
this.getReturnNode(node, _array, value)
let result = false
_array.forEach(item => {
result = result || item
})
return result
},
getReturnNode(node, _array, value) {
let isPass = node.data && node.data.name && node.data.name.indexOf(value) !== -1
isPass ? _array.push(isPass) : ''
this.index++
if (!isPass && node.name != 1 && node.parent) {
this.getReturnNode(node.parent, _array, value)
}
} }
}, },
mounted() { mounted() {
@@ -207,8 +276,13 @@ export default {
}, },
computed: {}, computed: {},
watch: {
filterText(val) {
console.log('🚀 ~ filterText ~ val:', val)
watch: {} this.$refs.menuTree.filter(val)
}
}
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@@ -217,7 +291,7 @@ export default {
::v-deep .el-dialog .el-dialog__body { ::v-deep .el-dialog .el-dialog__body {
padding: 20px !important; padding: 20px !important;
} }
.boxTop{ .boxTop {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }

View File

@@ -4,7 +4,6 @@
<muentree <muentree
@eleMenuData="getTreeText" @eleMenuData="getTreeText"
@chushiData="chushiData" @chushiData="chushiData"
@ckeckData="ckeckData"
:checkbox="checkbox" :checkbox="checkbox"
:number="number" :number="number"
:tablename="tablename" :tablename="tablename"
@@ -41,9 +40,8 @@
当前位置: 当前位置:
<span class="zt">{{ wezhiname }}</span> <span class="zt">{{ wezhiname }}</span>
</div> </div>
</div> </div>
<bindTab/> <bindTab :clickData="clickData" ref="bindTabRef" />
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
@@ -83,10 +81,10 @@ export default {
view: true, view: true,
dataTree: [], dataTree: [],
treenode: undefined, treenode: undefined,
linelist: [],
treedata: [], treedata: [],
deptIndex: '', deptIndex: '',
wezhiname: '' wezhiname: '',
clickData: {}
} }
}, },
created() {}, created() {},
@@ -163,10 +161,11 @@ export default {
chushiData(id, data) { chushiData(id, data) {
this.id = id this.id = id
window.sessionStorage.setItem('fist', id) window.sessionStorage.setItem('fist', id)
this.linelist.push(id)
this.treedata = data this.treedata = data
this.wezhiname = data[0].name + '>' + data[0].children[0].name + '>' + data[0].children[0].children[0].name this.wezhiname = data[0].name + '>' + data[0].children[0].name + '>' + data[0].children[0].children[0].name
this.clickData = data[0].children[0].children[0]
this.loading = false this.loading = false
this.$refs.bindTabRef.queryBind( this.clickData.id)
//alert(this.wezhiname) //alert(this.wezhiname)
}, },
//二次点击触发点击事件 //二次点击触发点击事件
@@ -174,21 +173,15 @@ export default {
if (treenode.data.level == 6) { if (treenode.data.level == 6) {
this.menudata = menudata this.menudata = menudata
this.treenode = treenode this.treenode = treenode
this.clickData = treenode.data
this.nodeCom = nodeCom this.nodeCom = nodeCom
this.id = id this.id = id
//this.wezhiname = name this.$refs.bindTabRef.queryBind(this.clickData.id)
this.linelist = []
this.linelist.push(id)
} else { } else {
return return
} }
}, },
ckeckData(checkedarr) {
this.linelist = []
//this.linelist = checkedarr
this.linelist = this.unique(checkedarr)
},
//去重 //去重
unique(arr) { unique(arr) {
if (!Array.isArray(arr)) { if (!Array.isArray(arr)) {

View File

@@ -1,48 +1,57 @@
<template> <template>
<div v-loading="loading" element-loading-text="拼命加载中"> <div v-loading="loading" element-loading-text="拼命加载中">
<el-form :inline="true" :model="form" class="demo-form-inline"> <el-form :inline="true" :model="form" class="demo-form-inline">
<el-form-item> <!-- <el-form-item>
<timeindex :id="1" ref="fff" :interval="3"></timeindex> <timeindex :id="1" ref="fff" :interval="3"></timeindex>
</el-form-item> </el-form-item> -->
<el-form-item label="筛选:" class="ml10"> <el-form-item label="筛选:" class="ml10">
<el-input v-model="form.search" placeholder="输入关键字搜索" style="width: 100%" /> <el-input v-model.trim="form.searchValue" placeholder="输入关键字搜索" style="width: 100%" clearable />
</el-form-item> </el-form-item>
<el-form-item class="ml10"> <el-form-item class="ml10">
<el-button type="primary" @click="querfromdata" icon="el-icon-search">查询</el-button> <el-button type="primary" @click="querfromdata" icon="el-icon-search">查询</el-button>
<el-button type="primary" class="ml10" size="mini" icon="el-icon-plus">绑定</el-button> <el-button type="primary" @click="handleBind" class="ml10" size="mini" icon="el-icon-sort">
绑定
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <div style="height: calc(100vh - 150px)">
stripe <vxe-table
style="width: 100%" :data="tables"
:data="tables" height="auto"
border border
height="calc(100vh - 150px)" ref="tableRef"
header-cell-class-name="table_header" stripe
highlight-current-row :row-config="{ isCurrent: true, isHover: true }"
> size="mini"
<el-table-column type="selection" width="63" fixed="left"></el-table-column> v-loading="isLoading"
<el-table-column style="width: 100%"
v-for="item in column" header-cell-class-name="table_header"
:key="item.prop"
:label="item.label"
align="center"
header-align="left"
:width="item.width"
:prop="item.prop"
> >
<el-table-column <!-- <vxe-column type="radio" width="60"></vxe-column> -->
v-for="k in item.children" <vxe-column type="radio" width="65"></vxe-column>
:key="k.prop" <vxe-table-colgroup
:label="k.label"
align="center" align="center"
:width="k.width" v-for="(item, index) in column"
:prop="k.prop" :field="item.prop"
/> :title="item.label"
</el-table-column> :min-width="item.width"
</el-table> show-overflow
:key="index"
>
<vxe-table-colgroup
align="center"
v-for="(item, index) in item.children"
:field="item.prop"
:title="item.label"
:min-width="item.width"
show-overflow
:key="index"
></vxe-table-colgroup>
</vxe-table-colgroup>
</vxe-table>
</div>
<!-- 新增修改 --> <!-- 新增修改 -->
<forms ref="formRef" /> <forms ref="formRef" />
@@ -66,358 +75,206 @@
import timeindex from '@/views/cgy-components/cgytree/TimeintervalTemplat.vue' import timeindex from '@/views/cgy-components/cgytree/TimeintervalTemplat.vue'
import forms from './forms.vue' import forms from './forms.vue'
import algorithm from './algorithm.vue' import algorithm from './algorithm.vue'
import { queryPage, cvtBind, queryByLineId } from '@/api/CVT/index.js'
export default { export default {
components: { timeindex, forms, algorithm }, components: { timeindex, forms, algorithm },
props: {}, props: {
clickData: {
type: Object
}
},
data() { data() {
return { return {
loading: false, loading: false,
form: { form: {
currentPage: 1, currentPage: 1,
pageSize: 15, pageSize: 10000,
search: '' searchValue: ''
}, },
radioId: '',
isLoading: false,
spanArray: [], // 用于存储每个name字段合并的行数 spanArray: [], // 用于存储每个name字段合并的行数
position: 0, // 用于记录合并的位置 position: 0, // 用于记录合并的位置
tables: [ tables: [],
{
name: '思源220kV-0.01W3',
model: 'C型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
},
{
name: '思源220kV-0.01W3',
model: 'C型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
},
{
name: '桂容220-0.01GH',
model: '三柱型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
},
{
name: '桂容220-0.01GH',
model: '三柱型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
}
],
column: [ column: [
{ label: 'CVT名称', prop: 'name', width: '200px' }, { label: 'CVT名称', prop: 'cvtName', width: '300px' },
{ label: 'CVT型号', prop: 'model', width: '200px' }, { label: 'CVT型号', prop: 'cvtModel', width: '300px' },
{ {
label: '谐波电压', label: '谐波电压',
children: [ children: [
{ label: '2次', prop: 'num2' }, { label: '2次', width: '80px', prop: 'h2' },
{ label: '3次', prop: 'num3' }, { label: '3次', width: '80px', prop: 'h3' },
{ label: '4次', prop: 'num4' }, { label: '4次', width: '80px', prop: 'h4' },
{ label: '5次', prop: 'num5' }, { label: '5次', width: '80px', prop: 'h5' },
{ label: '6次', prop: 'num6' }, { label: '6次', width: '80px', prop: 'h6' },
{ label: '7次', prop: 'num7' }, { label: '7次', width: '80px', prop: 'h7' },
{ label: '8次', prop: 'num8' }, { label: '8次', width: '80px', prop: 'h8' },
{ label: '9次', prop: 'num9' }, { label: '9次', width: '80px', prop: 'h9' },
{ label: '10次', prop: 'num10' }, { label: '10次', width: '80px', prop: 'h10' },
{ label: '11次', prop: 'num11' }, { label: '11次', width: '80px', prop: 'h11' },
{ label: '12次', prop: 'num12' }, { label: '12次', width: '80px', prop: 'h12' },
{ label: '13次', prop: 'num13' }, { label: '13次', width: '80px', prop: 'h13' },
{ label: '14次', prop: 'num14' }, { label: '14次', width: '80px', prop: 'h14' },
{ label: '15次', prop: 'num15' }, { label: '15次', width: '80px', prop: 'h15' },
{ label: '16次', prop: 'num16' }, { label: '16次', width: '80px', prop: 'h16' },
{ label: '17次', prop: 'num17' }, { label: '17次', width: '80px', prop: 'h17' },
{ label: '18次', prop: 'num18' }, { label: '18次', width: '80px', prop: 'h18' },
{ label: '19次', prop: 'num19' }, { label: '19次', width: '80px', prop: 'h19' },
{ label: '20次', prop: 'num20' }, { label: '20次', width: '80px', prop: 'h20' },
{ label: '21次', prop: 'num21' }, { label: '21次', width: '80px', prop: 'h21' },
{ label: '22次', prop: 'num22' }, { label: '22次', width: '80px', prop: 'h22' },
{ label: '23次', prop: 'num23' }, { label: '23次', width: '80px', prop: 'h23' },
{ label: '24次', prop: 'num24' }, { label: '24次', width: '80px', prop: 'h24' },
{ label: '25次', prop: 'num25' }, { label: '25次', width: '80px', prop: 'h25' },
{ label: '26次', prop: 'num26' }, { label: '26次', width: '80px', prop: 'h26' },
{ label: '27次', prop: 'num27' }, { label: '27次', width: '80px', prop: 'h27' },
{ label: '28次', prop: 'num28' }, { label: '28次', width: '80px', prop: 'h28' },
{ label: '29次', prop: 'num29' }, { label: '29次', width: '80px', prop: 'h29' },
{ label: '30次', prop: 'num30' }, { label: '30次', width: '80px', prop: 'h30' },
{ label: '31次', prop: 'num31' }, { label: '31次', width: '80px', prop: 'h31' },
{ label: '32次', prop: 'num32' }, { label: '32次', width: '80px', prop: 'h32' },
{ label: '33次', prop: 'num33' }, { label: '33次', width: '80px', prop: 'h33' },
{ label: '34次', prop: 'num34' }, { label: '34次', width: '80px', prop: 'h34' },
{ label: '35次', prop: 'num35' }, { label: '35次', width: '80px', prop: 'h35' },
{ label: '36次', prop: 'num36' }, { label: '36次', width: '80px', prop: 'h36' },
{ label: '37次', prop: 'num37' }, { label: '37次', width: '80px', prop: 'h37' },
{ label: '38次', prop: 'num38' }, { label: '38次', width: '80px', prop: 'h38' },
{ label: '39次', prop: 'num39' }, { label: '39次', width: '80px', prop: 'h39' },
{ label: '40次', prop: 'num40' }, { label: '40次', width: '80px', prop: 'h40' },
{ label: '41次', prop: 'num41' }, { label: '41次', width: '80px', prop: 'h41' },
{ label: '42次', prop: 'num42' }, { label: '42次', width: '80px', prop: 'h42' },
{ label: '43次', prop: 'num43' }, { label: '43次', width: '80px', prop: 'h43' },
{ label: '44次', prop: 'num44' }, { label: '44次', width: '80px', prop: 'h44' },
{ label: '45次', prop: 'num45' }, { label: '45次', width: '80px', prop: 'h45' },
{ label: '46次', prop: 'num46' }, { label: '46次', width: '80px', prop: 'h46' },
{ label: '47次', prop: 'num47' }, { label: '47次', width: '80px', prop: 'h47' },
{ label: '48次', prop: 'num48' }, { label: '48次', width: '80px', prop: 'h48' },
{ label: '49次', prop: 'num49' }, { label: '49次', width: '80px', prop: 'h49' },
{ label: '50次', prop: 'num50' } { label: '50次', width: '80px', prop: 'h50' }
] ]
}, }
{ label: '新增时间', prop: 'addTime', width: '200px' },
{ label: '更新时间', prop: 'updatedTime', width: '200px' }
] ]
} }
}, },
created() {}, created() {},
methods: { methods: {
querfromdata() {}, querfromdata() {
handleSizeChange() {}, this.isLoading = true
handleCurrentChange() {}, queryPage(this.form).then(res => {
this.tables = res.data.records
// 新增 this.tables.unshift({
handleAdd() { cvtName: '默认',
this.$refs.formRef.title = '新增CVT系数' cvtModel: '默认',
this.$refs.formRef.dialogVisible = true h2: 1,
}, h3: 1,
// 执行算法 h4: 1,
handleAlgorithm() { h5: 1,
this.$refs.algorithmRef.open() h6: 1,
}, h7: 1,
// 绑定监测点 h8: 1,
handleBind(index, row) { h9: 1,
this.$refs.bindRef.open() h10: 1,
}, h11: 1,
//编辑 h12: 1,
handleEdit(index, row) { h13: 1,
this.$message({ h14: 1,
message: '编辑', h15: 1,
type: 'success' h16: 1,
h17: 1,
h18: 1,
h19: 1,
h20: 1,
h21: 1,
h22: 1,
h23: 1,
h24: 1,
h25: 1,
h26: 1,
h27: 1,
h28: 1,
h29: 1,
h30: 1,
h31: 1,
h32: 1,
h33: 1,
h34: 1,
h35: 1,
h36: 1,
h37: 1,
h38: 1,
h39: 1,
h40: 1,
h41: 1,
h42: 1,
h43: 1,
h44: 1,
h45: 1,
h46: 1,
h47: 1,
h48: 1,
h49: 1,
h50: 1,
id: ''
})
let data = this.tables.filter(item => item.id == this.radioId)
this.tables = this.tables.filter(item => {
// 将 a 和 b 属性的值转换为字符串,然后检查是否包含目标值转换后的字符串
return (
String(item.cvtName).includes(String(this.form.searchValue)) ||
String(item.cvtModel).includes(String(this.form.searchValue))
)
})
data.length > 0
? this.$refs.tableRef.setRadioRow(data[0])
: this.$refs.tableRef.setRadioRow(this.tables[0])
this.isLoading = false
}).catch(() => {
this.isLoading = false
}) })
}, },
//删除
handleDelete(index, row) { clearRadioRowEvent() {
this.$message({ this.$refs.tableRef.clearRadioRow()
message: '删除', },
type: 'success' // 查询绑定的监cvt
queryBind(id) {
queryByLineId({ lineId: id }).then(res => {
this.radioId = res.data.id
this.querfromdata()
})
},
// 绑定监测点
handleBind() {
const currRow = this.$refs.tableRef.getRadioRecord()
cvtBind({ cvtId: currRow == null ? '' : currRow.id, lineId: this.clickData.id }).then(res => {
if (res.code == 'A0000') {
this.radioId = currRow == null ? null : currRow.id
this.$message.success('绑定成功!')
}
}) })
} }
}, },
computed: {}, computed: {},
mounted() {}, mounted() {
watch: { // this.querfromdata()
tables: {
handler() {
this.calculateSpan()
},
deep: true
}
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import url('../../../../styles/comStyle.less'); @import url('../../../../styles/comStyle.less');
::v-deep tr th:nth-child(4) { ::v-deep tr th:nth-child(4) {
div { div {
text-align: left !important; text-align: left !important;
} }
}
::v-deep tr th:nth-child(1) {
div {
padding-left: 0px !important;
padding-right: 0px !important;
}
} }
</style> </style>

View File

@@ -1,11 +1,11 @@
<template> <template>
<div v-loading="loading" element-loading-text="拼命加载中"> <div v-loading="loading" element-loading-text="拼命加载中">
<el-form :inline="true" :model="form" class="demo-form-inline"> <el-form :inline="true" :model="form" class="demo-form-inline">
<el-form-item> <!-- <el-form-item>
<timeindex :id="1" ref="fff" :interval="3"></timeindex> <timeindex :id="1" ref="fff" :interval="3"></timeindex>
</el-form-item> </el-form-item> -->
<el-form-item label="筛选:" class="ml10"> <el-form-item label="筛选:" class="ml10">
<el-input v-model="form.search" placeholder="输入关键字搜索" style="width: 100%" /> <el-input v-model.trim="form.searchValue" clearable placeholder="输入关键字搜索" style="width: 100%" />
</el-form-item> </el-form-item>
<el-form-item class="ml10"> <el-form-item class="ml10">
@@ -14,60 +14,55 @@
<el-button type="primary" @click="handleAlgorithm" icon="el-icon-setting">执行算法</el-button> <el-button type="primary" @click="handleAlgorithm" icon="el-icon-setting">执行算法</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="height: calc(100vh - 128px)">
<el-table <vxe-table
stripe :data="tables"
style="width: 100%" height="auto"
:data="tables" border
border stripe
height="calc(100vh - 128px)" :row-config="{ isCurrent: true, isHover: true }"
header-cell-class-name="table_header" size="mini"
highlight-current-row ref="classification"
> style="width: 100%"
<el-table-column header-cell-class-name="table_header"
v-for="item in column"
:key="item.prop"
:label="item.label"
align="center"
header-align="left"
:width="item.width"
:prop="item.prop"
> >
<el-table-column <vxe-table-colgroup
v-for="k in item.children"
:key="k.prop"
:label="k.label"
align="center" align="center"
:width="k.width" v-for="(item, index) in column"
:prop="k.prop" :field="item.prop"
/> :title="item.label"
</el-table-column> :min-width="item.width"
<el-table-column label="操作" width="220" fixed="right" align="center"> show-overflow
<template slot-scope="scope"> :key="index"
<el-button >
type="primary" <vxe-table-colgroup
size="mini" align="center"
icon="el-icon-edit" v-for="(item, index) in item.children"
@click="handleEdit(scope.$index, scope.row)" :field="item.prop"
> :title="item.label"
编辑 :min-width="item.width"
</el-button> show-overflow
<el-button :key="index"
type="danger" ></vxe-table-colgroup>
size="mini" </vxe-table-colgroup>
icon="el-icon-delete" <vxe-table-column align="center" title="操作" min-width="220px" fixed="right">
@click="handleDelete(scope.$index, scope.row)" <template slot-scope="scope">
> <el-button type="primary" size="mini" icon="el-icon-edit" @click="handleEdit(scope.row)">
删除 编辑
</el-button> </el-button>
</template> <el-button type="danger" size="mini" icon="el-icon-delete" @click="handleDelete(scope.row)">
</el-table-column> 删除
</el-table> </el-button>
</template>
</vxe-table-column>
</vxe-table>
</div>
<!-- 新增修改 --> <!-- 新增修改 -->
<forms ref="formRef" /> <forms ref="formRef" @querfromdata="querfromdata" @showForm="showForm = false" v-if="showForm" />
<!-- 执行算法 --> <!-- 执行算法 -->
<algorithm ref="algorithmRef" /> <algorithm ref="algorithmRef" v-if="showAlgorithm" @close="showAlgorithm = false" />
<!-- <el-pagination <!-- <el-pagination
background background
align="right" align="right"
@@ -75,7 +70,7 @@
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:page-sizes="[15, 30, 50, 100]" :page-sizes="[15, 30, 50, 100]"
:current-page="form.currentPage" :current-page="form.pageNum"
:page-size="form.pageSize" :page-size="form.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="this.tables.length" :total="this.tables.length"
@@ -85,6 +80,7 @@
<script> <script>
import timeindex from '@/views/cgy-components/cgytree/TimeintervalTemplat.vue' import timeindex from '@/views/cgy-components/cgytree/TimeintervalTemplat.vue'
import forms from './forms.vue' import forms from './forms.vue'
import { queryPage, deleteById } from '@/api/CVT/index.js'
import algorithm from './algorithm.vue' import algorithm from './algorithm.vue'
export default { export default {
components: { timeindex, forms, algorithm }, components: { timeindex, forms, algorithm },
@@ -92,298 +88,150 @@ export default {
data() { data() {
return { return {
loading: false, loading: false,
showAlgorithm: false,
form: { form: {
currentPage: 1, pageNum: 1,
pageSize: 15, pageSize: 10000,
search: '' searchValue: ''
}, },
spanArray: [], // 用于存储每个name字段合并的行数 showForm: false,
position: 0, // 用于记录合并的位置 tables: [],
tables: [
{
name: '思源220kV-0.01W3',
model: 'C型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
},
{
name: '思源220kV-0.01W3',
model: 'C型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
},
{
name: '桂容220-0.01GH',
model: '三柱型',
addTime: '2021-08-23 15:23:23',
updatedTime: '2021-08-23 15:23:23',
num2: '1',
num3: '1',
num4: '1',
num5: '1',
num6: '1',
num7: '1',
num8: '1',
num9: '1',
num10: '1',
num11: '1',
num12: '1',
num13: '1',
num14: '1',
num15: '1',
num16: '1',
num17: '1',
num18: '1',
num19: '1',
num20: '1',
num21: '1',
num22: '1',
num23: '1',
num24: '1',
num25: '1',
num26: '1',
num27: '1',
num28: '1',
num29: '1',
num30: '1',
num31: '1',
num32: '1',
num33: '1',
num34: '1',
num35: '1',
num36: '1',
num37: '1',
num38: '1',
num39: '1',
num40: '1',
num41: '1',
num42: '1',
num43: '1',
num44: '1',
num45: '1',
num46: '1',
num47: '1',
num48: '1',
num49: '1',
num50: '1'
},
],
column: [ column: [
{ label: 'CVT名称', prop: 'name', width: '200px' }, { label: 'CVT名称', prop: 'cvtName', width: '300px' },
{ label: 'CVT型号', prop: 'model', width: '200px' }, { label: 'CVT型号', prop: 'cvtModel', width: '300px' },
{ {
label: '谐波电压', label: '谐波电压',
children: [ children: [
{ label: '2次', prop: 'num2' }, { label: '2次', width: '80px', prop: 'h2' },
{ label: '3次', prop: 'num3' }, { label: '3次', width: '80px', prop: 'h3' },
{ label: '4次', prop: 'num4' }, { label: '4次', width: '80px', prop: 'h4' },
{ label: '5次', prop: 'num5' }, { label: '5次', width: '80px', prop: 'h5' },
{ label: '6次', prop: 'num6' }, { label: '6次', width: '80px', prop: 'h6' },
{ label: '7次', prop: 'num7' }, { label: '7次', width: '80px', prop: 'h7' },
{ label: '8次', prop: 'num8' }, { label: '8次', width: '80px', prop: 'h8' },
{ label: '9次', prop: 'num9' }, { label: '9次', width: '80px', prop: 'h9' },
{ label: '10次', prop: 'num10' }, { label: '10次', width: '80px', prop: 'h10' },
{ label: '11次', prop: 'num11' }, { label: '11次', width: '80px', prop: 'h11' },
{ label: '12次', prop: 'num12' }, { label: '12次', width: '80px', prop: 'h12' },
{ label: '13次', prop: 'num13' }, { label: '13次', width: '80px', prop: 'h13' },
{ label: '14次', prop: 'num14' }, { label: '14次', width: '80px', prop: 'h14' },
{ label: '15次', prop: 'num15' }, { label: '15次', width: '80px', prop: 'h15' },
{ label: '16次', prop: 'num16' }, { label: '16次', width: '80px', prop: 'h16' },
{ label: '17次', prop: 'num17' }, { label: '17次', width: '80px', prop: 'h17' },
{ label: '18次', prop: 'num18' }, { label: '18次', width: '80px', prop: 'h18' },
{ label: '19次', prop: 'num19' }, { label: '19次', width: '80px', prop: 'h19' },
{ label: '20次', prop: 'num20' }, { label: '20次', width: '80px', prop: 'h20' },
{ label: '21次', prop: 'num21' }, { label: '21次', width: '80px', prop: 'h21' },
{ label: '22次', prop: 'num22' }, { label: '22次', width: '80px', prop: 'h22' },
{ label: '23次', prop: 'num23' }, { label: '23次', width: '80px', prop: 'h23' },
{ label: '24次', prop: 'num24' }, { label: '24次', width: '80px', prop: 'h24' },
{ label: '25次', prop: 'num25' }, { label: '25次', width: '80px', prop: 'h25' },
{ label: '26次', prop: 'num26' }, { label: '26次', width: '80px', prop: 'h26' },
{ label: '27次', prop: 'num27' }, { label: '27次', width: '80px', prop: 'h27' },
{ label: '28次', prop: 'num28' }, { label: '28次', width: '80px', prop: 'h28' },
{ label: '29次', prop: 'num29' }, { label: '29次', width: '80px', prop: 'h29' },
{ label: '30次', prop: 'num30' }, { label: '30次', width: '80px', prop: 'h30' },
{ label: '31次', prop: 'num31' }, { label: '31次', width: '80px', prop: 'h31' },
{ label: '32次', prop: 'num32' }, { label: '32次', width: '80px', prop: 'h32' },
{ label: '33次', prop: 'num33' }, { label: '33次', width: '80px', prop: 'h33' },
{ label: '34次', prop: 'num34' }, { label: '34次', width: '80px', prop: 'h34' },
{ label: '35次', prop: 'num35' }, { label: '35次', width: '80px', prop: 'h35' },
{ label: '36次', prop: 'num36' }, { label: '36次', width: '80px', prop: 'h36' },
{ label: '37次', prop: 'num37' }, { label: '37次', width: '80px', prop: 'h37' },
{ label: '38次', prop: 'num38' }, { label: '38次', width: '80px', prop: 'h38' },
{ label: '39次', prop: 'num39' }, { label: '39次', width: '80px', prop: 'h39' },
{ label: '40次', prop: 'num40' }, { label: '40次', width: '80px', prop: 'h40' },
{ label: '41次', prop: 'num41' }, { label: '41次', width: '80px', prop: 'h41' },
{ label: '42次', prop: 'num42' }, { label: '42次', width: '80px', prop: 'h42' },
{ label: '43次', prop: 'num43' }, { label: '43次', width: '80px', prop: 'h43' },
{ label: '44次', prop: 'num44' }, { label: '44次', width: '80px', prop: 'h44' },
{ label: '45次', prop: 'num45' }, { label: '45次', width: '80px', prop: 'h45' },
{ label: '46次', prop: 'num46' }, { label: '46次', width: '80px', prop: 'h46' },
{ label: '47次', prop: 'num47' }, { label: '47次', width: '80px', prop: 'h47' },
{ label: '48次', prop: 'num48' }, { label: '48次', width: '80px', prop: 'h48' },
{ label: '49次', prop: 'num49' }, { label: '49次', width: '80px', prop: 'h49' },
{ label: '50次', prop: 'num50' } { label: '50次', width: '80px', prop: 'h50' }
] ]
}, },
{ label: '新增时间', prop: 'createTime', width: '200px' },
{ label: '新时间', prop: 'addTime', width: '200px' }, { label: '新时间', prop: 'updateTime', width: '200px' }
{ label: '更新时间', prop: 'updatedTime', width: '200px' }
] ]
} }
}, },
created() {}, created() {},
methods: { methods: {
querfromdata() {}, //查询
querfromdata() {
this.showForm = false
this.loading = true
queryPage(this.form).then(res => {
this.tables = res.data.records
this.loading = false
})
},
handleSizeChange() {}, handleSizeChange() {},
handleCurrentChange() {}, handleCurrentChange() {},
// 新增 // 新增
handleAdd() { handleAdd() {
this.$refs.formRef.title = '新增CVT系数' this.showForm = true
this.$refs.formRef.dialogVisible = true setTimeout(() => {
this.$refs.formRef.title = '新增CVT系数'
this.$refs.formRef.dialogVisible = true
}, 0)
}, },
// 执行算法 // 执行算法
handleAlgorithm() { handleAlgorithm() {
this.$refs.algorithmRef.open() this.showAlgorithm = true
setTimeout(() => {
this.$refs.algorithmRef.open()
}, 100)
}, },
// 绑定监测点 // 绑定监测点
handleBind(index, row) { handleBind(index, row) {
this.$refs.bindRef.open() this.$refs.bindRef.open()
}, },
//编辑 //编辑
handleEdit(index, row) { handleEdit(row) {
this.$message({ this.showForm = true
message: '编辑', setTimeout(() => {
type: 'success' this.$refs.formRef.doEdit(row)
}) this.$refs.formRef.title = '修改CVT系数'
this.$refs.formRef.dialogVisible = true
}, 0)
}, },
//删除 //删除
handleDelete(index, row) { handleDelete(row) {
this.$message({ this.$confirm('请确认是否删除?', '提示', {
message: '删除', confirmButtonText: '确定',
type: 'success' cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteById({ id: row.id }).then(res => {
if (res.code == 'A0000') {
this.$message({
type: 'success',
message: '删除成功!'
})
this.querfromdata()
}
})
}) })
} }
}, },
computed: {}, computed: {},
mounted() {}, mounted() {
watch: { this.querfromdata()
tables: {
handler() {
this.calculateSpan()
},
deep: true
}
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import url('../../../../styles/comStyle.less'); @import url('../../../../styles/comStyle.less');
::v-deep tr th:nth-child(3) { ::v-deep tr th:nth-child(3) {
div { div {
text-align: left !important; text-align: left !important;
} }
} }
</style> </style>

View File

@@ -7,270 +7,386 @@
width="1000px" width="1000px"
:before-close="handleClose" :before-close="handleClose"
> >
<el-form ref="form" :inline="true" :model="form" label-width="80px" class="form-two"> <el-form ref="form" :inline="true" :model="form" label-width="auto" :rules="rules" class="form">
<el-form-item label="CVT名称:"> <el-form-item label="CVT名称:" prop="cvtName" style="width: 49%">
<el-input v-model="form.name" placeholder="请输入CVT名称"></el-input> <el-input v-model.trim="form.cvtName" placeholder="请输入CVT名称" />
</el-form-item> </el-form-item>
<el-form-item label="CVT型号:"> <el-form-item label="CVT型号:" prop="cvtModel" style="width: 49%">
<el-input v-model="form.model" placeholder="请输入CVT型号"></el-input> <el-input v-model.trim="form.cvtModel" placeholder="请输入CVT型号" />
</el-form-item> </el-form-item>
</el-form> <el-form-item v-for="item in frequency" :label="`${item}次:`" :prop="`h${item}`">
<el-form ref="form" :inline="true" :model="form" label-width="80px" class="form"> <el-input type="number" v-model.trim="form[`h${item}`]" @input="handleInput($event, `h${item}`)" />
<el-form-item label="2次:">
<el-input type="number" v-model="form.num2"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="3次:">
<el-input type="number" v-model="form.num3"></el-input> <!-- <el-form-item label="2次:" prop="h2">
<el-input type="number" v-model="form.h2" @input="handleInput($event,'h2')"/>
</el-form-item> </el-form-item>
<el-form-item label="4次:"> <el-form-item label="3次:" prop="h3">
<el-input type="number" v-model="form.num4"></el-input> <el-input type="number" v-model="form.h3" @input="handleInput($event,'h3')"/>
</el-form-item> </el-form-item>
<el-form-item label="5次:"> <el-form-item label="4次:" prop="h4">
<el-input type="number" v-model="form.num5"></el-input> <el-input type="number" v-model="form.h4" @input="handleInput($event,'h4')"/>
</el-form-item> </el-form-item>
<el-form-item label="6次:"> <el-form-item label="5次:" prop="h5">
<el-input type="number" v-model="form.num6"></el-input> <el-input type="number" v-model="form.h5" @input="handleInput($event,'h5')"/>
</el-form-item> </el-form-item>
<el-form-item label="7次:"> <el-form-item label="6次:" prop="h6">
<el-input type="number" v-model="form.num7"></el-input> <el-input type="number" v-model="form.h6" @input="handleInput($event,'h6')"/>
</el-form-item> </el-form-item>
<el-form-item label="8次:"> <el-form-item label="7次:" prop="h7">
<el-input type="number" v-model="form.num8"></el-input> <el-input type="number" v-model="form.h7" @input="handleInput($event,'h7')"/>
</el-form-item> </el-form-item>
<el-form-item label="9次:"> <el-form-item label="8次:" prop="h8">
<el-input type="number" v-model="form.num9"></el-input> <el-input type="number" v-model="form.h8" @input="handleInput($event,'h8')"/>
</el-form-item> </el-form-item>
<el-form-item label="10次:"> <el-form-item label="9次:" prop="h9">
<el-input type="number" v-model="form.num10"></el-input> <el-input type="number" v-model="form.h9" @input="handleInput($event,'h9')"/>
</el-form-item> </el-form-item>
<el-form-item label="11次:"> <el-form-item label="10次:" prop="h10">
<el-input type="number" v-model="form.num11"></el-input> <el-input type="number" v-model="form.h10" @input="handleInput($event,'h10')"/>
</el-form-item> </el-form-item>
<el-form-item label="12次:"> <el-form-item label="11次:" prop="h11">
<el-input type="number" v-model="form.num12"></el-input> <el-input type="number" v-model="form.h11" @input="handleInput($event,'h11')"/>
</el-form-item> </el-form-item>
<el-form-item label="13次:"> <el-form-item label="12次:" prop="h12">
<el-input type="number" v-model="form.num13"></el-input> <el-input type="number" v-model="form.h12" @input="handleInput($event,'h12')"/>
</el-form-item> </el-form-item>
<el-form-item label="14次:"> <el-form-item label="13次:" prop="h13">
<el-input type="number" v-model="form.num14"></el-input> <el-input type="number" v-model="form.h13" @input="handleInput($event,'h13')"/>
</el-form-item> </el-form-item>
<el-form-item label="15次:"> <el-form-item label="14次:" prop="h14">
<el-input type="number" v-model="form.num15"></el-input> <el-input type="number" v-model="form.h14" @input="handleInput($event,'h14')"/>
</el-form-item> </el-form-item>
<el-form-item label="16次:"> <el-form-item label="15次:" prop="h15">
<el-input type="number" v-model="form.num16"></el-input> <el-input type="number" v-model="form.h15" @input="handleInput($event,'h15')"/>
</el-form-item> </el-form-item>
<el-form-item label="17次:"> <el-form-item label="16次:" prop="h16">
<el-input type="number" v-model="form.num17"></el-input> <el-input type="number" v-model="form.h16" @input="handleInput($event,'h16')"/>
</el-form-item> </el-form-item>
<el-form-item label="18次:"> <el-form-item label="17次:" prop="h17">
<el-input type="number" v-model="form.num18"></el-input> <el-input type="number" v-model="form.h17" @input="handleInput($event,'h17')"/>
</el-form-item> </el-form-item>
<el-form-item label="19次:"> <el-form-item label="18次:" prop="h18">
<el-input type="number" v-model="form.num19"></el-input> <el-input type="number" v-model="form.h18" @input="handleInput($event,'h18')"/>
</el-form-item> </el-form-item>
<el-form-item label="20次:"> <el-form-item label="19次:" prop="h19">
<el-input type="number" v-model="form.num20"></el-input> <el-input type="number" v-model="form.h19" @input="handleInput($event,'h19')"/>
</el-form-item> </el-form-item>
<el-form-item label="21次:"> <el-form-item label="20次:" prop="h20">
<el-input type="number" v-model="form.num21"></el-input> <el-input type="number" v-model="form.h20" @input="handleInput($event,'h20')"/>
</el-form-item> </el-form-item>
<el-form-item label="22次:"> <el-form-item label="21次:" prop="h21">
<el-input type="number" v-model="form.num22"></el-input> <el-input type="number" v-model="form.h21" @input="handleInput($event,'h21')"/>
</el-form-item> </el-form-item>
<el-form-item label="23次:"> <el-form-item label="22次:" prop="h22">
<el-input type="number" v-model="form.num23"></el-input> <el-input type="number" v-model="form.h22" @input="handleInput($event,'h22')"/>
</el-form-item> </el-form-item>
<el-form-item label="24次:"> <el-form-item label="23次:" prop="h23">
<el-input type="number" v-model="form.num24"></el-input> <el-input type="number" v-model="form.h23" @input="handleInput($event,'h23')"/>
</el-form-item> </el-form-item>
<el-form-item label="25次:"> <el-form-item label="24次:" prop="h24">
<el-input type="number" v-model="form.num25"></el-input> <el-input type="number" v-model="form.h24" @input="handleInput($event,'h24')"/>
</el-form-item> </el-form-item>
<el-form-item label="26次:"> <el-form-item label="25次:" prop="h25">
<el-input type="number" v-model="form.num26"></el-input> <el-input type="number" v-model="form.h25" @input="handleInput($event,'h25')"/>
</el-form-item> </el-form-item>
<el-form-item label="27次:"> <el-form-item label="26次:" prop="h26">
<el-input type="number" v-model="form.num27"></el-input> <el-input type="number" v-model="form.h26" @input="handleInput($event,'h26')"/>
</el-form-item> </el-form-item>
<el-form-item label="28次:"> <el-form-item label="27次:" prop="h27">
<el-input type="number" v-model="form.num28"></el-input> <el-input type="number" v-model="form.h27" @input="handleInput($event,'h27')"/>
</el-form-item> </el-form-item>
<el-form-item label="29次:"> <el-form-item label="28次:" prop="h28">
<el-input type="number" v-model="form.num29"></el-input> <el-input type="number" v-model="form.h28" @input="handleInput($event,'h28')"/>
</el-form-item> </el-form-item>
<el-form-item label="30次:"> <el-form-item label="29次:" prop="h29">
<el-input type="number" v-model="form.num30"></el-input> <el-input type="number" v-model="form.h29" @input="handleInput($event,'h29')"/>
</el-form-item> </el-form-item>
<el-form-item label="31次:"> <el-form-item label="30次:" prop="h30">
<el-input type="number" v-model="form.num31"></el-input> <el-input type="number" v-model="form.h30" @input="handleInput($event,'h30')"/>
</el-form-item> </el-form-item>
<el-form-item label="32次:"> <el-form-item label="31次:" prop="h31">
<el-input type="number" v-model="form.num32"></el-input> <el-input type="number" v-model="form.h31" @input="handleInput($event,'h31')"/>
</el-form-item> </el-form-item>
<el-form-item label="33次:"> <el-form-item label="32次:" prop="h32">
<el-input type="number" v-model="form.num33"></el-input> <el-input type="number" v-model="form.h32" @input="handleInput($event,'h32')"/>
</el-form-item> </el-form-item>
<el-form-item label="34次:"> <el-form-item label="33次:" prop="h33">
<el-input type="number" v-model="form.num34"></el-input> <el-input type="number" v-model="form.h33" @input="handleInput($event,'h33')"/>
</el-form-item> </el-form-item>
<el-form-item label="35次:"> <el-form-item label="34次:" prop="h34">
<el-input type="number" v-model="form.num35"></el-input> <el-input type="number" v-model="form.h34" @input="handleInput($event,'h34')"/>
</el-form-item> </el-form-item>
<el-form-item label="36次:"> <el-form-item label="35次:" prop="h35">
<el-input type="number" v-model="form.num36"></el-input> <el-input type="number" v-model="form.h35" @input="handleInput($event,'h35')"/>
</el-form-item> </el-form-item>
<el-form-item label="37次:"> <el-form-item label="36次:" prop="h36">
<el-input type="number" v-model="form.num37"></el-input> <el-input type="number" v-model="form.h36" @input="handleInput($event,'h36')"/>
</el-form-item> </el-form-item>
<el-form-item label="38次:"> <el-form-item label="37次:" prop="h37">
<el-input type="number" v-model="form.num38"></el-input> <el-input type="number" v-model="form.h37" @input="handleInput($event,'h37')"/>
</el-form-item> </el-form-item>
<el-form-item label="39次:"> <el-form-item label="38次:" prop="h38">
<el-input type="number" v-model="form.num39"></el-input> <el-input type="number" v-model="form.h38" @input="handleInput($event,'h38')"/>
</el-form-item> </el-form-item>
<el-form-item label="40次:"> <el-form-item label="39次:" prop="h39">
<el-input type="number" v-model="form.num40"></el-input> <el-input type="number" v-model="form.h39" @input="handleInput($event,'h39')"/>
</el-form-item> </el-form-item>
<el-form-item label="41次:"> <el-form-item label="40次:" prop="h40">
<el-input type="number" v-model="form.num41"></el-input> <el-input type="number" v-model="form.h40" @input="handleInput($event,'h40')"/>
</el-form-item> </el-form-item>
<el-form-item label="42次:"> <el-form-item label="41次:" prop="h41">
<el-input type="number" v-model="form.num42"></el-input> <el-input type="number" v-model="form.h41" @input="handleInput($event,'h41')"/>
</el-form-item> </el-form-item>
<el-form-item label="43次:"> <el-form-item label="42次:" prop="h42">
<el-input type="number" v-model="form.num43"></el-input> <el-input type="number" v-model="form.h42" @input="handleInput($event,'h42')"/>
</el-form-item> </el-form-item>
<el-form-item label="44次:"> <el-form-item label="43次:" prop="h43">
<el-input type="number" v-model="form.num44"></el-input> <el-input type="number" v-model="form.h43" @input="handleInput($event,'h43')"/>
</el-form-item> </el-form-item>
<el-form-item label="45次:"> <el-form-item label="44次:" prop="h44">
<el-input type="number" v-model="form.num45"></el-input> <el-input type="number" v-model="form.h44" @input="handleInput($event,'h44')"/>
</el-form-item> </el-form-item>
<el-form-item label="46次:"> <el-form-item label="45次:" prop="h45">
<el-input type="number" v-model="form.num46"></el-input> <el-input type="number" v-model="form.h45" @input="handleInput($event,'h45')"/>
</el-form-item> </el-form-item>
<el-form-item label="47次:"> <el-form-item label="46次:" prop="h46">
<el-input type="number" v-model="form.num47"></el-input> <el-input type="number" v-model="form.h46" @input="handleInput($event,'h46')"/>
</el-form-item> </el-form-item>
<el-form-item label="48次:"> <el-form-item label="47次:" prop="h47">
<el-input type="number" v-model="form.num48"></el-input> <el-input type="number" v-model="form.h47" @input="handleInput($event,'h47')"/>
</el-form-item> </el-form-item>
<el-form-item label="49次:"> <el-form-item label="48次:" prop="h48">
<el-input type="number" v-model="form.num49"></el-input> <el-input type="number" v-model="form.h48" @input="handleInput($event,'h48')"/>
</el-form-item> </el-form-item>
<el-form-item label="50次:"> <el-form-item label="49次:" prop="h49">
<el-input type="number" v-model="form.num50"></el-input> <el-input type="number" v-model="form.h49" @input="handleInput($event,'h49')"/>
</el-form-item> </el-form-item>
<el-form-item label="50次:" prop="h50">
<el-input type="number" v-model="form.h50" @input="handleInput($event,'h50')"/>
</el-form-item> -->
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button> <el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="handleClose"> </el-button> <el-button type="primary" @click="submit"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { addCVT, updateCvt } from '@/api/CVT/index.js'
export default { export default {
components: {}, components: {},
props: {}, props: {},
data() { data() {
return { return {
frequency: [
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
],
dialogVisible: false, dialogVisible: false,
title: '', title: '',
form: { form: {
name: '', cvtName: '',
model: '', cvtModel: '',
num2: '1', h2: '1',
num3: '1', h3: '1',
num4: '1', h4: '1',
num5: '1', h5: '1',
num6: '1', h6: '1',
num7: '1', h7: '1',
num8: '1', h8: '1',
num9: '1', h9: '1',
num10: '1', h10: '1',
num11: '1', h11: '1',
num12: '1', h12: '1',
num13: '1', h13: '1',
num14: '1', h14: '1',
num15: '1', h15: '1',
num16: '1', h16: '1',
num17: '1', h17: '1',
num18: '1', h18: '1',
num19: '1', h19: '1',
num20: '1', h20: '1',
num21: '1', h21: '1',
num22: '1', h22: '1',
num23: '1', h23: '1',
num24: '1', h24: '1',
num25: '1', h25: '1',
num26: '1', h26: '1',
num27: '1', h27: '1',
num28: '1', h28: '1',
num29: '1', h29: '1',
num30: '1', h30: '1',
num31: '1', h31: '1',
num32: '1', h32: '1',
num33: '1', h33: '1',
num34: '1', h34: '1',
num35: '1', h35: '1',
num36: '1', h36: '1',
num37: '1', h37: '1',
num38: '1', h38: '1',
num39: '1', h39: '1',
num40: '1', h40: '1',
num41: '1', h41: '1',
num42: '1', h42: '1',
num43: '1', h43: '1',
num44: '1', h44: '1',
num45: '1', h45: '1',
num46: '1', h46: '1',
num47: '1', h47: '1',
num48: '1', h48: '1',
num49: '1', h49: '1',
num50: '1' h50: '1'
},
rules: {
cvtName: [{ required: true, message: 'CVT名称不能为空', trigger: 'blur' }],
cvtModel: [{ required: true, message: 'CVT型号不能为空', trigger: 'blur' }],
h2: [{ required: true, message: '2次不能为空', trigger: 'blur' }],
h3: [{ required: true, message: '3次不能为空', trigger: 'blur' }],
h4: [{ required: true, message: '4次不能为空', trigger: 'blur' }],
h5: [{ required: true, message: '5次不能为空', trigger: 'blur' }],
h6: [{ required: true, message: '6次不能为空', trigger: 'blur' }],
h7: [{ required: true, message: '7次不能为空', trigger: 'blur' }],
h8: [{ required: true, message: '8次不能为空', trigger: 'blur' }],
h9: [{ required: true, message: '9次不能为空', trigger: 'blur' }],
h10: [{ required: true, message: '10次不能为空', trigger: 'blur' }],
h11: [{ required: true, message: '11次不能为空', trigger: 'blur' }],
h12: [{ required: true, message: '12次不能为空', trigger: 'blur' }],
h13: [{ required: true, message: '13次不能为空', trigger: 'blur' }],
h14: [{ required: true, message: '14次不能为空', trigger: 'blur' }],
h15: [{ required: true, message: '15次不能为空', trigger: 'blur' }],
h16: [{ required: true, message: '16次不能为空', trigger: 'blur' }],
h17: [{ required: true, message: '17次不能为空', trigger: 'blur' }],
h18: [{ required: true, message: '18次不能为空', trigger: 'blur' }],
h19: [{ required: true, message: '19次不能为空', trigger: 'blur' }],
h20: [{ required: true, message: '20次不能为空', trigger: 'blur' }],
h21: [{ required: true, message: '21次不能为空', trigger: 'blur' }],
h22: [{ required: true, message: '22次不能为空', trigger: 'blur' }],
h23: [{ required: true, message: '23次不能为空', trigger: 'blur' }],
h24: [{ required: true, message: '24次不能为空', trigger: 'blur' }],
h25: [{ required: true, message: '25次不能为空', trigger: 'blur' }],
h26: [{ required: true, message: '26次不能为空', trigger: 'blur' }],
h27: [{ required: true, message: '27次不能为空', trigger: 'blur' }],
h28: [{ required: true, message: '28次不能为空', trigger: 'blur' }],
h29: [{ required: true, message: '29次不能为空', trigger: 'blur' }],
h30: [{ required: true, message: '30次不能为空', trigger: 'blur' }],
h31: [{ required: true, message: '31次不能为空', trigger: 'blur' }],
h32: [{ required: true, message: '32次不能为空', trigger: 'blur' }],
h33: [{ required: true, message: '33次不能为空', trigger: 'blur' }],
h34: [{ required: true, message: '34次不能为空', trigger: 'blur' }],
h35: [{ required: true, message: '35次不能为空', trigger: 'blur' }],
h36: [{ required: true, message: '36次不能为空', trigger: 'blur' }],
h37: [{ required: true, message: '37次不能为空', trigger: 'blur' }],
h38: [{ required: true, message: '38次不能为空', trigger: 'blur' }],
h39: [{ required: true, message: '39次不能为空', trigger: 'blur' }],
h40: [{ required: true, message: '40次不能为空', trigger: 'blur' }],
h41: [{ required: true, message: '41次不能为空', trigger: 'blur' }],
h42: [{ required: true, message: '42次不能为空', trigger: 'blur' }],
h43: [{ required: true, message: '43次不能为空', trigger: 'blur' }],
h44: [{ required: true, message: '44次不能为空', trigger: 'blur' }],
h45: [{ required: true, message: '45次不能为空', trigger: 'blur' }],
h46: [{ required: true, message: '46次不能为空', trigger: 'blur' }],
h47: [{ required: true, message: '47次不能为空', trigger: 'blur' }],
h48: [{ required: true, message: '48次不能为空', trigger: 'blur' }],
h49: [{ required: true, message: '49次不能为空', trigger: 'blur' }],
h50: [{ required: true, message: '50次不能为空', trigger: 'blur' }]
} }
} }
}, },
created() {}, created() {},
methods: { methods: {
// 提交
submit() {
this.$refs.form.validate(valid => {
if (valid) {
if (this.title == '新增CVT系数') {
addCVT(this.form).then(res => {
if (res.code == 'A0000') {
this.$emit('querfromdata')
this.$message({
type: 'success',
message: '新增成功!'
})
this.handleClose()
}
})
} else {
updateCvt(this.form).then(res => {
if (res.code == 'A0000') {
this.$emit('querfromdata')
this.$message({
type: 'success',
message: '修改成功!'
})
this.handleClose()
}
})
}
}
})
},
// 关闭弹窗 // 关闭弹窗
handleClose() { handleClose() {
this.dialogVisible = false this.dialogVisible = false
this.$refs.form.resetFields()
this.$emit('showForm')
},
// 修改
doEdit(row) {
this.form = JSON.parse(JSON.stringify(row))
},
handleInput(value, key) {
// 正则表达式,用于匹配最多保留 3 位小数的数字
const reg = /^\d*(\.\d{0,3})?$/
if (!reg.test(value)) {
// 若输入不符合要求,去除多余的小数部分
const parts = value.toString().split('.')
if (parts.length > 1) {
this.form[key] = `${parts[0]}.${parts[1].slice(0, 3)}`
} else {
this.form[key] = parts[0]
}
}
} }
}, },
computed: {}, computed: {},
mounted() {
// let data = []
// for (let i = 2; i < 51; i++) {
// this.form[`h${i}`] = data[i - 2]
// }
// this.form.cvtName = '日新500-5H9.79kv中间变)'
// this.form.cvtModel = this.form.cvtName
},
watch: {} watch: {}
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import url('../../../../styles/comStyle.less'); @import url('../../../../styles/comStyle.less');
::v-deep .form-two { // ::v-deep .form-two {
display: flex; // display: flex;
flex-wrap: wrap; // flex-wrap: wrap;
justify-content: space-between; // justify-content: space-between;
.el-form-item { // .el-form-item {
display: flex; // display: flex;
width: 49%; // width: 49%;
.el-form-item__content { // .el-form-item__content {
flex: 1 !important; // flex: 1 !important;
.el-select { // .el-select {
width: 100%; // width: 100%;
} // }
.el-input__inner { // .el-input__inner {
width: 100% !important; // width: 100% !important;
} // }
.el-date-editor { // .el-date-editor {
width: 100%; // width: 100%;
} // }
} // }
} // }
} // }
::v-deep .form { ::v-deep .form {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@@ -278,6 +394,7 @@ export default {
.el-form-item { .el-form-item {
display: flex; display: flex;
width: 24%; width: 24%;
margin-bottom: 18px !important;
.el-form-item__content { .el-form-item__content {
flex: 1 !important; flex: 1 !important;
.el-select { .el-select {

View File

@@ -2,10 +2,10 @@
<div class="pa10"> <div class="pa10">
<el-tabs type="border-card" style="height: calc(100vh - 20px)" v-model="activeName" @tab-click="handleClick"> <el-tabs type="border-card" style="height: calc(100vh - 20px)" v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="CVT台账" name="1"> <el-tab-pane label="CVT台账" name="1">
<cvt></cvt> <cvt v-if="activeName == '1'"></cvt>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="数据绑定" name="2"> <el-tab-pane label="台账绑定" name="2">
<bind></bind> <bind v-if="activeName == '2'"></bind>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
@@ -25,7 +25,9 @@ export default {
}, },
created() { created() {
if (process.env.VUE_APP_MODE === 'cgyqr') { if (process.env.VUE_APP_MODE === 'cgyqr') {
this.guanzhou() if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
} }
}, },
mounted() {}, mounted() {},

View File

@@ -335,7 +335,9 @@ export default {
}, },
created() { created() {
if (process.env.VUE_APP_MODE === 'cgyqr') { if (process.env.VUE_APP_MODE === 'cgyqr') {
this.guanzhou() if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
} }
this.getIndexType() this.getIndexType()
//this.time() //this.time()
@@ -542,19 +544,8 @@ export default {
month = '0' + month month = '0' + month
} }
this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2] this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2]
if (
month == 1 || this.form.searchEndTime = str2[0] + '-' + month + '-' + new Date(str2[0], month, 0).getDate()
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
this.form.searchEndTime = str2[0] + '-' + month + '-31'
} else {
this.form.searchEndTime = str2[0] + '-' + month + '-30'
}
} else { } else {
this.form.searchBeginTime = this.$refs.fff.timeValue[0] this.form.searchBeginTime = this.$refs.fff.timeValue[0]
this.form.searchEndTime = this.$refs.fff.timeValue[1] this.form.searchEndTime = this.$refs.fff.timeValue[1]
@@ -938,7 +929,7 @@ export default {
myChart2.clear(option) myChart2.clear(option)
myChart2.setOption(option) myChart2.setOption(option)
window.echartsArr.push(myChart2) window.echartsArr.push(myChart2)
setTimeout(function () { setTimeout(function () {
myChart2.resize() myChart2.resize()
}, 0) }, 0)
@@ -976,19 +967,8 @@ window.echartsArr.push(myChart2)
month = '0' + month month = '0' + month
} }
this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2] this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2]
if (
month == 1 || this.form.searchEndTime = str2[0] + '-' + month + '-' + new Date(str2[0], month, 0).getDate()
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
this.form.searchEndTime = str2[0] + '-' + month + '-31'
} else {
this.form.searchEndTime = str2[0] + '-' + month + '-30'
}
} else { } else {
this.form.searchBeginTime = this.$refs.fff.timeValue[0] this.form.searchBeginTime = this.$refs.fff.timeValue[0]
this.form.searchEndTime = this.$refs.fff.timeValue[1] this.form.searchEndTime = this.$refs.fff.timeValue[1]
@@ -1320,7 +1300,7 @@ window.echartsArr.push(myChart2)
] ]
} }
option && myChart2.setOption(option, true) option && myChart2.setOption(option, true)
window.echartsArr.push(myChart2) window.echartsArr.push(myChart2)
setTimeout(function () { setTimeout(function () {
myChart2.resize() myChart2.resize()
}, 0) }, 0)
@@ -1349,19 +1329,8 @@ window.echartsArr.push(myChart2)
month = '0' + month month = '0' + month
} }
this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2] this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2]
if (
month == 1 || this.form.searchEndTime = str2[0] + '-' + month + '-' + new Date(str2[0], month, 0).getDate()
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
this.form.searchEndTime = str2[0] + '-' + month + '-31'
} else {
this.form.searchEndTime = str2[0] + '-' + month + '-30'
}
} else { } else {
this.form.searchBeginTime = this.$refs.fff.timeValue[0] this.form.searchBeginTime = this.$refs.fff.timeValue[0]
this.form.searchEndTime = this.$refs.fff.timeValue[1] this.form.searchEndTime = this.$refs.fff.timeValue[1]
@@ -1545,7 +1514,7 @@ window.echartsArr.push(myChart2)
} }
option && myChart2.setOption(option, true) option && myChart2.setOption(option, true)
window.echartsArr.push(myChart2) window.echartsArr.push(myChart2)
setTimeout(function () { setTimeout(function () {
myChart2.resize() myChart2.resize()
}, 0) }, 0)
@@ -1571,19 +1540,8 @@ window.echartsArr.push(myChart2)
month = '0' + month month = '0' + month
} }
this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2] this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2]
if (
month == 1 || this.form.searchEndTime = str2[0] + '-' + month + '-' + new Date(str2[0], month, 0).getDate()
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
this.form.searchEndTime = str2[0] + '-' + month + '-31'
} else {
this.form.searchEndTime = str2[0] + '-' + month + '-30'
}
} else { } else {
this.form.searchBeginTime = this.$refs.fff.timeValue[0] this.form.searchBeginTime = this.$refs.fff.timeValue[0]
this.form.searchEndTime = this.$refs.fff.timeValue[1] this.form.searchEndTime = this.$refs.fff.timeValue[1]
@@ -1768,7 +1726,7 @@ window.echartsArr.push(myChart2)
} }
option && myChart2.setOption(option, true) option && myChart2.setOption(option, true)
window.echartsArr.push(myChart2) window.echartsArr.push(myChart2)
setTimeout(function () { setTimeout(function () {
myChart2.resize() myChart2.resize()
}, 0) }, 0)
@@ -1796,19 +1754,8 @@ window.echartsArr.push(myChart2)
month = '0' + month month = '0' + month
} }
this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2] this.form.searchBeginTime = str1[0] + '-' + month + '-' + str1[2]
if (
month == 1 || this.form.searchEndTime = str2[0] + '-' + month + '-' + new Date(str2[0], month, 0).getDate()
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
this.form.searchEndTime = str2[0] + '-' + month + '-31'
} else {
this.form.searchEndTime = str2[0] + '-' + month + '-30'
}
} else { } else {
this.form.searchBeginTime = this.$refs.fff.timeValue[0] this.form.searchBeginTime = this.$refs.fff.timeValue[0]
this.form.searchEndTime = this.$refs.fff.timeValue[1] this.form.searchEndTime = this.$refs.fff.timeValue[1]
@@ -2030,7 +1977,7 @@ window.echartsArr.push(myChart2)
] ]
} }
option && myChart2.setOption(option, true) option && myChart2.setOption(option, true)
window.echartsArr.push(myChart2) window.echartsArr.push(myChart2)
setTimeout(function () { setTimeout(function () {
myChart2.resize() myChart2.resize()
}, 0) }, 0)

File diff suppressed because it is too large Load Diff

View File

@@ -805,19 +805,9 @@ export default {
month = '0' + month month = '0' + month
} }
this.formData.searchBeginTime = str1[0] + '-' + month + '-' + str1[2] this.formData.searchBeginTime = str1[0] + '-' + month + '-' + str1[2]
if (
month == 1 || this.formData.searchEndTime = str2[0] + '-' + month + '-' + new Date(str2[0], month, 0).getDate()
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
this.formData.searchEndTime = str2[0] + '-' + month + '-31'
} else {
this.formData.searchEndTime = str2[0] + '-' + month + '-30'
}
} else { } else {
this.formData.searchBeginTime = this.$refs.timelist.timeValue[0] this.formData.searchBeginTime = this.$refs.timelist.timeValue[0]
this.formData.searchEndTime = this.$refs.timelist.timeValue[1] this.formData.searchEndTime = this.$refs.timelist.timeValue[1]

View File

@@ -31,7 +31,9 @@ export default {
}, },
created() { created() {
if (process.env.VUE_APP_MODE === 'cgyqr') { if (process.env.VUE_APP_MODE === 'cgyqr') {
this.guanzhou() if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
} }
}, },
mounted() { mounted() {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,73 +1,75 @@
<template> <template>
<div class="pa10"> <div class="pa10">
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick" style="height:calc(100vh - 20px)"> <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick" style="height: calc(100vh - 20px)">
<el-tab-pane label="监测点数据查询" name="first"> <el-tab-pane label="监测点数据查询" name="first">
<onlineData ></onlineData> <onlineData></onlineData>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="监测点台账信息" name="second"> <el-tab-pane label="监测点台账信息" name="second">
<devicemessage ></devicemessage> <devicemessage></devicemessage>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="终端台账信息" name="third"> <el-tab-pane label="终端台账信息" name="third">
<terminalmessage > </terminalmessage> <terminalmessage></terminalmessage>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="数据完整性统计" name="sen"> <el-tab-pane label="数据完整性统计" name="sen">
<integralitytable ></integralitytable> <integralitytable></integralitytable>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</template> </template>
<script> <script>
import onlineData from "@/views/cgy-harmonic-boot/monitor/onlineData"; import onlineData from '@/views/cgy-harmonic-boot/monitor/onlineData'
import terminalmessage from "@/views/cgy-harmonic-boot/runmange/terminalmessage"; import terminalmessage from '@/views/cgy-harmonic-boot/runmange/terminalmessage'
import devicemessage from "@/views/cgy-harmonic-boot/runmange/devicemessage"; import devicemessage from '@/views/cgy-harmonic-boot/runmange/devicemessage'
import integralitytable from "@/views/cgy-harmonic-boot/area/integralitytable"; import integralitytable from '@/views/cgy-harmonic-boot/area/integralitytable'
import api1 from '@/api/pollution/pollution' import api1 from '@/api/pollution/pollution'
export default { export default {
components: { components: {
onlineData, onlineData,
devicemessage, devicemessage,
terminalmessage, terminalmessage,
integralitytable, integralitytable
}, },
data() { data() {
return { return {
activeName:'first', activeName: 'first',
vh:null vh: null
}; }
}, },
created() { created() {
if (process.env.VUE_APP_MODE === 'cgyqr') { if (process.env.VUE_APP_MODE === 'cgyqr') {
this.guanzhou() if (process.env.VUE_APP_KEY != 'scqr') {
} this.guanzhou()
}, }
mounted() { }
this.vh = window.sessionStorage.getItem('appheight')-12+'px' },
}, mounted() {
methods: { this.vh = window.sessionStorage.getItem('appheight') - 12 + 'px'
guanzhou(){ },
var data ={ methods: {
token:this.$route.query.token guanzhou() {
} var data = {
api1.guanzhou(data).then(res=>{ token: this.$route.query.token
if(res.code=='A0000'){ }
return api1.guanzhou(data).then(res => {
}else{ if (res.code == 'A0000') {
this.$router.push('/error/massege/403') return
} } else {
}) this.$router.push('/error/massege/403')
}, }
handleClick(tab, event) { })
// console.log(tab, event); },
this.activeName = tab.name handleClick(tab, event) {
} // console.log(tab, event);
}, this.activeName = tab.name
}; }
</script> }
}
</script>
<style lang="less" scoped> <style lang="less" scoped>
.pa10 { .pa10 {
padding: 10px; padding: 10px;
} }
::v-deep .el-tabs--border-card>.el-tabs__content { ::v-deep .el-tabs--border-card > .el-tabs__content {
padding: 10px; padding: 10px;
} }
</style> </style>

View File

@@ -37,7 +37,10 @@ export default {
}, },
created() { created() {
if (process.env.VUE_APP_MODE === 'cgyqr') { if (process.env.VUE_APP_MODE === 'cgyqr') {
this.guanzhou() // this.guanzhou()
if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
} }
}, },
mounted() {}, mounted() {},

File diff suppressed because it is too large Load Diff

View File

@@ -1,405 +1,423 @@
<template> <template>
<div v-loading="loading" <div v-loading="loading" element-loading-text="数据加载中">
element-loading-text="数据加载中"> <el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form-item label="类型:" style="display: none">
<el-form-item label="类型:" style="display:none"> <el-select
<el-select v-model="formData.statisticalType"
v-model="formData.statisticalType" @change="changeclasss"
@change="changeclasss" placeholder="请选择统计类型"
placeholder="请选择统计类型" style="width: 100%"
style="width:100%" >
> <el-option
<el-option v-for="item in classificationData"
v-for="item in classificationData" :key="item.id"
:key="item.id" :label="item.name"
:label="item.name" :value="{
:value="{ label: item.name,
label: item.name, value: item.id,
value: item.id, name: item.name,
name: item.name, id: item.id,
id: item.id, code: item.code,
code: item.code, sort: item.sort
sort: item.sort, }"
}" ></el-option>
> </el-select>
</el-option> </el-form-item>
</el-select> <el-form-item label="区域:">
</el-form-item> <el-select ref="selectTree1" v-model="deptName" placeholder="请选择所属部门区域" style="width: 100%">
<el-form-item label="区域:" > <el-option :value="deptIndex" style="height: auto">
<el-select <el-tree
ref="selectTree1" ref="tree"
v-model="deptName" :data="treeData"
placeholder="请选择所属部门区域" node-key="id"
style="width: 100%" accordion
> :default-expanded-keys="idArr"
<el-option :value="deptIndex" style="height: auto"> :props="defaultProps"
<el-tree @node-click="handleNodeClick"
ref="tree" >
:data="treeData" <span class="span-ellipsis" slot-scope="{ node, data }">
node-key="id" <span :title="data.name">{{ data.name }}</span>
accordion </span>
:default-expanded-keys="idArr" </el-tree>
:props="defaultProps" </el-option>
@node-click="handleNodeClick" </el-select>
> </el-form-item>
<span class="span-ellipsis" slot-scope="{ node, data }">
<span :title="data.name">{{ data.name }}</span> <el-form-item label="厂家:">
</span> <el-select
</el-tree> v-model="formData.manufacturer"
</el-option> multiple
</el-select> collapse-tags
</el-form-item> placeholder="请选择终端厂家"
style="width: 100%"
<el-form-item label="厂家:" > >
<el-select <el-option
v-model="formData.manufacturer" v-for="item in terminaloption"
multiple :key="item.id"
collapse-tags :label="item.name"
placeholder="请选择终端厂家" :value="{
style="width: 100%" label: item.name,
> value: item.id,
<el-option code: item.code,
v-for="item in terminaloption" name: item.name,
:key="item.id" id: item.id,
:label="item.name" sort: item.sort
:value="{ }"
label: item.name, ></el-option>
value: item.id, </el-select>
code: item.code, </el-form-item>
name: item.name, <el-form-item label="干扰源:" style="display: none">
id: item.id, <el-select
sort: item.sort, v-model="formData.loadType"
}" multiple
> collapse-tags
</el-option> placeholder="请选择干扰源类型"
</el-select> style="width: 100%"
</el-form-item> >
<el-form-item label="干扰源:" style="display: none"> <el-option
<el-select v-for="item in interfereoption"
v-model="formData.loadType" :key="item.id"
multiple :label="item.name"
collapse-tags :value="{
placeholder="请选择干扰源类型" label: item.name,
style="width: 100%" value: item.id,
> code: item.code,
<el-option name: item.name,
v-for="item in interfereoption" id: item.id,
:key="item.id" sort: item.sort
:label="item.name" }"
:value="{ ></el-option>
label: item.name, </el-select>
value: item.id, </el-form-item>
code: item.code, <el-form-item label="通讯状态:">
name: item.name, <el-select
id: item.id, v-model="formData.comFlag"
sort: item.sort, multiple
}" collapse-tags
> placeholder="请选择通讯状态"
</el-option> style="width: 100%"
</el-select> >
</el-form-item> <el-option
<el-form-item label="通讯状态:" > v-for="item in communicationstatus"
<el-select :key="item.value"
v-model="formData.comFlag" :label="item.label"
multiple :value="item.value"
collapse-tags ></el-option>
placeholder="请选择通讯状态" </el-select>
style="width: 100%" </el-form-item>
> <el-form-item label="终端状态:">
<el-option <el-select
v-for="item in communicationstatus" v-model="formData.runFlag"
:key="item.value" multiple
:label="item.label" collapse-tags
:value="item.value" placeholder="请选择终端状态"
> style="width: 100%"
</el-option> >
</el-select> <el-option
</el-form-item> v-for="item in terminalstatus"
<el-form-item label="终端状态:" > :key="item.value"
<el-select :label="item.label"
v-model="formData.runFlag" :value="item.value"
multiple ></el-option>
collapse-tags </el-select>
placeholder="请选择终端状态" </el-form-item>
style="width: 100%" <el-form-item>
> <el-button type="primary" size="small" icon="el-icon-search" @click="queryDataInfo">查询</el-button>
<el-option </el-form-item>
v-for="item in terminalstatus" <el-form-item style="float: right">
:key="item.value" <span>
:label="item.label" 在线率60%
:value="item.value" <span style="color: red; font-weight: bold">&ensp;&ensp;&ensp;</span>
> 60%在线率90%
</el-option> <span style="color: rgb(255, 174, 0); font-weight: bold">&ensp;&ensp;&ensp;</span>
</el-select> 90%在线率
</el-form-item> <span style="color: green; font-weight: bold"></span>
<el-form-item > </span>
<el-button </el-form-item>
type="primary" </el-form>
size="small" <el-row :gutter="20" style="margin-top: 0%">
icon="el-icon-search" <el-col :span="24">
@click="queryDataInfo" <terminalmessagetable :tableData="tableData" :classvalue="classt"></terminalmessagetable>
>查询</el-button </el-col>
> </el-row>
</el-form-item> </div>
<el-form-item style="float: right;"> </template>
<span>在线率60% <span style="color:red;font-weight: bold;">&ensp;&ensp;&ensp;</span> 60%在线率90% <span style="color:rgb(255, 174, 0);font-weight: bold;">&ensp;&ensp;&ensp;</span> 90%在线率 <span style="color:green;font-weight: bold;"></span> </span> <script>
</el-form-item> import { getappheight, getheight } from '@/assets/commjs/common'
import { guanzhou } from '@/assets/commjs/token'
</el-form> import api1 from '@/api/pollution/pollution'
<el-row :gutter="20" style="margin-top: 0%"> import timepicker from '@/views/cgy-components/TimePicker/index4'
<el-col :span="24"> import { dicData } from '../../../assets/commjs/dictypeData'
<terminalmessagetable import api from '../../../api/integraliy/integraliy'
:tableData="tableData" import Table from '../../components/teble/index'
:classvalue="classt" import Pagination from '../../components/pagination/index'
import terminalmessagetable from '@/views/cgy-components/terminalmessagetable'
></terminalmessagetable>
</el-col> export default {
</el-row> components: {
</div> timepicker,
</template> terminalmessagetable
<script> // onlinerateechart
import { getappheight, getheight } from "@/assets/commjs/common"; },
import { guanzhou } from "@/assets/commjs/token"; watch: {},
import api1 from "@/api/pollution/pollution"; computed: {},
import timepicker from "@/views/cgy-components/TimePicker/index4"; data() {
import { dicData } from "../../../assets/commjs/dictypeData"; return {
import api from "../../../api/integraliy/integraliy"; formInline: {},
import Table from "../../components/teble/index"; loading: false,
import Pagination from "../../components/pagination/index"; classt: 'Power_Network',
import terminalmessagetable from "@/views/cgy-components/terminalmessagetable"; asideheight: undefined,
id: 1,
export default { copent: 0,
components: { title: '电网拓扑',
timepicker, xdata: [
terminalmessagetable, '江苏省',
// onlinerateechart '江西省',
}, '安徽省',
watch: {}, '湖北省',
computed: {}, '浙江省',
data() { '湖南省',
return { '广东省',
formInline: {}, '福建省',
loading: false, '海南省',
classt: "Power_Network", '四川省',
asideheight: undefined, '青海省',
id: 1, '河北省'
copent: 0, ],
title: "电网拓扑", ydata: [92.6, 25.9, 39.0, 26.4, 28.7, 90.7, 75.6, 82.2, 48.7, 58.8, 16.0, 32.3],
xdata: [ classvalue: 0,
"江苏省", activeName: 'tab1',
"江西省", panindexOptions: [],
"安徽省", formData: {
"湖北省", //后面需要修改
"浙江省", serverName: 'harmonic-boot',
"湖南省", searchBeginTime: '',
"广东省", searchEndTime: '',
"福建省", deptIndex: '',
"海南省", monitorFlag: 2,
"四川省", powerFlag: 2,
"青海省", loadType: [],
"河北省", manufacturer: [],
], statisticalType: '',
ydata: [ scale: [],
92.6, 25.9, 39.0, 26.4, 28.7, 90.7, 75.6, 82.2, 48.7, 58.8, 16.0, 32.3, comFlag: [0, 1],
], runFlag: [0, 1, 2]
classvalue: 0, },
activeName: "tab1", deptId: '',
panindexOptions: [], deptName: '全国',
formData: { deptIndex: '',
//后面需要修改 treeData: [],
serverName: "harmonic-boot", idArr: [],
searchBeginTime:'2023-04-01', defaultProps: {
searchEndTime:'2023-04-11', children: 'children',
deptIndex: "", label: 'name'
monitorFlag: 2, },
powerFlag: 2, //统计类型
loadType: [], classificationData: [],
manufacturer: [], //电压等级
statisticalType: "", voltageleveloption: [],
scale: [], //终端厂家
comFlag: [0, 1], terminaloption: [],
runFlag: [0, 1, 2], //干扰源类型
}, interfereoption: [],
deptId: "", //通讯状态
deptName: "全国", communicationstatus: [
deptIndex: "", { value: 0, label: '中断' },
treeData: [], { value: 1, label: '正常' }
idArr: [], ],
defaultProps: { //终端状态
children: "children", terminalstatus: [
label: "name", { value: 0, label: '投运' },
}, { value: 1, label: '热备用' },
//统计类型 { value: 2, label: '停运' }
classificationData: [], ],
//电压等级 classt: 'Power_Network',
voltageleveloption: [], tableData: []
//终端厂家 }
terminaloption: [], },
//干扰源类型 created() {
interfereoption: [], var info = window.sessionStorage.getItem('Info')
//通讯状态 info = eval('(' + info + ')')
communicationstatus: [ this.formData.deptIndex = info.deptId
{ value: 0, label: "中断" }, this.getAreaDept()
{ value: 1, label: "正常" }, this.getclassificationData()
], this.getVoltage()
//终端状态 this.getManufacturer()
terminalstatus: [ this.getLoadType()
{ value: 0, label: "投运" }, },
{ value: 1, label: "热备用" }, mounted() {
{ value: 2, label: "停运" }, // this.asideheight = getappheight();
], this.queryDataInfo()
classt: "Power_Network", },
tableData: [], methods: {
}; guanzhou() {
}, var data = {
created() { token: this.$route.query.token
var info = window.sessionStorage.getItem("Info"); }
info = eval("(" + info + ")"); api1.guanzhou(data).then(res => {
this.formData.deptIndex = info.deptId; if (res.code == 'A0000') {
this.getAreaDept(); return
this.getclassificationData(); } else {
this.getVoltage(); this.$router.push('/error/massege/403')
this.getManufacturer(); }
this.getLoadType(); })
}, },
mounted() { //切换统计类型
// this.asideheight = getappheight(); changeclasss(val) {
this.queryDataInfo(); this.classt = val.code
}, },
methods: { //部门绑定区域触发区域树节点
guanzhou() { handleNodeClick(data, node) {
var data = { this.deptName = data.name
token: this.$route.query.token, this.$refs.selectTree1.blur()
}; this.deptId = data.id
api1.guanzhou(data).then((res) => { this.formData.deptIndex = data.id
if (res.code == "A0000") { },
return; //2次组件触发事件
} else { querfromdata(data) {
this.$router.push("/error/massege/403"); this.timeValue = data
} // alert("父组件条件查询触发方法" + this.timeValue);
}); },
}, handleClick(tab, event) {
//切换统计类型 this.$nextTick(() => {
changeclasss(val) { this.$refs.child.onlinerateechart()
this.classt = val.code; })
}, },
//部门绑定区域触发区域树节点 changePageNum(data) {
handleNodeClick(data, node) { this.pageData.pageNum = data
this.deptName = data.name; // alert("父组件当前页" + this.pageData.pageNum);
this.$refs.selectTree1.blur(); },
this.deptId = data.id; changePageSize(data) {
this.formData.deptIndex = data.id; this.pageData.pageSize = data
}, //alert("父组件当前条数" + this.pageData.pageSize);
//2次组件触发事件 },
querfromdata(data) { //查询触发方法
this.timeValue = data; queryDataInfo() {
// alert("父组件条件查询触发方法" + this.timeValue); console.log(123, this.getSearchTimeRange())
}, this.formData.searchBeginTime = this.getSearchTimeRange().searchBeginTime
handleClick(tab, event) { this.formData.searchEndTime = this.getSearchTimeRange().searchEndTime
this.$nextTick(() => { this.loading = true
this.$refs.child.onlinerateechart(); api.getRuntimeData(this.formData).then(res => {
}); if (res.code == 'A0000') {
}, if (res.data.length == 0) {
changePageNum(data) { this.tableData = []
this.pageData.pageNum = data; this.loading = false
// alert("父组件当前页" + this.pageData.pageNum); } else {
}, this.tableData = res.data
changePageSize(data) { this.loading = false
this.pageData.pageSize = data; }
//alert("父组件当前条数" + this.pageData.pageSize); }
}, })
//查询触发方法 },
queryDataInfo() { //获取区域
this.loading = true; getAreaDept() {
api.getRuntimeData(this.formData).then((res) => { api.getAreaDept().then(res => {
if (res.code == "A0000") { if (res.code == 'A0000') {
if (res.data.length == 0) { var data = res.data
this.tableData = []; data.forEach(element => {
this.loading = false; this.idArr.push(element.id)
} else { })
this.tableData = res.data; this.treeData = data
this.loading = false; }
} })
} },
}); //字典获取数据电压等级
}, getVoltage() {
//获取区域 var code = 'Dev_Voltage_Stand'
getAreaDept() { this.voltageleveloption = dicData(code, [])
api.getAreaDept().then((res) => { //this.formData.scale = this.voltageleveloption;
if (res.code == "A0000") { },
var data = res.data; //字典获取数据终端厂家
data.forEach((element) => { getManufacturer() {
this.idArr.push(element.id); var code = 'Dev_Manufacturers'
}); this.terminaloption = dicData(code, [])
this.treeData = data; this.formData.manufacturer = this.terminaloption
} },
}); //字典获取数据干扰源类型
}, getLoadType() {
//字典获取数据电压等级 var code = 'Interference_Source'
getVoltage() { this.interfereoption = dicData(code, [])
var code = "Dev_Voltage_Stand"; this.formData.loadType = this.interfereoption
this.voltageleveloption = dicData(code, []); },
//this.formData.scale = this.voltageleveloption; //获取统计类型
}, getclassificationData() {
//字典获取数据终端厂家 var code = 'Statistical_Type'
getManufacturer() { this.classificationData = dicData(code, ['Report_Type', 'Voltage_Level', 'Load_Type', 'Manufacturer'])
var code = "Dev_Manufacturers"; this.formData.statisticalType = this.classificationData[0]
this.terminaloption = dicData(code, []); },
this.formData.manufacturer = this.terminaloption; getSearchTimeRange() {
}, const now = new Date()
//字典获取数据干扰源类型 const currentYear = now.getFullYear()
getLoadType() { const currentMonth = now.getMonth() // 0-11
var code = "Interference_Source"; const currentDate = now.getDate()
this.interfereoption = dicData(code, []);
this.formData.loadType = this.interfereoption; let searchBeginTime, searchEndTime
},
//获取统计类型 if (currentDate === 1) {
getclassificationData() { // 如果是1号返回上个月1号到上个月最后一天
var code = "Statistical_Type"; // 上个月的第一天
this.classificationData = dicData(code, [ const lastMonthFirstDay = new Date(currentYear, currentMonth - 1, 1)
"Report_Type", searchBeginTime = this.formatDate(lastMonthFirstDay)
"Voltage_Level",
"Load_Type", // 上个月的最后一天当前月的第0天就是上个月的最后一天
"Manufacturer" const lastMonthLastDay = new Date(currentYear, currentMonth, 0)
]); searchEndTime = this.formatDate(lastMonthLastDay)
this.formData.statisticalType = this.classificationData[0]; } else {
}, // 如果不是1号返回当月1号到当前时间
}, const monthFirstDay = new Date(currentYear, currentMonth, 1)
}; searchBeginTime = this.formatDate(monthFirstDay)
</script> searchEndTime = this.formatDate(now)
<style lang="scss" scoped> }
@import url("../../../styles/common.less");
return {
.main { searchBeginTime,
overflow: hidden; searchEndTime
} }
::v-deep .el-main[data-v-2338f777] { },
/* margin-top: 10px; */
padding: 10px 10px 10px 10px; // 辅助函数:格式化日期为 YYYY-MM-DD
background-color: rgba(234, 235, 236, 0.996); formatDate(date) {
color: #333; const year = date.getFullYear()
line-height: 0px; const month = String(date.getMonth() + 1).padStart(2, '0')
} const day = String(date.getDate()).padStart(2, '0')
// ::v-deep .el-table__body-wrapper::-webkit-scrollbar { return `${year}-${month}-${day}`
// width: 8px; /*滚动条宽度*/ }
// height: 12px; /*滚动条高度*/ }
// } }
// ::v-deep .el-table__body-wrapper::-webkit-scrollbar-track { </script>
// border-radius: 0px; /*滚动条的背景区域的圆角*/ <style lang="scss" scoped>
// background-color: rgba(203, 208, 207, 0.286); /*滚动条的背景颜色*/ @import url('../../../styles/common.less');
// cursor: pointer;
// } .main {
// ::v-deep .el-table__body-wrapper::-webkit-scrollbar-corner { overflow: hidden;
// background-color: rgba(202, 207, 206, 0.286); }
// cursor: pointer; ::v-deep .el-main[data-v-2338f777] {
// } /* margin-top: 10px; */
// ::v-deep .el-table__body-wrapper::-webkit-scrollbar-thumb { padding: 10px 10px 10px 10px;
// border-radius: 4px; /*滚动条的圆角*/ background-color: rgba(234, 235, 236, 0.996);
// background-color: rgba(144, 148, 148, 0.979); /*滚动条的背景颜色*/ color: #333;
// } line-height: 0px;
::v-deep .el-select-dropdown__item, }
.el-select-dropdown__item { // ::v-deep .el-table__body-wrapper::-webkit-scrollbar {
background-color: #fff; // width: 8px; /*滚动条宽度*/
padding: 0 5px !important; // height: 12px; /*滚动条高度*/
} // }
</style> // ::v-deep .el-table__body-wrapper::-webkit-scrollbar-track {
// border-radius: 0px; /*滚动条的背景区域的圆角*/
// background-color: rgba(203, 208, 207, 0.286); /*滚动条的背景颜色*/
// cursor: pointer;
// }
// ::v-deep .el-table__body-wrapper::-webkit-scrollbar-corner {
// background-color: rgba(202, 207, 206, 0.286);
// cursor: pointer;
// }
// ::v-deep .el-table__body-wrapper::-webkit-scrollbar-thumb {
// border-radius: 4px; /*滚动条的圆角*/
// background-color: rgba(144, 148, 148, 0.979); /*滚动条的背景颜色*/
// }
::v-deep .el-select-dropdown__item,
.el-select-dropdown__item {
background-color: #fff;
padding: 0 5px !important;
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -264,7 +264,7 @@ export default {
//获取审核人列表 //获取审核人列表
getAuditUser() { getAuditUser() {
let param = {roleType: 3} let param = {roleType: 1}
getAuditUser(param).then(res => { getAuditUser(param).then(res => {
if (res && res.code === 'A0000') { if (res && res.code === 'A0000') {
this.auditUserList = res.data this.auditUserList = res.data

File diff suppressed because it is too large Load Diff

View File

@@ -51,7 +51,9 @@ export default {
}; };
}, },
created() { created() {
this.guanzhou() if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
}, },
mounted() { mounted() {

View File

@@ -69,7 +69,7 @@
</el-form-item> </el-form-item>
<el-form-item style="float: right;margin-right: 50px"> <el-form-item style="float: right;margin-right: 50px">
<el-button :disabled="store.params.dataType === '01'" type="primary" @click="reCalUpload(activeName)"> <el-button :disabled="store.params.dataType === '01'" type="primary" @click="reCalUpload('1')">
{{ storeList[activeName].label + '重新计算' }} {{ storeList[activeName].label + '重新计算' }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@@ -605,7 +605,7 @@ export default {
let dateMonth = this.store.params.searchBeginTime.substring(0, 7) let dateMonth = this.store.params.searchBeginTime.substring(0, 7)
//月 //月
request request
.get('/prepare-boot/dimGlobal/reCalMonthUploadAlgorithm?statisticDate=' + dateMonth + '&type=' + type) .get('/prepare-boot/dimGlobal/reCalMonthUploadAlgorithm?statisticDate=' + dateMonth + '&type=1')
.then(res => { .then(res => {
if (res && res.code === 'A0000') { if (res && res.code === 'A0000') {
this.$message({ this.$message({
@@ -617,7 +617,7 @@ export default {
}) })
} else { } else {
request request
.get('/prepare-boot/dimGlobal/reCalUploadAlgorithm?statisticDate=' + this.store.params.searchBeginTime + '&type=' + type) .get('/prepare-boot/dimGlobal/reCalUploadAlgorithm?statisticDate=' + this.store.params.searchBeginTime + '&type=1')
.then(res => { .then(res => {
if (res && res.code === 'A0000') { if (res && res.code === 'A0000') {
this.$message({ this.$message({

View File

@@ -48,7 +48,9 @@ export default {
} }
}, },
created() { created() {
this.guanzhou() if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
}, },
mounted() { mounted() {
this.setHeight() this.setHeight()

View File

@@ -75,7 +75,9 @@ export default {
}; };
}, },
created() { created() {
this.guanzhou(); if (process.env.VUE_APP_KEY != 'scqr') {
this.guanzhou()
}
}, },
mounted() {}, mounted() {},
methods: { methods: {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -18,7 +18,7 @@ module.exports = {
// publicPath: 'https://fuphoenixes.github.io/example/dist/', // publicPath: 'https://fuphoenixes.github.io/example/dist/',
//publicPath: "./", //publicPath: "./",
// publicPath: process.env.VUE_APP_PATH, // publicPath: process.env.VUE_APP_PATH,
publicPath: process.env.NODE_ENV === 'development' ? './' : process.env.VUE_APP_MODE == 'jbqr' ? './' : '/', publicPath: './', //process.env.NODE_ENV === 'development' ? './' : process.env.VUE_APP_MODE == 'jbqr' ? './' : '/',
outputDir: 'dist', outputDir: 'dist',
assetsDir: 'static', assetsDir: 'static',
// lintOnSave: process.env.NODE_ENV === 'development', // lintOnSave: process.env.NODE_ENV === 'development',
@@ -37,9 +37,9 @@ module.exports = {
'/api': { '/api': {
// target: 'http://18028358809.gnway.cc', //hsw // target: 'http://18028358809.gnway.cc', //hsw
// target: 'http://192.168.120.210:10215', //hsw // target: 'http://192.168.120.210:10215', //hsw
target: 'http://192.168.1.29:10215', //超高压 // target: 'http://192.168.1.28:10215', //超高压
// target: "'https://pqmcn.com:8092/api", //治理 // target: "'https://pqmcn.com:8092/api", //治理
// target: 'http://192.168.1.24:10215', // 河北 target: 'http://192.168.1.67:10215', // 河北
// target: "http://192.168.1.31:10215", // 海南 // target: "http://192.168.1.31:10215", // 海南
// target: "http://192.168.1.29:10215", // 冀北 // target: "http://192.168.1.29:10215", // 冀北
changeOrigin: true, changeOrigin: true,