13 Commits

Author SHA1 Message Date
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
48 changed files with 2746 additions and 1073 deletions

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

@@ -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
@@ -87,7 +86,33 @@ router.beforeEach(async (to, from, next) => {
// }) // })
// } // }
} else { } else {
proceed(to, from, next) const response = await fetch('/')
const flag = response.headers.get('X-Xbqr')
console.log('🚀 ~ flag:', flag)
if (flag) {
// 超高压嵌入 接受父应用传参
window.addEventListener(
'message',
event => {
if (event.data && event.data.type === 'iframeNest') {
let { accessToken, displayMode, theme } = event.data
console.log('我是iframe,我接收到了数据:', accessToken)
productionManagementCheck({
token: accessToken
}).then(res => {
console.log('🚀 ~ receiveMessageFromOutside ~ res:', res)
if (res.code == 'A0000') {
proceed(to, from, next)
}
})
}
},
false
)
} else {
proceed(to, from, next)
}
} }
// else { // else {
@@ -133,9 +158,13 @@ router.beforeEach(async (to, from, next) => {
}) })
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,38 +172,53 @@ 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])

View File

@@ -1508,7 +1508,7 @@ export const asyncRoutes = [
path: '/Accountmanagement/uploadGw', path: '/Accountmanagement/uploadGw',
name: 'pmsUploadGw', name: 'pmsUploadGw',
component: () => import('@/views/Account-management/components/uploadGw/index'), component: () => import('@/views/Account-management/components/uploadGw/index'),
meta: { title: '干扰源台账上送', icon: 'user' } meta: { title: '主网用户台账', icon: 'user' }
}, },
{ {
path: '/pw/user/pwMonitorOnline', path: '/pw/user/pwMonitorOnline',

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

@@ -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

@@ -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>

View File

@@ -542,19 +542,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 +927,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 +965,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 +1298,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 +1327,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 +1512,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 +1538,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 +1724,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 +1752,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 +1975,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)

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

@@ -676,19 +676,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.fkf.timeValue[0] this.formData.searchBeginTime = this.$refs.fkf.timeValue[0]
this.formData.searchEndTime = this.$refs.fkf.timeValue[1] this.formData.searchEndTime = this.$refs.fkf.timeValue[1]

View File

@@ -910,19 +910,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.fyf.timeValue[0] this.formData.searchBeginTime = this.$refs.fyf.timeValue[0]
this.formData.searchEndTime = this.$refs.fyf.timeValue[1] this.formData.searchEndTime = this.$refs.fyf.timeValue[1]

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

View File

@@ -657,19 +657,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.timepg.timeValue[0] this.formData.searchBeginTime = this.$refs.timepg.timeValue[0]
this.formData.searchEndTime = this.$refs.timepg.timeValue[1] this.formData.searchEndTime = this.$refs.timepg.timeValue[1]

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({